visaljs 0.0.0-stage → 0.0.2

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 (520) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +45 -2
  3. package/cli.js +8084 -0
  4. package/node/include/js_node.h +46 -0
  5. package/node/prelude/async_hooks.js +88 -0
  6. package/node/prelude/buffer.js +31 -0
  7. package/node/prelude/crypto.js +114 -0
  8. package/node/prelude/events.js +227 -0
  9. package/node/prelude/fs.js +79 -0
  10. package/node/prelude/http.js +536 -0
  11. package/node/prelude/http2.js +30 -0
  12. package/node/prelude/internal/crypto/asym.js +333 -0
  13. package/node/prelude/internal/crypto/cipher.js +205 -0
  14. package/node/prelude/internal/crypto/hash.js +137 -0
  15. package/node/prelude/internal/crypto/kdf.js +182 -0
  16. package/node/prelude/internal/crypto/keys.js +603 -0
  17. package/node/prelude/internal/crypto/random.js +118 -0
  18. package/node/prelude/internal/crypto/util.js +76 -0
  19. package/node/prelude/internal/errors.js +88 -0
  20. package/node/prelude/internal/querystring.js +105 -0
  21. package/node/prelude/module.js +53 -0
  22. package/node/prelude/net.js +51 -0
  23. package/node/prelude/os.js +129 -0
  24. package/node/prelude/path.js +257 -0
  25. package/node/prelude/process.js +21 -0
  26. package/node/prelude/querystring.js +469 -0
  27. package/node/prelude/stream.js +1327 -0
  28. package/node/prelude/stream_promises.js +7 -0
  29. package/node/prelude/stream_web.js +6 -0
  30. package/node/prelude/string_decoder.js +236 -0
  31. package/node/prelude/tty.js +18 -0
  32. package/node/prelude/url.js +1156 -0
  33. package/node/prelude/util.js +64 -0
  34. package/node/prelude/zlib.js +81 -0
  35. package/node/src/host_fs.c +126 -0
  36. package/node/src/host_http.c +486 -0
  37. package/node/src/host_os.c +505 -0
  38. package/node/src/host_sys.c +78 -0
  39. package/node/third_party/libuv/LICENSE +19 -0
  40. package/node/third_party/libuv/include/uv/aix.h +32 -0
  41. package/node/third_party/libuv/include/uv/bsd.h +34 -0
  42. package/node/third_party/libuv/include/uv/darwin.h +61 -0
  43. package/node/third_party/libuv/include/uv/errno.h +483 -0
  44. package/node/third_party/libuv/include/uv/linux.h +34 -0
  45. package/node/third_party/libuv/include/uv/os390.h +33 -0
  46. package/node/third_party/libuv/include/uv/posix.h +31 -0
  47. package/node/third_party/libuv/include/uv/sunos.h +44 -0
  48. package/node/third_party/libuv/include/uv/threadpool.h +37 -0
  49. package/node/third_party/libuv/include/uv/tree.h +521 -0
  50. package/node/third_party/libuv/include/uv/unix.h +512 -0
  51. package/node/third_party/libuv/include/uv/version.h +43 -0
  52. package/node/third_party/libuv/include/uv/win.h +698 -0
  53. package/node/third_party/libuv/include/uv.h +1990 -0
  54. package/node/third_party/libuv/src/fs-poll.c +290 -0
  55. package/node/third_party/libuv/src/heap-inl.h +245 -0
  56. package/node/third_party/libuv/src/idna.c +560 -0
  57. package/node/third_party/libuv/src/idna.h +31 -0
  58. package/node/third_party/libuv/src/inet.c +298 -0
  59. package/node/third_party/libuv/src/queue.h +90 -0
  60. package/node/third_party/libuv/src/random.c +123 -0
  61. package/node/third_party/libuv/src/strscpy.c +38 -0
  62. package/node/third_party/libuv/src/strscpy.h +39 -0
  63. package/node/third_party/libuv/src/strtok.c +52 -0
  64. package/node/third_party/libuv/src/strtok.h +27 -0
  65. package/node/third_party/libuv/src/thread-common.c +175 -0
  66. package/node/third_party/libuv/src/threadpool.c +419 -0
  67. package/node/third_party/libuv/src/timer.c +200 -0
  68. package/node/third_party/libuv/src/unix/async.c +418 -0
  69. package/node/third_party/libuv/src/unix/bsd-ifaddrs.c +164 -0
  70. package/node/third_party/libuv/src/unix/core.c +2104 -0
  71. package/node/third_party/libuv/src/unix/darwin-proctitle.c +176 -0
  72. package/node/third_party/libuv/src/unix/darwin-stub.h +97 -0
  73. package/node/third_party/libuv/src/unix/darwin-syscalls.h +17 -0
  74. package/node/third_party/libuv/src/unix/darwin.c +237 -0
  75. package/node/third_party/libuv/src/unix/dl.c +80 -0
  76. package/node/third_party/libuv/src/unix/fs.c +2303 -0
  77. package/node/third_party/libuv/src/unix/fsevents.c +906 -0
  78. package/node/third_party/libuv/src/unix/getaddrinfo.c +252 -0
  79. package/node/third_party/libuv/src/unix/getnameinfo.c +121 -0
  80. package/node/third_party/libuv/src/unix/internal.h +530 -0
  81. package/node/third_party/libuv/src/unix/kqueue.c +667 -0
  82. package/node/third_party/libuv/src/unix/linux.c +2761 -0
  83. package/node/third_party/libuv/src/unix/loop-watcher.c +68 -0
  84. package/node/third_party/libuv/src/unix/loop.c +240 -0
  85. package/node/third_party/libuv/src/unix/pipe.c +555 -0
  86. package/node/third_party/libuv/src/unix/poll.c +159 -0
  87. package/node/third_party/libuv/src/unix/process.c +1123 -0
  88. package/node/third_party/libuv/src/unix/procfs-exepath.c +45 -0
  89. package/node/third_party/libuv/src/unix/proctitle.c +157 -0
  90. package/node/third_party/libuv/src/unix/random-devurandom.c +93 -0
  91. package/node/third_party/libuv/src/unix/random-getentropy.c +57 -0
  92. package/node/third_party/libuv/src/unix/random-getrandom.c +86 -0
  93. package/node/third_party/libuv/src/unix/random-sysctl-linux.c +99 -0
  94. package/node/third_party/libuv/src/unix/signal.c +581 -0
  95. package/node/third_party/libuv/src/unix/stream.c +1567 -0
  96. package/node/third_party/libuv/src/unix/tcp.c +673 -0
  97. package/node/third_party/libuv/src/unix/thread.c +975 -0
  98. package/node/third_party/libuv/src/unix/tty.c +510 -0
  99. package/node/third_party/libuv/src/unix/udp.c +1434 -0
  100. package/node/third_party/libuv/src/uv-common.c +1051 -0
  101. package/node/third_party/libuv/src/uv-common.h +474 -0
  102. package/node/third_party/libuv/src/uv-data-getter-setters.c +119 -0
  103. package/node/third_party/libuv/src/version.c +45 -0
  104. package/node/third_party/llhttp/LICENSE +22 -0
  105. package/node/third_party/llhttp/api.c +509 -0
  106. package/node/third_party/llhttp/http.c +170 -0
  107. package/node/third_party/llhttp/llhttp.c +10099 -0
  108. package/node/third_party/llhttp/llhttp.h +907 -0
  109. package/package.json +25 -4
  110. package/runtime/include/js_atoms.gen.h +68 -0
  111. package/runtime/include/js_atoms.h +54 -0
  112. package/runtime/include/js_bigint.h +93 -0
  113. package/runtime/include/js_buffer.h +79 -0
  114. package/runtime/include/js_builtins.h +168 -0
  115. package/runtime/include/js_console.h +58 -0
  116. package/runtime/include/js_convert.h +22 -0
  117. package/runtime/include/js_core.def +188 -0
  118. package/runtime/include/js_crypto.h +58 -0
  119. package/runtime/include/js_error.h +37 -0
  120. package/runtime/include/js_exception.h +65 -0
  121. package/runtime/include/js_function.h +167 -0
  122. package/runtime/include/js_gc.h +195 -0
  123. package/runtime/include/js_generator.h +96 -0
  124. package/runtime/include/js_host.h +19 -0
  125. package/runtime/include/js_jobs.h +84 -0
  126. package/runtime/include/js_module.h +16 -0
  127. package/runtime/include/js_object.h +384 -0
  128. package/runtime/include/js_ops.h +111 -0
  129. package/runtime/include/js_promise.h +45 -0
  130. package/runtime/include/js_regexp.h +25 -0
  131. package/runtime/include/js_runtime.h +30 -0
  132. package/runtime/include/js_symbol.h +62 -0
  133. package/runtime/include/js_web.h +110 -0
  134. package/runtime/include/jscell.h +48 -0
  135. package/runtime/include/jscontext.h +240 -0
  136. package/runtime/include/jsnum.h +42 -0
  137. package/runtime/include/jsstring.h +161 -0
  138. package/runtime/include/jsvalue.h +142 -0
  139. package/runtime/src/arguments.c +115 -0
  140. package/runtime/src/array.c +1145 -0
  141. package/runtime/src/arraybuffer.c +608 -0
  142. package/runtime/src/async_iter.c +479 -0
  143. package/runtime/src/atoms.c +157 -0
  144. package/runtime/src/base64.c +107 -0
  145. package/runtime/src/bigint.c +1189 -0
  146. package/runtime/src/blob.c +371 -0
  147. package/runtime/src/buffer.c +1357 -0
  148. package/runtime/src/builtin_table.c +100 -0
  149. package/runtime/src/builtins.c +987 -0
  150. package/runtime/src/builtins_util.h +53 -0
  151. package/runtime/src/collections.c +912 -0
  152. package/runtime/src/components.c +28 -0
  153. package/runtime/src/console.c +637 -0
  154. package/runtime/src/convert.c +82 -0
  155. package/runtime/src/core_all.c +21 -0
  156. package/runtime/src/crypto.c +116 -0
  157. package/runtime/src/crypto_asym.c +644 -0
  158. package/runtime/src/crypto_cipher.c +671 -0
  159. package/runtime/src/crypto_hash.c +260 -0
  160. package/runtime/src/crypto_host.c +414 -0
  161. package/runtime/src/crypto_internal.h +304 -0
  162. package/runtime/src/crypto_kdf.c +143 -0
  163. package/runtime/src/crypto_key.c +171 -0
  164. package/runtime/src/crypto_pkey.c +794 -0
  165. package/runtime/src/crypto_subtle.c +1675 -0
  166. package/runtime/src/date.c +940 -0
  167. package/runtime/src/domexception.c +169 -0
  168. package/runtime/src/elements.c +312 -0
  169. package/runtime/src/elements.h +45 -0
  170. package/runtime/src/encoding.c +485 -0
  171. package/runtime/src/error.c +297 -0
  172. package/runtime/src/events.c +793 -0
  173. package/runtime/src/exception.c +56 -0
  174. package/runtime/src/fetch.c +772 -0
  175. package/runtime/src/function.c +530 -0
  176. package/runtime/src/gc.c +803 -0
  177. package/runtime/src/generator.c +218 -0
  178. package/runtime/src/global.c +119 -0
  179. package/runtime/src/headers.c +557 -0
  180. package/runtime/src/inspect.c +1792 -0
  181. package/runtime/src/internal.h +80 -0
  182. package/runtime/src/iterate.c +94 -0
  183. package/runtime/src/iterator.c +409 -0
  184. package/runtime/src/jobs.c +337 -0
  185. package/runtime/src/jsnum.c +353 -0
  186. package/runtime/src/json.c +1028 -0
  187. package/runtime/src/math.c +243 -0
  188. package/runtime/src/module.c +336 -0
  189. package/runtime/src/number.c +176 -0
  190. package/runtime/src/object.c +1265 -0
  191. package/runtime/src/ops.c +322 -0
  192. package/runtime/src/os.c +196 -0
  193. package/runtime/src/os.h +29 -0
  194. package/runtime/src/process.c +432 -0
  195. package/runtime/src/promise.c +721 -0
  196. package/runtime/src/proxy.c +570 -0
  197. package/runtime/src/reflect.c +194 -0
  198. package/runtime/src/regexp.c +1141 -0
  199. package/runtime/src/regexp_anchor.h +34 -0
  200. package/runtime/src/regexp_message.h +32 -0
  201. package/runtime/src/shape.c +294 -0
  202. package/runtime/src/shape.h +46 -0
  203. package/runtime/src/streams.c +1046 -0
  204. package/runtime/src/streams.h +47 -0
  205. package/runtime/src/string.c +364 -0
  206. package/runtime/src/string_builtins.c +837 -0
  207. package/runtime/src/symbol.c +143 -0
  208. package/runtime/src/test_host.c +59 -0
  209. package/runtime/src/typedarray.c +1330 -0
  210. package/runtime/src/tznames.gen.h +712 -0
  211. package/runtime/src/uri.c +169 -0
  212. package/runtime/src/url.c +2116 -0
  213. package/runtime/src/weak.c +486 -0
  214. package/runtime/src/web.c +214 -0
  215. package/runtime/src/wrapper.c +59 -0
  216. package/runtime/src/writable.c +1486 -0
  217. package/runtime/third_party/ada-idna/LICENSE-MIT +18 -0
  218. package/runtime/third_party/ada-idna/README.md +27 -0
  219. package/runtime/third_party/ada-idna/convert.mjs +83 -0
  220. package/runtime/third_party/ada-idna/idna.c +416 -0
  221. package/runtime/third_party/ada-idna/idna.h +15 -0
  222. package/runtime/third_party/ada-idna/idna_tables.h +2657 -0
  223. package/runtime/third_party/bearssl/LICENSE.txt +21 -0
  224. package/runtime/third_party/bearssl/README.txt +136 -0
  225. package/runtime/third_party/bearssl/VERSION +1 -0
  226. package/runtime/third_party/bearssl/inc/bearssl.h +183 -0
  227. package/runtime/third_party/bearssl/inc/bearssl_aead.h +1059 -0
  228. package/runtime/third_party/bearssl/inc/bearssl_block.h +2618 -0
  229. package/runtime/third_party/bearssl/inc/bearssl_ec.h +967 -0
  230. package/runtime/third_party/bearssl/inc/bearssl_hash.h +1346 -0
  231. package/runtime/third_party/bearssl/inc/bearssl_hmac.h +241 -0
  232. package/runtime/third_party/bearssl/inc/bearssl_kdf.h +284 -0
  233. package/runtime/third_party/bearssl/inc/bearssl_pem.h +294 -0
  234. package/runtime/third_party/bearssl/inc/bearssl_prf.h +150 -0
  235. package/runtime/third_party/bearssl/inc/bearssl_rand.h +397 -0
  236. package/runtime/third_party/bearssl/inc/bearssl_rsa.h +1655 -0
  237. package/runtime/third_party/bearssl/inc/bearssl_ssl.h +4296 -0
  238. package/runtime/third_party/bearssl/inc/bearssl_x509.h +1474 -0
  239. package/runtime/third_party/bearssl/src/aead/ccm.c +346 -0
  240. package/runtime/third_party/bearssl/src/aead/eax.c +525 -0
  241. package/runtime/third_party/bearssl/src/aead/gcm.c +318 -0
  242. package/runtime/third_party/bearssl/src/codec/ccopy.c +44 -0
  243. package/runtime/third_party/bearssl/src/codec/dec16be.c +38 -0
  244. package/runtime/third_party/bearssl/src/codec/dec16le.c +38 -0
  245. package/runtime/third_party/bearssl/src/codec/dec32be.c +38 -0
  246. package/runtime/third_party/bearssl/src/codec/dec32le.c +38 -0
  247. package/runtime/third_party/bearssl/src/codec/dec64be.c +38 -0
  248. package/runtime/third_party/bearssl/src/codec/dec64le.c +38 -0
  249. package/runtime/third_party/bearssl/src/codec/enc16be.c +38 -0
  250. package/runtime/third_party/bearssl/src/codec/enc16le.c +38 -0
  251. package/runtime/third_party/bearssl/src/codec/enc32be.c +38 -0
  252. package/runtime/third_party/bearssl/src/codec/enc32le.c +38 -0
  253. package/runtime/third_party/bearssl/src/codec/enc64be.c +38 -0
  254. package/runtime/third_party/bearssl/src/codec/enc64le.c +38 -0
  255. package/runtime/third_party/bearssl/src/codec/pemdec.c +526 -0
  256. package/runtime/third_party/bearssl/src/codec/pemdec.t0 +314 -0
  257. package/runtime/third_party/bearssl/src/codec/pemenc.c +173 -0
  258. package/runtime/third_party/bearssl/src/config.h +247 -0
  259. package/runtime/third_party/bearssl/src/ec/ec_all_m15.c +121 -0
  260. package/runtime/third_party/bearssl/src/ec/ec_all_m31.c +171 -0
  261. package/runtime/third_party/bearssl/src/ec/ec_c25519_i15.c +398 -0
  262. package/runtime/third_party/bearssl/src/ec/ec_c25519_i31.c +390 -0
  263. package/runtime/third_party/bearssl/src/ec/ec_c25519_m15.c +1478 -0
  264. package/runtime/third_party/bearssl/src/ec/ec_c25519_m31.c +800 -0
  265. package/runtime/third_party/bearssl/src/ec/ec_c25519_m62.c +605 -0
  266. package/runtime/third_party/bearssl/src/ec/ec_c25519_m64.c +831 -0
  267. package/runtime/third_party/bearssl/src/ec/ec_curve25519.c +46 -0
  268. package/runtime/third_party/bearssl/src/ec/ec_default.c +36 -0
  269. package/runtime/third_party/bearssl/src/ec/ec_keygen.c +86 -0
  270. package/runtime/third_party/bearssl/src/ec/ec_p256_m15.c +2124 -0
  271. package/runtime/third_party/bearssl/src/ec/ec_p256_m31.c +1469 -0
  272. package/runtime/third_party/bearssl/src/ec/ec_p256_m62.c +1765 -0
  273. package/runtime/third_party/bearssl/src/ec/ec_p256_m64.c +1781 -0
  274. package/runtime/third_party/bearssl/src/ec/ec_prime_i15.c +824 -0
  275. package/runtime/third_party/bearssl/src/ec/ec_prime_i31.c +826 -0
  276. package/runtime/third_party/bearssl/src/ec/ec_pubkey.c +85 -0
  277. package/runtime/third_party/bearssl/src/ec/ec_secp256r1.c +51 -0
  278. package/runtime/third_party/bearssl/src/ec/ec_secp384r1.c +57 -0
  279. package/runtime/third_party/bearssl/src/ec/ec_secp521r1.c +64 -0
  280. package/runtime/third_party/bearssl/src/ec/ecdsa_atr.c +134 -0
  281. package/runtime/third_party/bearssl/src/ec/ecdsa_default_sign_asn1.c +36 -0
  282. package/runtime/third_party/bearssl/src/ec/ecdsa_default_sign_raw.c +36 -0
  283. package/runtime/third_party/bearssl/src/ec/ecdsa_default_vrfy_asn1.c +36 -0
  284. package/runtime/third_party/bearssl/src/ec/ecdsa_default_vrfy_raw.c +36 -0
  285. package/runtime/third_party/bearssl/src/ec/ecdsa_i15_bits.c +47 -0
  286. package/runtime/third_party/bearssl/src/ec/ecdsa_i15_sign_asn1.c +45 -0
  287. package/runtime/third_party/bearssl/src/ec/ecdsa_i15_sign_raw.c +174 -0
  288. package/runtime/third_party/bearssl/src/ec/ecdsa_i15_vrfy_asn1.c +48 -0
  289. package/runtime/third_party/bearssl/src/ec/ecdsa_i15_vrfy_raw.c +166 -0
  290. package/runtime/third_party/bearssl/src/ec/ecdsa_i31_bits.c +47 -0
  291. package/runtime/third_party/bearssl/src/ec/ecdsa_i31_sign_asn1.c +45 -0
  292. package/runtime/third_party/bearssl/src/ec/ecdsa_i31_sign_raw.c +173 -0
  293. package/runtime/third_party/bearssl/src/ec/ecdsa_i31_vrfy_asn1.c +48 -0
  294. package/runtime/third_party/bearssl/src/ec/ecdsa_i31_vrfy_raw.c +165 -0
  295. package/runtime/third_party/bearssl/src/ec/ecdsa_rta.c +121 -0
  296. package/runtime/third_party/bearssl/src/hash/dig_oid.c +84 -0
  297. package/runtime/third_party/bearssl/src/hash/dig_size.c +50 -0
  298. package/runtime/third_party/bearssl/src/hash/ghash_ctmul.c +345 -0
  299. package/runtime/third_party/bearssl/src/hash/ghash_ctmul32.c +251 -0
  300. package/runtime/third_party/bearssl/src/hash/ghash_ctmul64.c +154 -0
  301. package/runtime/third_party/bearssl/src/hash/ghash_pclmul.c +389 -0
  302. package/runtime/third_party/bearssl/src/hash/ghash_pwr8.c +411 -0
  303. package/runtime/third_party/bearssl/src/hash/md5.c +208 -0
  304. package/runtime/third_party/bearssl/src/hash/md5sha1.c +141 -0
  305. package/runtime/third_party/bearssl/src/hash/mgf1.c +56 -0
  306. package/runtime/third_party/bearssl/src/hash/multihash.c +166 -0
  307. package/runtime/third_party/bearssl/src/hash/sha1.c +191 -0
  308. package/runtime/third_party/bearssl/src/hash/sha2big.c +285 -0
  309. package/runtime/third_party/bearssl/src/hash/sha2small.c +341 -0
  310. package/runtime/third_party/bearssl/src/inner.h +2577 -0
  311. package/runtime/third_party/bearssl/src/int/i15_add.c +46 -0
  312. package/runtime/third_party/bearssl/src/int/i15_bitlen.c +44 -0
  313. package/runtime/third_party/bearssl/src/int/i15_decmod.c +124 -0
  314. package/runtime/third_party/bearssl/src/int/i15_decode.c +56 -0
  315. package/runtime/third_party/bearssl/src/int/i15_decred.c +100 -0
  316. package/runtime/third_party/bearssl/src/int/i15_encode.c +56 -0
  317. package/runtime/third_party/bearssl/src/int/i15_fmont.c +59 -0
  318. package/runtime/third_party/bearssl/src/int/i15_iszero.c +39 -0
  319. package/runtime/third_party/bearssl/src/int/i15_moddiv.c +465 -0
  320. package/runtime/third_party/bearssl/src/int/i15_modpow.c +50 -0
  321. package/runtime/third_party/bearssl/src/int/i15_modpow2.c +160 -0
  322. package/runtime/third_party/bearssl/src/int/i15_montmul.c +184 -0
  323. package/runtime/third_party/bearssl/src/int/i15_mulacc.c +61 -0
  324. package/runtime/third_party/bearssl/src/int/i15_muladd.c +173 -0
  325. package/runtime/third_party/bearssl/src/int/i15_ninv15.c +38 -0
  326. package/runtime/third_party/bearssl/src/int/i15_reduce.c +66 -0
  327. package/runtime/third_party/bearssl/src/int/i15_rshift.c +47 -0
  328. package/runtime/third_party/bearssl/src/int/i15_sub.c +46 -0
  329. package/runtime/third_party/bearssl/src/int/i15_tmont.c +36 -0
  330. package/runtime/third_party/bearssl/src/int/i31_add.c +46 -0
  331. package/runtime/third_party/bearssl/src/int/i31_bitlen.c +44 -0
  332. package/runtime/third_party/bearssl/src/int/i31_decmod.c +124 -0
  333. package/runtime/third_party/bearssl/src/int/i31_decode.c +57 -0
  334. package/runtime/third_party/bearssl/src/int/i31_decred.c +103 -0
  335. package/runtime/third_party/bearssl/src/int/i31_encode.c +79 -0
  336. package/runtime/third_party/bearssl/src/int/i31_fmont.c +60 -0
  337. package/runtime/third_party/bearssl/src/int/i31_iszero.c +39 -0
  338. package/runtime/third_party/bearssl/src/int/i31_moddiv.c +488 -0
  339. package/runtime/third_party/bearssl/src/int/i31_modpow.c +65 -0
  340. package/runtime/third_party/bearssl/src/int/i31_modpow2.c +160 -0
  341. package/runtime/third_party/bearssl/src/int/i31_montmul.c +127 -0
  342. package/runtime/third_party/bearssl/src/int/i31_mulacc.c +74 -0
  343. package/runtime/third_party/bearssl/src/int/i31_muladd.c +157 -0
  344. package/runtime/third_party/bearssl/src/int/i31_ninv31.c +39 -0
  345. package/runtime/third_party/bearssl/src/int/i31_reduce.c +66 -0
  346. package/runtime/third_party/bearssl/src/int/i31_rshift.c +47 -0
  347. package/runtime/third_party/bearssl/src/int/i31_sub.c +46 -0
  348. package/runtime/third_party/bearssl/src/int/i31_tmont.c +36 -0
  349. package/runtime/third_party/bearssl/src/int/i32_add.c +51 -0
  350. package/runtime/third_party/bearssl/src/int/i32_bitlen.c +44 -0
  351. package/runtime/third_party/bearssl/src/int/i32_decmod.c +77 -0
  352. package/runtime/third_party/bearssl/src/int/i32_decode.c +63 -0
  353. package/runtime/third_party/bearssl/src/int/i32_decred.c +107 -0
  354. package/runtime/third_party/bearssl/src/int/i32_div32.c +56 -0
  355. package/runtime/third_party/bearssl/src/int/i32_encode.c +72 -0
  356. package/runtime/third_party/bearssl/src/int/i32_fmont.c +60 -0
  357. package/runtime/third_party/bearssl/src/int/i32_iszero.c +39 -0
  358. package/runtime/third_party/bearssl/src/int/i32_modpow.c +65 -0
  359. package/runtime/third_party/bearssl/src/int/i32_montmul.c +69 -0
  360. package/runtime/third_party/bearssl/src/int/i32_mulacc.c +56 -0
  361. package/runtime/third_party/bearssl/src/int/i32_muladd.c +138 -0
  362. package/runtime/third_party/bearssl/src/int/i32_ninv32.c +39 -0
  363. package/runtime/third_party/bearssl/src/int/i32_reduce.c +66 -0
  364. package/runtime/third_party/bearssl/src/int/i32_sub.c +51 -0
  365. package/runtime/third_party/bearssl/src/int/i32_tmont.c +36 -0
  366. package/runtime/third_party/bearssl/src/int/i62_modpow2.c +493 -0
  367. package/runtime/third_party/bearssl/src/kdf/hkdf.c +107 -0
  368. package/runtime/third_party/bearssl/src/kdf/shake.c +590 -0
  369. package/runtime/third_party/bearssl/src/mac/hmac.c +122 -0
  370. package/runtime/third_party/bearssl/src/mac/hmac_ct.c +193 -0
  371. package/runtime/third_party/bearssl/src/rand/aesctr_drbg.c +206 -0
  372. package/runtime/third_party/bearssl/src/rand/hmac_drbg.c +157 -0
  373. package/runtime/third_party/bearssl/src/rand/sysrng.c +252 -0
  374. package/runtime/third_party/bearssl/src/rsa/rsa_default_keygen.c +38 -0
  375. package/runtime/third_party/bearssl/src/rsa/rsa_default_modulus.c +36 -0
  376. package/runtime/third_party/bearssl/src/rsa/rsa_default_oaep_decrypt.c +38 -0
  377. package/runtime/third_party/bearssl/src/rsa/rsa_default_oaep_encrypt.c +38 -0
  378. package/runtime/third_party/bearssl/src/rsa/rsa_default_pkcs1_sign.c +38 -0
  379. package/runtime/third_party/bearssl/src/rsa/rsa_default_pkcs1_vrfy.c +38 -0
  380. package/runtime/third_party/bearssl/src/rsa/rsa_default_priv.c +38 -0
  381. package/runtime/third_party/bearssl/src/rsa/rsa_default_privexp.c +36 -0
  382. package/runtime/third_party/bearssl/src/rsa/rsa_default_pss_sign.c +38 -0
  383. package/runtime/third_party/bearssl/src/rsa/rsa_default_pss_vrfy.c +38 -0
  384. package/runtime/third_party/bearssl/src/rsa/rsa_default_pub.c +38 -0
  385. package/runtime/third_party/bearssl/src/rsa/rsa_default_pubexp.c +36 -0
  386. package/runtime/third_party/bearssl/src/rsa/rsa_i15_keygen.c +583 -0
  387. package/runtime/third_party/bearssl/src/rsa/rsa_i15_modulus.c +99 -0
  388. package/runtime/third_party/bearssl/src/rsa/rsa_i15_oaep_decrypt.c +41 -0
  389. package/runtime/third_party/bearssl/src/rsa/rsa_i15_oaep_encrypt.c +44 -0
  390. package/runtime/third_party/bearssl/src/rsa/rsa_i15_pkcs1_sign.c +37 -0
  391. package/runtime/third_party/bearssl/src/rsa/rsa_i15_pkcs1_vrfy.c +43 -0
  392. package/runtime/third_party/bearssl/src/rsa/rsa_i15_priv.c +209 -0
  393. package/runtime/third_party/bearssl/src/rsa/rsa_i15_privexp.c +320 -0
  394. package/runtime/third_party/bearssl/src/rsa/rsa_i15_pss_sign.c +40 -0
  395. package/runtime/third_party/bearssl/src/rsa/rsa_i15_pss_vrfy.c +44 -0
  396. package/runtime/third_party/bearssl/src/rsa/rsa_i15_pub.c +113 -0
  397. package/runtime/third_party/bearssl/src/rsa/rsa_i15_pubexp.c +152 -0
  398. package/runtime/third_party/bearssl/src/rsa/rsa_i31_keygen.c +37 -0
  399. package/runtime/third_party/bearssl/src/rsa/rsa_i31_keygen_inner.c +608 -0
  400. package/runtime/third_party/bearssl/src/rsa/rsa_i31_modulus.c +99 -0
  401. package/runtime/third_party/bearssl/src/rsa/rsa_i31_oaep_decrypt.c +41 -0
  402. package/runtime/third_party/bearssl/src/rsa/rsa_i31_oaep_encrypt.c +44 -0
  403. package/runtime/third_party/bearssl/src/rsa/rsa_i31_pkcs1_sign.c +37 -0
  404. package/runtime/third_party/bearssl/src/rsa/rsa_i31_pkcs1_vrfy.c +43 -0
  405. package/runtime/third_party/bearssl/src/rsa/rsa_i31_priv.c +203 -0
  406. package/runtime/third_party/bearssl/src/rsa/rsa_i31_privexp.c +318 -0
  407. package/runtime/third_party/bearssl/src/rsa/rsa_i31_pss_sign.c +40 -0
  408. package/runtime/third_party/bearssl/src/rsa/rsa_i31_pss_vrfy.c +44 -0
  409. package/runtime/third_party/bearssl/src/rsa/rsa_i31_pub.c +106 -0
  410. package/runtime/third_party/bearssl/src/rsa/rsa_i31_pubexp.c +152 -0
  411. package/runtime/third_party/bearssl/src/rsa/rsa_i32_oaep_decrypt.c +41 -0
  412. package/runtime/third_party/bearssl/src/rsa/rsa_i32_oaep_encrypt.c +44 -0
  413. package/runtime/third_party/bearssl/src/rsa/rsa_i32_pkcs1_sign.c +37 -0
  414. package/runtime/third_party/bearssl/src/rsa/rsa_i32_pkcs1_vrfy.c +43 -0
  415. package/runtime/third_party/bearssl/src/rsa/rsa_i32_priv.c +160 -0
  416. package/runtime/third_party/bearssl/src/rsa/rsa_i32_pss_sign.c +40 -0
  417. package/runtime/third_party/bearssl/src/rsa/rsa_i32_pss_vrfy.c +44 -0
  418. package/runtime/third_party/bearssl/src/rsa/rsa_i32_pub.c +77 -0
  419. package/runtime/third_party/bearssl/src/rsa/rsa_i62_keygen.c +57 -0
  420. package/runtime/third_party/bearssl/src/rsa/rsa_i62_oaep_decrypt.c +61 -0
  421. package/runtime/third_party/bearssl/src/rsa/rsa_i62_oaep_encrypt.c +64 -0
  422. package/runtime/third_party/bearssl/src/rsa/rsa_i62_pkcs1_sign.c +57 -0
  423. package/runtime/third_party/bearssl/src/rsa/rsa_i62_pkcs1_vrfy.c +63 -0
  424. package/runtime/third_party/bearssl/src/rsa/rsa_i62_priv.c +223 -0
  425. package/runtime/third_party/bearssl/src/rsa/rsa_i62_pss_sign.c +60 -0
  426. package/runtime/third_party/bearssl/src/rsa/rsa_i62_pss_vrfy.c +64 -0
  427. package/runtime/third_party/bearssl/src/rsa/rsa_i62_pub.c +125 -0
  428. package/runtime/third_party/bearssl/src/rsa/rsa_oaep_pad.c +112 -0
  429. package/runtime/third_party/bearssl/src/rsa/rsa_oaep_unpad.c +145 -0
  430. package/runtime/third_party/bearssl/src/rsa/rsa_pkcs1_sig_pad.c +100 -0
  431. package/runtime/third_party/bearssl/src/rsa/rsa_pkcs1_sig_unpad.c +121 -0
  432. package/runtime/third_party/bearssl/src/rsa/rsa_pss_sig_pad.c +106 -0
  433. package/runtime/third_party/bearssl/src/rsa/rsa_pss_sig_unpad.c +121 -0
  434. package/runtime/third_party/bearssl/src/rsa/rsa_ssl_decrypt.c +52 -0
  435. package/runtime/third_party/bearssl/src/settings.c +306 -0
  436. package/runtime/third_party/bearssl/src/symcipher/aes_big_cbcdec.c +69 -0
  437. package/runtime/third_party/bearssl/src/symcipher/aes_big_cbcenc.c +67 -0
  438. package/runtime/third_party/bearssl/src/symcipher/aes_big_ctr.c +84 -0
  439. package/runtime/third_party/bearssl/src/symcipher/aes_big_ctrcbc.c +142 -0
  440. package/runtime/third_party/bearssl/src/symcipher/aes_big_dec.c +254 -0
  441. package/runtime/third_party/bearssl/src/symcipher/aes_big_enc.c +157 -0
  442. package/runtime/third_party/bearssl/src/symcipher/aes_common.c +112 -0
  443. package/runtime/third_party/bearssl/src/symcipher/aes_ct.c +328 -0
  444. package/runtime/third_party/bearssl/src/symcipher/aes_ct64.c +398 -0
  445. package/runtime/third_party/bearssl/src/symcipher/aes_ct64_cbcdec.c +104 -0
  446. package/runtime/third_party/bearssl/src/symcipher/aes_ct64_cbcenc.c +81 -0
  447. package/runtime/third_party/bearssl/src/symcipher/aes_ct64_ctr.c +114 -0
  448. package/runtime/third_party/bearssl/src/symcipher/aes_ct64_ctrcbc.c +433 -0
  449. package/runtime/third_party/bearssl/src/symcipher/aes_ct64_dec.c +159 -0
  450. package/runtime/third_party/bearssl/src/symcipher/aes_ct64_enc.c +115 -0
  451. package/runtime/third_party/bearssl/src/symcipher/aes_ct_cbcdec.c +111 -0
  452. package/runtime/third_party/bearssl/src/symcipher/aes_ct_cbcenc.c +91 -0
  453. package/runtime/third_party/bearssl/src/symcipher/aes_ct_ctr.c +116 -0
  454. package/runtime/third_party/bearssl/src/symcipher/aes_ct_ctrcbc.c +422 -0
  455. package/runtime/third_party/bearssl/src/symcipher/aes_ct_dec.c +170 -0
  456. package/runtime/third_party/bearssl/src/symcipher/aes_ct_enc.c +112 -0
  457. package/runtime/third_party/bearssl/src/symcipher/aes_pwr8.c +445 -0
  458. package/runtime/third_party/bearssl/src/symcipher/aes_pwr8_cbcdec.c +670 -0
  459. package/runtime/third_party/bearssl/src/symcipher/aes_pwr8_cbcenc.c +417 -0
  460. package/runtime/third_party/bearssl/src/symcipher/aes_pwr8_ctr.c +717 -0
  461. package/runtime/third_party/bearssl/src/symcipher/aes_pwr8_ctrcbc.c +946 -0
  462. package/runtime/third_party/bearssl/src/symcipher/aes_small_cbcdec.c +69 -0
  463. package/runtime/third_party/bearssl/src/symcipher/aes_small_cbcenc.c +67 -0
  464. package/runtime/third_party/bearssl/src/symcipher/aes_small_ctr.c +84 -0
  465. package/runtime/third_party/bearssl/src/symcipher/aes_small_ctrcbc.c +142 -0
  466. package/runtime/third_party/bearssl/src/symcipher/aes_small_dec.c +176 -0
  467. package/runtime/third_party/bearssl/src/symcipher/aes_small_enc.c +129 -0
  468. package/runtime/third_party/bearssl/src/symcipher/aes_x86ni.c +240 -0
  469. package/runtime/third_party/bearssl/src/symcipher/aes_x86ni_cbcdec.c +223 -0
  470. package/runtime/third_party/bearssl/src/symcipher/aes_x86ni_cbcenc.c +122 -0
  471. package/runtime/third_party/bearssl/src/symcipher/aes_x86ni_ctr.c +211 -0
  472. package/runtime/third_party/bearssl/src/symcipher/aes_x86ni_ctrcbc.c +596 -0
  473. package/runtime/third_party/bearssl/src/symcipher/chacha20_ct.c +106 -0
  474. package/runtime/third_party/bearssl/src/symcipher/chacha20_sse2.c +237 -0
  475. package/runtime/third_party/bearssl/src/symcipher/des_ct.c +411 -0
  476. package/runtime/third_party/bearssl/src/symcipher/des_ct_cbcdec.c +87 -0
  477. package/runtime/third_party/bearssl/src/symcipher/des_ct_cbcenc.c +69 -0
  478. package/runtime/third_party/bearssl/src/symcipher/des_support.c +166 -0
  479. package/runtime/third_party/bearssl/src/symcipher/des_tab.c +310 -0
  480. package/runtime/third_party/bearssl/src/symcipher/des_tab_cbcdec.c +85 -0
  481. package/runtime/third_party/bearssl/src/symcipher/des_tab_cbcenc.c +67 -0
  482. package/runtime/third_party/bearssl/src/symcipher/poly1305_ctmul.c +260 -0
  483. package/runtime/third_party/bearssl/src/symcipher/poly1305_ctmul32.c +297 -0
  484. package/runtime/third_party/bearssl/src/symcipher/poly1305_ctmulq.c +475 -0
  485. package/runtime/third_party/bearssl/src/symcipher/poly1305_i15.c +221 -0
  486. package/runtime/third_party/bearssl/src/x509/asn1.t0 +757 -0
  487. package/runtime/third_party/bearssl/src/x509/asn1enc.c +93 -0
  488. package/runtime/third_party/bearssl/src/x509/encode_ec_pk8der.c +110 -0
  489. package/runtime/third_party/bearssl/src/x509/encode_ec_rawder.c +161 -0
  490. package/runtime/third_party/bearssl/src/x509/encode_rsa_pk8der.c +97 -0
  491. package/runtime/third_party/bearssl/src/x509/encode_rsa_rawder.c +96 -0
  492. package/runtime/third_party/bearssl/src/x509/skey_decoder.c +653 -0
  493. package/runtime/third_party/bearssl/src/x509/skey_decoder.t0 +376 -0
  494. package/runtime/third_party/bearssl/src/x509/x509_decoder.c +776 -0
  495. package/runtime/third_party/bearssl/src/x509/x509_decoder.t0 +324 -0
  496. package/runtime/third_party/bearssl/src/x509/x509_knownkey.c +105 -0
  497. package/runtime/third_party/bearssl/src/x509/x509_minimal.c +1722 -0
  498. package/runtime/third_party/bearssl/src/x509/x509_minimal.t0 +1526 -0
  499. package/runtime/third_party/bearssl/src/x509/x509_minimal_full.c +59 -0
  500. package/runtime/third_party/quickjs-dtoa/LICENSE +22 -0
  501. package/runtime/third_party/quickjs-dtoa/README.md +23 -0
  502. package/runtime/third_party/quickjs-dtoa/dtoa.c +1640 -0
  503. package/runtime/third_party/quickjs-dtoa/dtoa.h +83 -0
  504. package/runtime/third_party/quickjs-dtoa/dtoa_compat.h +89 -0
  505. package/runtime/third_party/quickjs-regexp/LICENSE +22 -0
  506. package/runtime/third_party/quickjs-regexp/README.md +22 -0
  507. package/runtime/third_party/quickjs-regexp/cutils.c +641 -0
  508. package/runtime/third_party/quickjs-regexp/cutils.h +457 -0
  509. package/runtime/third_party/quickjs-regexp/libregexp-opcode.h +73 -0
  510. package/runtime/third_party/quickjs-regexp/libregexp.c +3448 -0
  511. package/runtime/third_party/quickjs-regexp/libregexp.h +65 -0
  512. package/runtime/third_party/quickjs-regexp/libunicode-table.h +5206 -0
  513. package/runtime/third_party/quickjs-regexp/libunicode.c +2124 -0
  514. package/runtime/third_party/quickjs-regexp/libunicode.h +196 -0
  515. package/runtime/third_party/v8-ieee754/LICENSE +61 -0
  516. package/runtime/third_party/v8-ieee754/README.md +22 -0
  517. package/runtime/third_party/v8-ieee754/convert.py +84 -0
  518. package/runtime/third_party/v8-ieee754/ieee754.c +3030 -0
  519. package/runtime/third_party/v8-ieee754/ieee754.h +27 -0
  520. package/runtime/tools/regexp_compile.c +90 -0
