@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,252 @@
1
+ /**
2
+ * The four small bindings Node's `internal/errors.js`, `internal/validators.js`
3
+ * and `internal/net.js` reach for on their way to `net`.
4
+ *
5
+ * Each is the whole of what those files read from it and nothing more.
6
+ */
7
+ import { constantsBinding as buildConstantsBinding } from '../../shims/constants';
8
+ import { UV_ENOSYS } from './uv';
9
+ import * as osShim from '../../shims/os';
10
+ import { nodeLibInternalRequire } from '../load';
11
+
12
+ /**
13
+ * `internalBinding('constants')`: the engine's own constants module, which
14
+ * already answers Node's `os.signals`, `os.errno` and the rest.
15
+ * `internal/validators.js` reads `constants.os.signals` to validate a signal
16
+ * name.
17
+ *
18
+ * Built on the first property read, not when this file is evaluated. The
19
+ * function that builds the table reads `crypto.constants` through a getter;
20
+ * calling it at module scope is a use of that binding while `crypto.ts` is
21
+ * still in its body (the constants file and the crypto shim import each
22
+ * other through this table), which is `Cannot access 'constants$N' before
23
+ * initialization` in a consumer's Node.
24
+ */
25
+ // eslint-disable-next-line no-var, vars-on-top
26
+ var __constants: Record<string, unknown> | undefined;
27
+ // eslint-disable-next-line no-var, vars-on-top
28
+ var __zlibModesApplied = false;
29
+
30
+ /**
31
+ * Node's `zlib` constant group carries the FLUSH and error values a program
32
+ * reads AND the mode enum its own `zlib.js` switches on -- `DEFLATE` through
33
+ * `ZSTD_DECOMPRESS`, which is how `new Gzip()` tells the binding what it is.
34
+ * The engine's table had the first half only, so `zlib.js` asserted on its
35
+ * own mode before it made a handle. The modes are added here, beside the
36
+ * group they belong to, in the order Node's own enum has them.
37
+ */
38
+ const __zlibModes = {
39
+ DEFLATE: 1, INFLATE: 2, GZIP: 3, GUNZIP: 4, DEFLATERAW: 5, INFLATERAW: 6, UNZIP: 7,
40
+ BROTLI_DECODE: 8, BROTLI_ENCODE: 9, ZSTD_COMPRESS: 10, ZSTD_DECOMPRESS: 11,
41
+ };
42
+
43
+ function constantsOf(): Record<string, unknown> {
44
+ return __constants ??= buildConstantsBinding() as unknown as Record<string, unknown>;
45
+ }
46
+
47
+ function applyZlibModes(): void {
48
+ if (__zlibModesApplied) return;
49
+ __zlibModesApplied = true;
50
+ const table = constantsOf();
51
+ const zlib = table.zlib as Record<string, unknown> | undefined;
52
+ if (zlib) Object.assign(zlib, __zlibModes);
53
+ else table.zlib = { ...__zlibModes };
54
+ }
55
+
56
+ export const constantsBinding = new Proxy({} as Record<string, unknown>, {
57
+ get: (_t, key, receiver) => {
58
+ if (key === 'zlib') applyZlibModes();
59
+ return Reflect.get(constantsOf(), key, receiver);
60
+ },
61
+ set: (_t, key, value, receiver) => Reflect.set(constantsOf(), key, value, receiver),
62
+ has: (_t, key) => Reflect.has(constantsOf(), key),
63
+ ownKeys: () => Reflect.ownKeys(constantsOf()),
64
+ getOwnPropertyDescriptor: (_t, key) => {
65
+ if (key === 'zlib') applyZlibModes();
66
+ const descriptor = Reflect.getOwnPropertyDescriptor(constantsOf(), key);
67
+ return descriptor === undefined ? undefined : { ...descriptor, configurable: true };
68
+ },
69
+ defineProperty: (_t, key, descriptor) => Reflect.defineProperty(constantsOf(), key, descriptor),
70
+ });
71
+
72
+ /**
73
+ * `internalBinding('os')`: `internal/errors.js` names the host in the banner
74
+ * it prints for an uncaught exception under a report flag the engine never
75
+ * sets, which is the only call.
76
+ */
77
+ // eslint-disable-next-line no-var, vars-on-top
78
+ var __priorities = new Map<number, number>();
79
+
80
+ export const osBinding = {
81
+ /** Node's `os.type()`, `release()` and `version()`, in that order. */
82
+ getOSInformation: (): string[] => [osShim.type(), osShim.release(), osShim.version()],
83
+ getHostname: (): string => osShim.hostname(),
84
+ getHomeDirectory: (): string => osShim.homedir(),
85
+ getUptime: (): number => osShim.uptime(),
86
+ getTotalMem: (): number => osShim.totalmem(),
87
+ getFreeMem: (): number => osShim.freemem(),
88
+ getLoadAvg: (array: Float64Array): void => {
89
+ const [one, five, fifteen] = osShim.loadavg();
90
+ array[0] = one; array[1] = five; array[2] = fifteen;
91
+ },
92
+ getAvailableParallelism: (): number => (osShim as { availableParallelism?: () => number }).availableParallelism?.() ?? osShim.cpus().length,
93
+ isBigEndian: osShim.endianness() === 'BE',
94
+ /**
95
+ * Node reads its CPU list as a flat array: a model and a speed, then the
96
+ * five time counters, for each core.
97
+ */
98
+ getCPUs: (): Array<string | number> => {
99
+ const flat: Array<string | number> = [];
100
+ for (const cpu of osShim.cpus()) {
101
+ flat.push(cpu.model, cpu.speed, cpu.times.user, cpu.times.nice, cpu.times.sys, cpu.times.idle, cpu.times.irq);
102
+ }
103
+ return flat;
104
+ },
105
+ /**
106
+ * The same shape for interfaces: name, address, netmask, family, mac,
107
+ * scope id, then the CIDR, per address.
108
+ */
109
+ getInterfaceAddresses: (): Array<string | number | boolean> => {
110
+ const flat: Array<string | number | boolean> = [];
111
+ for (const [name, addresses] of Object.entries(osShim.networkInterfaces())) {
112
+ for (const address of addresses ?? []) {
113
+ flat.push(name, address.address, address.netmask, address.family === 'IPv6' ? 6 : 4,
114
+ address.mac, address.internal, (address as { scopeid?: number }).scopeid ?? 0);
115
+ }
116
+ }
117
+ return flat;
118
+ },
119
+ getUserInfo: (): Record<string, unknown> => osShim.userInfo() as unknown as Record<string, unknown>,
120
+ /**
121
+ * A process's niceness. A tab has no scheduler to hand it to, but the pair
122
+ * still has to agree: a program that sets a priority and reads it back must
123
+ * see what it set, which is what `test-os.js` checks. The value is this
124
+ * engine's, per pid, and changes nothing about how anything runs.
125
+ */
126
+ getPriority: (pid: number): number => __priorities.get(pid || 0) ?? osShim.getPriority(pid),
127
+ setPriority: (pid: number, priority: number): number => {
128
+ __priorities.set(pid || 0, priority);
129
+ osShim.setPriority(pid, priority);
130
+ return 0;
131
+ },
132
+ };
133
+
134
+ /**
135
+ * `internalBinding('credentials')`: the one name `os.js` takes from it. A tab
136
+ * has no environment of its own to read `TMPDIR` from, so the answer is the
137
+ * directory the engine's `os` calls its temporary one.
138
+ */
139
+ export const credentialsBinding = {
140
+ /**
141
+ * Where a temporary file goes. Node reads `TMPDIR`, then `TMP`, then
142
+ * `TEMP` from the environment and falls back to the platform's directory,
143
+ * dropping a trailing slash; a program that sets `TMPDIR` expects to be
144
+ * obeyed, which is what `test-os.js` checks.
145
+ */
146
+ getTempDir: (): string => {
147
+ const env = (globalThis as { process?: { env?: Record<string, string | undefined> } }).process?.env ?? {};
148
+ const named = env.TMPDIR || env.TMP || env.TEMP;
149
+ const chosen = named && named.length > 0 ? named : osShim.tmpdir();
150
+ return chosen.length > 1 && chosen.endsWith('/') ? chosen.slice(0, -1) : chosen;
151
+ },
152
+ };
153
+
154
+ /**
155
+ * `internalBinding('encoding_binding')`: the punycode conversion `url.js`
156
+ * makes for a host name, out of the engine's own `punycode`.
157
+ */
158
+ export const encodingBinding = {
159
+ toASCII: (value: string): string => (nodeLibInternalRequire('punycode') as { toASCII(value: string): string }).toASCII(value),
160
+ toUnicode: (value: string): string => (nodeLibInternalRequire('punycode') as { toUnicode(value: string): string }).toUnicode(value),
161
+ };
162
+
163
+ /**
164
+ * `internalBinding('config')`: the build switches Node's own files read. The
165
+ * engine has no ICU, so `buffer.transcode` is not defined -- which is what
166
+ * Node without ICU does, and is the one thing `buffer.js` loses here.
167
+ */
168
+ export const configBinding = {
169
+ hasIntl: false,
170
+ hasSmallICU: false,
171
+ hasNodeOptions: true,
172
+ hasInspector: false,
173
+ noBrowserGlobals: false,
174
+ bits: 64,
175
+ hasOpenSSL: false,
176
+ fipsMode: false,
177
+ hasDtrace: false,
178
+ };
179
+
180
+ /**
181
+ * `internalBinding('fs')`: `internal/net.js`'s `makeSyncWrite` writes a
182
+ * descriptor synchronously, which Node does only for Windows' stdout and
183
+ * stderr. The engine's platform is `linux` and nothing reaches it.
184
+ */
185
+ export const fsBinding = {
186
+ writeBuffer: (_fd: number, _buffer: Uint8Array, _offset: number, _length: number,
187
+ _position: unknown, _req: unknown, ctx: { errno?: number; syscall?: string }): number => {
188
+ ctx.errno = UV_ENOSYS;
189
+ ctx.syscall = 'write';
190
+ return 0;
191
+ },
192
+ };
193
+
194
+
195
+ /**
196
+ * `internalBinding('types')`: V8's own type tests. The engine answers them
197
+ * out of the realm's built-ins, and `internal/util/types` is the same object
198
+ * -- Node's own `util.types` is that binding with a doc comment on it.
199
+ */
200
+ export { internalUtilTypes as typesBinding } from '../internals/util';
201
+
202
+ /**
203
+ * `internalBinding('string_decoder')`: `internal/util.js` reads the table of
204
+ * encoding names out of it to normalize one.
205
+ */
206
+ export const stringDecoderBinding = {
207
+ encodings: ['ascii', 'utf8', 'base64', 'ucs2', 'binary', 'hex', 'utf16le', 'base64url'],
208
+ };
209
+
210
+ /**
211
+ * `internalBinding('trace_events')`: the tracing category buffer
212
+ * `internal/util/debuglog.js` reads to decide whether a section is traced.
213
+ * Nothing in a tab is traced, so every category reads 0 -- which is what
214
+ * `debuglog` checks before it formats anything.
215
+ */
216
+ export const traceEventsBinding = {
217
+ getCategoryEnabledBuffer: (): Uint8Array => new Uint8Array(1),
218
+ trace: (): void => {},
219
+ };
220
+
221
+ /**
222
+ * `internalBinding('messaging')`: `internal/util.js` reaches for
223
+ * `DOMException` through it, which the realm already has.
224
+ */
225
+ export const messagingBinding = {
226
+ get DOMException() { return (globalThis as { DOMException?: unknown }).DOMException; },
227
+ };
228
+
229
+
230
+ /**
231
+ * `internalBinding('errors')`: the one call `diagnostics_channel.js` makes
232
+ * into it. A subscriber that throws must not be swallowed and must not take
233
+ * the publisher with it, so Node hands the error to the process as an
234
+ * uncaught exception. The engine has that door already -- it is how a run
235
+ * reports a throw nobody caught -- and this reaches it through the realm's
236
+ * own process, which is the run's.
237
+ */
238
+ export const errorsBinding = {
239
+ triggerUncaughtException: (error: unknown, fromPromise = false): void => {
240
+ const realm = (globalThis as {
241
+ process?: { emit?: (event: string, ...args: unknown[]) => boolean; listenerCount?: (event: string) => number };
242
+ }).process;
243
+ const event = fromPromise ? 'unhandledRejection' : 'uncaughtException';
244
+ if (realm && typeof realm.listenerCount === 'function' && realm.listenerCount(event) > 0) {
245
+ realm.emit?.(event, error, event);
246
+ return;
247
+ }
248
+ // Nobody is listening: the throw becomes this realm's, on the next turn,
249
+ // rather than the publisher's to catch.
250
+ setTimeout(() => { throw error; }, 0);
251
+ },
252
+ };
@@ -0,0 +1,166 @@
1
+ /**
2
+ * `internalBinding('pipe_wrap')`: the same loopback, named by a path.
3
+ *
4
+ * VS Code's extension host is started by its parent and connects back to it
5
+ * over a unix-domain socket path: the parent runs `server.listen(path)` and
6
+ * the child `net.connect(path)`. A path is a name in one registry here, as a
7
+ * port is a number in the other; nothing on the path is `ENOENT`, which is
8
+ * what Node answers, and a path a live server already holds is `EADDRINUSE`.
9
+ *
10
+ * The IPC flavour is the same stream with one extra: a write may carry a
11
+ * handle, which is set on the peer before the peer's read, and that is how
12
+ * `setupChannel` in `internal/child_process.js` receives a sent socket.
13
+ */
14
+ import { LibuvStreamWrap, type WriteWrap } from './stream_wrap';
15
+ import { UV_EADDRINUSE, UV_ENOENT, UV_EBADF } from './uv';
16
+ import { handleForFd, registerFd, releaseFd } from './fds';
17
+ import { __adoptHandle, ownerOf } from './handles';
18
+
19
+ /** libuv's `uv_pipe_t` flavours, and the two chmod bits `listen` reads. */
20
+ export const constants = {
21
+ SOCKET: 0,
22
+ SERVER: 1,
23
+ IPC: 1 << 1,
24
+ UV_READABLE: 1,
25
+ UV_WRITABLE: 2,
26
+ };
27
+
28
+ /** Node's `PipeConnectWrap`: the request a pipe connect is answered through. */
29
+ export class PipeConnectWrap {
30
+ oncomplete: ((status: number, handle: unknown, req: unknown, readable: boolean, writable: boolean) => void) | null = null;
31
+ address = '';
32
+ }
33
+
34
+ /** Every path this engine holds, bound or listening. */
35
+ const boundPaths = new Map<string, Pipe>();
36
+
37
+ /** The listening pipe a connect to this path reaches, if any. */
38
+ export function listenerOnPath(path: string): Pipe | undefined {
39
+ const bound = boundPaths.get(path);
40
+ return bound && bound.listening ? bound : undefined;
41
+ }
42
+
43
+ export class Pipe extends LibuvStreamWrap {
44
+ readonly type: number;
45
+ listening = false;
46
+ onconnection: ((status: number, clientHandle: Pipe) => void) | null = null;
47
+
48
+ private path: string | null = null;
49
+ private ownFd: number | null = null;
50
+
51
+ constructor(type: number = constants.SOCKET) {
52
+ super();
53
+ this.type = type;
54
+ }
55
+
56
+ bind(path: string): number {
57
+ const held = boundPaths.get(path);
58
+ if (held && held !== this) return UV_EADDRINUSE;
59
+ this.path = path;
60
+ boundPaths.set(path, this);
61
+ return 0;
62
+ }
63
+
64
+ listen(_backlog: number): number {
65
+ if (this.path === null) return UV_EBADF;
66
+ this.listening = true;
67
+ return 0;
68
+ }
69
+
70
+ connect(req: PipeConnectWrap, path: string): number {
71
+ // libuv answers a connect through the request, never from the call.
72
+ queueMicrotask(() => {
73
+ if (this.closed) return;
74
+ const server = listenerOnPath(path);
75
+ if (!server) {
76
+ req.oncomplete?.(UV_ENOENT, this, req, true, true);
77
+ return;
78
+ }
79
+ const accepted = new Pipe(server.type === constants.IPC ? constants.IPC : constants.SOCKET);
80
+ accepted.path = path;
81
+ // The serving run owns what it accepted, not the connecting one.
82
+ __adoptHandle(accepted, ownerOf(server));
83
+ LibuvStreamWrap.pair(this, accepted);
84
+ server.onconnection?.(0, accepted);
85
+ req.oncomplete?.(0, this, req, true, true);
86
+ });
87
+ return 0;
88
+ }
89
+
90
+ /**
91
+ * The descriptor of a handle the engine itself opened — a forked child's IPC
92
+ * channel among them. There is nothing else to open: the engine has no
93
+ * descriptors of its own beyond the ones it hands out. Opening one takes
94
+ * over that end of its pairing, with whatever arrived on it before anyone
95
+ * opened it, because a child's channel is written to before the child runs.
96
+ */
97
+ open(fd: number): number {
98
+ const held = handleForFd(fd) as LibuvStreamWrap | undefined;
99
+ if (!held) return UV_EBADF;
100
+ this.takeOverFrom(held);
101
+ this.ownFd = fd;
102
+ this.fd = fd;
103
+ return 0;
104
+ }
105
+
106
+ /** The descriptor this handle can be reached at, for a child's stdio table. */
107
+ toFd(): number {
108
+ if (this.ownFd === null) { this.ownFd = registerFd('PIPE', this); this.fd = this.ownFd; }
109
+ return this.ownFd;
110
+ }
111
+
112
+ /** libuv's `dup()`: the same pairing, under the same flavour. */
113
+ override duplicate(): Pipe {
114
+ const copy = new Pipe(this.type);
115
+ copy.takeOverFrom(this);
116
+ return copy;
117
+ }
118
+
119
+ /** There is no filesystem entry behind an engine pipe to change the mode of. */
120
+ fchmod(_mode: number): number {
121
+ return 0;
122
+ }
123
+
124
+ /** Windows asks for more pipe instances; the engine has one realm and one. */
125
+ setPendingInstances(_count: number): number {
126
+ return 0;
127
+ }
128
+
129
+ /**
130
+ * An IPC write may carry a handle. The peer is given it before the bytes, so
131
+ * `setupChannel`'s reader sees `channel.pendingHandle` when the message it
132
+ * belongs to arrives, which is the order Node delivers them in.
133
+ *
134
+ * The handle becomes the receiving run's. Node's `send(message, socket)`
135
+ * duplicates the sender's descriptor into the other process, and from then
136
+ * on the socket is an active handle of that process's loop; here parent and
137
+ * child are one realm and there is nothing to duplicate, so the move is the
138
+ * run ownership the engine counts. Without it, openvscode-server's extension
139
+ * host -- a program whose only handle is the socket its parent sent it --
140
+ * read as idle and was settled with exit 0.
141
+ */
142
+ override writeUtf8String(req: WriteWrap, text: string, handle?: unknown): number {
143
+ if (handle === undefined || handle === null) return super.writeUtf8String(req, text);
144
+ // A descriptor crosses as a duplicate, as `SCM_RIGHTS` hands one over: the
145
+ // receiver gets its own handle on the same connection, so the sender's
146
+ // close on `NODE_HANDLE_ACK` -- which Node's `child_process.js` does the
147
+ // moment the receiver confirms -- ends nothing. A handle with no pairing,
148
+ // a listening server's, has nothing to duplicate and crosses as it is.
149
+ const sent = handle as LibuvStreamWrap;
150
+ const given = sent.peer !== null ? sent.duplicate() : sent;
151
+ // The receiving run owns it from here: parent and child are one realm and
152
+ // there is no descriptor table to move it in, so the move is the count the
153
+ // engine keeps of what holds a run open.
154
+ __adoptHandle(given, ownerOf(this.peer ?? this));
155
+ return super.writeUtf8String(req, text, given);
156
+ }
157
+
158
+ protected override onCloseHandle(): void {
159
+ this.listening = false;
160
+ this.onconnection = null;
161
+ if (this.path !== null && boundPaths.get(this.path) === this) boundPaths.delete(this.path);
162
+ if (this.ownFd !== null) { releaseFd(this.ownFd); this.ownFd = null; }
163
+ }
164
+ }
165
+
166
+ export default { Pipe, PipeConnectWrap, constants };