visaljs 0.0.7 → 0.0.8

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 (428) hide show
  1. package/README.md +63 -2
  2. package/THIRD_PARTY_LICENSES +1216 -0
  3. package/cli.js +4413 -324
  4. package/node/include/js_node.h +57 -1
  5. package/node/include/js_uv.h +8 -1
  6. package/node/prelude/_stream_duplex.js +4 -0
  7. package/node/prelude/_stream_passthrough.js +4 -0
  8. package/node/prelude/_stream_readable.js +4 -0
  9. package/node/prelude/_stream_transform.js +4 -0
  10. package/node/prelude/_stream_writable.js +4 -0
  11. package/node/prelude/assert.js +1334 -0
  12. package/node/prelude/assert_strict.js +12 -0
  13. package/node/prelude/async_hooks.js +1 -1
  14. package/node/prelude/buffer.js +43 -3
  15. package/node/prelude/child_process.js +1098 -0
  16. package/node/prelude/cluster.js +52 -0
  17. package/node/prelude/console.js +328 -0
  18. package/node/prelude/constants.js +10 -0
  19. package/node/prelude/crypto.js +1 -1
  20. package/node/prelude/diagnostics_channel.js +1 -1
  21. package/node/prelude/dns.js +1 -1
  22. package/node/prelude/domain.js +115 -0
  23. package/node/prelude/events.js +144 -16
  24. package/node/prelude/fs.js +1138 -151
  25. package/node/prelude/fs_promises.js +117 -11
  26. package/node/prelude/http.js +104 -27
  27. package/node/prelude/http2.js +1 -1
  28. package/node/prelude/https.js +148 -0
  29. package/node/prelude/inspector.js +27 -0
  30. package/node/prelude/inspector_promises.js +4 -0
  31. package/node/prelude/internal/async_context.js +1 -1
  32. package/node/prelude/internal/buffer_transcode.js +44 -0
  33. package/node/prelude/internal/comparisons.js +916 -0
  34. package/node/prelude/internal/compression_streams.js +153 -0
  35. package/node/prelude/internal/crypto/asym.js +27 -14
  36. package/node/prelude/internal/crypto/cipher.js +16 -5
  37. package/node/prelude/internal/crypto/diffiehellman.js +3 -2
  38. package/node/prelude/internal/crypto/hash.js +2 -1
  39. package/node/prelude/internal/crypto/kdf.js +14 -9
  40. package/node/prelude/internal/crypto/keys.js +63 -50
  41. package/node/prelude/internal/crypto/random.js +2 -1
  42. package/node/prelude/internal/crypto/util.js +4 -4
  43. package/node/prelude/internal/dotenv.js +98 -0
  44. package/node/prelude/internal/errors.js +21 -5
  45. package/node/prelude/internal/events_extras.js +116 -0
  46. package/node/prelude/internal/events_on.js +100 -0
  47. package/node/prelude/internal/features.js +55 -0
  48. package/node/prelude/internal/fetch.js +364 -0
  49. package/node/prelude/internal/form_data.js +376 -0
  50. package/node/prelude/internal/fs_bigint_stats.js +41 -0
  51. package/node/prelude/internal/fs_blob.js +19 -0
  52. package/node/prelude/internal/fs_cp.js +709 -0
  53. package/node/prelude/internal/fs_dir.js +166 -0
  54. package/node/prelude/internal/fs_filehandle.js +287 -0
  55. package/node/prelude/internal/fs_glob.js +296 -0
  56. package/node/prelude/internal/fs_statfs.js +42 -0
  57. package/node/prelude/internal/fs_stats.js +89 -0
  58. package/node/prelude/internal/fs_streams.js +541 -0
  59. package/node/prelude/internal/fs_utils.js +286 -0
  60. package/node/prelude/internal/fs_watch.js +580 -0
  61. package/node/prelude/internal/http_agent.js +26 -0
  62. package/node/prelude/internal/mime.js +249 -0
  63. package/node/prelude/internal/net.js +1 -0
  64. package/node/prelude/internal/parse_args.js +288 -0
  65. package/node/prelude/internal/perf_histogram.js +435 -0
  66. package/node/prelude/internal/perf_observe.js +119 -0
  67. package/node/prelude/internal/performance_global.js +19 -0
  68. package/node/prelude/internal/process_events.js +49 -1
  69. package/node/prelude/internal/process_memory.js +14 -0
  70. package/node/prelude/internal/process_more.js +414 -0
  71. package/node/prelude/internal/process_signals.js +2 -1
  72. package/node/prelude/internal/process_stdin.js +52 -0
  73. package/node/prelude/internal/process_stdio.js +36 -0
  74. package/node/prelude/internal/querystring.js +0 -0
  75. package/node/prelude/internal/readline.js +338 -0
  76. package/node/prelude/internal/socketaddress.js +8 -4
  77. package/node/prelude/internal/source_map.js +122 -0
  78. package/node/prelude/internal/stream_compose.js +74 -0
  79. package/node/prelude/internal/stream_from.js +6 -0
  80. package/node/prelude/internal/stream_operators.js +23 -0
  81. package/node/prelude/internal/stream_pipeline.js +7 -0
  82. package/node/prelude/internal/stream_transform.js +10 -0
  83. package/node/prelude/internal/stream_web_adapters.js +143 -0
  84. package/node/prelude/internal/streams/add_abort_signal.js +58 -0
  85. package/node/prelude/internal/streams/compose.js +244 -0
  86. package/node/prelude/internal/streams/destroy.js +358 -0
  87. package/node/prelude/internal/streams/duplex.js +199 -0
  88. package/node/prelude/internal/streams/duplexify.js +378 -0
  89. package/node/prelude/internal/streams/end_of_stream.js +387 -0
  90. package/node/prelude/internal/streams/errors.js +216 -0
  91. package/node/prelude/internal/streams/from.js +211 -0
  92. package/node/prelude/internal/streams/legacy.js +120 -0
  93. package/node/prelude/internal/streams/operators.js +375 -0
  94. package/node/prelude/internal/streams/passthrough.js +45 -0
  95. package/node/prelude/internal/streams/pipeline.js +468 -0
  96. package/node/prelude/internal/streams/readable.js +1835 -0
  97. package/node/prelude/internal/streams/state.js +48 -0
  98. package/node/prelude/internal/streams/transform.js +203 -0
  99. package/node/prelude/internal/streams/utils.js +355 -0
  100. package/node/prelude/internal/streams/validators.js +108 -0
  101. package/node/prelude/internal/streams/writable.js +1160 -0
  102. package/node/prelude/internal/structured_clone.js +238 -0
  103. package/node/prelude/internal/system_errors.js +37 -0
  104. package/node/prelude/internal/test_runner/mock.js +431 -0
  105. package/node/prelude/internal/test_runner/reporters.js +404 -0
  106. package/node/prelude/internal/test_runner/test.js +1571 -0
  107. package/node/prelude/internal/timers.js +38 -7
  108. package/node/prelude/internal/timers_global.js +1 -1
  109. package/node/prelude/internal/tls/common.js +8 -2
  110. package/node/prelude/internal/tls/wrap.js +3 -15
  111. package/node/prelude/internal/tls/x509.js +1 -1
  112. package/node/prelude/internal/tty_read_stream.js +39 -0
  113. package/node/prelude/internal/tty_streams.js +3 -0
  114. package/node/prelude/internal/util_debuglog.js +68 -0
  115. package/node/prelude/internal/util_diff.js +63 -0
  116. package/node/prelude/internal/util_more.js +111 -0
  117. package/node/prelude/internal/util_styles.js +76 -0
  118. package/node/prelude/internal/zlib_engines.js +1 -1
  119. package/node/prelude/module.js +194 -7
  120. package/node/prelude/net.js +2 -1
  121. package/node/prelude/os.js +88 -11
  122. package/node/prelude/path.js +11 -7
  123. package/node/prelude/path_posix.js +1 -1
  124. package/node/prelude/path_win32.js +1 -1
  125. package/node/prelude/perf_hooks.js +147 -0
  126. package/node/prelude/process.js +36 -1
  127. package/node/prelude/punycode.js +188 -0
  128. package/node/prelude/querystring.js +1 -1
  129. package/node/prelude/readline.js +8 -0
  130. package/node/prelude/readline_promises.js +88 -0
  131. package/node/prelude/repl.js +38 -0
  132. package/node/prelude/sea.js +23 -0
  133. package/node/prelude/stream.js +70 -1332
  134. package/node/prelude/stream_consumers.js +34 -0
  135. package/node/prelude/stream_promises.js +1 -1
  136. package/node/prelude/stream_web.js +15 -2
  137. package/node/prelude/string_decoder.js +1 -1
  138. package/node/prelude/sys.js +7 -0
  139. package/node/prelude/test.js +56 -0
  140. package/node/prelude/test_reporters.js +269 -0
  141. package/node/prelude/timers.js +7 -84
  142. package/node/prelude/timers_promises.js +1 -1
  143. package/node/prelude/tls.js +2 -1
  144. package/node/prelude/trace_events.js +52 -0
  145. package/node/prelude/tty.js +10 -4
  146. package/node/prelude/url.js +88 -27
  147. package/node/prelude/util.js +121 -5
  148. package/node/prelude/util_types.js +4 -3
  149. package/node/prelude/v8.js +814 -0
  150. package/node/prelude/vm.js +86 -0
  151. package/node/prelude/wasi.js +10 -0
  152. package/node/prelude/worker_threads.js +56 -0
  153. package/node/prelude/zlib.js +58 -25
  154. package/node/src/host_brotli.c +59 -11
  155. package/node/src/host_fs.c +342 -11
  156. package/node/src/host_fswatch.c +170 -0
  157. package/node/src/host_http.c +143 -20
  158. package/node/src/host_loop.c +25 -2
  159. package/node/src/host_net.c +55 -7
  160. package/node/src/host_os.c +55 -1
  161. package/node/src/host_proc.c +291 -0
  162. package/node/src/host_process.c +488 -0
  163. package/node/src/host_sys.c +64 -2
  164. package/node/src/host_zlib.c +27 -7
  165. package/node/src/host_zstd.c +41 -6
  166. package/node/third_party/hdrhistogram/LICENSE +42 -0
  167. package/node/third_party/hdrhistogram/README.md +5 -0
  168. package/node/third_party/libuv/LICENSE +0 -0
  169. package/node/third_party/libuv/LICENSE-extra +36 -0
  170. package/node/third_party/libuv/include/uv/aix.h +0 -0
  171. package/node/third_party/libuv/include/uv/bsd.h +0 -0
  172. package/node/third_party/libuv/include/uv/darwin.h +0 -0
  173. package/node/third_party/libuv/include/uv/errno.h +0 -0
  174. package/node/third_party/libuv/include/uv/linux.h +0 -0
  175. package/node/third_party/libuv/include/uv/os390.h +0 -0
  176. package/node/third_party/libuv/include/uv/posix.h +0 -0
  177. package/node/third_party/libuv/include/uv/sunos.h +0 -0
  178. package/node/third_party/libuv/include/uv/threadpool.h +0 -0
  179. package/node/third_party/libuv/include/uv/tree.h +0 -0
  180. package/node/third_party/libuv/include/uv/unix.h +0 -0
  181. package/node/third_party/libuv/include/uv/version.h +0 -0
  182. package/node/third_party/libuv/include/uv/win.h +0 -0
  183. package/node/third_party/libuv/include/uv.h +0 -0
  184. package/node/third_party/libuv/src/fs-poll.c +0 -0
  185. package/node/third_party/libuv/src/heap-inl.h +0 -0
  186. package/node/third_party/libuv/src/idna.c +0 -0
  187. package/node/third_party/libuv/src/idna.h +0 -0
  188. package/node/third_party/libuv/src/inet.c +0 -0
  189. package/node/third_party/libuv/src/queue.h +0 -0
  190. package/node/third_party/libuv/src/random.c +0 -0
  191. package/node/third_party/libuv/src/strscpy.c +0 -0
  192. package/node/third_party/libuv/src/strscpy.h +0 -0
  193. package/node/third_party/libuv/src/strtok.c +0 -0
  194. package/node/third_party/libuv/src/strtok.h +0 -0
  195. package/node/third_party/libuv/src/thread-common.c +0 -0
  196. package/node/third_party/libuv/src/threadpool.c +0 -0
  197. package/node/third_party/libuv/src/timer.c +0 -0
  198. package/node/third_party/libuv/src/unix/async.c +0 -0
  199. package/node/third_party/libuv/src/unix/bsd-ifaddrs.c +0 -0
  200. package/node/third_party/libuv/src/unix/core.c +0 -0
  201. package/node/third_party/libuv/src/unix/darwin-proctitle.c +0 -0
  202. package/node/third_party/libuv/src/unix/darwin-stub.h +0 -0
  203. package/node/third_party/libuv/src/unix/darwin-syscalls.h +0 -0
  204. package/node/third_party/libuv/src/unix/darwin.c +0 -0
  205. package/node/third_party/libuv/src/unix/dl.c +0 -0
  206. package/node/third_party/libuv/src/unix/fs.c +0 -0
  207. package/node/third_party/libuv/src/unix/fsevents.c +0 -0
  208. package/node/third_party/libuv/src/unix/getaddrinfo.c +0 -0
  209. package/node/third_party/libuv/src/unix/getnameinfo.c +0 -0
  210. package/node/third_party/libuv/src/unix/internal.h +0 -0
  211. package/node/third_party/libuv/src/unix/kqueue.c +0 -0
  212. package/node/third_party/libuv/src/unix/linux.c +0 -0
  213. package/node/third_party/libuv/src/unix/loop-watcher.c +0 -0
  214. package/node/third_party/libuv/src/unix/loop.c +0 -0
  215. package/node/third_party/libuv/src/unix/pipe.c +0 -0
  216. package/node/third_party/libuv/src/unix/poll.c +0 -0
  217. package/node/third_party/libuv/src/unix/process.c +0 -0
  218. package/node/third_party/libuv/src/unix/procfs-exepath.c +0 -0
  219. package/node/third_party/libuv/src/unix/proctitle.c +0 -0
  220. package/node/third_party/libuv/src/unix/random-devurandom.c +0 -0
  221. package/node/third_party/libuv/src/unix/random-getentropy.c +0 -0
  222. package/node/third_party/libuv/src/unix/random-getrandom.c +0 -0
  223. package/node/third_party/libuv/src/unix/random-sysctl-linux.c +0 -0
  224. package/node/third_party/libuv/src/unix/signal.c +0 -0
  225. package/node/third_party/libuv/src/unix/stream.c +0 -0
  226. package/node/third_party/libuv/src/unix/tcp.c +0 -0
  227. package/node/third_party/libuv/src/unix/thread.c +0 -0
  228. package/node/third_party/libuv/src/unix/tty.c +0 -0
  229. package/node/third_party/libuv/src/unix/udp.c +0 -0
  230. package/node/third_party/libuv/src/uv-common.c +0 -0
  231. package/node/third_party/libuv/src/uv-common.h +0 -0
  232. package/node/third_party/libuv/src/uv-data-getter-setters.c +0 -0
  233. package/node/third_party/libuv/src/version.c +0 -0
  234. package/node/third_party/llhttp/LICENSE +0 -0
  235. package/node/third_party/llhttp/api.c +0 -0
  236. package/node/third_party/llhttp/http.c +0 -0
  237. package/node/third_party/llhttp/llhttp.c +0 -0
  238. package/node/third_party/llhttp/llhttp.h +0 -0
  239. package/node/third_party/nodejs/LICENSE +47 -0
  240. package/node/third_party/nodejs/README.md +5 -0
  241. package/node/third_party/parseargs/LICENSE +21 -0
  242. package/node/third_party/parseargs/README.md +5 -0
  243. package/node/third_party/punycode/LICENSE +20 -0
  244. package/node/third_party/punycode/README.md +5 -0
  245. package/node/third_party/zlib/LICENSE.chromium +27 -0
  246. package/package.json +1 -1
  247. package/prebuilt/darwin-arm64/boringssl-4a47438eaf7e73ba.a +0 -0
  248. package/prebuilt/darwin-arm64/brotli-7995bbdacc52e51c.a +0 -0
  249. package/prebuilt/darwin-arm64/uv-72ab666eae197cd8.a +0 -0
  250. package/prebuilt/darwin-arm64/zlib-4ce2317a4c3f5fb5.a +0 -0
  251. package/prebuilt/darwin-arm64/zstd-015315ac7c784c73.a +0 -0
  252. package/prebuilt/darwin-x64/boringssl-4a47438eaf7e73ba.a +0 -0
  253. package/prebuilt/darwin-x64/brotli-7995bbdacc52e51c.a +0 -0
  254. package/prebuilt/darwin-x64/uv-72ab666eae197cd8.a +0 -0
  255. package/prebuilt/darwin-x64/zlib-4ce2317a4c3f5fb5.a +0 -0
  256. package/prebuilt/darwin-x64/zstd-015315ac7c784c73.a +0 -0
  257. package/prebuilt/linux-arm64/boringssl-4a47438eaf7e73ba.a +0 -0
  258. package/prebuilt/linux-arm64/brotli-65481ff838ce9def.a +0 -0
  259. package/prebuilt/linux-arm64/uv-f1353f50ff983f3c.a +0 -0
  260. package/prebuilt/linux-arm64/zlib-4ce2317a4c3f5fb5.a +0 -0
  261. package/prebuilt/linux-arm64/zstd-015315ac7c784c73.a +0 -0
  262. package/prebuilt/linux-arm64-musl/boringssl-4a47438eaf7e73ba.a +0 -0
  263. package/prebuilt/linux-arm64-musl/brotli-65481ff838ce9def.a +0 -0
  264. package/prebuilt/linux-arm64-musl/uv-f1353f50ff983f3c.a +0 -0
  265. package/prebuilt/linux-arm64-musl/zlib-4ce2317a4c3f5fb5.a +0 -0
  266. package/prebuilt/linux-arm64-musl/zstd-015315ac7c784c73.a +0 -0
  267. package/prebuilt/linux-x64/boringssl-4a47438eaf7e73ba.a +0 -0
  268. package/prebuilt/linux-x64/brotli-65481ff838ce9def.a +0 -0
  269. package/prebuilt/linux-x64/uv-f1353f50ff983f3c.a +0 -0
  270. package/prebuilt/linux-x64/zlib-4ce2317a4c3f5fb5.a +0 -0
  271. package/prebuilt/linux-x64/zstd-015315ac7c784c73.a +0 -0
  272. package/prebuilt/linux-x64-musl/boringssl-4a47438eaf7e73ba.a +0 -0
  273. package/prebuilt/linux-x64-musl/brotli-65481ff838ce9def.a +0 -0
  274. package/prebuilt/linux-x64-musl/uv-f1353f50ff983f3c.a +0 -0
  275. package/prebuilt/linux-x64-musl/zlib-4ce2317a4c3f5fb5.a +0 -0
  276. package/prebuilt/linux-x64-musl/zstd-015315ac7c784c73.a +0 -0
  277. package/prebuilt/win32-x64/boringssl-ce573858472b7fc9.a +0 -0
  278. package/prebuilt/win32-x64/brotli-20d86a61f30baeb3.a +0 -0
  279. package/prebuilt/win32-x64/uv-b11bae65d7fced82.a +0 -0
  280. package/prebuilt/win32-x64/zlib-4ce2317a4c3f5fb5.a +0 -0
  281. package/prebuilt/win32-x64/zstd-015315ac7c784c73.a +0 -0
  282. package/runtime/include/js_atoms.gen.h +0 -0
  283. package/runtime/include/js_atoms.h +1 -1
  284. package/runtime/include/js_bigint.h +1 -1
  285. package/runtime/include/js_buffer.h +4 -4
  286. package/runtime/include/js_builtins.h +41 -3
  287. package/runtime/include/js_console.h +9 -4
  288. package/runtime/include/js_convert.h +1 -1
  289. package/runtime/include/js_core.def +5 -4
  290. package/runtime/include/js_crypto.h +1 -1
  291. package/runtime/include/js_error.h +1 -1
  292. package/runtime/include/js_exception.h +21 -1
  293. package/runtime/include/js_function.h +33 -9
  294. package/runtime/include/js_gc.h +172 -30
  295. package/runtime/include/js_generator.h +2 -2
  296. package/runtime/include/js_host.h +19 -1
  297. package/runtime/include/js_jobs.h +5 -5
  298. package/runtime/include/js_module.h +1 -1
  299. package/runtime/include/js_object.h +142 -15
  300. package/runtime/include/js_ops.h +107 -5
  301. package/runtime/include/js_promise.h +3 -3
  302. package/runtime/include/js_regexp.h +1 -1
  303. package/runtime/include/js_runtime.h +0 -0
  304. package/runtime/include/js_symbol.h +1 -1
  305. package/runtime/include/js_web.h +2 -1
  306. package/runtime/include/jscell.h +22 -15
  307. package/runtime/include/jscontext.h +74 -39
  308. package/runtime/include/jsnum.h +1 -1
  309. package/runtime/include/jsstring.h +19 -6
  310. package/runtime/include/jsvalue.h +7 -3
  311. package/runtime/src/arguments.c +2 -2
  312. package/runtime/src/array.c +4 -1
  313. package/runtime/src/arraybuffer.c +19 -7
  314. package/runtime/src/async_iter.c +4 -3
  315. package/runtime/src/atoms.c +1 -1
  316. package/runtime/src/base64.c +2 -2
  317. package/runtime/src/bigint.c +1 -1
  318. package/runtime/src/blob.c +22 -9
  319. package/runtime/src/boringssl_support.cc +1 -1
  320. package/runtime/src/buffer.c +299 -91
  321. package/runtime/src/builtin_table.c +1 -1
  322. package/runtime/src/builtins.c +30 -4
  323. package/runtime/src/builtins_util.h +0 -0
  324. package/runtime/src/collections.c +18 -3
  325. package/runtime/src/components.c +1 -1
  326. package/runtime/src/console.c +14 -7
  327. package/runtime/src/convert.c +0 -0
  328. package/runtime/src/core_all.c +1 -1
  329. package/runtime/src/crypto.c +1 -1
  330. package/runtime/src/crypto_asym.c +1 -1
  331. package/runtime/src/crypto_bn.c +1 -1
  332. package/runtime/src/crypto_cipher.c +10 -3
  333. package/runtime/src/crypto_hash.c +1 -1
  334. package/runtime/src/crypto_host.c +1 -1
  335. package/runtime/src/crypto_internal.h +1 -1
  336. package/runtime/src/crypto_kdf.c +1 -1
  337. package/runtime/src/crypto_key.c +14 -1
  338. package/runtime/src/crypto_pkey.c +1 -1
  339. package/runtime/src/crypto_subtle.c +142 -58
  340. package/runtime/src/crypto_tls.c +1 -1
  341. package/runtime/src/date.c +5 -2
  342. package/runtime/src/domexception.c +2 -2
  343. package/runtime/src/elements.c +56 -17
  344. package/runtime/src/elements.h +7 -2
  345. package/runtime/src/encoding.c +1 -1
  346. package/runtime/src/error.c +4 -4
  347. package/runtime/src/events.c +23 -14
  348. package/runtime/src/exception.c +1 -1
  349. package/runtime/src/fetch.c +241 -17
  350. package/runtime/src/function.c +31 -19
  351. package/runtime/src/gc.c +1716 -207
  352. package/runtime/src/gc_visit.h +87 -0
  353. package/runtime/src/generator.c +5 -3
  354. package/runtime/src/global.c +14 -6
  355. package/runtime/src/headers.c +10 -10
  356. package/runtime/src/inspect.c +76 -17
  357. package/runtime/src/internal.h +5 -2
  358. package/runtime/src/iterate.c +94 -2
  359. package/runtime/src/iterator.c +1 -1
  360. package/runtime/src/jobs.c +11 -5
  361. package/runtime/src/jsnum.c +2 -2
  362. package/runtime/src/json.c +1 -1
  363. package/runtime/src/math.c +9 -1
  364. package/runtime/src/module.c +3 -3
  365. package/runtime/src/number.c +0 -0
  366. package/runtime/src/object.c +107 -74
  367. package/runtime/src/ops.c +21 -3
  368. package/runtime/src/os.c +192 -1
  369. package/runtime/src/os.h +33 -2
  370. package/runtime/src/process.c +73 -8
  371. package/runtime/src/promise.c +4 -4
  372. package/runtime/src/proxy.c +1 -1
  373. package/runtime/src/reflect.c +1 -1
  374. package/runtime/src/regexp.c +134 -2
  375. package/runtime/src/regexp_anchor.h +1 -1
  376. package/runtime/src/regexp_message.h +1 -1
  377. package/runtime/src/shape.c +10 -19
  378. package/runtime/src/shape.h +0 -0
  379. package/runtime/src/streams.c +22 -8
  380. package/runtime/src/streams.h +0 -0
  381. package/runtime/src/string.c +64 -25
  382. package/runtime/src/string_builtins.c +7 -7
  383. package/runtime/src/symbol.c +2 -7
  384. package/runtime/src/test_host.c +3 -3
  385. package/runtime/src/tls_roots.gen.h +102 -620
  386. package/runtime/src/typedarray.c +8 -3
  387. package/runtime/src/tznames.gen.h +2 -1
  388. package/runtime/src/uri.c +1 -1
  389. package/runtime/src/url.c +42 -39
  390. package/runtime/src/weak.c +15 -12
  391. package/runtime/src/web.c +21 -3
  392. package/runtime/src/wrapper.c +0 -0
  393. package/runtime/src/writable.c +7 -6
  394. package/runtime/third_party/ada-idna/LICENSE-MIT +0 -0
  395. package/runtime/third_party/ada-idna/README.md +7 -7
  396. package/runtime/third_party/ada-idna/convert.mjs +89 -27
  397. package/runtime/third_party/ada-idna/idna.c +30 -31
  398. package/runtime/third_party/ada-idna/idna.h +0 -0
  399. package/runtime/third_party/ada-idna/idna_tables.h +2272 -1952
  400. package/runtime/third_party/boringssl/third_party/fiat/LICENSE +15 -0
  401. package/runtime/third_party/mozilla-ca/LICENSE +373 -0
  402. package/runtime/third_party/mozilla-ca/README.md +9 -0
  403. package/runtime/third_party/nodejs/LICENSE +47 -0
  404. package/runtime/third_party/nodejs/README.md +7 -0
  405. package/runtime/third_party/quickjs-dtoa/LICENSE +0 -0
  406. package/runtime/third_party/quickjs-dtoa/README.md +1 -1
  407. package/runtime/third_party/quickjs-dtoa/dtoa.c +0 -0
  408. package/runtime/third_party/quickjs-dtoa/dtoa.h +0 -0
  409. package/runtime/third_party/quickjs-dtoa/dtoa_compat.h +0 -0
  410. package/runtime/third_party/quickjs-regexp/LICENSE +0 -0
  411. package/runtime/third_party/quickjs-regexp/README.md +2 -2
  412. package/runtime/third_party/quickjs-regexp/cutils.c +0 -0
  413. package/runtime/third_party/quickjs-regexp/cutils.h +0 -0
  414. package/runtime/third_party/quickjs-regexp/libregexp-opcode.h +0 -0
  415. package/runtime/third_party/quickjs-regexp/libregexp.c +0 -0
  416. package/runtime/third_party/quickjs-regexp/libregexp.h +0 -0
  417. package/runtime/third_party/quickjs-regexp/libunicode-table.h +0 -0
  418. package/runtime/third_party/quickjs-regexp/libunicode.c +0 -0
  419. package/runtime/third_party/quickjs-regexp/libunicode.h +0 -0
  420. package/runtime/third_party/unicode/LICENSE +39 -0
  421. package/runtime/third_party/unicode/README.md +9 -0
  422. package/runtime/third_party/v8-ieee754/LICENSE +0 -0
  423. package/runtime/third_party/v8-ieee754/LICENSE.fdlibm +10 -0
  424. package/runtime/third_party/v8-ieee754/README.md +3 -2
  425. package/runtime/third_party/v8-ieee754/convert.py +0 -0
  426. package/runtime/third_party/v8-ieee754/ieee754.c +0 -0
  427. package/runtime/third_party/v8-ieee754/ieee754.h +0 -0
  428. package/runtime/tools/regexp_compile.c +2 -2
