@volter/tabnode 0.2.14-volter.88

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 (429) hide show
  1. package/LICENSE +22 -0
  2. package/README.md +78 -0
  3. package/THIRD-PARTY-NOTICES.md +12 -0
  4. package/dist/__sw__.js +526 -0
  5. package/dist/assets/runtime-worker-4MKaHFVb.js +75221 -0
  6. package/dist/assets/runtime-worker-4MKaHFVb.js.map +1 -0
  7. package/dist/code-transforms.d.ts +21 -0
  8. package/dist/code-transforms.d.ts.map +1 -0
  9. package/dist/config/cdn.d.ts +12 -0
  10. package/dist/config/cdn.d.ts.map +1 -0
  11. package/dist/create-runtime.d.ts +22 -0
  12. package/dist/create-runtime.d.ts.map +1 -0
  13. package/dist/host-globals.d.ts +62 -0
  14. package/dist/host-globals.d.ts.map +1 -0
  15. package/dist/index.cjs +36021 -0
  16. package/dist/index.cjs.map +1 -0
  17. package/dist/index.d.ts +127 -0
  18. package/dist/index.d.ts.map +1 -0
  19. package/dist/index.mjs +36020 -0
  20. package/dist/index.mjs.map +1 -0
  21. package/dist/node-internals.d.ts +68 -0
  22. package/dist/node-internals.d.ts.map +1 -0
  23. package/dist/node-lib/binding/blob.d.ts +12 -0
  24. package/dist/node-lib/binding/blob.d.ts.map +1 -0
  25. package/dist/node-lib/binding/buffer.d.ts +144 -0
  26. package/dist/node-lib/binding/buffer.d.ts.map +1 -0
  27. package/dist/node-lib/binding/cares_wrap.d.ts +14 -0
  28. package/dist/node-lib/binding/cares_wrap.d.ts.map +1 -0
  29. package/dist/node-lib/binding/fds.d.ts +30 -0
  30. package/dist/node-lib/binding/fds.d.ts.map +1 -0
  31. package/dist/node-lib/binding/fs.d.ts +157 -0
  32. package/dist/node-lib/binding/fs.d.ts.map +1 -0
  33. package/dist/node-lib/binding/handles.d.ts +81 -0
  34. package/dist/node-lib/binding/handles.d.ts.map +1 -0
  35. package/dist/node-lib/binding/http_parser.d.ts +122 -0
  36. package/dist/node-lib/binding/http_parser.d.ts.map +1 -0
  37. package/dist/node-lib/binding/index.d.ts +3 -0
  38. package/dist/node-lib/binding/index.d.ts.map +1 -0
  39. package/dist/node-lib/binding/llhttp-wasm.d.ts +22 -0
  40. package/dist/node-lib/binding/llhttp-wasm.d.ts.map +1 -0
  41. package/dist/node-lib/binding/misc.d.ts +123 -0
  42. package/dist/node-lib/binding/misc.d.ts.map +1 -0
  43. package/dist/node-lib/binding/pipe_wrap.d.ts +84 -0
  44. package/dist/node-lib/binding/pipe_wrap.d.ts.map +1 -0
  45. package/dist/node-lib/binding/process_wrap.d.ts +173 -0
  46. package/dist/node-lib/binding/process_wrap.d.ts.map +1 -0
  47. package/dist/node-lib/binding/spawn_sync.d.ts +30 -0
  48. package/dist/node-lib/binding/spawn_sync.d.ts.map +1 -0
  49. package/dist/node-lib/binding/stream_wrap.d.ts +191 -0
  50. package/dist/node-lib/binding/stream_wrap.d.ts.map +1 -0
  51. package/dist/node-lib/binding/stubs.d.ts +23 -0
  52. package/dist/node-lib/binding/stubs.d.ts.map +1 -0
  53. package/dist/node-lib/binding/tcp_wrap.d.ts +98 -0
  54. package/dist/node-lib/binding/tcp_wrap.d.ts.map +1 -0
  55. package/dist/node-lib/binding/tty_wrap.d.ts +36 -0
  56. package/dist/node-lib/binding/tty_wrap.d.ts.map +1 -0
  57. package/dist/node-lib/binding/util.d.ts +126 -0
  58. package/dist/node-lib/binding/util.d.ts.map +1 -0
  59. package/dist/node-lib/binding/uv.d.ts +32 -0
  60. package/dist/node-lib/binding/uv.d.ts.map +1 -0
  61. package/dist/node-lib/binding/zlib-pako.d.ts +22 -0
  62. package/dist/node-lib/binding/zlib-pako.d.ts.map +1 -0
  63. package/dist/node-lib/binding/zlib.d.ts +38 -0
  64. package/dist/node-lib/binding/zlib.d.ts.map +1 -0
  65. package/dist/node-lib/buffer-module.d.ts +51 -0
  66. package/dist/node-lib/buffer-module.d.ts.map +1 -0
  67. package/dist/node-lib/child-process-module.d.ts +26 -0
  68. package/dist/node-lib/child-process-module.d.ts.map +1 -0
  69. package/dist/node-lib/events-module.d.ts +58 -0
  70. package/dist/node-lib/events-module.d.ts.map +1 -0
  71. package/dist/node-lib/fs-module.d.ts +5 -0
  72. package/dist/node-lib/fs-module.d.ts.map +1 -0
  73. package/dist/node-lib/http-bridge.d.ts +43 -0
  74. package/dist/node-lib/http-bridge.d.ts.map +1 -0
  75. package/dist/node-lib/http-module.d.ts +35 -0
  76. package/dist/node-lib/http-module.d.ts.map +1 -0
  77. package/dist/node-lib/internals/addresses.d.ts +40 -0
  78. package/dist/node-lib/internals/addresses.d.ts.map +1 -0
  79. package/dist/node-lib/internals/buffer-and-streams.d.ts +96 -0
  80. package/dist/node-lib/internals/buffer-and-streams.d.ts.map +1 -0
  81. package/dist/node-lib/internals/child-process.d.ts +27 -0
  82. package/dist/node-lib/internals/child-process.d.ts.map +1 -0
  83. package/dist/node-lib/internals/events-util.d.ts +83 -0
  84. package/dist/node-lib/internals/events-util.d.ts.map +1 -0
  85. package/dist/node-lib/internals/index.d.ts +2 -0
  86. package/dist/node-lib/internals/index.d.ts.map +1 -0
  87. package/dist/node-lib/internals/modules.d.ts +67 -0
  88. package/dist/node-lib/internals/modules.d.ts.map +1 -0
  89. package/dist/node-lib/internals/readline-access.d.ts +2 -0
  90. package/dist/node-lib/internals/readline-access.d.ts.map +1 -0
  91. package/dist/node-lib/internals/runtime.d.ts +150 -0
  92. package/dist/node-lib/internals/runtime.d.ts.map +1 -0
  93. package/dist/node-lib/internals/util.d.ts +33 -0
  94. package/dist/node-lib/internals/util.d.ts.map +1 -0
  95. package/dist/node-lib/lazy.d.ts +31 -0
  96. package/dist/node-lib/lazy.d.ts.map +1 -0
  97. package/dist/node-lib/load.d.ts +27 -0
  98. package/dist/node-lib/load.d.ts.map +1 -0
  99. package/dist/node-lib/module-hooks.d.ts +89 -0
  100. package/dist/node-lib/module-hooks.d.ts.map +1 -0
  101. package/dist/node-lib/net-module.d.ts +181 -0
  102. package/dist/node-lib/net-module.d.ts.map +1 -0
  103. package/dist/node-lib/node-versions.d.ts +27 -0
  104. package/dist/node-lib/node-versions.d.ts.map +1 -0
  105. package/dist/node-lib/public-modules.d.ts +2 -0
  106. package/dist/node-lib/public-modules.d.ts.map +1 -0
  107. package/dist/node-lib/require-hook.d.ts +15 -0
  108. package/dist/node-lib/require-hook.d.ts.map +1 -0
  109. package/dist/node-lib/small-modules.d.ts +16 -0
  110. package/dist/node-lib/small-modules.d.ts.map +1 -0
  111. package/dist/node-lib/sources.d.ts +4 -0
  112. package/dist/node-lib/sources.d.ts.map +1 -0
  113. package/dist/node-lib/stream-module.d.ts +77 -0
  114. package/dist/node-lib/stream-module.d.ts.map +1 -0
  115. package/dist/node-lib/timers.d.ts +19 -0
  116. package/dist/node-lib/timers.d.ts.map +1 -0
  117. package/dist/node-lib/util-module.d.ts +76 -0
  118. package/dist/node-lib/util-module.d.ts.map +1 -0
  119. package/dist/node-resolution.d.ts +50 -0
  120. package/dist/node-resolution.d.ts.map +1 -0
  121. package/dist/node-resolver.d.ts +7 -0
  122. package/dist/node-resolver.d.ts.map +1 -0
  123. package/dist/npm/index.d.ts +73 -0
  124. package/dist/npm/index.d.ts.map +1 -0
  125. package/dist/npm/registry.d.ts +111 -0
  126. package/dist/npm/registry.d.ts.map +1 -0
  127. package/dist/npm/resolver.d.ts +79 -0
  128. package/dist/npm/resolver.d.ts.map +1 -0
  129. package/dist/npm/tarball.d.ts +28 -0
  130. package/dist/npm/tarball.d.ts.map +1 -0
  131. package/dist/process-tokens.d.ts +77 -0
  132. package/dist/process-tokens.d.ts.map +1 -0
  133. package/dist/punycode-source.d.ts +3 -0
  134. package/dist/punycode-source.d.ts.map +1 -0
  135. package/dist/runtime-interface.d.ts +74 -0
  136. package/dist/runtime-interface.d.ts.map +1 -0
  137. package/dist/runtime.d.ts +144 -0
  138. package/dist/runtime.d.ts.map +1 -0
  139. package/dist/server-bridge.d.ts +147 -0
  140. package/dist/server-bridge.d.ts.map +1 -0
  141. package/dist/shims/async_hooks.d.ts +50 -0
  142. package/dist/shims/async_hooks.d.ts.map +1 -0
  143. package/dist/shims/child_process.d.ts +104 -0
  144. package/dist/shims/child_process.d.ts.map +1 -0
  145. package/dist/shims/cluster.d.ts +52 -0
  146. package/dist/shims/cluster.d.ts.map +1 -0
  147. package/dist/shims/command-line.d.ts +43 -0
  148. package/dist/shims/command-line.d.ts.map +1 -0
  149. package/dist/shims/constants.d.ts +222 -0
  150. package/dist/shims/constants.d.ts.map +1 -0
  151. package/dist/shims/crypto-constants.d.ts +12 -0
  152. package/dist/shims/crypto-constants.d.ts.map +1 -0
  153. package/dist/shims/crypto.d.ts +144 -0
  154. package/dist/shims/crypto.d.ts.map +1 -0
  155. package/dist/shims/dgram.d.ts +34 -0
  156. package/dist/shims/dgram.d.ts.map +1 -0
  157. package/dist/shims/dns.d.ts +91 -0
  158. package/dist/shims/dns.d.ts.map +1 -0
  159. package/dist/shims/domain.d.ts +25 -0
  160. package/dist/shims/domain.d.ts.map +1 -0
  161. package/dist/shims/esbuild.d.ts +205 -0
  162. package/dist/shims/esbuild.d.ts.map +1 -0
  163. package/dist/shims/fs.d.ts +25 -0
  164. package/dist/shims/fs.d.ts.map +1 -0
  165. package/dist/shims/http2.d.ts +81 -0
  166. package/dist/shims/http2.d.ts.map +1 -0
  167. package/dist/shims/inspector.d.ts +25 -0
  168. package/dist/shims/inspector.d.ts.map +1 -0
  169. package/dist/shims/module.d.ts +22 -0
  170. package/dist/shims/module.d.ts.map +1 -0
  171. package/dist/shims/os.d.ts +159 -0
  172. package/dist/shims/os.d.ts.map +1 -0
  173. package/dist/shims/path.d.ts +52 -0
  174. package/dist/shims/path.d.ts.map +1 -0
  175. package/dist/shims/perf_hooks.d.ts +50 -0
  176. package/dist/shims/perf_hooks.d.ts.map +1 -0
  177. package/dist/shims/process.d.ts +226 -0
  178. package/dist/shims/process.d.ts.map +1 -0
  179. package/dist/shims/rollup.d.ts +71 -0
  180. package/dist/shims/rollup.d.ts.map +1 -0
  181. package/dist/shims/string_decoder.d.ts +41 -0
  182. package/dist/shims/string_decoder.d.ts.map +1 -0
  183. package/dist/shims/sync-child.d.ts +64 -0
  184. package/dist/shims/sync-child.d.ts.map +1 -0
  185. package/dist/shims/tls.d.ts +53 -0
  186. package/dist/shims/tls.d.ts.map +1 -0
  187. package/dist/shims/url.d.ts +84 -0
  188. package/dist/shims/url.d.ts.map +1 -0
  189. package/dist/shims/v8.d.ts +73 -0
  190. package/dist/shims/v8.d.ts.map +1 -0
  191. package/dist/shims/vfs-adapter.d.ts +126 -0
  192. package/dist/shims/vfs-adapter.d.ts.map +1 -0
  193. package/dist/shims/vm.d.ts +52 -0
  194. package/dist/shims/vm.d.ts.map +1 -0
  195. package/dist/shims/wasi.d.ts +78 -0
  196. package/dist/shims/wasi.d.ts.map +1 -0
  197. package/dist/shims/worker_threads.d.ts +66 -0
  198. package/dist/shims/worker_threads.d.ts.map +1 -0
  199. package/dist/shims/zlib-constants.d.ts +66 -0
  200. package/dist/shims/zlib-constants.d.ts.map +1 -0
  201. package/dist/shims/zlib.d.ts +102 -0
  202. package/dist/shims/zlib.d.ts.map +1 -0
  203. package/dist/transform.d.ts +24 -0
  204. package/dist/transform.d.ts.map +1 -0
  205. package/dist/types/package-json.d.ts +18 -0
  206. package/dist/types/package-json.d.ts.map +1 -0
  207. package/dist/utils/binary-encoding.d.ts +13 -0
  208. package/dist/utils/binary-encoding.d.ts.map +1 -0
  209. package/dist/utils/glob.d.ts +19 -0
  210. package/dist/utils/glob.d.ts.map +1 -0
  211. package/dist/utils/hash.d.ts +6 -0
  212. package/dist/utils/hash.d.ts.map +1 -0
  213. package/dist/virtual-fs.d.ts +259 -0
  214. package/dist/virtual-fs.d.ts.map +1 -0
  215. package/dist/vite-plugin.cjs +50 -0
  216. package/dist/vite-plugin.cjs.map +1 -0
  217. package/dist/vite-plugin.d.ts +36 -0
  218. package/dist/vite-plugin.d.ts.map +1 -0
  219. package/dist/vite-plugin.mjs +31 -0
  220. package/dist/vite-plugin.mjs.map +1 -0
  221. package/dist/worker/runtime-worker.d.ts +8 -0
  222. package/dist/worker/runtime-worker.d.ts.map +1 -0
  223. package/dist/worker-runtime.d.ts +50 -0
  224. package/dist/worker-runtime.d.ts.map +1 -0
  225. package/package.json +88 -0
  226. package/src/code-transforms.ts +560 -0
  227. package/src/config/cdn.ts +13 -0
  228. package/src/create-runtime.ts +89 -0
  229. package/src/host-globals.ts +121 -0
  230. package/src/index.ts +235 -0
  231. package/src/node-internals.ts +283 -0
  232. package/src/node-lib/LICENSE +47 -0
  233. package/src/node-lib/_http_agent.js +547 -0
  234. package/src/node-lib/_http_client.js +996 -0
  235. package/src/node-lib/_http_common.js +269 -0
  236. package/src/node-lib/_http_incoming.js +453 -0
  237. package/src/node-lib/_http_outgoing.js +1262 -0
  238. package/src/node-lib/_http_server.js +1230 -0
  239. package/src/node-lib/assert/strict.js +3 -0
  240. package/src/node-lib/assert.js +844 -0
  241. package/src/node-lib/binding/blob.ts +35 -0
  242. package/src/node-lib/binding/buffer.ts +465 -0
  243. package/src/node-lib/binding/cares_wrap.ts +57 -0
  244. package/src/node-lib/binding/fds.ts +80 -0
  245. package/src/node-lib/binding/fs.ts +857 -0
  246. package/src/node-lib/binding/handles.ts +187 -0
  247. package/src/node-lib/binding/http_parser.ts +536 -0
  248. package/src/node-lib/binding/index.ts +77 -0
  249. package/src/node-lib/binding/llhttp-wasm.ts +670 -0
  250. package/src/node-lib/binding/misc.ts +252 -0
  251. package/src/node-lib/binding/pipe_wrap.ts +166 -0
  252. package/src/node-lib/binding/process_wrap.ts +371 -0
  253. package/src/node-lib/binding/spawn_sync.ts +141 -0
  254. package/src/node-lib/binding/stream_wrap.ts +413 -0
  255. package/src/node-lib/binding/stubs.ts +19 -0
  256. package/src/node-lib/binding/tcp_wrap.ts +254 -0
  257. package/src/node-lib/binding/tty_wrap.ts +56 -0
  258. package/src/node-lib/binding/util.ts +274 -0
  259. package/src/node-lib/binding/uv.ts +102 -0
  260. package/src/node-lib/binding/zlib-pako.ts +50 -0
  261. package/src/node-lib/binding/zlib.ts +259 -0
  262. package/src/node-lib/buffer-module.ts +70 -0
  263. package/src/node-lib/buffer.js +1373 -0
  264. package/src/node-lib/child-process-module.ts +58 -0
  265. package/src/node-lib/child_process.js +1046 -0
  266. package/src/node-lib/constants.js +41 -0
  267. package/src/node-lib/diagnostics_channel.js +438 -0
  268. package/src/node-lib/events-module.ts +80 -0
  269. package/src/node-lib/events.js +1223 -0
  270. package/src/node-lib/fs-module.ts +43 -0
  271. package/src/node-lib/fs.js +3377 -0
  272. package/src/node-lib/http-bridge.ts +299 -0
  273. package/src/node-lib/http-module.ts +53 -0
  274. package/src/node-lib/http.js +198 -0
  275. package/src/node-lib/https.js +429 -0
  276. package/src/node-lib/internal/assert/assertion_error.js +417 -0
  277. package/src/node-lib/internal/assert/calltracker.js +153 -0
  278. package/src/node-lib/internal/assert/myers_diff.js +177 -0
  279. package/src/node-lib/internal/assert/utils.js +278 -0
  280. package/src/node-lib/internal/buffer.js +1120 -0
  281. package/src/node-lib/internal/child_process/serialization.js +169 -0
  282. package/src/node-lib/internal/child_process.js +1135 -0
  283. package/src/node-lib/internal/constants.js +56 -0
  284. package/src/node-lib/internal/deps/minimatch/index.js +1628 -0
  285. package/src/node-lib/internal/errors.js +1912 -0
  286. package/src/node-lib/internal/events/abort_listener.js +54 -0
  287. package/src/node-lib/internal/events/symbols.js +11 -0
  288. package/src/node-lib/internal/fixed_queue.js +119 -0
  289. package/src/node-lib/internal/freelist.js +30 -0
  290. package/src/node-lib/internal/fs/cp/cp-sync.js +242 -0
  291. package/src/node-lib/internal/fs/cp/cp.js +382 -0
  292. package/src/node-lib/internal/fs/dir.js +369 -0
  293. package/src/node-lib/internal/fs/glob.js +763 -0
  294. package/src/node-lib/internal/fs/promises.js +1312 -0
  295. package/src/node-lib/internal/fs/read/context.js +129 -0
  296. package/src/node-lib/internal/fs/recursive_watch.js +275 -0
  297. package/src/node-lib/internal/fs/rimraf.js +311 -0
  298. package/src/node-lib/internal/fs/streams.js +571 -0
  299. package/src/node-lib/internal/fs/sync_write_stream.js +49 -0
  300. package/src/node-lib/internal/fs/utils.js +987 -0
  301. package/src/node-lib/internal/fs/watchers.js +418 -0
  302. package/src/node-lib/internal/http.js +62 -0
  303. package/src/node-lib/internal/mime.js +389 -0
  304. package/src/node-lib/internal/modules/customization_hooks.js +406 -0
  305. package/src/node-lib/internal/net.js +95 -0
  306. package/src/node-lib/internal/querystring.js +119 -0
  307. package/src/node-lib/internal/readline/callbacks.js +132 -0
  308. package/src/node-lib/internal/readline/emitKeypressEvents.js +99 -0
  309. package/src/node-lib/internal/readline/interface.js +1418 -0
  310. package/src/node-lib/internal/readline/promises.js +144 -0
  311. package/src/node-lib/internal/readline/utils.js +405 -0
  312. package/src/node-lib/internal/socket_list.js +108 -0
  313. package/src/node-lib/internal/stream_base_commons.js +280 -0
  314. package/src/node-lib/internal/streams/add-abort-signal.js +60 -0
  315. package/src/node-lib/internal/streams/compose.js +257 -0
  316. package/src/node-lib/internal/streams/destroy.js +361 -0
  317. package/src/node-lib/internal/streams/duplex.js +203 -0
  318. package/src/node-lib/internal/streams/duplexify.js +379 -0
  319. package/src/node-lib/internal/streams/duplexpair.js +62 -0
  320. package/src/node-lib/internal/streams/end-of-stream.js +331 -0
  321. package/src/node-lib/internal/streams/from.js +208 -0
  322. package/src/node-lib/internal/streams/lazy_transform.js +57 -0
  323. package/src/node-lib/internal/streams/legacy.js +125 -0
  324. package/src/node-lib/internal/streams/operators.js +436 -0
  325. package/src/node-lib/internal/streams/passthrough.js +47 -0
  326. package/src/node-lib/internal/streams/pipeline.js +465 -0
  327. package/src/node-lib/internal/streams/readable.js +1762 -0
  328. package/src/node-lib/internal/streams/state.js +51 -0
  329. package/src/node-lib/internal/streams/transform.js +204 -0
  330. package/src/node-lib/internal/streams/utils.js +363 -0
  331. package/src/node-lib/internal/streams/writable.js +1163 -0
  332. package/src/node-lib/internal/tty.js +260 -0
  333. package/src/node-lib/internal/util/colors.js +40 -0
  334. package/src/node-lib/internal/util/comparisons.js +1028 -0
  335. package/src/node-lib/internal/util/debuglog.js +524 -0
  336. package/src/node-lib/internal/util/inspect.js +2535 -0
  337. package/src/node-lib/internal/util/parse_args/parse_args.js +412 -0
  338. package/src/node-lib/internal/util/parse_args/utils.js +197 -0
  339. package/src/node-lib/internal/util.js +1003 -0
  340. package/src/node-lib/internal/validators.js +654 -0
  341. package/src/node-lib/internals/addresses.ts +159 -0
  342. package/src/node-lib/internals/buffer-and-streams.ts +224 -0
  343. package/src/node-lib/internals/child-process.ts +64 -0
  344. package/src/node-lib/internals/events-util.ts +105 -0
  345. package/src/node-lib/internals/index.ts +66 -0
  346. package/src/node-lib/internals/modules.ts +117 -0
  347. package/src/node-lib/internals/readline-access.ts +16 -0
  348. package/src/node-lib/internals/runtime.ts +277 -0
  349. package/src/node-lib/internals/util.ts +98 -0
  350. package/src/node-lib/lazy.ts +158 -0
  351. package/src/node-lib/load.ts +390 -0
  352. package/src/node-lib/module-hooks.ts +281 -0
  353. package/src/node-lib/net-module.ts +248 -0
  354. package/src/node-lib/net.js +2540 -0
  355. package/src/node-lib/node-versions.ts +34 -0
  356. package/src/node-lib/os.js +356 -0
  357. package/src/node-lib/path.js +1694 -0
  358. package/src/node-lib/primordials.js +743 -0
  359. package/src/node-lib/public-modules.ts +109 -0
  360. package/src/node-lib/punycode.js +455 -0
  361. package/src/node-lib/querystring.js +484 -0
  362. package/src/node-lib/readline/promises.js +73 -0
  363. package/src/node-lib/readline.js +523 -0
  364. package/src/node-lib/require-hook.ts +27 -0
  365. package/src/node-lib/small-modules.ts +35 -0
  366. package/src/node-lib/sources.ts +200 -0
  367. package/src/node-lib/stream/promises.js +44 -0
  368. package/src/node-lib/stream-module.ts +101 -0
  369. package/src/node-lib/stream.js +152 -0
  370. package/src/node-lib/timers.ts +33 -0
  371. package/src/node-lib/tty.js +168 -0
  372. package/src/node-lib/util-module.ts +104 -0
  373. package/src/node-lib/util.js +689 -0
  374. package/src/node-lib/wasi.js +179 -0
  375. package/src/node-lib/zlib.js +1036 -0
  376. package/src/node-resolution.ts +241 -0
  377. package/src/node-resolver.ts +33 -0
  378. package/src/npm/index.ts +425 -0
  379. package/src/npm/registry.ts +235 -0
  380. package/src/npm/resolver.ts +589 -0
  381. package/src/npm/tarball.ts +246 -0
  382. package/src/process-tokens.ts +156 -0
  383. package/src/punycode-source.ts +6 -0
  384. package/src/runtime-interface.ts +85 -0
  385. package/src/runtime.ts +3073 -0
  386. package/src/server-bridge.ts +971 -0
  387. package/src/shims/async_hooks.ts +181 -0
  388. package/src/shims/child_process.ts +1591 -0
  389. package/src/shims/cluster.ts +79 -0
  390. package/src/shims/command-line.ts +79 -0
  391. package/src/shims/constants.ts +68 -0
  392. package/src/shims/crypto-constants.ts +11 -0
  393. package/src/shims/crypto.ts +1061 -0
  394. package/src/shims/dgram.ts +47 -0
  395. package/src/shims/dns.ts +185 -0
  396. package/src/shims/domain.ts +58 -0
  397. package/src/shims/esbuild.ts +1638 -0
  398. package/src/shims/fs.ts +82 -0
  399. package/src/shims/http2.ts +96 -0
  400. package/src/shims/inspector.ts +30 -0
  401. package/src/shims/module.ts +86 -0
  402. package/src/shims/os.ts +195 -0
  403. package/src/shims/path.ts +246 -0
  404. package/src/shims/perf_hooks.ts +92 -0
  405. package/src/shims/process.ts +804 -0
  406. package/src/shims/rollup.ts +149 -0
  407. package/src/shims/string_decoder.ts +396 -0
  408. package/src/shims/sync-child.ts +469 -0
  409. package/src/shims/tls.ts +94 -0
  410. package/src/shims/url.ts +217 -0
  411. package/src/shims/v8.ts +113 -0
  412. package/src/shims/vfs-adapter.ts +408 -0
  413. package/src/shims/vm.ts +132 -0
  414. package/src/shims/wasi.ts +1440 -0
  415. package/src/shims/worker_threads.ts +114 -0
  416. package/src/shims/zlib-constants.ts +65 -0
  417. package/src/shims/zlib.ts +228 -0
  418. package/src/transform.ts +324 -0
  419. package/src/types/external.d.ts +55 -0
  420. package/src/types/package-json.ts +17 -0
  421. package/src/types/pako-zlib.d.ts +30 -0
  422. package/src/types/sha.js.d.ts +14 -0
  423. package/src/utils/binary-encoding.ts +43 -0
  424. package/src/utils/glob.ts +54 -0
  425. package/src/utils/hash.ts +12 -0
  426. package/src/virtual-fs.ts +1048 -0
  427. package/src/vite-plugin.ts +76 -0
  428. package/src/worker/runtime-worker.ts +128 -0
  429. package/src/worker-runtime.ts +145 -0
