typenative 0.1.3 → 0.2.0

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 (500) hide show
  1. package/.gitattributes +1 -0
  2. package/.github/workflows/ci.yml +1 -1
  3. package/.github/workflows/npm-publish-github-packages.yml +1 -1
  4. package/CHANGELOG.md +247 -0
  5. package/CONTRIBUTION.md +1 -1
  6. package/README.md +4 -4
  7. package/bin/cli.js +3 -1
  8. package/bin/go/bridge.js +919 -0
  9. package/bin/go/convert.js +238 -0
  10. package/bin/go/metadata.js +211 -0
  11. package/bin/go/overrides.js +68 -0
  12. package/bin/go/stdlib.generated.js +175 -0
  13. package/bin/index.js +294 -240
  14. package/bin/main.js +4 -1
  15. package/bin/node/assert.js +344 -0
  16. package/bin/node/async_hooks.js +273 -0
  17. package/bin/node/buffer.js +765 -0
  18. package/bin/node/child_process.js +600 -0
  19. package/bin/node/cluster.js +1002 -0
  20. package/bin/node/console.js +121 -0
  21. package/bin/node/core.js +111 -0
  22. package/bin/node/crypto.js +414 -0
  23. package/bin/node/crypto_keys.js +2685 -0
  24. package/bin/node/dgram.js +388 -0
  25. package/bin/node/diagnostics_channel.js +534 -0
  26. package/bin/node/dns.js +635 -0
  27. package/bin/node/events.js +743 -0
  28. package/bin/node/fetch.js +737 -0
  29. package/bin/node/fs.js +998 -0
  30. package/bin/node/http.js +1500 -0
  31. package/bin/node/http2.js +688 -0
  32. package/bin/node/net.js +1143 -0
  33. package/bin/node/os.js +257 -0
  34. package/bin/node/path.js +758 -0
  35. package/bin/node/process.js +316 -0
  36. package/bin/node/punycode.js +195 -0
  37. package/bin/node/querystring.js +143 -0
  38. package/bin/node/readline.js +299 -0
  39. package/bin/node/registry.js +161 -0
  40. package/bin/node/sqlite.js +1142 -0
  41. package/bin/node/stream.js +1221 -0
  42. package/bin/node/stream_web.js +2259 -0
  43. package/bin/node/string_decoder.js +101 -0
  44. package/bin/node/system_extra.js +661 -0
  45. package/bin/node/test.js +1068 -0
  46. package/bin/node/timers.js +250 -0
  47. package/bin/node/tls.js +719 -0
  48. package/bin/node/url.js +861 -0
  49. package/bin/node/util.js +1311 -0
  50. package/bin/node/util_extra.js +599 -0
  51. package/bin/node/worker_threads.js +745 -0
  52. package/bin/node/zlib.js +263 -0
  53. package/bin/transpiler.js +2650 -575
  54. package/bin/version.js +2 -0
  55. package/conformance.md +707 -241
  56. package/govendor/github.com/ncruces/go-sqlite3/LICENSE +21 -0
  57. package/govendor/github.com/ncruces/go-sqlite3/README.md +121 -0
  58. package/govendor/github.com/ncruces/go-sqlite3/backup.go +132 -0
  59. package/govendor/github.com/ncruces/go-sqlite3/blob.go +266 -0
  60. package/govendor/github.com/ncruces/go-sqlite3/config.go +397 -0
  61. package/govendor/github.com/ncruces/go-sqlite3/conn.go +540 -0
  62. package/govendor/github.com/ncruces/go-sqlite3/conn_127.go +93 -0
  63. package/govendor/github.com/ncruces/go-sqlite3/const.go +436 -0
  64. package/govendor/github.com/ncruces/go-sqlite3/context.go +222 -0
  65. package/govendor/github.com/ncruces/go-sqlite3/error.go +182 -0
  66. package/govendor/github.com/ncruces/go-sqlite3/ext.go +153 -0
  67. package/govendor/github.com/ncruces/go-sqlite3/func.go +309 -0
  68. package/govendor/github.com/ncruces/go-sqlite3/go.mod +3 -0
  69. package/govendor/github.com/ncruces/go-sqlite3/internal/dotlk/dotlk.go +29 -0
  70. package/govendor/github.com/ncruces/go-sqlite3/internal/dotlk/dotlk_other.go +13 -0
  71. package/govendor/github.com/ncruces/go-sqlite3/internal/dotlk/dotlk_unix.go +57 -0
  72. package/govendor/github.com/ncruces/go-sqlite3/internal/errutil/error.go +41 -0
  73. package/govendor/github.com/ncruces/go-sqlite3/internal/sqlite3_wrap/alloc.go +128 -0
  74. package/govendor/github.com/ncruces/go-sqlite3/internal/sqlite3_wrap/const.go +122 -0
  75. package/govendor/github.com/ncruces/go-sqlite3/internal/sqlite3_wrap/error.go +77 -0
  76. package/govendor/github.com/ncruces/go-sqlite3/internal/sqlite3_wrap/mem.go +116 -0
  77. package/govendor/github.com/ncruces/go-sqlite3/internal/sqlite3_wrap/mem_other.go +34 -0
  78. package/govendor/github.com/ncruces/go-sqlite3/internal/sqlite3_wrap/mem_unix.go +87 -0
  79. package/govendor/github.com/ncruces/go-sqlite3/internal/sqlite3_wrap/mem_windows.go +149 -0
  80. package/govendor/github.com/ncruces/go-sqlite3/internal/sqlite3_wrap/mmap_unix.go +80 -0
  81. package/govendor/github.com/ncruces/go-sqlite3/internal/sqlite3_wrap/mmap_windows.go +129 -0
  82. package/govendor/github.com/ncruces/go-sqlite3/internal/sqlite3_wrap/sys_windows.go +60 -0
  83. package/govendor/github.com/ncruces/go-sqlite3/internal/sqlite3_wrap/wrap.go +82 -0
  84. package/govendor/github.com/ncruces/go-sqlite3/internal/sqlite3_wrap/wrap_sys.go +113 -0
  85. package/govendor/github.com/ncruces/go-sqlite3/internal/sqlite3_wrap/wrap_vfs.go +181 -0
  86. package/govendor/github.com/ncruces/go-sqlite3/internal/testenv/env.go +55 -0
  87. package/govendor/github.com/ncruces/go-sqlite3/internal/util/json.go +54 -0
  88. package/govendor/github.com/ncruces/go-sqlite3/internal/util/json_v2.go +54 -0
  89. package/govendor/github.com/ncruces/go-sqlite3/internal/util/math.go +29 -0
  90. package/govendor/github.com/ncruces/go-sqlite3/internal/util/page.go +5 -0
  91. package/govendor/github.com/ncruces/go-sqlite3/internal/util/parse.go +142 -0
  92. package/govendor/github.com/ncruces/go-sqlite3/internal/util/pointer.go +3 -0
  93. package/govendor/github.com/ncruces/go-sqlite3/internal/util/reflect.go +10 -0
  94. package/govendor/github.com/ncruces/go-sqlite3/json.go +100 -0
  95. package/govendor/github.com/ncruces/go-sqlite3/json_v2.go +116 -0
  96. package/govendor/github.com/ncruces/go-sqlite3/pointer.go +13 -0
  97. package/govendor/github.com/ncruces/go-sqlite3/quote.go +140 -0
  98. package/govendor/github.com/ncruces/go-sqlite3/stmt.go +692 -0
  99. package/govendor/github.com/ncruces/go-sqlite3/time.go +360 -0
  100. package/govendor/github.com/ncruces/go-sqlite3/txn.go +374 -0
  101. package/govendor/github.com/ncruces/go-sqlite3/value.go +212 -0
  102. package/govendor/github.com/ncruces/go-sqlite3/vfs/README.md +133 -0
  103. package/govendor/github.com/ncruces/go-sqlite3/vfs/api.go +239 -0
  104. package/govendor/github.com/ncruces/go-sqlite3/vfs/cksm.go +143 -0
  105. package/govendor/github.com/ncruces/go-sqlite3/vfs/const.go +256 -0
  106. package/govendor/github.com/ncruces/go-sqlite3/vfs/file.go +260 -0
  107. package/govendor/github.com/ncruces/go-sqlite3/vfs/filename.go +187 -0
  108. package/govendor/github.com/ncruces/go-sqlite3/vfs/lock.go +128 -0
  109. package/govendor/github.com/ncruces/go-sqlite3/vfs/lock_other.go +23 -0
  110. package/govendor/github.com/ncruces/go-sqlite3/vfs/map.go +63 -0
  111. package/govendor/github.com/ncruces/go-sqlite3/vfs/map_other.go +13 -0
  112. package/govendor/github.com/ncruces/go-sqlite3/vfs/os_bsd.go +110 -0
  113. package/govendor/github.com/ncruces/go-sqlite3/vfs/os_darwin.go +131 -0
  114. package/govendor/github.com/ncruces/go-sqlite3/vfs/os_dotlk.go +140 -0
  115. package/govendor/github.com/ncruces/go-sqlite3/vfs/os_f2fs_linux.go +56 -0
  116. package/govendor/github.com/ncruces/go-sqlite3/vfs/os_linux.go +117 -0
  117. package/govendor/github.com/ncruces/go-sqlite3/vfs/os_ofd.go +59 -0
  118. package/govendor/github.com/ncruces/go-sqlite3/vfs/os_std.go +50 -0
  119. package/govendor/github.com/ncruces/go-sqlite3/vfs/os_std_alloc.go +19 -0
  120. package/govendor/github.com/ncruces/go-sqlite3/vfs/os_std_atomic.go +9 -0
  121. package/govendor/github.com/ncruces/go-sqlite3/vfs/os_std_rw.go +13 -0
  122. package/govendor/github.com/ncruces/go-sqlite3/vfs/os_std_sync.go +9 -0
  123. package/govendor/github.com/ncruces/go-sqlite3/vfs/os_std_temp.go +16 -0
  124. package/govendor/github.com/ncruces/go-sqlite3/vfs/os_unix.go +108 -0
  125. package/govendor/github.com/ncruces/go-sqlite3/vfs/os_windows.go +180 -0
  126. package/govendor/github.com/ncruces/go-sqlite3/vfs/registry.go +48 -0
  127. package/govendor/github.com/ncruces/go-sqlite3/vfs/shm.go +26 -0
  128. package/govendor/github.com/ncruces/go-sqlite3/vfs/shm_bsd.go +258 -0
  129. package/govendor/github.com/ncruces/go-sqlite3/vfs/shm_copy.go +90 -0
  130. package/govendor/github.com/ncruces/go-sqlite3/vfs/shm_dotlk.go +168 -0
  131. package/govendor/github.com/ncruces/go-sqlite3/vfs/shm_memlk.go +52 -0
  132. package/govendor/github.com/ncruces/go-sqlite3/vfs/shm_ofd.go +185 -0
  133. package/govendor/github.com/ncruces/go-sqlite3/vfs/shm_other.go +21 -0
  134. package/govendor/github.com/ncruces/go-sqlite3/vfs/shm_windows.go +124 -0
  135. package/govendor/github.com/ncruces/go-sqlite3/vfs/vfs.go +455 -0
  136. package/govendor/github.com/ncruces/go-sqlite3/vtab.go +677 -0
  137. package/govendor/github.com/ncruces/go-sqlite3/wrap.go +48 -0
  138. package/govendor/github.com/ncruces/go-sqlite3-wasm/v6/LICENSE +18 -0
  139. package/govendor/github.com/ncruces/go-sqlite3-wasm/v6/README.md +11 -0
  140. package/govendor/github.com/ncruces/go-sqlite3-wasm/v6/go.mod +3 -0
  141. package/govendor/github.com/ncruces/go-sqlite3-wasm/v6/libc.go +215 -0
  142. package/govendor/github.com/ncruces/go-sqlite3-wasm/v6/sqlite3.dat +0 -0
  143. package/govendor/github.com/ncruces/go-sqlite3-wasm/v6/sqlite3.go +157903 -0
  144. package/govendor/github.com/ncruces/go-sqlite3-wasm/v6/tools.sh +38 -0
  145. package/govendor/github.com/ncruces/julianday/LICENSE +21 -0
  146. package/govendor/github.com/ncruces/julianday/README.md +9 -0
  147. package/govendor/github.com/ncruces/julianday/go.mod +3 -0
  148. package/govendor/github.com/ncruces/julianday/julianday.go +124 -0
  149. package/govendor/golang.org/x/sys/LICENSE +27 -0
  150. package/govendor/golang.org/x/sys/PATENTS +22 -0
  151. package/govendor/golang.org/x/sys/go.mod +3 -0
  152. package/govendor/golang.org/x/sys/unix/README.md +184 -0
  153. package/govendor/golang.org/x/sys/unix/affinity_linux.go +189 -0
  154. package/govendor/golang.org/x/sys/unix/aliases.go +13 -0
  155. package/govendor/golang.org/x/sys/unix/asm_aix_ppc64.s +17 -0
  156. package/govendor/golang.org/x/sys/unix/asm_bsd_386.s +27 -0
  157. package/govendor/golang.org/x/sys/unix/asm_bsd_amd64.s +27 -0
  158. package/govendor/golang.org/x/sys/unix/asm_bsd_arm.s +27 -0
  159. package/govendor/golang.org/x/sys/unix/asm_bsd_arm64.s +27 -0
  160. package/govendor/golang.org/x/sys/unix/asm_bsd_ppc64.s +29 -0
  161. package/govendor/golang.org/x/sys/unix/asm_bsd_riscv64.s +27 -0
  162. package/govendor/golang.org/x/sys/unix/asm_linux_386.s +65 -0
  163. package/govendor/golang.org/x/sys/unix/asm_linux_amd64.s +57 -0
  164. package/govendor/golang.org/x/sys/unix/asm_linux_arm.s +56 -0
  165. package/govendor/golang.org/x/sys/unix/asm_linux_arm64.s +50 -0
  166. package/govendor/golang.org/x/sys/unix/asm_linux_loong64.s +51 -0
  167. package/govendor/golang.org/x/sys/unix/asm_linux_mips64x.s +54 -0
  168. package/govendor/golang.org/x/sys/unix/asm_linux_mipsx.s +52 -0
  169. package/govendor/golang.org/x/sys/unix/asm_linux_ppc64x.s +42 -0
  170. package/govendor/golang.org/x/sys/unix/asm_linux_riscv64.s +47 -0
  171. package/govendor/golang.org/x/sys/unix/asm_linux_s390x.s +54 -0
  172. package/govendor/golang.org/x/sys/unix/asm_openbsd_mips64.s +29 -0
  173. package/govendor/golang.org/x/sys/unix/asm_solaris_amd64.s +17 -0
  174. package/govendor/golang.org/x/sys/unix/asm_zos_s390x.s +382 -0
  175. package/govendor/golang.org/x/sys/unix/auxv.go +36 -0
  176. package/govendor/golang.org/x/sys/unix/auxv_unsupported.go +13 -0
  177. package/govendor/golang.org/x/sys/unix/bluetooth_linux.go +36 -0
  178. package/govendor/golang.org/x/sys/unix/bpxsvc_zos.go +657 -0
  179. package/govendor/golang.org/x/sys/unix/bpxsvc_zos.s +192 -0
  180. package/govendor/golang.org/x/sys/unix/cap_freebsd.go +195 -0
  181. package/govendor/golang.org/x/sys/unix/constants.go +13 -0
  182. package/govendor/golang.org/x/sys/unix/dev_aix_ppc.go +26 -0
  183. package/govendor/golang.org/x/sys/unix/dev_aix_ppc64.go +28 -0
  184. package/govendor/golang.org/x/sys/unix/dev_darwin.go +24 -0
  185. package/govendor/golang.org/x/sys/unix/dev_dragonfly.go +30 -0
  186. package/govendor/golang.org/x/sys/unix/dev_freebsd.go +30 -0
  187. package/govendor/golang.org/x/sys/unix/dev_linux.go +42 -0
  188. package/govendor/golang.org/x/sys/unix/dev_netbsd.go +29 -0
  189. package/govendor/golang.org/x/sys/unix/dev_openbsd.go +29 -0
  190. package/govendor/golang.org/x/sys/unix/dev_zos.go +28 -0
  191. package/govendor/golang.org/x/sys/unix/dirent.go +102 -0
  192. package/govendor/golang.org/x/sys/unix/endian_big.go +9 -0
  193. package/govendor/golang.org/x/sys/unix/endian_little.go +9 -0
  194. package/govendor/golang.org/x/sys/unix/env_unix.go +31 -0
  195. package/govendor/golang.org/x/sys/unix/fcntl.go +36 -0
  196. package/govendor/golang.org/x/sys/unix/fcntl_darwin.go +24 -0
  197. package/govendor/golang.org/x/sys/unix/fcntl_linux_32bit.go +13 -0
  198. package/govendor/golang.org/x/sys/unix/fdset.go +27 -0
  199. package/govendor/golang.org/x/sys/unix/gccgo.go +59 -0
  200. package/govendor/golang.org/x/sys/unix/gccgo_c.c +44 -0
  201. package/govendor/golang.org/x/sys/unix/gccgo_linux_amd64.go +20 -0
  202. package/govendor/golang.org/x/sys/unix/ifreq_linux.go +145 -0
  203. package/govendor/golang.org/x/sys/unix/ioctl_linux.go +341 -0
  204. package/govendor/golang.org/x/sys/unix/ioctl_signed.go +74 -0
  205. package/govendor/golang.org/x/sys/unix/ioctl_unsigned.go +74 -0
  206. package/govendor/golang.org/x/sys/unix/ioctl_zos.go +71 -0
  207. package/govendor/golang.org/x/sys/unix/mkall.sh +250 -0
  208. package/govendor/golang.org/x/sys/unix/mkerrors.sh +807 -0
  209. package/govendor/golang.org/x/sys/unix/mmap_nomremap.go +13 -0
  210. package/govendor/golang.org/x/sys/unix/mremap.go +57 -0
  211. package/govendor/golang.org/x/sys/unix/pagesize_unix.go +15 -0
  212. package/govendor/golang.org/x/sys/unix/pledge_openbsd.go +111 -0
  213. package/govendor/golang.org/x/sys/unix/ptrace_darwin.go +11 -0
  214. package/govendor/golang.org/x/sys/unix/ptrace_ios.go +11 -0
  215. package/govendor/golang.org/x/sys/unix/race.go +30 -0
  216. package/govendor/golang.org/x/sys/unix/race0.go +25 -0
  217. package/govendor/golang.org/x/sys/unix/readdirent_getdents.go +12 -0
  218. package/govendor/golang.org/x/sys/unix/readdirent_getdirentries.go +19 -0
  219. package/govendor/golang.org/x/sys/unix/readv_unix.go +103 -0
  220. package/govendor/golang.org/x/sys/unix/sockcmsg_dragonfly.go +16 -0
  221. package/govendor/golang.org/x/sys/unix/sockcmsg_linux.go +85 -0
  222. package/govendor/golang.org/x/sys/unix/sockcmsg_unix.go +106 -0
  223. package/govendor/golang.org/x/sys/unix/sockcmsg_unix_other.go +46 -0
  224. package/govendor/golang.org/x/sys/unix/sockcmsg_zos.go +58 -0
  225. package/govendor/golang.org/x/sys/unix/symaddr_zos_s390x.s +75 -0
  226. package/govendor/golang.org/x/sys/unix/syscall.go +86 -0
  227. package/govendor/golang.org/x/sys/unix/syscall_aix.go +582 -0
  228. package/govendor/golang.org/x/sys/unix/syscall_aix_ppc.go +52 -0
  229. package/govendor/golang.org/x/sys/unix/syscall_aix_ppc64.go +83 -0
  230. package/govendor/golang.org/x/sys/unix/syscall_bsd.go +609 -0
  231. package/govendor/golang.org/x/sys/unix/syscall_darwin.go +711 -0
  232. package/govendor/golang.org/x/sys/unix/syscall_darwin_amd64.go +50 -0
  233. package/govendor/golang.org/x/sys/unix/syscall_darwin_arm64.go +50 -0
  234. package/govendor/golang.org/x/sys/unix/syscall_darwin_libSystem.go +26 -0
  235. package/govendor/golang.org/x/sys/unix/syscall_dragonfly.go +359 -0
  236. package/govendor/golang.org/x/sys/unix/syscall_dragonfly_amd64.go +56 -0
  237. package/govendor/golang.org/x/sys/unix/syscall_freebsd.go +455 -0
  238. package/govendor/golang.org/x/sys/unix/syscall_freebsd_386.go +64 -0
  239. package/govendor/golang.org/x/sys/unix/syscall_freebsd_amd64.go +64 -0
  240. package/govendor/golang.org/x/sys/unix/syscall_freebsd_arm.go +60 -0
  241. package/govendor/golang.org/x/sys/unix/syscall_freebsd_arm64.go +60 -0
  242. package/govendor/golang.org/x/sys/unix/syscall_freebsd_riscv64.go +60 -0
  243. package/govendor/golang.org/x/sys/unix/syscall_hurd.go +30 -0
  244. package/govendor/golang.org/x/sys/unix/syscall_hurd_386.go +28 -0
  245. package/govendor/golang.org/x/sys/unix/syscall_illumos.go +78 -0
  246. package/govendor/golang.org/x/sys/unix/syscall_linux.go +2574 -0
  247. package/govendor/golang.org/x/sys/unix/syscall_linux_386.go +313 -0
  248. package/govendor/golang.org/x/sys/unix/syscall_linux_alarm.go +12 -0
  249. package/govendor/golang.org/x/sys/unix/syscall_linux_amd64.go +144 -0
  250. package/govendor/golang.org/x/sys/unix/syscall_linux_amd64_gc.go +12 -0
  251. package/govendor/golang.org/x/sys/unix/syscall_linux_arm.go +218 -0
  252. package/govendor/golang.org/x/sys/unix/syscall_linux_arm64.go +188 -0
  253. package/govendor/golang.org/x/sys/unix/syscall_linux_gc.go +14 -0
  254. package/govendor/golang.org/x/sys/unix/syscall_linux_gc_386.go +16 -0
  255. package/govendor/golang.org/x/sys/unix/syscall_linux_gc_arm.go +13 -0
  256. package/govendor/golang.org/x/sys/unix/syscall_linux_gccgo_386.go +30 -0
  257. package/govendor/golang.org/x/sys/unix/syscall_linux_gccgo_arm.go +20 -0
  258. package/govendor/golang.org/x/sys/unix/syscall_linux_loong64.go +220 -0
  259. package/govendor/golang.org/x/sys/unix/syscall_linux_mips64x.go +187 -0
  260. package/govendor/golang.org/x/sys/unix/syscall_linux_mipsx.go +173 -0
  261. package/govendor/golang.org/x/sys/unix/syscall_linux_ppc.go +203 -0
  262. package/govendor/golang.org/x/sys/unix/syscall_linux_ppc64x.go +114 -0
  263. package/govendor/golang.org/x/sys/unix/syscall_linux_riscv64.go +193 -0
  264. package/govendor/golang.org/x/sys/unix/syscall_linux_s390x.go +295 -0
  265. package/govendor/golang.org/x/sys/unix/syscall_linux_sparc64.go +111 -0
  266. package/govendor/golang.org/x/sys/unix/syscall_netbsd.go +388 -0
  267. package/govendor/golang.org/x/sys/unix/syscall_netbsd_386.go +37 -0
  268. package/govendor/golang.org/x/sys/unix/syscall_netbsd_amd64.go +37 -0
  269. package/govendor/golang.org/x/sys/unix/syscall_netbsd_arm.go +37 -0
  270. package/govendor/golang.org/x/sys/unix/syscall_netbsd_arm64.go +37 -0
  271. package/govendor/golang.org/x/sys/unix/syscall_openbsd.go +346 -0
  272. package/govendor/golang.org/x/sys/unix/syscall_openbsd_386.go +41 -0
  273. package/govendor/golang.org/x/sys/unix/syscall_openbsd_amd64.go +41 -0
  274. package/govendor/golang.org/x/sys/unix/syscall_openbsd_arm.go +41 -0
  275. package/govendor/golang.org/x/sys/unix/syscall_openbsd_arm64.go +41 -0
  276. package/govendor/golang.org/x/sys/unix/syscall_openbsd_libc.go +26 -0
  277. package/govendor/golang.org/x/sys/unix/syscall_openbsd_mips64.go +39 -0
  278. package/govendor/golang.org/x/sys/unix/syscall_openbsd_ppc64.go +41 -0
  279. package/govendor/golang.org/x/sys/unix/syscall_openbsd_riscv64.go +41 -0
  280. package/govendor/golang.org/x/sys/unix/syscall_solaris.go +1183 -0
  281. package/govendor/golang.org/x/sys/unix/syscall_solaris_amd64.go +27 -0
  282. package/govendor/golang.org/x/sys/unix/syscall_unix.go +619 -0
  283. package/govendor/golang.org/x/sys/unix/syscall_unix_gc.go +14 -0
  284. package/govendor/golang.org/x/sys/unix/syscall_unix_gc_ppc64x.go +22 -0
  285. package/govendor/golang.org/x/sys/unix/syscall_zos_s390x.go +3213 -0
  286. package/govendor/golang.org/x/sys/unix/sysvshm_linux.go +20 -0
  287. package/govendor/golang.org/x/sys/unix/sysvshm_unix.go +51 -0
  288. package/govendor/golang.org/x/sys/unix/sysvshm_unix_other.go +13 -0
  289. package/govendor/golang.org/x/sys/unix/timestruct.go +76 -0
  290. package/govendor/golang.org/x/sys/unix/unveil_openbsd.go +51 -0
  291. package/govendor/golang.org/x/sys/unix/vgetrandom_linux.go +13 -0
  292. package/govendor/golang.org/x/sys/unix/vgetrandom_unsupported.go +11 -0
  293. package/govendor/golang.org/x/sys/unix/xattr_bsd.go +280 -0
  294. package/govendor/golang.org/x/sys/unix/zerrors_aix_ppc.go +1384 -0
  295. package/govendor/golang.org/x/sys/unix/zerrors_aix_ppc64.go +1385 -0
  296. package/govendor/golang.org/x/sys/unix/zerrors_darwin_amd64.go +1922 -0
  297. package/govendor/golang.org/x/sys/unix/zerrors_darwin_arm64.go +1922 -0
  298. package/govendor/golang.org/x/sys/unix/zerrors_dragonfly_amd64.go +1737 -0
  299. package/govendor/golang.org/x/sys/unix/zerrors_freebsd_386.go +2042 -0
  300. package/govendor/golang.org/x/sys/unix/zerrors_freebsd_amd64.go +2039 -0
  301. package/govendor/golang.org/x/sys/unix/zerrors_freebsd_arm.go +2033 -0
  302. package/govendor/golang.org/x/sys/unix/zerrors_freebsd_arm64.go +2033 -0
  303. package/govendor/golang.org/x/sys/unix/zerrors_freebsd_riscv64.go +2147 -0
  304. package/govendor/golang.org/x/sys/unix/zerrors_linux.go +4209 -0
  305. package/govendor/golang.org/x/sys/unix/zerrors_linux_386.go +882 -0
  306. package/govendor/golang.org/x/sys/unix/zerrors_linux_amd64.go +882 -0
  307. package/govendor/golang.org/x/sys/unix/zerrors_linux_arm.go +887 -0
  308. package/govendor/golang.org/x/sys/unix/zerrors_linux_arm64.go +884 -0
  309. package/govendor/golang.org/x/sys/unix/zerrors_linux_loong64.go +874 -0
  310. package/govendor/golang.org/x/sys/unix/zerrors_linux_mips.go +888 -0
  311. package/govendor/golang.org/x/sys/unix/zerrors_linux_mips64.go +888 -0
  312. package/govendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go +888 -0
  313. package/govendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go +888 -0
  314. package/govendor/golang.org/x/sys/unix/zerrors_linux_ppc.go +940 -0
  315. package/govendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go +944 -0
  316. package/govendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go +944 -0
  317. package/govendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go +884 -0
  318. package/govendor/golang.org/x/sys/unix/zerrors_linux_s390x.go +943 -0
  319. package/govendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go +992 -0
  320. package/govendor/golang.org/x/sys/unix/zerrors_netbsd_386.go +1779 -0
  321. package/govendor/golang.org/x/sys/unix/zerrors_netbsd_amd64.go +1769 -0
  322. package/govendor/golang.org/x/sys/unix/zerrors_netbsd_arm.go +1758 -0
  323. package/govendor/golang.org/x/sys/unix/zerrors_netbsd_arm64.go +1769 -0
  324. package/govendor/golang.org/x/sys/unix/zerrors_openbsd_386.go +1905 -0
  325. package/govendor/golang.org/x/sys/unix/zerrors_openbsd_amd64.go +1905 -0
  326. package/govendor/golang.org/x/sys/unix/zerrors_openbsd_arm.go +1905 -0
  327. package/govendor/golang.org/x/sys/unix/zerrors_openbsd_arm64.go +1905 -0
  328. package/govendor/golang.org/x/sys/unix/zerrors_openbsd_mips64.go +1905 -0
  329. package/govendor/golang.org/x/sys/unix/zerrors_openbsd_ppc64.go +1904 -0
  330. package/govendor/golang.org/x/sys/unix/zerrors_openbsd_riscv64.go +1903 -0
  331. package/govendor/golang.org/x/sys/unix/zerrors_solaris_amd64.go +1556 -0
  332. package/govendor/golang.org/x/sys/unix/zerrors_zos_s390x.go +990 -0
  333. package/govendor/golang.org/x/sys/unix/zptrace_armnn_linux.go +40 -0
  334. package/govendor/golang.org/x/sys/unix/zptrace_linux_arm64.go +17 -0
  335. package/govendor/golang.org/x/sys/unix/zptrace_mipsnn_linux.go +49 -0
  336. package/govendor/golang.org/x/sys/unix/zptrace_mipsnnle_linux.go +49 -0
  337. package/govendor/golang.org/x/sys/unix/zptrace_x86_linux.go +79 -0
  338. package/govendor/golang.org/x/sys/unix/zsymaddr_zos_s390x.s +364 -0
  339. package/govendor/golang.org/x/sys/unix/zsyscall_aix_ppc.go +1461 -0
  340. package/govendor/golang.org/x/sys/unix/zsyscall_aix_ppc64.go +1420 -0
  341. package/govendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gc.go +1188 -0
  342. package/govendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gccgo.go +1069 -0
  343. package/govendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go +2728 -0
  344. package/govendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.s +799 -0
  345. package/govendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go +2728 -0
  346. package/govendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.s +799 -0
  347. package/govendor/golang.org/x/sys/unix/zsyscall_dragonfly_amd64.go +1666 -0
  348. package/govendor/golang.org/x/sys/unix/zsyscall_freebsd_386.go +1886 -0
  349. package/govendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go +1886 -0
  350. package/govendor/golang.org/x/sys/unix/zsyscall_freebsd_arm.go +1886 -0
  351. package/govendor/golang.org/x/sys/unix/zsyscall_freebsd_arm64.go +1886 -0
  352. package/govendor/golang.org/x/sys/unix/zsyscall_freebsd_riscv64.go +1886 -0
  353. package/govendor/golang.org/x/sys/unix/zsyscall_illumos_amd64.go +101 -0
  354. package/govendor/golang.org/x/sys/unix/zsyscall_linux.go +2267 -0
  355. package/govendor/golang.org/x/sys/unix/zsyscall_linux_386.go +469 -0
  356. package/govendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go +636 -0
  357. package/govendor/golang.org/x/sys/unix/zsyscall_linux_arm.go +584 -0
  358. package/govendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go +535 -0
  359. package/govendor/golang.org/x/sys/unix/zsyscall_linux_loong64.go +469 -0
  360. package/govendor/golang.org/x/sys/unix/zsyscall_linux_mips.go +636 -0
  361. package/govendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go +630 -0
  362. package/govendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go +619 -0
  363. package/govendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go +636 -0
  364. package/govendor/golang.org/x/sys/unix/zsyscall_linux_ppc.go +641 -0
  365. package/govendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go +687 -0
  366. package/govendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go +687 -0
  367. package/govendor/golang.org/x/sys/unix/zsyscall_linux_riscv64.go +531 -0
  368. package/govendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go +478 -0
  369. package/govendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go +631 -0
  370. package/govendor/golang.org/x/sys/unix/zsyscall_netbsd_386.go +1848 -0
  371. package/govendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go +1848 -0
  372. package/govendor/golang.org/x/sys/unix/zsyscall_netbsd_arm.go +1848 -0
  373. package/govendor/golang.org/x/sys/unix/zsyscall_netbsd_arm64.go +1848 -0
  374. package/govendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go +2407 -0
  375. package/govendor/golang.org/x/sys/unix/zsyscall_openbsd_386.s +719 -0
  376. package/govendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go +2407 -0
  377. package/govendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.s +719 -0
  378. package/govendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go +2407 -0
  379. package/govendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.s +719 -0
  380. package/govendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.go +2407 -0
  381. package/govendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.s +719 -0
  382. package/govendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.go +2407 -0
  383. package/govendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.s +719 -0
  384. package/govendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.go +2407 -0
  385. package/govendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.s +862 -0
  386. package/govendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.go +2407 -0
  387. package/govendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.s +719 -0
  388. package/govendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go +2217 -0
  389. package/govendor/golang.org/x/sys/unix/zsyscall_zos_s390x.go +3458 -0
  390. package/govendor/golang.org/x/sys/unix/zsysctl_openbsd_386.go +280 -0
  391. package/govendor/golang.org/x/sys/unix/zsysctl_openbsd_amd64.go +280 -0
  392. package/govendor/golang.org/x/sys/unix/zsysctl_openbsd_arm.go +280 -0
  393. package/govendor/golang.org/x/sys/unix/zsysctl_openbsd_arm64.go +280 -0
  394. package/govendor/golang.org/x/sys/unix/zsysctl_openbsd_mips64.go +280 -0
  395. package/govendor/golang.org/x/sys/unix/zsysctl_openbsd_ppc64.go +280 -0
  396. package/govendor/golang.org/x/sys/unix/zsysctl_openbsd_riscv64.go +281 -0
  397. package/govendor/golang.org/x/sys/unix/zsysnum_darwin_amd64.go +439 -0
  398. package/govendor/golang.org/x/sys/unix/zsysnum_darwin_arm64.go +437 -0
  399. package/govendor/golang.org/x/sys/unix/zsysnum_dragonfly_amd64.go +316 -0
  400. package/govendor/golang.org/x/sys/unix/zsysnum_freebsd_386.go +393 -0
  401. package/govendor/golang.org/x/sys/unix/zsysnum_freebsd_amd64.go +393 -0
  402. package/govendor/golang.org/x/sys/unix/zsysnum_freebsd_arm.go +393 -0
  403. package/govendor/golang.org/x/sys/unix/zsysnum_freebsd_arm64.go +393 -0
  404. package/govendor/golang.org/x/sys/unix/zsysnum_freebsd_riscv64.go +393 -0
  405. package/govendor/golang.org/x/sys/unix/zsysnum_linux_386.go +470 -0
  406. package/govendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go +394 -0
  407. package/govendor/golang.org/x/sys/unix/zsysnum_linux_arm.go +434 -0
  408. package/govendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go +337 -0
  409. package/govendor/golang.org/x/sys/unix/zsysnum_linux_loong64.go +334 -0
  410. package/govendor/golang.org/x/sys/unix/zsysnum_linux_mips.go +454 -0
  411. package/govendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go +384 -0
  412. package/govendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go +384 -0
  413. package/govendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go +454 -0
  414. package/govendor/golang.org/x/sys/unix/zsysnum_linux_ppc.go +461 -0
  415. package/govendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go +433 -0
  416. package/govendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go +433 -0
  417. package/govendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go +338 -0
  418. package/govendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go +399 -0
  419. package/govendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go +413 -0
  420. package/govendor/golang.org/x/sys/unix/zsysnum_netbsd_386.go +274 -0
  421. package/govendor/golang.org/x/sys/unix/zsysnum_netbsd_amd64.go +274 -0
  422. package/govendor/golang.org/x/sys/unix/zsysnum_netbsd_arm.go +274 -0
  423. package/govendor/golang.org/x/sys/unix/zsysnum_netbsd_arm64.go +274 -0
  424. package/govendor/golang.org/x/sys/unix/zsysnum_openbsd_386.go +219 -0
  425. package/govendor/golang.org/x/sys/unix/zsysnum_openbsd_amd64.go +219 -0
  426. package/govendor/golang.org/x/sys/unix/zsysnum_openbsd_arm.go +219 -0
  427. package/govendor/golang.org/x/sys/unix/zsysnum_openbsd_arm64.go +218 -0
  428. package/govendor/golang.org/x/sys/unix/zsysnum_openbsd_mips64.go +221 -0
  429. package/govendor/golang.org/x/sys/unix/zsysnum_openbsd_ppc64.go +217 -0
  430. package/govendor/golang.org/x/sys/unix/zsysnum_openbsd_riscv64.go +218 -0
  431. package/govendor/golang.org/x/sys/unix/zsysnum_zos_s390x.go +2852 -0
  432. package/govendor/golang.org/x/sys/unix/ztypes_aix_ppc.go +353 -0
  433. package/govendor/golang.org/x/sys/unix/ztypes_aix_ppc64.go +357 -0
  434. package/govendor/golang.org/x/sys/unix/ztypes_darwin_amd64.go +878 -0
  435. package/govendor/golang.org/x/sys/unix/ztypes_darwin_arm64.go +878 -0
  436. package/govendor/golang.org/x/sys/unix/ztypes_dragonfly_amd64.go +473 -0
  437. package/govendor/golang.org/x/sys/unix/ztypes_freebsd_386.go +651 -0
  438. package/govendor/golang.org/x/sys/unix/ztypes_freebsd_amd64.go +656 -0
  439. package/govendor/golang.org/x/sys/unix/ztypes_freebsd_arm.go +642 -0
  440. package/govendor/golang.org/x/sys/unix/ztypes_freebsd_arm64.go +636 -0
  441. package/govendor/golang.org/x/sys/unix/ztypes_freebsd_riscv64.go +638 -0
  442. package/govendor/golang.org/x/sys/unix/ztypes_linux.go +6547 -0
  443. package/govendor/golang.org/x/sys/unix/ztypes_linux_386.go +747 -0
  444. package/govendor/golang.org/x/sys/unix/ztypes_linux_amd64.go +761 -0
  445. package/govendor/golang.org/x/sys/unix/ztypes_linux_arm.go +741 -0
  446. package/govendor/golang.org/x/sys/unix/ztypes_linux_arm64.go +740 -0
  447. package/govendor/golang.org/x/sys/unix/ztypes_linux_loong64.go +741 -0
  448. package/govendor/golang.org/x/sys/unix/ztypes_linux_mips.go +746 -0
  449. package/govendor/golang.org/x/sys/unix/ztypes_linux_mips64.go +743 -0
  450. package/govendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go +743 -0
  451. package/govendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go +746 -0
  452. package/govendor/golang.org/x/sys/unix/ztypes_linux_ppc.go +754 -0
  453. package/govendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go +749 -0
  454. package/govendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go +749 -0
  455. package/govendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go +828 -0
  456. package/govendor/golang.org/x/sys/unix/ztypes_linux_s390x.go +763 -0
  457. package/govendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go +744 -0
  458. package/govendor/golang.org/x/sys/unix/ztypes_netbsd_386.go +585 -0
  459. package/govendor/golang.org/x/sys/unix/ztypes_netbsd_amd64.go +593 -0
  460. package/govendor/golang.org/x/sys/unix/ztypes_netbsd_arm.go +590 -0
  461. package/govendor/golang.org/x/sys/unix/ztypes_netbsd_arm64.go +593 -0
  462. package/govendor/golang.org/x/sys/unix/ztypes_openbsd_386.go +568 -0
  463. package/govendor/golang.org/x/sys/unix/ztypes_openbsd_amd64.go +568 -0
  464. package/govendor/golang.org/x/sys/unix/ztypes_openbsd_arm.go +575 -0
  465. package/govendor/golang.org/x/sys/unix/ztypes_openbsd_arm64.go +568 -0
  466. package/govendor/golang.org/x/sys/unix/ztypes_openbsd_mips64.go +568 -0
  467. package/govendor/golang.org/x/sys/unix/ztypes_openbsd_ppc64.go +570 -0
  468. package/govendor/golang.org/x/sys/unix/ztypes_openbsd_riscv64.go +570 -0
  469. package/govendor/golang.org/x/sys/unix/ztypes_solaris_amd64.go +516 -0
  470. package/govendor/golang.org/x/sys/unix/ztypes_zos_s390x.go +552 -0
  471. package/govendor/golang.org/x/sys/windows/aliases.go +13 -0
  472. package/govendor/golang.org/x/sys/windows/dll_windows.go +380 -0
  473. package/govendor/golang.org/x/sys/windows/env_windows.go +57 -0
  474. package/govendor/golang.org/x/sys/windows/eventlog.go +20 -0
  475. package/govendor/golang.org/x/sys/windows/exec_windows.go +248 -0
  476. package/govendor/golang.org/x/sys/windows/memory_windows.go +48 -0
  477. package/govendor/golang.org/x/sys/windows/mkerrors.bash +70 -0
  478. package/govendor/golang.org/x/sys/windows/mkknownfolderids.bash +27 -0
  479. package/govendor/golang.org/x/sys/windows/mksyscall.go +9 -0
  480. package/govendor/golang.org/x/sys/windows/race.go +30 -0
  481. package/govendor/golang.org/x/sys/windows/race0.go +25 -0
  482. package/govendor/golang.org/x/sys/windows/security_windows.go +1537 -0
  483. package/govendor/golang.org/x/sys/windows/service.go +257 -0
  484. package/govendor/golang.org/x/sys/windows/setupapi_windows.go +1425 -0
  485. package/govendor/golang.org/x/sys/windows/str.go +22 -0
  486. package/govendor/golang.org/x/sys/windows/syscall.go +104 -0
  487. package/govendor/golang.org/x/sys/windows/syscall_windows.go +1952 -0
  488. package/govendor/golang.org/x/sys/windows/types_windows.go +4058 -0
  489. package/govendor/golang.org/x/sys/windows/types_windows_386.go +35 -0
  490. package/govendor/golang.org/x/sys/windows/types_windows_amd64.go +34 -0
  491. package/govendor/golang.org/x/sys/windows/types_windows_arm.go +35 -0
  492. package/govendor/golang.org/x/sys/windows/types_windows_arm64.go +34 -0
  493. package/govendor/golang.org/x/sys/windows/zerrors_windows.go +9468 -0
  494. package/govendor/golang.org/x/sys/windows/zknownfolderids_windows.go +149 -0
  495. package/govendor/golang.org/x/sys/windows/zsyscall_windows.go +4828 -0
  496. package/govendor/manifest.txt +7 -0
  497. package/package.json +6 -1
  498. package/types/typenative-go.d.ts +15159 -5
  499. package/types/typenative-npm.d.ts +2637 -34
  500. package/types/typenative.d.ts +651 -8