@@ -1,7 +1,8 @@
1
- // node:url (ADR 0012, layer 3): the legacy url.parse/format/resolve API (Node's lib/url.js, v22.22.2,
1
+ // node:url: the legacy url.parse/format/resolve API (Node's lib/url.js, v22.22.2,
2
2
  // ported: primordials as plain calls, its requires as imports, Node's bindings as JS over the
3
3
  // url component), the WHATWG URL and URLSearchParams (the runtime's), and Node's file-URL and
4
- // domain helpers (from lib/internal/url.js; POSIX paths). Node's notice for lib/url.js:
4
+ // domain helpers (from lib/internal/url.js: Windows paths on Windows, or with { windows: true }).
5
+ // Node's notice for lib/url.js:
5
6
  //
6
7
  // Copyright Joyent, Inc. and other Node contributors.
7
8
  //
@@ -24,7 +25,7 @@
24
25
  // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
25
26
  // USE OR OTHER DEALINGS IN THE SOFTWARE.
26
27
 
27
- import { codeError, invalidArgType } from "./internal/errors.js";
28
+ import { codeError, invalidArgType, invalidArgValue } from "./internal/errors.js";
28
29
  import { encodeStr, hexTable } from "./internal/querystring.js";
29
30
  import * as path from "./path.js";