@@ -0,0 +1,118 @@
1
+ // node:crypto's random numbers (ADR 0018): Node's lib/internal/crypto/random.js over the
2
+ // runtime's CSPRNG (an HMAC_DRBG seeded from the system). The asynchronous forms fill at the
3
+ // call and call back from a timer, where Node's thread pool would.
4
+ import { cryptoHostRandomUUID, cryptoRandomFill } from "visaljs:host";
5
+ import { invalidArgType, outOfRange, validateFunction } from "../errors.js";
6
+ import { isAnyArrayBuffer, isArrayBufferView, validateBoolean, validateNumber, validateObject } from "./util.js";
7
+
8
+ const kMaxPossibleLength = 2147483647;
9
+ const later = (fn) => setTimeout(fn, 0);
10
+
11
+ function assertOffset(offset, elementSize, length) {
12
+ validateNumber(offset, "offset");
13
+ offset *= elementSize;
14
+ const maxLength = Math.min(length, kMaxPossibleLength);
15
+ if (Number.isNaN(offset) || offset > maxLength || offset < 0) throw outOfRange("offset", `>= 0 && <= ${maxLength}`, offset);
16
+ return offset >>> 0;
17
+ }
18
+
19
+ function assertSize(size, elementSize, offset, length) {
20
+ validateNumber(size, "size");
21
+ size *= elementSize;
22
+ if (Number.isNaN(size) || size > kMaxPossibleLength || size < 0) throw outOfRange("size", `>= 0 && <= ${kMaxPossibleLength}`, size);
23
+ if (size + offset > length) throw outOfRange("size + offset", `<= ${length}`, size + offset);
24
+ return size >>> 0;
25
+ }
26
+
27
+ function validateBuf(buf) {
28
+ if (!isAnyArrayBuffer(buf) && !isArrayBufferView(buf)) throw invalidArgType("buf", "an instance of ArrayBuffer or ArrayBufferView", buf);
29
+ }
30
+
31
+ export function randomBytes(size, callback) {
32
+ size = assertSize(size, 1, 0, Infinity);
33
+ if (callback !== undefined) validateFunction(callback, "callback");
34
+ const buf = Buffer.alloc(size);
35
+ cryptoRandomFill(buf, 0, size);
36
+ if (callback === undefined) return buf;
37
+ later(() => callback(null, buf));
38
+ }
39
+
40
+ export function randomFillSync(buf, offset = 0, size) {
41
+ validateBuf(buf);
42
+ const elementSize = buf.BYTES_PER_ELEMENT || 1;
43
+ offset = assertOffset(offset, elementSize, buf.byteLength);
44
+ if (size === undefined) size = buf.byteLength - offset;
45
+ else size = assertSize(size, elementSize, offset, buf.byteLength);
46
+ if (size === 0) return buf;
47
+ cryptoRandomFill(buf, offset, size);
48
+ return buf;
49
+ }
50
+
51
+ export function randomFill(buf, offset, size, callback) {
52
+ validateBuf(buf);
53
+ const elementSize = buf.BYTES_PER_ELEMENT || 1;
54
+ if (typeof offset === "function") {
55
+ callback = offset;
56
+ offset = 0;
57
+ size = buf.byteLength;
58
+ } else if (typeof size === "function") {
59
+ validateNumber(offset, "offset");
60
+ offset *= elementSize;
61
+ callback = size;
62
+ size = buf.byteLength - offset;
63
+ } else {
64
+ validateFunction(callback, "callback");
65
+ }
66
+ offset = assertOffset(offset, 1, buf.byteLength);
67
+ if (size === undefined) size = buf.byteLength - offset;
68
+ else size = assertSize(size, elementSize, offset, buf.byteLength);
69
+ if (size === 0) {
70
+ callback(null, buf);
71
+ return;
72
+ }
73
+ cryptoRandomFill(buf, offset, size);
74
+ later(() => callback(null, buf));
75
+ }
76
+
77
+ /* randomInt: 6 random bytes per attempt, from a cache, as Node draws them */
78
+ const RAND_MAX = 0xffffffffffff;
79
+ const randomCache = Buffer.alloc(6 * 1024);
80
+ let randomCacheOffset = randomCache.length;
81
+
82
+ export function randomInt(min, max, callback) {
83
+ const minNotSpecified = typeof max === "undefined" || typeof max === "function";
84
+ if (minNotSpecified) {
85
+ callback = max;
86
+ max = min;
87
+ min = 0;
88
+ }
89
+ const isSync = typeof callback === "undefined";
90
+ if (!isSync) validateFunction(callback, "callback");
91
+ if (!Number.isSafeInteger(min)) throw invalidArgType("min", "a safe integer", min);
92
+ if (!Number.isSafeInteger(max)) throw invalidArgType("max", "a safe integer", max);
93
+ if (max <= min) throw outOfRange("max", `greater than the value of "min" (${min})`, max);
94
+ const range = max - min;
95
+ if (!(range <= RAND_MAX)) throw outOfRange(`max${minNotSpecified ? "" : " - min"}`, `<= ${RAND_MAX}`, range);
96
+ const randLimit = RAND_MAX - (RAND_MAX % range);
97
+ for (;;) {
98
+ if (randomCacheOffset === randomCache.length) {
99
+ cryptoRandomFill(randomCache, 0, randomCache.length);
100
+ randomCacheOffset = 0;
101
+ }
102
+ const x = randomCache.readUIntBE(randomCacheOffset, 6);
103
+ randomCacheOffset += 6;
104
+ if (x < randLimit) {
105
+ const n = (x % range) + min;
106
+ if (isSync) return n;
107
+ process.nextTick(callback, undefined, n);
108
+ return;
109
+ }
110
+ }
111
+ }
112
+
113
+ export function randomUUID(options) {
114
+ if (options !== undefined) validateObject(options, "options");
115
+ const { disableEntropyCache = false } = options || {};
116
+ validateBoolean(disableEntropyCache, "options.disableEntropyCache");
117
+ return cryptoHostRandomUUID();
118
+ }
@@ -0,0 +1,76 @@
1
+ // What node:crypto's parts share (ADR 0018): argument checks with Node's errors, encodings
2
+ // through Buffer, and LazyTransform, the stream base of Hash, Hmac and the ciphers (a Transform
3
+ // set up only when a stream property is first used, as Node's is).
4
+ import { Transform } from "../../stream.js";
5
+ import { codeError, invalidArgType } from "../errors.js";
6
+
7
+ export const kHandle = Symbol("kHandle");
8
+ export const kState = Symbol("kState");
9
+ export const kFinalized = Symbol("kFinalized");
10
+
11
+ export const isArrayBufferView = (v) => ArrayBuffer.isView(v);
12
+ export const isAnyArrayBuffer = (v) => v instanceof ArrayBuffer || (typeof SharedArrayBuffer === "function" && v instanceof SharedArrayBuffer);
13
+
14
+ /** An encoding Node's C++ takes (ParseEncoding): its Buffer name, or undefined ("buffer" too). */
15
+ export function bufferEncoding(enc) {
16
+ if (typeof enc !== "string" || enc.toLowerCase() === "buffer") return undefined;
17
+ return Buffer.isEncoding(enc) ? enc : undefined;
18
+ }
19
+
20
+ /** Bytes as Node returns them: a string in `enc`, or the Buffer. */
21
+ export function encodeOutput(buf, enc) {
22
+ const e = bufferEncoding(enc);
23
+ return e === undefined ? buf : buf.toString(e);
24
+ }
25
+
26
+ /** A string's bytes in an encoding (UTF-8 for none or an unknown one), as Node's C++ reads them. */
27
+ export function stringBytes(data, enc) {
28
+ const e = bufferEncoding(enc);
29
+ return e === undefined || e === "utf8" || e === "utf-8" ? data : Buffer.from(data, e);
30
+ }
31
+
32
+ /** validateEncoding: hex data must have an even length. */
33
+ export function validateEncoding(data, enc) {
34
+ if (typeof enc === "string" && enc.toLowerCase() === "hex" && data.length % 2 !== 0) {
35
+ throw codeError(TypeError, "ERR_INVALID_ARG_VALUE", "The argument 'encoding' is invalid for data of length " + data.length + ". Received '" + enc + "'");
36
+ }
37
+ }
38
+
39
+ export function validateObject(value, name) {
40
+ if (value === null || typeof value !== "object") throw invalidArgType(name, "of type object", value);
41
+ }
42
+
43
+ export function validateBoolean(value, name) {
44
+ if (typeof value !== "boolean") throw invalidArgType(name, "of type boolean", value);
45
+ }
46
+
47
+ export function validateNumber(value, name) {
48
+ if (typeof value !== "number") throw invalidArgType(name, "of type number", value);
49
+ }
50
+
51
+ /* ---- LazyTransform ------------------------------------------------------------------------------ */
52
+
53
+ export function LazyTransform(options) {
54
+ this._options = options;
55
+ }
56
+ Object.setPrototypeOf(LazyTransform.prototype, Transform.prototype);
57
+ Object.setPrototypeOf(LazyTransform, Transform);
58
+
59
+ function makeGetter(name) {
60
+ return function () {
61
+ Transform.call(this, this._options);
62
+ this._writableState.decodeStrings = false;
63
+ if (!this._options || !this._options.defaultEncoding) this._writableState.defaultEncoding = "buffer";
64
+ return this[name];
65
+ };
66
+ }
67
+
68
+ function makeSetter(name) {
69
+ return function (val) {
70
+ Object.defineProperty(this, name, { value: val, enumerable: true, configurable: true, writable: true });
71
+ };
72
+ }
73
+
74
+ for (const name of ["_readableState", "_writableState", "_transformState"]) {
75
+ Object.defineProperty(LazyTransform.prototype, name, { get: makeGetter(name), set: makeSetter(name), configurable: true, enumerable: true });
76
+ }
@@ -0,0 +1,88 @@
1
+ // Node's error shapes (ADR 0012): argument errors with a `code`, and system errors built
2
+ // from the -errno that host primitives return.
3
+ import { errnoMessage, errnoName, utilInspect } from "visaljs:host";
4
+
5
+ /** How Node describes a bad argument: "Received type number (1)", "Received undefined", … */
6
+ function received(value) {
7
+ if (value == null) return " Received " + value;
8
+ if (typeof value === "function") return " Received function " + (value.name || "<anonymous>");
9
+ if (typeof value === "object") {
10
+ const ctor = value.constructor;
11
+ return ctor && ctor.name ? " Received an instance of " + ctor.name : " Received " + String(value);
12
+ }
13
+ let shown = typeof value === "string" ? "'" + value + "'" : String(value);
14
+ if (shown.length > 28) shown = shown.slice(0, 25) + "...";
15
+ return " Received type " + typeof value + " (" + shown + ")";
16
+ }
17
+
18
+ function withCode(error, code) {
19
+ Object.defineProperty(error, "code", { value: code, writable: true, enumerable: true, configurable: true });
20
+ return error;
21
+ }
22
+
23
+ /** An error of class Ctor with Node's `code`: codeError(TypeError, "ERR_X", "message"). */
24
+ export function codeError(Ctor, code, message) {
25
+ return withCode(new Ctor(message), code);
26
+ }
27
+
28
+ /** ERR_INVALID_ARG_TYPE: `The "path" argument must be of type string. Received …` (a dotted
29
+ * name is a property: `The "options.encoding" property must be …`). */
30
+ export function invalidArgType(name, expected, value) {
31
+ const what = name.indexOf(".") !== -1 ? "property" : "argument";
32
+ return withCode(new TypeError("The \"" + name + "\" " + what + " must be " + expected + "." + received(value)), "ERR_INVALID_ARG_TYPE");
33
+ }
34
+
35
+ /** ERR_INVALID_ARG_VALUE: `The argument 'path' must be a string without null bytes. Received …`
36
+ * (a dotted name is a property; the value as util.inspect shows it). */
37
+ export function invalidArgValue(name, reason, value) {
38
+ const what = name.indexOf(".") !== -1 ? "property" : "argument";
39
+ return withCode(new TypeError("The " + what + " '" + name + "' " + reason + ". Received " + utilInspect(value)), "ERR_INVALID_ARG_VALUE");
40
+ }
41
+
42
+ /** A feature of the Node API that visaljs doesn't provide yet. */
43
+ export function notSupported(what) {
44
+ return withCode(new Error(what + " is not supported by visaljs yet"), "ERR_VISALJS_UNSUPPORTED");
45
+ }
46
+
47
+ /** A failed system call: `ENOENT: no such file or directory, open 'x'`, with errno, code,
48
+ * syscall and path, as Node's uvException builds it. */
49
+ export function systemError(errno, syscall, path) {
50
+ const code = errnoName(errno);
51
+ const error = new Error(code + ": " + errnoMessage(errno) + ", " + syscall + (path === undefined ? "" : " '" + path + "'"));
52
+ error.errno = errno;
53
+ error.code = code;
54
+ error.syscall = syscall;
55
+ if (path !== undefined) error.path = path;
56
+ return error;
57
+ }
58
+
59
+ export function validateString(value, name) {
60
+ if (typeof value !== "string") throw invalidArgType(name, "of type string", value);
61
+ }
62
+
63
+ /** 1_000_000_000_000: Node's separators for large integers in messages. */
64
+ function separated(digits) {
65
+ let out = "";
66
+ let i = digits.length;
67
+ const start = digits[0] === "-" ? 1 : 0;
68
+ for (; i >= start + 4; i -= 3) out = "_" + digits.slice(i - 3, i) + out;
69
+ return digits.slice(0, i) + out;
70
+ }
71
+
72
+ /** ERR_OUT_OF_RANGE: `The value of "code" is out of range. It must be an integer. Received 1.5` */
73
+ export function outOfRange(name, range, value) {
74
+ let shown;
75
+ if (Number.isInteger(value) && Math.abs(value) > 2 ** 32) shown = separated(String(value));
76
+ else if (typeof value === "bigint") shown = String(value) + "n"; /* no BigInt literal here: it would link BigInt into every program */
77
+ else shown = utilInspect(value);
78
+ return withCode(new RangeError("The value of \"" + name + "\" is out of range. It must be " + range + ". Received " + shown), "ERR_OUT_OF_RANGE");
79
+ }
80
+
81
+ export function validateInteger(value, name) {
82
+ if (typeof value !== "number") throw invalidArgType(name, "of type number", value);
83
+ if (value !== value || value === Infinity || value === -Infinity || value % 1 !== 0) throw outOfRange(name, "an integer", value);
84
+ }
85
+
86
+ export function validateFunction(value, name) {
87
+ if (typeof value !== "function") throw invalidArgType(name, "of type function", value);
88
+ }
@@ -0,0 +1,105 @@
1
+ // Node's lib/internal/querystring.js (v22.22.2; Copyright Node.js contributors, MIT), ported to the
2
+ // host prelude: the percent-encoding querystring and the url module share.
3
+ import { codeError } from "./errors.js";
4
+
5
+ const invalidUri = () => codeError(URIError, "ERR_INVALID_URI", "URI malformed");
6
+
7
+ export const hexTable = new Array(256);
8
+ for (let i = 0; i < 256; ++i)
9
+ hexTable[i] = '%' + ((i < 16 ? '0' : '') + i.toString(16)).toUpperCase();
10
+
11
+ export const isHexTable = new Int8Array([
12
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 0 - 15
13
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 16 - 31
14
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 32 - 47
15
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, // 48 - 63
16
+ 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 64 - 79
17
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 80 - 95
18
+ 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 96 - 111
19
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 112 - 127
20
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 128 ...
21
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
22
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
23
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
24
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
25
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
26
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
27
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // ... 256
28
+ ]);
29
+
30
+ /**
31
+ * @param {string} str
32
+ * @param {Int8Array} noEscapeTable
33
+ * @param {string[]} hexTable
34
+ * @returns {string}
35
+ */
36
+ export function encodeStr(str, noEscapeTable, hexTable) {
37
+ const len = str.length;
38
+ if (len === 0)
39
+ return '';
40
+
41
+ let out = '';
42
+ let lastPos = 0;
43
+ let i = 0;
44
+
45
+ outer:
46
+ for (; i < len; i++) {
47
+ let c = str.charCodeAt(i);
48
+
49
+ // ASCII
50
+ while (c < 0x80) {
51
+ if (noEscapeTable[c] !== 1) {
52
+ if (lastPos < i)
53
+ out += str.slice(lastPos, i);
54
+ lastPos = i + 1;
55
+ out += hexTable[c];
56
+ }
57
+
58
+ if (++i === len)
59
+ break outer;
60
+
61
+ c = str.charCodeAt(i);
62
+ }
63
+
64
+ if (lastPos < i)
65
+ out += str.slice(lastPos, i);
66
+
67
+ // Multi-byte characters ...
68
+ if (c < 0x800) {
69
+ lastPos = i + 1;
70
+ out += hexTable[0xC0 | (c >> 6)] +
71
+ hexTable[0x80 | (c & 0x3F)];
72
+ continue;
73
+ }
74
+ if (c < 0xD800 || c >= 0xE000) {
75
+ lastPos = i + 1;
76
+ out += hexTable[0xE0 | (c >> 12)] +
77
+ hexTable[0x80 | ((c >> 6) & 0x3F)] +
78
+ hexTable[0x80 | (c & 0x3F)];
79
+ continue;
80
+ }
81
+ // Surrogate pair
82
+ ++i;
83
+
84
+ // This branch should never happen because all URLSearchParams entries
85
+ // should already be converted to USVString. But, included for
86
+ // completion's sake anyway.
87
+ if (i >= len)
88
+ throw invalidUri();
89
+
90
+ const c2 = str.charCodeAt(i) & 0x3FF;
91
+
92
+ lastPos = i + 1;
93
+ c = 0x10000 + (((c & 0x3FF) << 10) | c2);
94
+ out += hexTable[0xF0 | (c >> 18)] +
95
+ hexTable[0x80 | ((c >> 12) & 0x3F)] +
96
+ hexTable[0x80 | ((c >> 6) & 0x3F)] +
97
+ hexTable[0x80 | (c & 0x3F)];
98
+ }
99
+ if (lastPos === 0)
100
+ return str;
101
+ if (lastPos < len)
102
+ return out + str.slice(lastPos);
103
+ return out;
104
+ }
105
+
@@ -0,0 +1,53 @@
1
+ // node:module (ADR 0009, 0012): createRequire, which the bundler's code uses for a require() it
2
+ // couldn't resolve at build time: a specifier computed at runtime. A compiled program can't load
3
+ // new code, so such a require throws as Node's does for a module it can't find (as a computed
4
+ // import() rejects). builtinModules and isBuiltin list Node's built-in modules.
5
+ //
6
+ // It imports nothing: the bundler's own runtime imports it, and so runs it before any helper the
7
+ // bundler would wrap an imported module in.
8
+
9
+ export const builtinModules = [
10
+ "_http_agent", "_http_client", "_http_common", "_http_incoming", "_http_outgoing", "_http_server", "_stream_duplex",
11
+ "_stream_passthrough", "_stream_readable", "_stream_transform", "_stream_wrap", "_stream_writable", "_tls_common", "_tls_wrap",
12
+ "assert", "assert/strict", "async_hooks", "buffer", "child_process", "cluster", "console", "constants", "crypto", "dgram",
13
+ "diagnostics_channel", "dns", "dns/promises", "domain", "events", "fs", "fs/promises", "http", "http2", "https", "inspector",
14
+ "inspector/promises", "module", "net", "os", "path", "path/posix", "path/win32", "perf_hooks", "process", "punycode",
15
+ "querystring", "readline", "readline/promises", "repl", "stream", "stream/consumers", "stream/promises", "stream/web",
16
+ "string_decoder", "sys", "timers", "timers/promises", "tls", "trace_events", "tty", "url", "util", "util/types", "v8", "vm",
17
+ "wasi", "worker_threads", "zlib",
18
+ ];
19
+
20
+ export function isBuiltin(moduleName) {
21
+ const name = String(moduleName);
22
+ return builtinModules.includes(name.startsWith("node:") ? name.slice(5) : name);
23
+ }
24
+
25
+ function withCode(error, code) {
26
+ Object.defineProperty(error, "code", { value: code, writable: true, enumerable: true, configurable: true });
27
+ return error;
28
+ }
29
+
30
+ function notFound(id) {
31
+ const e = withCode(new Error(`Cannot find module '${id}'`), "MODULE_NOT_FOUND");
32
+ e.requireStack = [];
33
+ return e;
34
+ }
35
+
36
+ export function createRequire(filename) {
37
+ if (typeof filename !== "string" && !(typeof URL === "function" && filename instanceof URL)) {
38
+ throw withCode(new TypeError("The argument 'filename' must be a file URL object, file URL string, or absolute path string. Received " +
39
+ String(filename)), "ERR_INVALID_ARG_VALUE");
40
+ }
41
+ const require = (id) => {
42
+ throw notFound(id);
43
+ };
44
+ require.resolve = (id) => {
45
+ throw notFound(id);
46
+ };
47
+ require.resolve.paths = () => null;
48
+ require.cache = { __proto__: null };
49
+ require.main = undefined;
50
+ return require;
51
+ }
52
+
53
+ export default { builtinModules, createRequire, isBuiltin };
@@ -0,0 +1,51 @@
1
+ // node:net (ADR 0012, layer 3): the IP address checks (Node's lib/internal/net.js regexes). TCP
2
+ // sockets and servers aren't provided yet (node:http has its own); using them throws
3
+ // ERR_VISALJS_UNSUPPORTED.
4
+ import { notSupported } from "./internal/errors.js";
5
+
6
+ // IPv4 Segment
7
+ const v4Seg = "(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])";
8
+ const v4Str = `(?:${v4Seg}\\.){3}${v4Seg}`;
9
+ const IPv4Reg = new RegExp(`^${v4Str}$`);
10
+
11
+ // IPv6 Segment
12
+ const v6Seg = "(?:[0-9a-fA-F]{1,4})";
13
+ const IPv6Reg = new RegExp("^(?:" +
14
+ `(?:${v6Seg}:){7}(?:${v6Seg}|:)|` +
15
+ `(?:${v6Seg}:){6}(?:${v4Str}|:${v6Seg}|:)|` +
16
+ `(?:${v6Seg}:){5}(?::${v4Str}|(?::${v6Seg}){1,2}|:)|` +
17
+ `(?:${v6Seg}:){4}(?:(?::${v6Seg}){0,1}:${v4Str}|(?::${v6Seg}){1,3}|:)|` +
18
+ `(?:${v6Seg}:){3}(?:(?::${v6Seg}){0,2}:${v4Str}|(?::${v6Seg}){1,4}|:)|` +
19
+ `(?:${v6Seg}:){2}(?:(?::${v6Seg}){0,3}:${v4Str}|(?::${v6Seg}){1,5}|:)|` +
20
+ `(?:${v6Seg}:){1}(?:(?::${v6Seg}){0,4}:${v4Str}|(?::${v6Seg}){1,6}|:)|` +
21
+ `(?::(?:(?::${v6Seg}){0,5}:${v4Str}|(?::${v6Seg}){1,7}|:))` +
22
+ ")(?:%[0-9a-zA-Z-.:]{1,})?$");
23
+
24
+ export function isIPv4(s) {
25
+ return IPv4Reg.test(s);
26
+ }
27
+
28
+ export function isIPv6(s) {
29
+ return IPv6Reg.test(s);
30
+ }
31
+
32
+ export function isIP(s) {
33
+ if (isIPv4(s)) return 4;
34
+ if (isIPv6(s)) return 6;
35
+ return 0;
36
+ }
37
+
38
+ const unsupported = (name) =>
39
+ function () {
40
+ throw notSupported("net." + name);
41
+ };
42
+ export const Socket = unsupported("Socket");
43
+ export const Stream = Socket;
44
+ export const Server = unsupported("Server");
45
+ export const BlockList = unsupported("BlockList");
46
+ export const SocketAddress = unsupported("SocketAddress");
47
+ export const connect = unsupported("connect");
48
+ export const createConnection = unsupported("createConnection");
49
+ export const createServer = unsupported("createServer");
50
+
51
+ export default { isIP, isIPv4, isIPv6, Socket, Stream, Server, BlockList, SocketAddress, connect, createConnection, createServer };
@@ -0,0 +1,129 @@
1
+ // node:os (ADR 0012, layer 3): the system's facts through libuv, as Node's lib/os.js gets them,
2
+ // and the constants of the platform the program was built for. Not provided yet:
3
+ // networkInterfaces, getPriority and setPriority (ERR_VISALJS_UNSUPPORTED).
4
+ import {
5
+ osConstants, osCpus, osHomedir, osHostname, osLoadavg, osMemory, osParallelism, osTmpdir, osUname, osUptime, osUserInfo,
6
+ } from "visaljs:host";
7
+ import { notSupported, systemError } from "./internal/errors.js";
8
+
9
+ const check = (result, syscall) => {
10
+ if (typeof result === "number" && result < 0) throw systemError(result, syscall);
11
+ return result;
12
+ };
13
+ const uname = () => check(osUname(), "uv_os_uname");
14
+
15
+ export const EOL = "\n";
16
+ export const devNull = "/dev/null";
17
+
18
+ export function arch() {
19
+ return process.arch;
20
+ }
21
+
22
+ export function platform() {
23
+ return process.platform;
24
+ }
25
+
26
+ export function endianness() {
27
+ return "LE";
28
+ }
29
+
30
+ export function type() {
31
+ return uname()[0];
32
+ }
33
+
34
+ export function release() {
35
+ return uname()[1];
36
+ }
37
+
38
+ export function version() {
39
+ return uname()[2];
40
+ }
41
+
42
+ export function machine() {
43
+ return uname()[3];
44
+ }
45
+
46
+ export function hostname() {
47
+ return check(osHostname(), "uv_os_gethostname");
48
+ }
49
+
50
+ export function homedir() {
51
+ return check(osHomedir(), "uv_os_homedir");
52
+ }
53
+
54
+ export function tmpdir() {
55
+ const dir = osTmpdir();
56
+ return typeof dir === "string" && dir !== "" ? dir : "/tmp";
57
+ }
58
+
59
+ export function totalmem() {
60
+ return osMemory()[0];
61
+ }
62
+
63
+ export function freemem() {
64
+ return osMemory()[1];
65
+ }
66
+
67
+ export function uptime() {
68
+ return check(osUptime(), "uv_uptime");
69
+ }
70
+
71
+ export function loadavg() {
72
+ return osLoadavg();
73
+ }
74
+
75
+ export function availableParallelism() {
76
+ return osParallelism();
77
+ }
78
+
79
+ export function cpus() {
80
+ const list = osCpus();
81
+ if (typeof list === "number") return [];
82
+ return list.map(([model, speed, user, nice, sys, idle, irq]) => ({ model, speed, times: { user, nice, sys, idle, irq } }));
83
+ }
84
+
85
+ export function userInfo(options) {
86
+ const [uid, gid, username, home, shell] = check(osUserInfo(), "uv_os_get_passwd");
87
+ const asBuffer = options != null && typeof options === "object" && options.encoding === "buffer";
88
+ const enc = (s) => (asBuffer && s !== null ? Buffer.from(s) : s);
89
+ return { uid, gid, username: enc(username), homedir: enc(home), shell: enc(shell) };
90
+ }
91
+
92
+ export function networkInterfaces() {
93
+ throw notSupported("os.networkInterfaces");
94
+ }
95
+
96
+ export function getPriority() {
97
+ throw notSupported("os.getPriority");
98
+ }
99
+
100
+ export function setPriority() {
101
+ throw notSupported("os.setPriority");
102
+ }
103
+
104
+ function nameTable(flat) {
105
+ const o = { __proto__: null };
106
+ for (let i = 0; i < flat.length; i += 2) o[flat[i]] = flat[i + 1];
107
+ return Object.freeze(o);
108
+ }
109
+
110
+ const [signals, errno] = osConstants();
111
+
112
+ export const constants = Object.freeze({
113
+ __proto__: null,
114
+ UV_UDP_REUSEADDR: 4,
115
+ dlopen: Object.freeze(process.platform === "darwin"
116
+ ? { __proto__: null, RTLD_LAZY: 1, RTLD_NOW: 2, RTLD_GLOBAL: 8, RTLD_LOCAL: 4 }
117
+ : { __proto__: null, RTLD_LAZY: 1, RTLD_NOW: 2, RTLD_GLOBAL: 256, RTLD_LOCAL: 0, RTLD_DEEPBIND: 8 }),
118
+ errno: nameTable(errno),
119
+ signals: nameTable(signals),
120
+ priority: Object.freeze({
121
+ __proto__: null, PRIORITY_LOW: 19, PRIORITY_BELOW_NORMAL: 10, PRIORITY_NORMAL: 0, PRIORITY_ABOVE_NORMAL: -7, PRIORITY_HIGH: -14,
122
+ PRIORITY_HIGHEST: -20,
123
+ }),
124
+ });
125
+
126
+ export default {
127
+ arch, availableParallelism, cpus, endianness, freemem, getPriority, homedir, hostname, loadavg, networkInterfaces, platform, release,
128
+ setPriority, tmpdir, totalmem, type, userInfo, uptime, version, machine, constants, EOL, devNull,
129
+ };