@@ -0,0 +1,121 @@
1
+ // node:console + the global console's extra methods (count / group / time /
2
+ // assert / trace / dir). console.log / error / warn themselves are lowered in
3
+ // the transpiler (callHandlers); node:console's functions route there.
4
+ import { defineHelper, defineModule } from './registry.js';
5
+ const consoleHelper = `// console: group indentation, counters and timers (Node's output formats)
6
+ var tnConsoleIndent = ""
7
+ var tnConsoleCounts = map[string]int{}
8
+ var tnConsoleTimers = map[string]time.Time{}
9
+ var tnConsoleMu sync.Mutex
10
+
11
+ func TnConsoleWrite(w *os.File, line string) {
12
+ tnConsoleMu.Lock()
13
+ defer tnConsoleMu.Unlock()
14
+ if tnConsoleIndent != "" {
15
+ line = tnConsoleIndent + strings.ReplaceAll(line, "\\n", "\\n"+tnConsoleIndent)
16
+ }
17
+ fmt.Fprintln(w, line)
18
+ }
19
+
20
+ func TnConsoleGroup(label ...interface{}) {
21
+ if len(label) > 0 {
22
+ TnConsoleWrite(os.Stdout, strings.TrimSuffix(fmt.Sprintln(label...), "\\n"))
23
+ }
24
+ tnConsoleMu.Lock()
25
+ tnConsoleIndent += " "
26
+ tnConsoleMu.Unlock()
27
+ }
28
+
29
+ func TnConsoleGroupEnd() {
30
+ tnConsoleMu.Lock()
31
+ if len(tnConsoleIndent) >= 2 {
32
+ tnConsoleIndent = tnConsoleIndent[2:]
33
+ }
34
+ tnConsoleMu.Unlock()
35
+ }
36
+
37
+ func TnConsoleCount(label ...string) {
38
+ name := "default"
39
+ if len(label) > 0 {
40
+ name = label[0]
41
+ }
42
+ tnConsoleMu.Lock()
43
+ tnConsoleCounts[name]++
44
+ n := tnConsoleCounts[name]
45
+ tnConsoleMu.Unlock()
46
+ TnConsoleWrite(os.Stdout, fmt.Sprintf("%s: %d", name, n))
47
+ }
48
+
49
+ func TnConsoleCountReset(label ...string) {
50
+ name := "default"
51
+ if len(label) > 0 {
52
+ name = label[0]
53
+ }
54
+ tnConsoleMu.Lock()
55
+ delete(tnConsoleCounts, name)
56
+ tnConsoleMu.Unlock()
57
+ }
58
+
59
+ func tnTimerLabel(label []string) string {
60
+ if len(label) > 0 {
61
+ return label[0]
62
+ }
63
+ return "default"
64
+ }
65
+
66
+ func TnConsoleTime(label ...string) {
67
+ tnConsoleMu.Lock()
68
+ tnConsoleTimers[tnTimerLabel(label)] = time.Now()
69
+ tnConsoleMu.Unlock()
70
+ }
71
+
72
+ // Node's duration format: 1.234ms, 1.234s, 1:02.345 (m:ss.mmm)
73
+ func tnFormatDuration(d time.Duration) string {
74
+ ms := float64(d.Nanoseconds()) / 1e6
75
+ if ms < 1000 {
76
+ return fmt.Sprintf("%.3fms", ms)
77
+ }
78
+ if ms < 60000 {
79
+ return fmt.Sprintf("%.3fs", ms/1000)
80
+ }
81
+ minutes := int(ms / 60000)
82
+ return fmt.Sprintf("%d:%06.3f (m:ss.mmm)", minutes, (ms-float64(minutes)*60000)/1000)
83
+ }
84
+
85
+ func tnConsoleElapsed(label string, end bool) (string, bool) {
86
+ tnConsoleMu.Lock()
87
+ defer tnConsoleMu.Unlock()
88
+ start, ok := tnConsoleTimers[label]
89
+ if !ok {
90
+ return "", false
91
+ }
92
+ if end {
93
+ delete(tnConsoleTimers, label)
94
+ }
95
+ return label + ": " + tnFormatDuration(time.Since(start)), true
96
+ }
97
+
98
+ func TnConsoleTimeEnd(label ...string) {
99
+ name := tnTimerLabel(label)
100
+ if line, ok := tnConsoleElapsed(name, true); ok {
101
+ TnConsoleWrite(os.Stdout, line)
102
+ } else {
103
+ TnConsoleWrite(os.Stderr, "Warning: No such label '"+name+"' for console.timeEnd()")
104
+ }
105
+ }
106
+
107
+ func TnConsoleTimeLog(label string, extra string) {
108
+ if line, ok := tnConsoleElapsed(label, false); ok {
109
+ if extra != "" {
110
+ line += " " + extra
111
+ }
112
+ TnConsoleWrite(os.Stdout, line)
113
+ } else {
114
+ TnConsoleWrite(os.Stderr, "Warning: No such label '"+label+"' for console.timeLog()")
115
+ }
116
+ }`;
117
+ export function registerConsole(r) {
118
+ defineModule(r, 'console');
119
+ defineHelper(r, 'console', ['fmt', 'os', 'strings', 'sync', 'time'], [], consoleHelper);
120
+ r.namespaces['console.default'] = 'console';
121
+ }
@@ -0,0 +1,111 @@
1
+ // Cross-cutting Node types: NodeJS.ErrnoException is the TnError every
2
+ // thrown Node error is (err.code / err.syscall / err.path / err.errno)
3
+ import { defineClass, defineHelper, defineModule } from './registry.js';
4
+ const invokeHelper = `// Node-style callbacks (cb(err, value)) take any arguments
5
+ type TnCallback = func(...interface{})
6
+
7
+ // Calls a JS callback of any Go func type with JS arguments: extra arguments
8
+ // are dropped, missing ones are zero values, numbers convert between kinds
9
+ func TnInvoke(fn interface{}, args ...interface{}) interface{} {
10
+ fv := reflect.ValueOf(fn)
11
+ if !fv.IsValid() || fv.Kind() != reflect.Func || fv.IsNil() {
12
+ return nil
13
+ }
14
+ ft := fv.Type()
15
+ in := []reflect.Value{}
16
+ n := ft.NumIn()
17
+ for i := 0; i < n; i++ {
18
+ if ft.IsVariadic() && i == n-1 {
19
+ elem := ft.In(i).Elem()
20
+ for j := i; j < len(args); j++ {
21
+ in = append(in, tnInvokeArg(args[j], elem))
22
+ }
23
+ break
24
+ }
25
+ var a interface{}
26
+ if i < len(args) {
27
+ a = args[i]
28
+ }
29
+ in = append(in, tnInvokeArg(a, ft.In(i)))
30
+ }
31
+ out := fv.Call(in)
32
+ if len(out) > 0 {
33
+ return out[0].Interface()
34
+ }
35
+ return nil
36
+ }
37
+
38
+ func tnInvokeArg(a interface{}, t reflect.Type) reflect.Value {
39
+ if a == nil {
40
+ return reflect.Zero(t)
41
+ }
42
+ v := reflect.ValueOf(a)
43
+ if v.Type().AssignableTo(t) {
44
+ return v
45
+ }
46
+ // Nullable primitives (*string / *float64) take a pointer to the value
47
+ if t.Kind() == reflect.Pointer && v.Type().AssignableTo(t.Elem()) {
48
+ p := reflect.New(t.Elem())
49
+ p.Elem().Set(v)
50
+ return p
51
+ }
52
+ // A callback of another func type: adapt the arguments through TnInvoke
53
+ if t.Kind() == reflect.Func && v.Kind() == reflect.Func {
54
+ target := a
55
+ return reflect.MakeFunc(t, func(in []reflect.Value) []reflect.Value {
56
+ args := make([]interface{}, len(in))
57
+ for i, arg := range in {
58
+ if arg.Kind() == reflect.Pointer && arg.IsNil() {
59
+ args[i] = nil
60
+ } else if arg.Kind() == reflect.Pointer && arg.Elem().Kind() != reflect.Struct {
61
+ args[i] = arg.Elem().Interface()
62
+ } else {
63
+ args[i] = arg.Interface()
64
+ }
65
+ }
66
+ result := TnInvoke(target, args...)
67
+ out := []reflect.Value{}
68
+ for i := 0; i < t.NumOut(); i++ {
69
+ out = append(out, tnInvokeArg(result, t.Out(i)))
70
+ }
71
+ return out
72
+ })
73
+ }
74
+ numeric := func(k reflect.Kind) bool {
75
+ return (k >= reflect.Int && k <= reflect.Uint64) || k == reflect.Float32 || k == reflect.Float64
76
+ }
77
+ if numeric(v.Kind()) && numeric(t.Kind()) {
78
+ return v.Convert(t)
79
+ }
80
+ // Decoded JSON-like values into typed parameters (worker messages …)
81
+ if converted, ok := TnConvertDynamic(a, t); ok {
82
+ return converted
83
+ }
84
+ return reflect.Zero(t)
85
+ }`;
86
+ export function registerCore(r) {
87
+ defineHelper(r, 'nodeInvoke', ['reflect'], ['dynamic'], invokeHelper);
88
+ defineClass(r, 'NodeJS.ErrnoException', '*TnError', 'class', '', 'message=string; code=string', 'name=string; stack=string; cause=interface{}; syscall=string; path=string; errno=float64; hostname=string; address=string; port=float64; actual=interface{}; expected=interface{}; operator=string; generatedMessage=bool', '');
89
+ r.globals['NodeJS'] = 'NodeJS';
90
+ // Callback types of Node's typings (TransformCallback …)
91
+ for (const name of ['stream.TransformCallback', 'fs.NoParamCallback']) {
92
+ defineClass(r, name, 'TnCallback', 'class', '', '', '', '');
93
+ }
94
+ r.classByGoType['TnCallback'] = '';
95
+ }
96
+ // node:constants (deprecated): fs.constants and os.constants.signals merged.
97
+ // Registered after the fs and os modules.
98
+ export function registerConstants(r) {
99
+ defineModule(r, 'constants');
100
+ for (const key of Object.keys(r.values)) {
101
+ let name = '';
102
+ if (key.startsWith('fs.constants.'))
103
+ name = key.slice('fs.constants.'.length);
104
+ if (key.startsWith('os.constants.signals.'))
105
+ name = key.slice('os.constants.signals.'.length);
106
+ if (!name)
107
+ continue;
108
+ r.values[`constants.${name}`] = r.values[key];
109
+ r.valueTypes[`constants.${name}`] = r.valueTypes[key];
110
+ }
111
+ }
@@ -0,0 +1,414 @@
1
+ // node:crypto (+ the global crypto): hashes / HMAC (md5, sha1, sha2, sha3),
2
+ // random bytes / UUIDs / ints, timingSafeEqual, PBKDF2 / HKDF, AES ciphers
3
+ // (cbc / ctr / gcm). Backed by Go's crypto packages.
4
+ import { defineClass, defineHelper, defineModule, setResults } from './registry.js';
5
+ const cryptoHelper = `// node:crypto
6
+ func tnHashFactory(alg string) func() hash.Hash {
7
+ switch strings.ToLower(alg) {
8
+ case "md5":
9
+ return md5.New
10
+ case "sha1", "sha-1":
11
+ return sha1.New
12
+ case "sha224", "sha-224":
13
+ return sha256.New224
14
+ case "sha256", "sha-256":
15
+ return sha256.New
16
+ case "sha384", "sha-384":
17
+ return sha512.New384
18
+ case "sha512", "sha-512":
19
+ return sha512.New
20
+ case "sha512-224":
21
+ return sha512.New512_224
22
+ case "sha512-256":
23
+ return sha512.New512_256
24
+ case "sha3-224":
25
+ return func() hash.Hash { return sha3.New224() }
26
+ case "sha3-256":
27
+ return func() hash.Hash { return sha3.New256() }
28
+ case "sha3-384":
29
+ return func() hash.Hash { return sha3.New384() }
30
+ case "sha3-512":
31
+ return func() hash.Hash { return sha3.New512() }
32
+ }
33
+ panic(TnNodeError("Error", "ERR_OSSL_EVP_UNSUPPORTED", "Digest method not supported"))
34
+ }
35
+
36
+ func TnGetHashes() []string {
37
+ return []string{"md5", "sha1", "sha224", "sha256", "sha3-224", "sha3-256", "sha3-384", "sha3-512", "sha384", "sha512", "sha512-224", "sha512-256"}
38
+ }
39
+
40
+ // Hash and Hmac objects (createHash / createHmac)
41
+ type TnHash struct {
42
+ h hash.Hash
43
+ alg string
44
+ finalized bool
45
+ }
46
+
47
+ func TnCreateHash(alg string, options ...interface{}) *TnHash {
48
+ return &TnHash{h: tnHashFactory(alg)(), alg: alg}
49
+ }
50
+
51
+ func TnCreateHmac(alg string, key interface{}, options ...interface{}) *TnHash {
52
+ return &TnHash{h: hmac.New(tnHashFactory(alg), tnCryptoBytes(key, "")), alg: alg}
53
+ }
54
+
55
+ // Bytes of data passed to crypto APIs: strings in an encoding (utf8 by default) or Buffers
56
+ func tnCryptoBytes(v interface{}, enc string) []byte {
57
+ switch x := v.(type) {
58
+ case string:
59
+ return TnBufferFromString(x, enc)
60
+ case []byte:
61
+ return x
62
+ }
63
+ return TnBufferFrom(v, enc)
64
+ }
65
+
66
+ func (h *TnHash) update(data interface{}, enc ...string) *TnHash {
67
+ if h.finalized {
68
+ panic(TnNodeError("Error", "ERR_CRYPTO_HASH_FINALIZED", "Digest already called"))
69
+ }
70
+ e := ""
71
+ if len(enc) > 0 {
72
+ e = enc[0]
73
+ }
74
+ h.h.Write(tnCryptoBytes(data, e))
75
+ return h
76
+ }
77
+
78
+ func (h *TnHash) digestBytes() []byte {
79
+ if h.finalized {
80
+ panic(TnNodeError("Error", "ERR_CRYPTO_HASH_FINALIZED", "Digest already called"))
81
+ }
82
+ h.finalized = true
83
+ return h.h.Sum(nil)
84
+ }
85
+
86
+ func (h *TnHash) digest() []byte { return h.digestBytes() }
87
+
88
+ func (h *TnHash) digestString(enc string) string { return TnBufferToString(h.digestBytes(), enc) }
89
+
90
+ // hash.copy(): the state so far, as an independent Hash
91
+ func (h *TnHash) copy() *TnHash {
92
+ m, ok := h.h.(encoding.BinaryMarshaler)
93
+ if !ok {
94
+ panic(TnNodeError("Error", "ERR_CRYPTO_HASH_FINALIZED", "Digest already called"))
95
+ }
96
+ state, err := m.MarshalBinary()
97
+ if err != nil {
98
+ panic(err)
99
+ }
100
+ clone := tnHashFactory(h.alg)()
101
+ clone.(encoding.BinaryUnmarshaler).UnmarshalBinary(state)
102
+ return &TnHash{h: clone, alg: h.alg}
103
+ }
104
+
105
+ // crypto.hash(algorithm, data, outputEncoding = "hex")
106
+ func TnHashOnce(alg string, data interface{}, enc ...string) string {
107
+ out := "hex"
108
+ if len(enc) > 0 && enc[0] != "" {
109
+ out = enc[0]
110
+ }
111
+ h := tnHashFactory(alg)()
112
+ h.Write(tnCryptoBytes(data, ""))
113
+ return TnBufferToString(h.Sum(nil), out)
114
+ }
115
+
116
+ func TnRandomBytes(n float64) []byte {
117
+ b := make([]byte, int(n))
118
+ if _, err := cryptorand.Read(b); err != nil {
119
+ panic(err)
120
+ }
121
+ return b
122
+ }
123
+
124
+ func TnRandomUUID() string {
125
+ b := TnRandomBytes(16)
126
+ b[6] = (b[6] & 0x0f) | 0x40
127
+ b[8] = (b[8] & 0x3f) | 0x80
128
+ h := hex.EncodeToString(b)
129
+ return h[0:8] + "-" + h[8:12] + "-" + h[12:16] + "-" + h[16:20] + "-" + h[20:32]
130
+ }
131
+
132
+ // randomInt([min,] max): min <= n < max
133
+ func TnRandomInt(a float64, b ...float64) float64 {
134
+ min, max := 0.0, a
135
+ if len(b) > 0 {
136
+ min, max = a, b[0]
137
+ }
138
+ if max <= min {
139
+ panic(TnNodeError("RangeError", "ERR_OUT_OF_RANGE", "The value of \\"max\\" is out of range. It must be greater than the value of \\"min\\" ("+TnNumStr(min)+"). Received "+TnNumStr(max)))
140
+ }
141
+ n, err := cryptorand.Int(cryptorand.Reader, tnbig.NewInt(int64(max-min)))
142
+ if err != nil {
143
+ panic(err)
144
+ }
145
+ return min + float64(n.Int64())
146
+ }
147
+
148
+ func TnGetRandomValues(b []byte) []byte {
149
+ if _, err := cryptorand.Read(b); err != nil {
150
+ panic(err)
151
+ }
152
+ return b
153
+ }
154
+
155
+ func TnTimingSafeEqual(a []byte, b []byte) bool {
156
+ if len(a) != len(b) {
157
+ panic(TnNodeError("RangeError", "ERR_CRYPTO_TIMING_SAFE_EQUAL_LENGTH", "Input buffers must have the same byte length"))
158
+ }
159
+ return subtle.ConstantTimeCompare(a, b) == 1
160
+ }
161
+
162
+ func TnPbkdf2(password interface{}, salt interface{}, iterations float64, keylen float64, digest string) []byte {
163
+ key, err := pbkdf2.Key(tnHashFactory(digest), string(tnCryptoBytes(password, "")), tnCryptoBytes(salt, ""), int(iterations), int(keylen))
164
+ if err != nil {
165
+ panic(TnNodeError("Error", "ERR_CRYPTO_INVALID_KEYLEN", err.Error()))
166
+ }
167
+ return key
168
+ }
169
+
170
+ func TnHkdf(digest string, ikm interface{}, salt interface{}, info interface{}, keylen float64) []byte {
171
+ key, err := hkdf.Key(tnHashFactory(digest), tnCryptoBytes(ikm, ""), tnCryptoBytes(salt, ""), string(tnCryptoBytes(info, "")), int(keylen))
172
+ if err != nil {
173
+ panic(TnNodeError("RangeError", "ERR_CRYPTO_INVALID_KEYLEN", err.Error()))
174
+ }
175
+ return key
176
+ }
177
+
178
+ // Ciphers: aes-{128,192,256}-{cbc,ctr,gcm}; GCM authenticates on final()
179
+ type TnCipher struct {
180
+ decrypt bool
181
+ mode string
182
+ block cipher.Block
183
+ stream cipher.Stream
184
+ cbc cipher.BlockMode
185
+ aead cipher.AEAD
186
+ iv []byte
187
+ pending []byte
188
+ aad []byte
189
+ authTag []byte
190
+ autoPadding bool
191
+ finalized bool
192
+ }
193
+
194
+ func TnGetCiphers() []string {
195
+ return []string{"aes-128-cbc", "aes-128-ctr", "aes-128-gcm", "aes-192-cbc", "aes-192-ctr", "aes-192-gcm", "aes-256-cbc", "aes-256-ctr", "aes-256-gcm"}
196
+ }
197
+
198
+ func TnCreateCipher(alg string, key interface{}, iv interface{}, decrypt bool, options ...interface{}) *TnCipher {
199
+ parts := strings.Split(strings.ToLower(alg), "-")
200
+ if len(parts) != 3 || parts[0] != "aes" {
201
+ panic(TnNodeError("Error", "ERR_CRYPTO_UNKNOWN_CIPHER", "Unknown cipher"))
202
+ }
203
+ k := tnCryptoBytes(key, "")
204
+ if strconv.Itoa(len(k)*8) != parts[1] {
205
+ panic(TnNodeError("RangeError", "ERR_CRYPTO_INVALID_KEYLEN", "Invalid key length"))
206
+ }
207
+ block, err := aes.NewCipher(k)
208
+ if err != nil {
209
+ panic(TnNodeError("RangeError", "ERR_CRYPTO_INVALID_KEYLEN", "Invalid key length"))
210
+ }
211
+ c := &TnCipher{decrypt: decrypt, mode: parts[2], block: block, iv: tnCryptoBytes(iv, ""), autoPadding: true}
212
+ switch c.mode {
213
+ case "cbc":
214
+ if len(c.iv) != aes.BlockSize {
215
+ panic(TnNodeError("TypeError", "ERR_CRYPTO_INVALID_IV", "Invalid initialization vector"))
216
+ }
217
+ if decrypt {
218
+ c.cbc = cipher.NewCBCDecrypter(block, c.iv)
219
+ } else {
220
+ c.cbc = cipher.NewCBCEncrypter(block, c.iv)
221
+ }
222
+ case "ctr":
223
+ if len(c.iv) != aes.BlockSize {
224
+ panic(TnNodeError("TypeError", "ERR_CRYPTO_INVALID_IV", "Invalid initialization vector"))
225
+ }
226
+ c.stream = cipher.NewCTR(block, c.iv)
227
+ case "gcm":
228
+ aead, err := cipher.NewGCMWithNonceSize(block, len(c.iv))
229
+ if err != nil {
230
+ panic(TnNodeError("TypeError", "ERR_CRYPTO_INVALID_IV", "Invalid initialization vector"))
231
+ }
232
+ c.aead = aead
233
+ default:
234
+ panic(TnNodeError("Error", "ERR_CRYPTO_UNKNOWN_CIPHER", "Unknown cipher"))
235
+ }
236
+ return c
237
+ }
238
+
239
+ func (c *TnCipher) process(data []byte) []byte {
240
+ switch c.mode {
241
+ case "ctr":
242
+ out := make([]byte, len(data))
243
+ c.stream.XORKeyStream(out, data)
244
+ return out
245
+ case "gcm":
246
+ c.pending = append(c.pending, data...)
247
+ return []byte{}
248
+ }
249
+ c.pending = append(c.pending, data...)
250
+ n := len(c.pending) / aes.BlockSize * aes.BlockSize
251
+ // Decryption keeps the last block back: it carries the padding
252
+ if c.decrypt && c.autoPadding && n == len(c.pending) && n > 0 {
253
+ n -= aes.BlockSize
254
+ }
255
+ out := make([]byte, n)
256
+ c.cbc.CryptBlocks(out, c.pending[:n])
257
+ c.pending = c.pending[n:]
258
+ return out
259
+ }
260
+
261
+ func (c *TnCipher) finish() []byte {
262
+ if c.finalized {
263
+ panic(TnNodeError("Error", "ERR_CRYPTO_INVALID_STATE", "Unsupported state"))
264
+ }
265
+ c.finalized = true
266
+ switch c.mode {
267
+ case "ctr":
268
+ return []byte{}
269
+ case "gcm":
270
+ if c.decrypt {
271
+ out, err := c.aead.Open(nil, c.iv, append(append([]byte{}, c.pending...), c.authTag...), c.aad)
272
+ if err != nil {
273
+ panic(TnNodeError("Error", "", "Unsupported state or unable to authenticate data"))
274
+ }
275
+ return out
276
+ }
277
+ sealed := c.aead.Seal(nil, c.iv, c.pending, c.aad)
278
+ tagStart := len(sealed) - c.aead.Overhead()
279
+ c.authTag = sealed[tagStart:]
280
+ return sealed[:tagStart]
281
+ }
282
+ if c.decrypt {
283
+ if len(c.pending) != aes.BlockSize && c.autoPadding {
284
+ panic(TnNodeError("Error", "ERR_OSSL_WRONG_FINAL_BLOCK_LENGTH", "wrong final block length"))
285
+ }
286
+ if len(c.pending) == 0 {
287
+ return []byte{}
288
+ }
289
+ out := make([]byte, len(c.pending))
290
+ c.cbc.CryptBlocks(out, c.pending)
291
+ if !c.autoPadding {
292
+ return out
293
+ }
294
+ pad := int(out[len(out)-1])
295
+ if pad == 0 || pad > aes.BlockSize {
296
+ panic(TnNodeError("Error", "ERR_OSSL_BAD_DECRYPT", "bad decrypt"))
297
+ }
298
+ return out[:len(out)-pad]
299
+ }
300
+ if !c.autoPadding {
301
+ if len(c.pending)%aes.BlockSize != 0 {
302
+ panic(TnNodeError("Error", "ERR_OSSL_WRONG_FINAL_BLOCK_LENGTH", "data not multiple of block length"))
303
+ }
304
+ out := make([]byte, len(c.pending))
305
+ c.cbc.CryptBlocks(out, c.pending)
306
+ return out
307
+ }
308
+ pad := aes.BlockSize - len(c.pending)%aes.BlockSize
309
+ padded := append(append([]byte{}, c.pending...), bytes.Repeat([]byte{byte(pad)}, pad)...)
310
+ out := make([]byte, len(padded))
311
+ c.cbc.CryptBlocks(out, padded)
312
+ return out
313
+ }
314
+
315
+ func (c *TnCipher) update(data interface{}, inputEncoding ...string) []byte {
316
+ enc := ""
317
+ if len(inputEncoding) > 0 {
318
+ enc = inputEncoding[0]
319
+ }
320
+ return c.process(tnCryptoBytes(data, enc))
321
+ }
322
+
323
+ func (c *TnCipher) updateString(data interface{}, inputEncoding string, outputEncoding string) string {
324
+ return TnBufferToString(c.process(tnCryptoBytes(data, inputEncoding)), outputEncoding)
325
+ }
326
+
327
+ func (c *TnCipher) final() []byte { return c.finish() }
328
+
329
+ func (c *TnCipher) finalString(enc string) string { return TnBufferToString(c.finish(), enc) }
330
+
331
+ func (c *TnCipher) setAAD(aad []byte, options ...interface{}) *TnCipher {
332
+ c.aad = aad
333
+ return c
334
+ }
335
+
336
+ func (c *TnCipher) setAuthTag(tag []byte) *TnCipher {
337
+ c.authTag = tag
338
+ return c
339
+ }
340
+
341
+ func (c *TnCipher) getAuthTag() []byte { return c.authTag }
342
+
343
+ func (c *TnCipher) setAutoPadding(pad ...bool) *TnCipher {
344
+ c.autoPadding = len(pad) == 0 || pad[0]
345
+ return c
346
+ }`;
347
+ export function registerCrypto(r) {
348
+ defineModule(r, 'crypto');
349
+ r.globals['crypto'] = 'crypto';
350
+ defineHelper(r, 'nodeCrypto', [
351
+ 'bytes',
352
+ 'crypto/aes',
353
+ 'crypto/cipher',
354
+ 'crypto/hkdf',
355
+ 'crypto/hmac',
356
+ 'crypto/md5',
357
+ 'crypto/pbkdf2',
358
+ 'crypto/rand',
359
+ 'crypto/sha1',
360
+ 'crypto/sha256',
361
+ 'crypto/sha3',
362
+ 'crypto/sha512',
363
+ 'crypto/subtle',
364
+ 'encoding',
365
+ 'encoding/hex',
366
+ 'hash',
367
+ 'math/big',
368
+ 'strconv',
369
+ 'strings'
370
+ ], ['error', 'buffer', 'dynamic'], cryptoHelper);
371
+ defineClass(r, 'crypto.Hash', '*TnHash', 'class', 'update=*TnHash; copy=*TnHash', '', '', '');
372
+ r.classes['crypto.Hmac'] = r.classes['crypto.Hash'];
373
+ defineClass(r, 'crypto.Cipher', '*TnCipher', 'class', 'setAAD=*TnCipher; setAuthTag=*TnCipher; getAuthTag=[]byte; setAutoPadding=*TnCipher', '', '', '');
374
+ r.classes['crypto.Cipheriv'] = r.classes['crypto.Cipher'];
375
+ r.classes['crypto.Decipheriv'] = r.classes['crypto.Cipher'];
376
+ r.classes['crypto.Decipher'] = r.classes['crypto.Cipher'];
377
+ const use = () => r.helper('nodeCrypto');
378
+ const fn = (name, result, emit) => {
379
+ r.functions[`crypto.${name}`] = (call) => {
380
+ use();
381
+ return emit(call);
382
+ };
383
+ r.results[`crypto.${name}`] = result;
384
+ };
385
+ fn('createHash', '*TnHash', (c) => `TnCreateHash(${c.args.join(', ')})`);
386
+ fn('createHmac', '*TnHash', (c) => `TnCreateHmac(${c.args.join(', ')})`);
387
+ fn('hash', 'string', (c) => `TnHashOnce(${c.args.join(', ')})`);
388
+ fn('getHashes', '[]string', (_c) => 'TnGetHashes()');
389
+ fn('getCiphers', '[]string', (_c) => 'TnGetCiphers()');
390
+ fn('randomBytes', '[]byte', (c) => `TnRandomBytes(${c.args[0]})`);
391
+ fn('randomUUID', 'string', (_c) => 'TnRandomUUID()');
392
+ fn('randomInt', 'float64', (c) => `TnRandomInt(${c.args.join(', ')})`);
393
+ fn('getRandomValues', '[]byte', (c) => `TnGetRandomValues(${c.args[0]})`);
394
+ fn('timingSafeEqual', 'bool', (c) => `TnTimingSafeEqual(${c.args[0]}, ${c.args[1]})`);
395
+ fn('pbkdf2Sync', '[]byte', (c) => `TnPbkdf2(${c.args.join(', ')})`);
396
+ fn('hkdfSync', '[]byte', (c) => `TnHkdf(${c.args.join(', ')})`);
397
+ fn('createCipheriv', '*TnCipher', (c) => `TnCreateCipher(${c.args[0]}, ${c.args[1]}, ${c.args[2]}, false)`);
398
+ fn('createDecipheriv', '*TnCipher', (c) => `TnCreateCipher(${c.args[0]}, ${c.args[1]}, ${c.args[2]}, true)`);
399
+ r.objects['crypto.webcrypto'] = true;
400
+ r.namespaces['crypto.webcrypto'] = 'crypto';
401
+ setResults(r, 'crypto', '');
402
+ // hash.digest(encoding?) → string with an encoding, Buffer without
403
+ r.methods['crypto.Hash#digest'] = (c) => (c.args.length > 0 ? `${c.recv}.digestString(${c.args[0]})` : `${c.recv}.digest()`);
404
+ r.typers['crypto.Hash#digest'] = (c) => (c.nodes.length > 0 ? 'string' : '[]byte');
405
+ // cipher.update(data, inputEncoding?, outputEncoding?) / final(outputEncoding?)
406
+ r.methods['crypto.Cipher#update'] = (c) => {
407
+ if (c.args.length >= 3)
408
+ return `${c.recv}.updateString(${c.args[0]}, ${c.args[1]}, ${c.args[2]})`;
409
+ return `${c.recv}.update(${c.args.join(', ')})`;
410
+ };
411
+ r.typers['crypto.Cipher#update'] = (c) => (c.nodes.length >= 3 ? 'string' : '[]byte');
412
+ r.methods['crypto.Cipher#final'] = (c) => (c.args.length > 0 ? `${c.recv}.finalString(${c.args[0]})` : `${c.recv}.final()`);
413
+ r.typers['crypto.Cipher#final'] = (c) => (c.nodes.length > 0 ? 'string' : '[]byte');
414
+ }