30
31
  import querystring from "./querystring.js";
@@ -152,35 +153,65 @@ function urlToHttpOptions(url) {
152
153
  return options;
153
154
  }
154
155
 
156
+ const isWindows = process.platform === "win32";
157
+
155
158
  function fileUrlOf(path) {
156
- if (typeof path === "string") return new URL(path);
157
- if (!(path instanceof URL)) throw invalidArgType("path", "of type string or an instance of URL", path);
158
- return path;
159
+ let url = path;
160
+ if (typeof path === "string") url = new URL(path);
161
+ else if (!(path instanceof URL)) throw invalidArgType("path", "of type string or an instance of URL", path);
162
+ if (url.protocol !== "file:") throw codeError(TypeError, "ERR_INVALID_URL_SCHEME", "The URL must be of scheme file");
163
+ return url;
159
164
  }
160
165
 
161
- function checkFileUrl(url) {
162
- if (url.protocol !== "file:") throw codeError(TypeError, "ERR_INVALID_URL_SCHEME", "The URL must be of scheme file");
163
- if (url.hostname !== "") throw codeError(TypeError, "ERR_INVALID_FILE_URL_HOST", `File URL host must be "localhost" or empty on ${process.platform}`);
164
- const pathname = url.pathname;
166
+ /* an encoded / (and on Windows, \): the path would name another file */
167
+ function checkEncodedSlashes(pathname, windows) {
165
168
  for (let n = 0; n < pathname.length; n++) {
166
- if (pathname[n] === "%" && pathname[n + 1] === "2" && (pathname.codePointAt(n + 2) | 0x20) === 102) {
167
- throw codeError(TypeError, "ERR_INVALID_FILE_URL_PATH", "File URL path must not include encoded / characters");
169
+ if (pathname[n] !== "%") continue;
170
+ const third = pathname.codePointAt(n + 2) | 0x20;
171
+ if (pathname[n + 1] === "2" && third === 102) {
172
+ throw codeError(TypeError, "ERR_INVALID_FILE_URL_PATH", `File URL path must not include encoded ${windows ? "\\ or / characters" : "/ characters"}`);
173
+ }
174
+ if (windows && pathname[n + 1] === "5" && third === 99) {
175
+ throw codeError(TypeError, "ERR_INVALID_FILE_URL_PATH", "File URL path must not include encoded \\ or / characters");
168
176
  }
169
177
  }
170
- return pathname;
171
178
  }
172
179
 
173
- function fileURLToPath(path) {
174
- const pathname = checkFileUrl(fileUrlOf(path));
175
- return pathname.includes("%") ? decodeURIComponent(pathname) : pathname;
180
+ function checkHost(url) {
181
+ if (url.hostname !== "") throw codeError(TypeError, "ERR_INVALID_FILE_URL_HOST", `File URL host must be "localhost" or empty on ${process.platform}`);
182
+ }
183
+
184
+ /* a local Windows path needs a drive letter: /C:/… */
185
+ function checkDrive(letter, sep) {
186
+ if ((letter | 0x20) < 97 || (letter | 0x20) > 122 || sep !== CHAR_COLON) {
187
+ throw codeError(TypeError, "ERR_INVALID_FILE_URL_PATH", "File URL path must be absolute");
188
+ }
176
189
  }
177
190
 
178
- function fileURLToPathBuffer(path) {
179
- const pathname = checkFileUrl(fileUrlOf(path));
191
+ function fileURLToPath(path, options) {
192
+ const url = fileUrlOf(path);
193
+ const windows = options?.windows ?? isWindows;
194
+ let pathname = url.pathname;
195
+ if (!windows) {
196
+ checkHost(url);
197
+ checkEncodedSlashes(pathname, false);
198
+ return pathname.includes("%") ? decodeURIComponent(pathname) : pathname;
199
+ }
200
+ checkEncodedSlashes(pathname, true);
201
+ pathname = pathname.replace(/\//g, "\\");
202
+ if (pathname.includes("%")) pathname = decodeURIComponent(pathname);
203
+ /* a host is a UNC path's server: \\server\share\… */
204
+ if (url.hostname !== "") return `\\\\${domainToUnicode(url.hostname)}${pathname}`;
205
+ checkDrive(pathname.charCodeAt(1), pathname.charCodeAt(2));
206
+ return pathname.slice(1);
207
+ }
208
+
209
+ /* the bytes of a pathname with its %XX decoded; an invalid one is kept as it is */
210
+ function percentDecode(pathname) {
180
211
  const bytes = Buffer.from(pathname, "utf8");
181
212
  const out = [];
213
+ const hex = (c) => (c >= 48 && c <= 57 ? c - 48 : (c | 0x20) >= 97 && (c | 0x20) <= 102 ? (c | 0x20) - 87 : -1);
182
214
  for (let i = 0; i < bytes.length; i++) {
183
- const hex = (c) => (c >= 48 && c <= 57 ? c - 48 : (c | 0x20) >= 97 && (c | 0x20) <= 102 ? (c | 0x20) - 87 : -1);
184
215
  if (bytes[i] === 37 && i + 2 < bytes.length && hex(bytes[i + 1]) >= 0 && hex(bytes[i + 2]) >= 0) {
185
216
  out.push(hex(bytes[i + 1]) * 16 + hex(bytes[i + 2]));
186
217
  i += 2;
@@ -191,19 +222,49 @@ function fileURLToPathBuffer(path) {
191
222
  return Buffer.from(out);
192
223
  }
193
224
 
194
- function pathToFileURL(filepath) {
195
- validateString(filepath, "path");
196
- let resolved = path.resolve(filepath);
197
- /* path.resolve strips trailing slashes, so they're added back */
198
- if (filepath.charCodeAt(filepath.length - 1) === CHAR_FORWARD_SLASH && resolved[resolved.length - 1] !== path.sep) resolved += "/";
199
- /* the characters a URL's pathname setter would take differently */
200
- resolved = resolved.replace(/%/g, "%25").replace(/\\/g, "%5C").replace(/\n/g, "%0A").replace(/\r/g, "%0D").replace(/\t/g, "%09")
201
- .replace(/#/g, "%23").replace(/\?/g, "%3F");
225
+ /* as fileURLToPath, without decoding the bytes as UTF-8, nor looking for encoded slashes */
226
+ function fileURLToPathBuffer(path, options) {
227
+ const url = fileUrlOf(path);
228
+ if (!(options?.windows ?? isWindows)) {
229
+ checkHost(url);
230
+ return percentDecode(url.pathname);
231
+ }
232
+ const decoded = percentDecode(url.pathname.replace(/\//g, "\\"));
233
+ if (url.hostname !== "") return Buffer.concat([Buffer.from("\\\\", "ascii"), Buffer.from(domainToUnicode(url.hostname), "utf8"), decoded]);
234
+ checkDrive(decoded[1], decoded[2]);
235
+ return decoded.subarray(1);
236
+ }
237
+
238
+ /* a resolved path as a file URL (Node's binding): the characters a pathname's setter would take
239
+ * differently are encoded; on Windows, \ is the separator */
240
+ function fileUrlFromPath(resolved, windows, hostname) {
241
+ resolved = resolved.replace(/%/g, "%25").replace(/\\/g, windows ? "/" : "%5C").replace(/\n/g, "%0A").replace(/\r/g, "%0D")
242
+ .replace(/\t/g, "%09").replace(/#/g, "%23").replace(/\?/g, "%3F");
202
243
  const url = new URL("file://");
244
+ if (hostname !== undefined) url.hostname = hostname;
203
245
  url.pathname = resolved;
204
246
  return url;
205
247
  }
206
248
 
249
+ function pathToFileURL(filepath, options) {
250
+ validateString(filepath, "path");
251
+ const windows = options?.windows ?? isWindows;
252
+ const isUNC = windows && filepath.startsWith("\\\\");
253
+ let resolved = isUNC ? filepath : windows ? path.win32.resolve(filepath) : path.posix.resolve(filepath);
254
+ if (isUNC || (windows && resolved.startsWith("\\\\"))) {
255
+ /* \\server\share\resource; an extended one's "\\?\UNC\" prefix is skipped */
256
+ const prefixLength = resolved.startsWith("\\\\?\\UNC\\") ? 8 : 2;
257
+ const hostnameEndIndex = resolved.indexOf("\\", prefixLength);
258
+ if (hostnameEndIndex === -1) throw invalidArgValue("path", "Missing UNC resource path", resolved);
259
+ if (hostnameEndIndex === 2) throw invalidArgValue("path", "Empty UNC servername", resolved);
260
+ return fileUrlFromPath(resolved.slice(hostnameEndIndex), true, resolved.slice(prefixLength, hostnameEndIndex));
261
+ }
262
+ /* path.resolve strips trailing slashes, so they're added back */
263
+ const last = filepath.charCodeAt(filepath.length - 1);
264
+ if ((last === CHAR_FORWARD_SLASH || (windows && last === CHAR_BACKWARD_SLASH)) && resolved[resolved.length - 1] !== path.sep) resolved += "/";
265
+ return fileUrlFromPath(resolved, windows);
266
+ }
267
+
207
268
  /* ---- Node's lib/url.js -------------------------------------------------------------------------- */
208
269
 
209
270
  // Original url.parse() API
@@ -1,7 +1,14 @@
1
- // node:util (ADR 0012, layer 3): inspect and format are the runtime's (console prints
2
- // with them), Node's algorithms in C; deprecate, inherits and types (node:util/types).
1
+ // node:util: inspect and format are the runtime's (console prints
2
+ // with them), Node's algorithms in C; deprecate, inherits, types (node:util/types),
3
+ // isDeepStrictEqual (node:assert's deepStrictEqual, internal/comparisons.js), promisify,
4
+ // callbackify, stripVTControlCharacters and styleText, debuglog, parseArgs, parseEnv, MIMEType,
5
+ // diff, the system error names, and the deprecated is* functions and log; TextEncoder and
6
+ // TextDecoder, the globals (the runtime's encoding component).
3
7
  import { utilFormat, utilFormatWithOptions, utilInspect } from "visaljs:host";
4
- import types from "./util_types.js";
8
+ import { isDeepStrictEqual } from "./internal/comparisons.js";
9
+ import { validateFunction, validateString } from "./internal/errors.js";
10
+ import { lazyClass, lazyFunction } from "./internal/features.js";
11
+ import types, { isPromise } from "./util_types.js";
5
12
 
6
13
  export { types };
7
14
 
@@ -23,6 +30,75 @@ inspect.defaultOptions = {
23
30
  };
24
31
  export const format = utilFormat;
25
32
  export const formatWithOptions = utilFormatWithOptions;
33
+ export const TextEncoder = globalThis.TextEncoder;
34
+ export const TextDecoder = globalThis.TextDecoder;
35
+
36
+ /* ANSI escape codes, as Node's internal/util/inspect.js matches them: an OSC sequence (a terminal
37
+ hyperlink: ESC ] … BEL) whole, or a CSI sequence */
38
+ const ansi = new RegExp(
39
+ "(?:\\u001B\\][\\s\\S]*?(?:\\u0007|\\u001B\\u005C|\\u009C))" +
40
+ "|[\\u001B\\u009B][[\\]()#;?]*" +
41
+ "(?:\\d{1,4}(?:[;:]\\d{0,4})*)?" +
42
+ "[\\dA-PR-TZcf-nq-uy=><~]", "g",
43
+ );
44
+
45
+ const kCustomPromisifiedSymbol = Symbol.for("nodejs.util.promisify.custom");
46
+ /* names to make an object of when the callback gets several values, e.g. ['bytesRead', 'buffer'] */
47
+ /* (registered: node:fs names its functions' values without importing node:util) */
48
+ const kCustomPromisifyArgsSymbol = Symbol.for("visaljs.util.customPromisifyArgs");
49
+
50
+ /** A function taking a callback (err, value) as one returning a promise: Node's
51
+ * internal/util.js promisify, with its util.promisify.custom. */
52
+ export function promisify(original) {
53
+ validateFunction(original, "original");
54
+
55
+ if (original[kCustomPromisifiedSymbol]) {
56
+ const fn = original[kCustomPromisifiedSymbol];
57
+
58
+ validateFunction(fn, "util.promisify.custom");
59
+
60
+ return Object.defineProperty(fn, kCustomPromisifiedSymbol, { value: fn, enumerable: false, writable: false, configurable: true });
61
+ }
62
+
63
+ const argumentNames = original[kCustomPromisifyArgsSymbol];
64
+
65
+ function fn(...args) {
66
+ return new Promise((resolve, reject) => {
67
+ args.push((err, ...values) => {
68
+ if (err) {
69
+ return reject(err);
70
+ }
71
+ if (argumentNames !== undefined && values.length > 1) {
72
+ const obj = {};
73
+ for (let i = 0; i < argumentNames.length; i++) obj[argumentNames[i]] = values[i];
74
+ resolve(obj);
75
+ } else {
76
+ resolve(values[0]);
77
+ }
78
+ });
79
+ if (isPromise(Reflect.apply(original, this, args))) {
80
+ process.emitWarning("Calling promisify on a function that returns a Promise is likely a mistake.", "DeprecationWarning", "DEP0174");
81
+ }
82
+ });
83
+ }
84
+
85
+ Object.setPrototypeOf(fn, Object.getPrototypeOf(original));
86
+
87
+ Object.defineProperty(fn, kCustomPromisifiedSymbol, { value: fn, enumerable: false, writable: false, configurable: true });
88
+
89
+ const descriptors = Object.getOwnPropertyDescriptors(original);
90
+ for (const descriptor of Object.values(descriptors)) Object.setPrototypeOf(descriptor, null);
91
+ return Object.defineProperties(fn, descriptors);
92
+ }
93
+
94
+ promisify.custom = kCustomPromisifiedSymbol;
95
+
96
+ /** The string without its ANSI escape codes (colors, cursor movements, …). */
97
+ export function stripVTControlCharacters(str) {
98
+ validateString(str, "str");
99
+ if (!str.includes("\u001B") && !str.includes("\u009B")) return str; /* no escape introducer */
100
+ return str.replace(ansi, "");
101
+ }
26
102
 
27
103
  const codesWarned = new Set();
28
104
 
@@ -36,7 +112,7 @@ export function deprecate(fn, msg, code) {
36
112
  if (process.noDeprecation === true) return fn;
37
113
  let warned = false;
38
114
  function deprecated(...args) {
39
- if (!warned) {
115
+ if (!warned && process.noDeprecation !== true) {
40
116
  warned = true;
41
117
  if (code !== undefined) {
42
118
  if (!codesWarned.has(code)) {
@@ -64,4 +140,44 @@ export function inherits(ctor, superCtor) {
64
140
  Object.setPrototypeOf(ctor.prototype, superCtor.prototype);
65
141
  }
66
142
 
67
- export default { format, formatWithOptions, inspect, deprecate, inherits, types };
143
+ export { isDeepStrictEqual };
144
+
145
+ /* features in modules of their own, linked when the program names them (internal/features.js) */
146
+ export const MIMEType = lazyClass("MIMEType");
147
+ export const MIMEParams = lazyClass("MIMEParams");
148
+
149
+ export const parseArgs = lazyFunction("parseArgs"); /* internal/parse_args.js */
150
+
151
+ /* internal/system_errors.js */
152
+ export const getSystemErrorName = lazyFunction("getSystemErrorName", 1);
153
+ export const getSystemErrorMessage = lazyFunction("getSystemErrorMessage", 1);
154
+ export const getSystemErrorMap = lazyFunction("getSystemErrorMap");
155
+
156
+ export const parseEnv = lazyFunction("parseEnv", 1); /* internal/dotenv.js */
157
+
158
+ /* internal/util_styles.js (with inspect.colors and inspect.styles), internal/util_diff.js */
159
+ export const styleText = lazyFunction("styleText", 2);
160
+ export const diff = lazyFunction("diff", 2);
161
+
162
+ /* the rarely used ones: internal/util_more.js */
163
+ export const callbackify = lazyFunction("callbackify", 1);
164
+ export const debuglog = lazyFunction("debuglog", 2);
165
+ export const debug = debuglog;
166
+ export const toUSVString = lazyFunction("toUSVString", 1);
167
+ export const aborted = lazyFunction("aborted", 2);
168
+ export const transferableAbortSignal = lazyFunction("transferableAbortSignal", 1);
169
+ export const transferableAbortController = lazyFunction("transferableAbortController");
170
+ export const getCallSites = lazyFunction("getCallSites");
171
+ export const setTraceSigInt = lazyFunction("setTraceSigInt", 1);
172
+ export const convertProcessSignalToExitCode = lazyFunction("convertProcessSignalToExitCode", 1);
173
+ export const _extend = lazyFunction("_extend", 2);
174
+ export const isArray = lazyFunction("isArray", 1);
175
+
176
+ /* in Node 24's order, which Object.keys(util) shows (less the internal _errnoException and
177
+ _exceptionWithHostPort) */
178
+ export default {
179
+ _extend, callbackify, convertProcessSignalToExitCode, debug, debuglog, deprecate, format, styleText, formatWithOptions, getCallSites,
180
+ getSystemErrorMap, getSystemErrorName, getSystemErrorMessage, inherits, inspect, isArray, isDeepStrictEqual, promisify,
181
+ stripVTControlCharacters, toUSVString, transferableAbortSignal, transferableAbortController, aborted, types, parseEnv, parseArgs,
182
+ TextDecoder, TextEncoder, MIMEType, MIMEParams, diff, setTraceSigInt,
183
+ };
@@ -74,12 +74,13 @@ export const isFloat64Array = (value) => tag(value) === "Float64Array";
74
74
  export const isBigInt64Array = (value) => tag(value) === "BigInt64Array";
75
75
  export const isBigUint64Array = (value) => tag(value) === "BigUint64Array";
76
76
 
77
- /* Node's order, which Object.keys(util.types) shows */
77
+ /* Node 24's order, which Object.keys(util.types) shows */
78
78
  export default {
79
- isArgumentsObject, isArrayBuffer, isAsyncFunction, isBigIntObject, isBooleanObject, isDataView, isDate, isExternal,
79
+ isArgumentsObject, isArrayBuffer, isAsyncFunction, isBigIntObject, isBooleanObject, isDate, isExternal,
80
80
  isGeneratorFunction, isGeneratorObject, isMap, isMapIterator, isModuleNamespaceObject, isNativeError, isNumberObject,
81
81
  isPromise, isProxy, isRegExp, isSet, isSetIterator, isSharedArrayBuffer, isStringObject, isSymbolObject, isWeakMap,
82
- isWeakSet, isAnyArrayBuffer, isBoxedPrimitive, isArrayBufferView, isTypedArray, isUint8Array, isUint8ClampedArray,
82
+ isWeakSet, isAnyArrayBuffer, isBoxedPrimitive, isArrayBufferView, isDataView, isTypedArray, isUint8Array,
83
+ isUint8ClampedArray,
83
84
  isUint16Array, isUint32Array, isInt8Array, isInt16Array, isInt32Array, isFloat16Array, isFloat32Array,
84
85
  isFloat64Array, isBigInt64Array, isBigUint64Array, isKeyObject, isCryptoKey,
85
86
  };