@@ -0,0 +1,102 @@
1
+ /**
2
+ * Node.js zlib module shim
3
+ * Provides basic compression utilities
4
+ */
5
+ import { zlibConstants as constants } from './zlib-constants';
6
+ export { constants };
7
+ export declare function gzip(buffer: Buffer | string, callback: (error: Error | null, result: Buffer) => void): void;
8
+ export declare function gunzip(buffer: Buffer, callback: (error: Error | null, result: Buffer) => void): void;
9
+ export declare function deflate(buffer: Buffer | string, callback: (error: Error | null, result: Buffer) => void): void;
10
+ export declare function inflate(buffer: Buffer, callback: (error: Error | null, result: Buffer) => void): void;
11
+ export declare function deflateRaw(buffer: Buffer | string, callback: (error: Error | null, result: Buffer) => void): void;
12
+ export declare function inflateRaw(buffer: Buffer, callback: (error: Error | null, result: Buffer) => void): void;
13
+ export declare function brotliCompress(buffer: Buffer | string, options: unknown, callback: (error: Error | null, result: Buffer) => void): void;
14
+ export declare function brotliDecompress(buffer: Buffer, options: unknown, callback: (error: Error | null, result: Buffer) => void): void;
15
+ export declare function brotliCompressSync(buffer: Buffer | string, _options?: unknown): Buffer;
16
+ export declare function brotliDecompressSync(buffer: Buffer, _options?: unknown): Buffer;
17
+ export declare function gzipSync(buffer: Buffer | string): Buffer;
18
+ export declare function gunzipSync(buffer: Buffer): Buffer;
19
+ export declare function deflateSync(buffer: Buffer | string): Buffer;
20
+ export declare function inflateSync(buffer: Buffer): Buffer;
21
+ export declare function deflateRawSync(buffer: Buffer | string): Buffer;
22
+ export declare function inflateRawSync(buffer: Buffer): Buffer;
23
+ declare const _default: {
24
+ gzip: typeof gzip;
25
+ gunzip: typeof gunzip;
26
+ deflate: typeof deflate;
27
+ inflate: typeof inflate;
28
+ deflateRaw: typeof deflateRaw;
29
+ inflateRaw: typeof inflateRaw;
30
+ gzipSync: typeof gzipSync;
31
+ gunzipSync: typeof gunzipSync;
32
+ deflateSync: typeof deflateSync;
33
+ inflateSync: typeof inflateSync;
34
+ deflateRawSync: typeof deflateRawSync;
35
+ inflateRawSync: typeof inflateRawSync;
36
+ brotliCompress: typeof brotliCompress;
37
+ brotliDecompress: typeof brotliDecompress;
38
+ brotliCompressSync: typeof brotliCompressSync;
39
+ brotliDecompressSync: typeof brotliDecompressSync;
40
+ constants: {
41
+ Z_NO_FLUSH: number;
42
+ Z_PARTIAL_FLUSH: number;
43
+ Z_SYNC_FLUSH: number;
44
+ Z_FULL_FLUSH: number;
45
+ Z_FINISH: number;
46
+ Z_BLOCK: number;
47
+ Z_OK: number;
48
+ Z_STREAM_END: number;
49
+ Z_NEED_DICT: number;
50
+ Z_ERRNO: number;
51
+ Z_STREAM_ERROR: number;
52
+ Z_DATA_ERROR: number;
53
+ Z_MEM_ERROR: number;
54
+ Z_BUF_ERROR: number;
55
+ Z_VERSION_ERROR: number;
56
+ Z_NO_COMPRESSION: number;
57
+ Z_BEST_SPEED: number;
58
+ Z_BEST_COMPRESSION: number;
59
+ Z_DEFAULT_COMPRESSION: number;
60
+ Z_FILTERED: number;
61
+ Z_HUFFMAN_ONLY: number;
62
+ Z_RLE: number;
63
+ Z_FIXED: number;
64
+ Z_DEFAULT_STRATEGY: number;
65
+ ZLIB_VERNUM: number;
66
+ Z_MIN_WINDOWBITS: number;
67
+ Z_MAX_WINDOWBITS: number;
68
+ Z_DEFAULT_WINDOWBITS: number;
69
+ Z_MIN_CHUNK: number;
70
+ Z_MAX_CHUNK: number;
71
+ Z_DEFAULT_CHUNK: number;
72
+ Z_MIN_MEMLEVEL: number;
73
+ Z_MAX_MEMLEVEL: number;
74
+ Z_DEFAULT_MEMLEVEL: number;
75
+ Z_MIN_LEVEL: number;
76
+ Z_MAX_LEVEL: number;
77
+ Z_DEFAULT_LEVEL: number;
78
+ BROTLI_DECODE: number;
79
+ BROTLI_ENCODE: number;
80
+ BROTLI_OPERATION_PROCESS: number;
81
+ BROTLI_OPERATION_FLUSH: number;
82
+ BROTLI_OPERATION_FINISH: number;
83
+ BROTLI_OPERATION_EMIT_METADATA: number;
84
+ BROTLI_PARAM_MODE: number;
85
+ BROTLI_MODE_GENERIC: number;
86
+ BROTLI_MODE_TEXT: number;
87
+ BROTLI_MODE_FONT: number;
88
+ BROTLI_PARAM_QUALITY: number;
89
+ BROTLI_MIN_QUALITY: number;
90
+ BROTLI_MAX_QUALITY: number;
91
+ BROTLI_DEFAULT_QUALITY: number;
92
+ BROTLI_PARAM_LGWIN: number;
93
+ BROTLI_MIN_WINDOW_BITS: number;
94
+ BROTLI_MAX_WINDOW_BITS: number;
95
+ BROTLI_DEFAULT_WINDOW: number;
96
+ BROTLI_PARAM_LGBLOCK: number;
97
+ BROTLI_MIN_INPUT_BLOCK_BITS: number;
98
+ BROTLI_MAX_INPUT_BLOCK_BITS: number;
99
+ };
100
+ };
101
+ export default _default;
102
+ //# sourceMappingURL=zlib.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zlib.d.ts","sourceRoot":"","sources":["../../src/shims/zlib.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,aAAa,IAAI,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,CAAC;AA6BrB,wBAAgB,IAAI,CAClB,MAAM,EAAE,MAAM,GAAG,MAAM,EACvB,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,GACtD,IAAI,CAQN;AAED,wBAAgB,MAAM,CACpB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,GACtD,IAAI,CAON;AAED,wBAAgB,OAAO,CACrB,MAAM,EAAE,MAAM,GAAG,MAAM,EACvB,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,GACtD,IAAI,CAQN;AAED,wBAAgB,OAAO,CACrB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,GACtD,IAAI,CAON;AAED,wBAAgB,UAAU,CACxB,MAAM,EAAE,MAAM,GAAG,MAAM,EACvB,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,GACtD,IAAI,CAQN;AAED,wBAAgB,UAAU,CACxB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,GACtD,IAAI,CAON;AAGD,wBAAgB,cAAc,CAC5B,MAAM,EAAE,MAAM,GAAG,MAAM,EACvB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,GACtD,IAAI,CAqBN;AAED,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,GACtD,IAAI,CAoBN;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM,CAMtF;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM,CAK/E;AAGD,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAGxD;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAG3D;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAElD;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAG9D;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAErD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAED,wBAkBE"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * ESM to CJS Transformer using esbuild-wasm
3
+ *
4
+ * Transforms ES modules to CommonJS format during npm install,
5
+ * so require() can work synchronously.
6
+ */
7
+ import { VirtualFS } from './virtual-fs';
8
+ /**
9
+ * Initialize esbuild-wasm (reuses existing instance if already initialized)
10
+ */
11
+ export declare function initTransformer(): Promise<void>;
12
+ /**
13
+ * Check if transformer is ready
14
+ */
15
+ export declare function isTransformerReady(): boolean;
16
+ /**
17
+ * Transform a single file from ESM to CJS
18
+ */
19
+ export declare function transformFile(code: string, filename: string): Promise<string>;
20
+ /**
21
+ * Transform all ESM files in a package directory to CJS
22
+ */
23
+ export declare function transformPackage(vfs: VirtualFS, pkgPath: string, onProgress?: (msg: string) => void): Promise<number>;
24
+ //# sourceMappingURL=transform.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transform.d.ts","sourceRoot":"","sources":["../src/transform.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAsDzC;;GAEG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAuDrD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,OAAO,CAK5C;AAED;;GAEG;AACH,wBAAsB,aAAa,CACjC,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,CAAC,CAyDjB;AA8CD;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,SAAS,EACd,OAAO,EAAE,MAAM,EACf,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GACjC,OAAO,CAAC,MAAM,CAAC,CAsCjB"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Type definition for package.json files
3
+ */
4
+ export interface PackageJson {
5
+ name?: string;
6
+ version?: string;
7
+ main?: string;
8
+ module?: string;
9
+ browser?: string | Record<string, string | false>;
10
+ types?: string;
11
+ exports?: Record<string, unknown> | string;
12
+ dependencies?: Record<string, string>;
13
+ devDependencies?: Record<string, string>;
14
+ peerDependencies?: Record<string, string>;
15
+ scripts?: Record<string, string>;
16
+ [key: string]: unknown;
17
+ }
18
+ //# sourceMappingURL=package-json.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package-json.d.ts","sourceRoot":"","sources":["../../src/types/package-json.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,CAAC,CAAC;IAClD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC;IAC3C,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Shared binary encoding utilities.
3
+ * Replaces O(n²) string concatenation patterns used throughout the codebase.
4
+ */
5
+ /** Convert Uint8Array to base64 string */
6
+ export declare function uint8ToBase64(bytes: Uint8Array): string;
7
+ /** Convert base64 string to Uint8Array */
8
+ export declare function base64ToUint8(base64: string): Uint8Array;
9
+ /** Convert Uint8Array to hex string */
10
+ export declare function uint8ToHex(bytes: Uint8Array): string;
11
+ /** Convert Uint8Array to binary (latin1) string */
12
+ export declare function uint8ToBinaryString(bytes: Uint8Array): string;
13
+ //# sourceMappingURL=binary-encoding.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"binary-encoding.d.ts","sourceRoot":"","sources":["../../src/utils/binary-encoding.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,0CAA0C;AAC1C,wBAAgB,aAAa,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAMvD;AAED,0CAA0C;AAC1C,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAOxD;AAED,uCAAuC;AACvC,wBAAgB,UAAU,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAMpD;AAED,mDAAmD;AACnD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAM7D"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Node's glob, for `path.matchesGlob` and for `fs.glob`: `**` crosses
3
+ * separators, `*` and `?` do not, `[...]` is a character class and `{a,b}` is
4
+ * an alternation, and the whole path is matched.
5
+ *
6
+ * It lives here because both the builtin table in `runtime.ts` and the fs
7
+ * shim's `globSync` need it. It used to be a function declared in
8
+ * `runtime.ts` and merely `declare`d in `src/shims/fs.ts`, on the belief that
9
+ * the bundle gives every module one shared scope; it does not, so a guest
10
+ * that called `fs.globSync` — the vitest and Prisma CLIs glob for their own
11
+ * files — died on `__browserRuntimeNodeGlob is not defined`. A module both
12
+ * import is the same helper in either build.
13
+ *
14
+ * This is not npm's package.json glob, which anchors a pattern without a
15
+ * separator at any segment; that one stays with the installer, since each
16
+ * source system keeps its own semantics.
17
+ */
18
+ export declare function globToRegExp(glob: string, nocase?: boolean): RegExp;
19
+ //# sourceMappingURL=glob.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"glob.d.ts","sourceRoot":"","sources":["../../src/utils/glob.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,UAAQ,GAAG,MAAM,CAEjE"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Simple hash function for content-based cache invalidation.
3
+ * Uses djb2-style hashing for fast string hashing.
4
+ */
5
+ export declare function simpleHash(str: string): string;
6
+ //# sourceMappingURL=hash.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hash.d.ts","sourceRoot":"","sources":["../../src/utils/hash.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAO9C"}
@@ -0,0 +1,259 @@
1
+ /**
2
+ * Virtual File System - In-memory file tree with POSIX-like operations
3
+ */
4
+ import type { VFSSnapshot } from './runtime-interface';
5
+ import { Readable } from './node-lib/stream-module';
6
+ /**
7
+ * A read stream is a real `Readable`, so a guest can pipe it, iterate it, or
8
+ * listen for `open` and `ready`; the hand-rolled object it used to answer had
9
+ * only `on` and `pipe`, so anything that treated it as a stream got nothing.
10
+ * `start`, `end` and `encoding` are honoured as Node honours them.
11
+ *
12
+ * What `createReadStream` accepts: the subset of Node's options bag used here.
13
+ */
14
+ export interface ReadStreamOptions {
15
+ encoding?: string;
16
+ start?: number;
17
+ end?: number;
18
+ }
19
+ /** A `Readable` carrying the two properties Node's fs read stream carries. */
20
+ export interface FsReadStream extends Readable {
21
+ path: string;
22
+ bytesRead: number;
23
+ }
24
+ export interface FSNode {
25
+ type: 'file' | 'directory' | 'symlink';
26
+ content?: Uint8Array;
27
+ /** Where a symlink points, exactly as it was written. */
28
+ target?: string;
29
+ children?: Map<string, FSNode>;
30
+ mtime: number;
31
+ /**
32
+ * When the file was last read. Node reports it apart from the write time
33
+ * and `utimes` sets the two separately; this filesystem reported the write
34
+ * time in its place, so a program that set an access time and read it back
35
+ * got the other one (Node's own test/wasi `stat` fixture asserts them
36
+ * apart). Absent until something sets it, which is the write time.
37
+ */
38
+ atime?: number;
39
+ }
40
+ type VFSChangeListener = (path: string, content: string) => void;
41
+ type VFSDeleteListener = (path: string) => void;
42
+ export interface Stats {
43
+ isFile(): boolean;
44
+ isDirectory(): boolean;
45
+ isSymbolicLink(): boolean;
46
+ isBlockDevice(): boolean;
47
+ isCharacterDevice(): boolean;
48
+ isFIFO(): boolean;
49
+ isSocket(): boolean;
50
+ size: number;
51
+ mode: number;
52
+ mtime: Date;
53
+ atime: Date;
54
+ ctime: Date;
55
+ birthtime: Date;
56
+ mtimeMs: number;
57
+ atimeMs: number;
58
+ ctimeMs: number;
59
+ birthtimeMs: number;
60
+ nlink: number;
61
+ uid: number;
62
+ gid: number;
63
+ dev: number;
64
+ ino: number;
65
+ rdev: number;
66
+ blksize: number;
67
+ blocks: number;
68
+ }
69
+ export type WatchEventType = 'change' | 'rename';
70
+ export type WatchListener = (eventType: WatchEventType, filename: string | null) => void;
71
+ export interface FSWatcher {
72
+ close(): void;
73
+ ref(): this;
74
+ unref(): this;
75
+ }
76
+ /**
77
+ * Create a Node.js-style error with code property
78
+ */
79
+ export interface NodeError extends Error {
80
+ code: string;
81
+ errno: number;
82
+ syscall: string;
83
+ path?: string;
84
+ }
85
+ export declare function createNodeError(code: 'ENOENT' | 'ENOTDIR' | 'EISDIR' | 'EEXIST' | 'ENOTEMPTY' | 'ELOOP' | 'EINVAL', syscall: string, path: string, message?: string): NodeError;
86
+ export declare class VirtualFS {
87
+ private root;
88
+ private encoder;
89
+ private decoder;
90
+ private watchers;
91
+ private eventListeners;
92
+ constructor();
93
+ /**
94
+ * Add event listener (for change notifications to workers)
95
+ */
96
+ on(event: 'change', listener: VFSChangeListener): this;
97
+ on(event: 'delete', listener: VFSDeleteListener): this;
98
+ /**
99
+ * Remove event listener
100
+ */
101
+ off(event: 'change', listener: VFSChangeListener): this;
102
+ off(event: 'delete', listener: VFSDeleteListener): this;
103
+ /**
104
+ * Emit event to listeners
105
+ */
106
+ private emit;
107
+ /**
108
+ * Serialize the entire file tree to a snapshot (for worker transfer)
109
+ */
110
+ toSnapshot(): VFSSnapshot;
111
+ private serializeNode;
112
+ /**
113
+ * Create a VirtualFS from a snapshot
114
+ */
115
+ static fromSnapshot(snapshot: VFSSnapshot): VirtualFS;
116
+ /**
117
+ * Internal write that optionally emits events
118
+ */
119
+ private writeFileSyncInternal;
120
+ /**
121
+ * Normalize path - resolve . and .. segments, ensure leading /
122
+ */
123
+ private normalizePath;
124
+ /**
125
+ * Get path segments from normalized path
126
+ */
127
+ private getPathSegments;
128
+ /**
129
+ * Get parent directory path
130
+ */
131
+ private getParentPath;
132
+ /**
133
+ * Get basename from path
134
+ */
135
+ private getBasename;
136
+ /**
137
+ * Get node at path, returns undefined if not found
138
+ */
139
+ getNode(path: string): FSNode | undefined;
140
+ /** The node at a path, following every link on the way and, when `follow`, the last one too. */
141
+ __substrateNode(path: string, follow: boolean, depth: number): FSNode | undefined;
142
+ /** A link's target as an absolute path: absolute as written, or relative to the link's directory. */
143
+ __substrateLinkTarget(linkPath: string, target: string): string;
144
+ symlinkSync(target: string, path: string): void;
145
+ readlinkSync(path: string): string;
146
+ /**
147
+ * Get or create directory at path (for mkdir -p behavior)
148
+ */
149
+ private ensureDirectory;
150
+ /**
151
+ * Check if path exists
152
+ */
153
+ existsSync(path: string): boolean;
154
+ /**
155
+ * Get stats for path
156
+ */
157
+ statSync(path: string): Stats;
158
+ /**
159
+ * lstatSync - same as statSync for our virtual FS (no symlinks)
160
+ */
161
+ lstatSync(path: string): Stats;
162
+ /**
163
+ * Read file contents as Uint8Array
164
+ */
165
+ readFileSync(path: string): Uint8Array;
166
+ readFileSync(path: string, encoding: 'utf8' | 'utf-8'): string;
167
+ /**
168
+ * Write data to file, creating parent directories as needed
169
+ */
170
+ writeFileSync(path: string, data: string | Uint8Array): void;
171
+ /**
172
+ * Create directory, optionally with recursive parent creation
173
+ */
174
+ mkdirSync(path: string, options?: {
175
+ recursive?: boolean;
176
+ }): void;
177
+ /**
178
+ * Read directory contents
179
+ */
180
+ readdirSync(path: string): string[];
181
+ /**
182
+ * Remove file
183
+ */
184
+ unlinkSync(path: string): void;
185
+ /**
186
+ * Remove directory (must be empty)
187
+ */
188
+ rmdirSync(path: string): void;
189
+ /**
190
+ * Rename/move file or directory
191
+ */
192
+ renameSync(oldPath: string, newPath: string): void;
193
+ /**
194
+ * Read file with optional options parameter
195
+ */
196
+ readFile(path: string, optionsOrCallback?: string | {
197
+ encoding?: string;
198
+ } | ((err: Error | null, data?: Uint8Array | string) => void), callback?: (err: Error | null, data?: Uint8Array | string) => void): void | Promise<Uint8Array | string>;
199
+ /**
200
+ * Async stat
201
+ */
202
+ stat(path: string, callback: (err: Error | null, stats?: Stats) => void): void;
203
+ /**
204
+ * Async lstat
205
+ */
206
+ lstat(path: string, callback: (err: Error | null, stats?: Stats) => void): void;
207
+ /**
208
+ * Async readdir
209
+ */
210
+ readdir(path: string, optionsOrCallback?: {
211
+ withFileTypes?: boolean;
212
+ } | ((err: Error | null, files?: string[]) => void), callback?: (err: Error | null, files?: string[]) => void): void;
213
+ /**
214
+ * Async realpath
215
+ */
216
+ realpath(path: string, callback: (err: Error | null, resolvedPath?: string) => void): void;
217
+ /**
218
+ * Sync realpath - in our VFS, just normalize the path
219
+ */
220
+ realpathSync(path: string): string;
221
+ /**
222
+ * Watch for file changes
223
+ */
224
+ watch(filename: string, optionsOrListener?: {
225
+ persistent?: boolean;
226
+ recursive?: boolean;
227
+ encoding?: string;
228
+ } | WatchListener, listener?: WatchListener): FSWatcher;
229
+ /**
230
+ * Notify watchers of file changes
231
+ */
232
+ private notifyWatchers;
233
+ /**
234
+ * Access check - in our VFS, always succeeds if file exists
235
+ */
236
+ accessSync(path: string, mode?: number): void;
237
+ /**
238
+ * Async access
239
+ */
240
+ access(path: string, modeOrCallback?: number | ((err: Error | null) => void), callback?: (err: Error | null) => void): void;
241
+ /**
242
+ * Copy file
243
+ */
244
+ copyFileSync(src: string, dest: string): void;
245
+ /**
246
+ * Create read stream - simplified implementation
247
+ */
248
+ createReadStream(path: string, options?: ReadStreamOptions | string): FsReadStream;
249
+ /**
250
+ * Create write stream - simplified implementation
251
+ */
252
+ createWriteStream(path: string): {
253
+ write: (data: string | Uint8Array) => boolean;
254
+ end: (data?: string | Uint8Array) => void;
255
+ on: (event: string, cb: (...args: unknown[]) => void) => void;
256
+ };
257
+ }
258
+ export {};
259
+ //# sourceMappingURL=virtual-fs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"virtual-fs.d.ts","sourceRoot":"","sources":["../src/virtual-fs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
+ const fs = require("fs");
4
+ const path = require("path");
5
+ const url = require("url");
6
+ var _documentCurrentScript = typeof document !== "undefined" ? document.currentScript : null;
7
+ function _interopNamespaceDefault(e) {
8
+ const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
9
+ if (e) {
10
+ for (const k in e) {
11
+ if (k !== "default") {
12
+ const d = Object.getOwnPropertyDescriptor(e, k);
13
+ Object.defineProperty(n, k, d.get ? d : {
14
+ enumerable: true,
15
+ get: () => e[k]
16
+ });
17
+ }
18
+ }
19
+ }
20
+ n.default = e;
21
+ return Object.freeze(n);
22
+ }
23
+ const fs__namespace = /* @__PURE__ */ _interopNamespaceDefault(fs);
24
+ const path__namespace = /* @__PURE__ */ _interopNamespaceDefault(path);
25
+ const __dirname$1 = path__namespace.dirname(url.fileURLToPath(typeof document === "undefined" ? require("url").pathToFileURL(__filename).href : _documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === "SCRIPT" && _documentCurrentScript.src || new URL("vite-plugin.cjs", document.baseURI).href));
26
+ function tabnodePlugin(options = {}) {
27
+ const swPath = options.swPath || "/__sw__.js";
28
+ return {
29
+ name: "tabnode",
30
+ configureServer(server) {
31
+ server.middlewares.use(swPath, (_req, res) => {
32
+ let swFilePath = path__namespace.join(__dirname$1, "__sw__.js");
33
+ if (!fs__namespace.existsSync(swFilePath)) {
34
+ swFilePath = path__namespace.join(__dirname$1, "../dist/__sw__.js");
35
+ }
36
+ if (!fs__namespace.existsSync(swFilePath)) {
37
+ res.statusCode = 404;
38
+ res.end("Service worker file not found. Make sure tabnode is built.");
39
+ return;
40
+ }
41
+ res.setHeader("Content-Type", "application/javascript");
42
+ res.setHeader("Cache-Control", "no-cache");
43
+ res.end(fs__namespace.readFileSync(swFilePath));
44
+ });
45
+ }
46
+ };
47
+ }
48
+ exports.default = tabnodePlugin;
49
+ exports.tabnodePlugin = tabnodePlugin;
50
+ //# sourceMappingURL=vite-plugin.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vite-plugin.cjs","sources":["../src/vite-plugin.ts"],"sourcesContent":["/**\n * Vite Plugin for tabnode\n *\n * Serves the service worker file from the package's dist directory,\n * enabling seamless integration when tabnode is installed as an npm package.\n */\n\nimport type { Plugin, ViteDevServer } from 'vite';\nimport * as fs from 'fs';\nimport * as path from 'path';\nimport { fileURLToPath } from 'url';\n\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore - import.meta.url is available in ESM\nconst __dirname = path.dirname(fileURLToPath(import.meta.url));\n\nexport interface TabnodePluginOptions {\n /**\n * The URL path where the service worker will be served\n * @default '/__sw__.js'\n */\n swPath?: string;\n}\n\n/**\n * Vite plugin that serves the tabnode service worker file.\n *\n * When tabnode is installed as an npm package, the service worker file\n * is located at node_modules/tabnode/dist/__sw__.js but the browser\n * tries to load it from the root URL (/__sw__.js). This plugin intercepts\n * requests to the service worker path and serves the file from the correct location.\n *\n * @example\n * ```typescript\n * // vite.config.ts\n * import { defineConfig } from 'vite';\n * import { tabnodePlugin } from 'tabnode/vite';\n *\n * export default defineConfig({\n * plugins: [tabnodePlugin()]\n * });\n * ```\n */\nexport function tabnodePlugin(options: TabnodePluginOptions = {}): Plugin {\n const swPath = options.swPath || '/__sw__.js';\n\n return {\n name: 'tabnode',\n\n configureServer(server: ViteDevServer) {\n server.middlewares.use(swPath, (_req, res) => {\n // The service worker file is in the dist directory relative to this file\n // In src: ../dist/__sw__.js\n // In dist: ./__sw__.js\n let swFilePath = path.join(__dirname, '__sw__.js');\n\n // If running from src directory during development, look in dist\n if (!fs.existsSync(swFilePath)) {\n swFilePath = path.join(__dirname, '../dist/__sw__.js');\n }\n\n if (!fs.existsSync(swFilePath)) {\n res.statusCode = 404;\n res.end('Service worker file not found. Make sure tabnode is built.');\n return;\n }\n\n res.setHeader('Content-Type', 'application/javascript');\n res.setHeader('Cache-Control', 'no-cache');\n res.end(fs.readFileSync(swFilePath));\n });\n },\n };\n}\n\nexport default tabnodePlugin;\n"],"names":["__dirname","path","fileURLToPath","fs"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAcA,MAAMA,cAAYC,gBAAK,QAAQC,IAAAA,cAAc,OAAA,aAAA,cAAA,QAAA,KAAA,EAAA,cAAA,UAAA,EAAA,OAAA,0BAAA,uBAAA,QAAA,YAAA,MAAA,YAAA,uBAAA,OAAA,IAAA,IAAA,mBAAA,SAAA,OAAA,EAAA,IAAe,CAAC;AA6BtD,SAAS,cAAc,UAAgC,IAAY;AACxE,QAAM,SAAS,QAAQ,UAAU;AAEjC,SAAO;AAAA,IACL,MAAM;AAAA,IAEN,gBAAgB,QAAuB;AACrC,aAAO,YAAY,IAAI,QAAQ,CAAC,MAAM,QAAQ;AAI5C,YAAI,aAAaD,gBAAK,KAAKD,aAAW,WAAW;AAGjD,YAAI,CAACG,cAAG,WAAW,UAAU,GAAG;AAC9B,uBAAaF,gBAAK,KAAKD,aAAW,mBAAmB;AAAA,QACvD;AAEA,YAAI,CAACG,cAAG,WAAW,UAAU,GAAG;AAC9B,cAAI,aAAa;AACjB,cAAI,IAAI,4DAA4D;AACpE;AAAA,QACF;AAEA,YAAI,UAAU,gBAAgB,wBAAwB;AACtD,YAAI,UAAU,iBAAiB,UAAU;AACzC,YAAI,IAAIA,cAAG,aAAa,UAAU,CAAC;AAAA,MACrC,CAAC;AAAA,IACH;AAAA,EAAA;AAEJ;;;"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Vite Plugin for tabnode
3
+ *
4
+ * Serves the service worker file from the package's dist directory,
5
+ * enabling seamless integration when tabnode is installed as an npm package.
6
+ */
7
+ import type { Plugin } from 'vite';
8
+ export interface TabnodePluginOptions {
9
+ /**
10
+ * The URL path where the service worker will be served
11
+ * @default '/__sw__.js'
12
+ */
13
+ swPath?: string;
14
+ }
15
+ /**
16
+ * Vite plugin that serves the tabnode service worker file.
17
+ *
18
+ * When tabnode is installed as an npm package, the service worker file
19
+ * is located at node_modules/tabnode/dist/__sw__.js but the browser
20
+ * tries to load it from the root URL (/__sw__.js). This plugin intercepts
21
+ * requests to the service worker path and serves the file from the correct location.
22
+ *
23
+ * @example
24
+ * ```typescript
25
+ * // vite.config.ts
26
+ * import { defineConfig } from 'vite';
27
+ * import { tabnodePlugin } from 'tabnode/vite';
28
+ *
29
+ * export default defineConfig({
30
+ * plugins: [tabnodePlugin()]
31
+ * });
32
+ * ```
33
+ */
34
+ export declare function tabnodePlugin(options?: TabnodePluginOptions): Plugin;
35
+ export default tabnodePlugin;
36
+ //# sourceMappingURL=vite-plugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vite-plugin.d.ts","sourceRoot":"","sources":["../src/vite-plugin.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAiB,MAAM,MAAM,CAAC;AASlD,MAAM,WAAW,oBAAoB;IACnC;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,aAAa,CAAC,OAAO,GAAE,oBAAyB,GAAG,MAAM,CA8BxE;AAED,eAAe,aAAa,CAAC"}
@@ -0,0 +1,31 @@
1
+ import * as fs from "fs";
2
+ import * as path from "path";
3
+ import { fileURLToPath } from "url";
4
+ const __dirname$1 = path.dirname(fileURLToPath(import.meta.url));
5
+ function tabnodePlugin(options = {}) {
6
+ const swPath = options.swPath || "/__sw__.js";
7
+ return {
8
+ name: "tabnode",
9
+ configureServer(server) {
10
+ server.middlewares.use(swPath, (_req, res) => {
11
+ let swFilePath = path.join(__dirname$1, "__sw__.js");
12
+ if (!fs.existsSync(swFilePath)) {
13
+ swFilePath = path.join(__dirname$1, "../dist/__sw__.js");
14
+ }
15
+ if (!fs.existsSync(swFilePath)) {
16
+ res.statusCode = 404;
17
+ res.end("Service worker file not found. Make sure tabnode is built.");
18
+ return;
19
+ }
20
+ res.setHeader("Content-Type", "application/javascript");
21
+ res.setHeader("Cache-Control", "no-cache");
22
+ res.end(fs.readFileSync(swFilePath));
23
+ });
24
+ }
25
+ };
26
+ }
27
+ export {
28
+ tabnodePlugin as default,
29
+ tabnodePlugin
30
+ };
31
+ //# sourceMappingURL=vite-plugin.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vite-plugin.mjs","sources":["../src/vite-plugin.ts"],"sourcesContent":["/**\n * Vite Plugin for tabnode\n *\n * Serves the service worker file from the package's dist directory,\n * enabling seamless integration when tabnode is installed as an npm package.\n */\n\nimport type { Plugin, ViteDevServer } from 'vite';\nimport * as fs from 'fs';\nimport * as path from 'path';\nimport { fileURLToPath } from 'url';\n\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore - import.meta.url is available in ESM\nconst __dirname = path.dirname(fileURLToPath(import.meta.url));\n\nexport interface TabnodePluginOptions {\n /**\n * The URL path where the service worker will be served\n * @default '/__sw__.js'\n */\n swPath?: string;\n}\n\n/**\n * Vite plugin that serves the tabnode service worker file.\n *\n * When tabnode is installed as an npm package, the service worker file\n * is located at node_modules/tabnode/dist/__sw__.js but the browser\n * tries to load it from the root URL (/__sw__.js). This plugin intercepts\n * requests to the service worker path and serves the file from the correct location.\n *\n * @example\n * ```typescript\n * // vite.config.ts\n * import { defineConfig } from 'vite';\n * import { tabnodePlugin } from 'tabnode/vite';\n *\n * export default defineConfig({\n * plugins: [tabnodePlugin()]\n * });\n * ```\n */\nexport function tabnodePlugin(options: TabnodePluginOptions = {}): Plugin {\n const swPath = options.swPath || '/__sw__.js';\n\n return {\n name: 'tabnode',\n\n configureServer(server: ViteDevServer) {\n server.middlewares.use(swPath, (_req, res) => {\n // The service worker file is in the dist directory relative to this file\n // In src: ../dist/__sw__.js\n // In dist: ./__sw__.js\n let swFilePath = path.join(__dirname, '__sw__.js');\n\n // If running from src directory during development, look in dist\n if (!fs.existsSync(swFilePath)) {\n swFilePath = path.join(__dirname, '../dist/__sw__.js');\n }\n\n if (!fs.existsSync(swFilePath)) {\n res.statusCode = 404;\n res.end('Service worker file not found. Make sure tabnode is built.');\n return;\n }\n\n res.setHeader('Content-Type', 'application/javascript');\n res.setHeader('Cache-Control', 'no-cache');\n res.end(fs.readFileSync(swFilePath));\n });\n },\n };\n}\n\nexport default tabnodePlugin;\n"],"names":["__dirname"],"mappings":";;;AAcA,MAAMA,cAAY,KAAK,QAAQ,cAAc,YAAY,GAAG,CAAC;AA6BtD,SAAS,cAAc,UAAgC,IAAY;AACxE,QAAM,SAAS,QAAQ,UAAU;AAEjC,SAAO;AAAA,IACL,MAAM;AAAA,IAEN,gBAAgB,QAAuB;AACrC,aAAO,YAAY,IAAI,QAAQ,CAAC,MAAM,QAAQ;AAI5C,YAAI,aAAa,KAAK,KAAKA,aAAW,WAAW;AAGjD,YAAI,CAAC,GAAG,WAAW,UAAU,GAAG;AAC9B,uBAAa,KAAK,KAAKA,aAAW,mBAAmB;AAAA,QACvD;AAEA,YAAI,CAAC,GAAG,WAAW,UAAU,GAAG;AAC9B,cAAI,aAAa;AACjB,cAAI,IAAI,4DAA4D;AACpE;AAAA,QACF;AAEA,YAAI,UAAU,gBAAgB,wBAAwB;AACtD,YAAI,UAAU,iBAAiB,UAAU;AACzC,YAAI,IAAI,GAAG,aAAa,UAAU,CAAC;AAAA,MACrC,CAAC;AAAA,IACH;AAAA,EAAA;AAEJ;"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Runtime Worker - Runs the Just Node runtime in a Web Worker
3
+ *
4
+ * This worker receives code execution requests from the main thread
5
+ * and runs them in isolation, preventing UI blocking.
6
+ */
7
+ export {};
8
+ //# sourceMappingURL=runtime-worker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-worker.d.ts","sourceRoot":"","sources":["../../src/worker/runtime-worker.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}