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,344 @@
1
+ // node:assert (+ node:assert/strict): failures throw an AssertionError
2
+ // (code 'ERR_ASSERTION', actual / expected / operator) that try/catch sees
3
+ import { defineClass, defineHelper, defineModule, setResults, isFunctionNode, isObjectLiteral } from './registry.js';
4
+ const assertHelper = `// node:assert
5
+ func tnAssertionError(message interface{}, generated string, actual interface{}, expected interface{}, operator string) *TnError {
6
+ if e, ok := message.(*TnError); ok {
7
+ panic(e)
8
+ }
9
+ text, isGenerated := generated, true
10
+ if s, ok := message.(string); ok {
11
+ text, isGenerated = s, false
12
+ }
13
+ err := TnNodeError("AssertionError", "ERR_ASSERTION", text)
14
+ err.props["actual"] = actual
15
+ err.props["expected"] = expected
16
+ err.props["operator"] = operator
17
+ err.props["generatedMessage"] = isGenerated
18
+ return err
19
+ }
20
+
21
+ func tnAssertMessage(msg []interface{}) interface{} {
22
+ if len(msg) > 0 {
23
+ return msg[0]
24
+ }
25
+ return nil
26
+ }
27
+
28
+ func TnAssertOk(value interface{}, msg ...interface{}) {
29
+ if !TnTruthy(value) {
30
+ panic(tnAssertionError(tnAssertMessage(msg), "The expression evaluated to a falsy value", value, true, "=="))
31
+ }
32
+ }
33
+
34
+ // Object.is
35
+ func tnObjectIs(a interface{}, b interface{}) bool {
36
+ if x, ok := a.(float64); ok {
37
+ if y, ok := b.(float64); ok {
38
+ if math.IsNaN(x) && math.IsNaN(y) {
39
+ return true
40
+ }
41
+ if x == 0 && y == 0 {
42
+ return math.Signbit(x) == math.Signbit(y)
43
+ }
44
+ return x == y
45
+ }
46
+ return false
47
+ }
48
+ return TnSame(a, b)
49
+ }
50
+
51
+ // ==, for assert.equal
52
+ func tnLooseEqual(a interface{}, b interface{}) bool {
53
+ if a == nil || b == nil {
54
+ return a == nil && b == nil
55
+ }
56
+ if TnSame(a, b) {
57
+ x, isFloat := a.(float64)
58
+ return !isFloat || !math.IsNaN(x)
59
+ }
60
+ _, aStr := a.(string)
61
+ _, bStr := b.(string)
62
+ _, aNum := a.(float64)
63
+ _, bNum := b.(float64)
64
+ _, aBool := a.(bool)
65
+ _, bBool := b.(bool)
66
+ if (aStr || aNum || aBool) && (bStr || bNum || bBool) {
67
+ return TnNumber(a) == TnNumber(b)
68
+ }
69
+ return false
70
+ }
71
+
72
+ func TnAssertStrictEqual(actual interface{}, expected interface{}, msg ...interface{}) {
73
+ if !tnObjectIs(actual, expected) {
74
+ panic(tnAssertionError(tnAssertMessage(msg), "Expected values to be strictly equal:\\n\\n"+TnInspect(actual)+" !== "+TnInspect(expected)+"\\n", actual, expected, "strictEqual"))
75
+ }
76
+ }
77
+
78
+ func TnAssertNotStrictEqual(actual interface{}, expected interface{}, msg ...interface{}) {
79
+ if tnObjectIs(actual, expected) {
80
+ panic(tnAssertionError(tnAssertMessage(msg), "Expected \\"actual\\" to be strictly unequal to: "+TnInspect(expected), actual, expected, "notStrictEqual"))
81
+ }
82
+ }
83
+
84
+ func TnAssertEqual(actual interface{}, expected interface{}, msg ...interface{}) {
85
+ if !tnLooseEqual(actual, expected) {
86
+ panic(tnAssertionError(tnAssertMessage(msg), TnInspect(actual)+" == "+TnInspect(expected), actual, expected, "=="))
87
+ }
88
+ }
89
+
90
+ func TnAssertNotEqual(actual interface{}, expected interface{}, msg ...interface{}) {
91
+ if tnLooseEqual(actual, expected) {
92
+ panic(tnAssertionError(tnAssertMessage(msg), TnInspect(actual)+" != "+TnInspect(expected), actual, expected, "!="))
93
+ }
94
+ }
95
+
96
+ func TnAssertDeepEqual(actual interface{}, expected interface{}, strict bool, msg ...interface{}) {
97
+ if !TnDeepEqual(actual, expected, strict) {
98
+ operator, label := "deepEqual", "Expected values to be loosely deep-equal:"
99
+ if strict {
100
+ operator, label = "deepStrictEqual", "Expected values to be strictly deep-equal:"
101
+ }
102
+ panic(tnAssertionError(tnAssertMessage(msg), label+"\\n\\n"+TnInspect(actual)+"\\n\\nshould equal\\n\\n"+TnInspect(expected), actual, expected, operator))
103
+ }
104
+ }
105
+
106
+ func TnAssertNotDeepEqual(actual interface{}, expected interface{}, strict bool, msg ...interface{}) {
107
+ if TnDeepEqual(actual, expected, strict) {
108
+ operator := "notDeepEqual"
109
+ if strict {
110
+ operator = "notDeepStrictEqual"
111
+ }
112
+ panic(tnAssertionError(tnAssertMessage(msg), "Expected \\"actual\\" not to be deep-equal to: "+TnInspect(expected), actual, expected, operator))
113
+ }
114
+ }
115
+
116
+ // The text an error is matched against by a RegExp: "Name: message"
117
+ func TnErrorText(e interface{}) string {
118
+ if err, ok := e.(*TnError); ok {
119
+ return err.Get_name() + ": " + err.message
120
+ }
121
+ if s, ok := e.(string); ok {
122
+ return s
123
+ }
124
+ if msg, ok := TnGet(e, "message").(string); ok {
125
+ return "Error: " + msg
126
+ }
127
+ return fmt.Sprint(e)
128
+ }
129
+
130
+ // { message, code, name } validation objects: every listed property must match
131
+ func TnErrorMatches(e interface{}, expected map[string]interface{}) bool {
132
+ for key, want := range expected {
133
+ got := TnGet(e, key)
134
+ if key == "message" {
135
+ if _, ok := e.(*TnError); !ok {
136
+ if m, ok := TnGet(e, "message").(string); ok {
137
+ got = m
138
+ }
139
+ }
140
+ }
141
+ if re, ok := want.(*regexp.Regexp); ok {
142
+ s, _ := got.(string)
143
+ if !re.MatchString(s) {
144
+ return false
145
+ }
146
+ continue
147
+ }
148
+ if !TnDeepEqual(got, want, true) {
149
+ return false
150
+ }
151
+ }
152
+ return true
153
+ }
154
+
155
+ func tnAssertRun(fn func()) (thrown interface{}, didThrow bool) {
156
+ defer func() {
157
+ if r := recover(); r != nil {
158
+ thrown, didThrow = r, true
159
+ }
160
+ }()
161
+ fn()
162
+ return nil, false
163
+ }
164
+
165
+ func TnAssertThrows(fn func(), check func(interface{}) bool, msg ...interface{}) {
166
+ thrown, didThrow := tnAssertRun(fn)
167
+ if !didThrow {
168
+ generated := "Missing expected exception."
169
+ if s, ok := tnAssertMessage(msg).(string); ok {
170
+ generated = "Missing expected exception: " + s
171
+ }
172
+ panic(tnAssertionError(nil, generated, nil, nil, "throws"))
173
+ }
174
+ if check != nil && !check(thrown) {
175
+ panic(thrown)
176
+ }
177
+ }
178
+
179
+ func TnAssertDoesNotThrow(fn func(), msg ...interface{}) {
180
+ thrown, didThrow := tnAssertRun(fn)
181
+ if didThrow {
182
+ generated := "Got unwanted exception.\\nActual message: \\"" + TnErrorText(thrown) + "\\""
183
+ panic(tnAssertionError(tnAssertMessage(msg), generated, thrown, nil, "doesNotThrow"))
184
+ }
185
+ }
186
+
187
+ // assert.rejects / doesNotReject: promises settle on their own goroutine
188
+ func TnAssertRejects[T any](p chan T, check func(interface{}) bool, msg ...interface{}) chan struct{} {
189
+ out := make(chan struct{}, 1)
190
+ go func() {
191
+ defer close(out)
192
+ defer TnRejectOnPanic(out)
193
+ _, reason, rejected := tnSettle(p)
194
+ if !rejected {
195
+ generated := "Missing expected rejection."
196
+ if s, ok := tnAssertMessage(msg).(string); ok {
197
+ generated = "Missing expected rejection: " + s
198
+ }
199
+ panic(tnAssertionError(nil, generated, nil, nil, "rejects"))
200
+ }
201
+ if check != nil && !check(reason) {
202
+ panic(reason)
203
+ }
204
+ out <- struct{}{}
205
+ }()
206
+ return out
207
+ }
208
+
209
+ func TnAssertDoesNotReject[T any](p chan T, msg ...interface{}) chan struct{} {
210
+ out := make(chan struct{}, 1)
211
+ go func() {
212
+ defer close(out)
213
+ defer TnRejectOnPanic(out)
214
+ _, reason, rejected := tnSettle(p)
215
+ if rejected {
216
+ panic(tnAssertionError(tnAssertMessage(msg), "Got unwanted rejection.\\nActual message: \\""+TnErrorText(reason)+"\\"", reason, nil, "doesNotReject"))
217
+ }
218
+ out <- struct{}{}
219
+ }()
220
+ return out
221
+ }
222
+
223
+ func TnAssertMatch(s string, re *regexp.Regexp, negate bool, msg ...interface{}) {
224
+ if re.MatchString(s) == negate {
225
+ generated := "The input did not match the regular expression /" + re.String() + "/. Input:\\n\\n" + TnInspect(s) + "\\n"
226
+ operator := "match"
227
+ if negate {
228
+ generated = "The input was expected to not match the regular expression /" + re.String() + "/. Input:\\n\\n" + TnInspect(s) + "\\n"
229
+ operator = "doesNotMatch"
230
+ }
231
+ panic(tnAssertionError(tnAssertMessage(msg), generated, s, re, operator))
232
+ }
233
+ }
234
+
235
+ func TnAssertFail(msg ...interface{}) {
236
+ panic(tnAssertionError(tnAssertMessage(msg), "Failed", nil, nil, "fail"))
237
+ }
238
+
239
+ func TnAssertIfError(v interface{}) {
240
+ if v != nil {
241
+ panic(tnAssertionError(nil, "ifError got unwanted exception: "+TnErrorText(v), v, nil, "ifError"))
242
+ }
243
+ }`;
244
+ // The error validator of throws / rejects: (e) => bool in Go, or 'nil'
245
+ function errorCheck(r, node, arg, type) {
246
+ if (!node)
247
+ return 'nil';
248
+ if (type === '*regexp.Regexp')
249
+ return `func(e interface{}) bool { return ${arg}.MatchString(TnErrorText(e)) }`;
250
+ if (isFunctionNode(node))
251
+ return `func(e interface{}) bool { return TnTruthy((${arg})(e)) }`;
252
+ if (isObjectLiteral(node)) {
253
+ const fields = [];
254
+ for (const prop of node.properties ?? []) {
255
+ if (prop.kind !== 'PropertyAssignment' || !prop.name)
256
+ continue;
257
+ fields.push(`${JSON.stringify(String(prop.name.text))}: ${r.visit(prop.initializer)}`);
258
+ }
259
+ return `func(e interface{}) bool { return TnErrorMatches(e, map[string]interface{}{${fields.join(', ')}}) }`;
260
+ }
261
+ if (node.kind === 'Identifier') {
262
+ const name = String(node.text);
263
+ if (name === 'Error')
264
+ return 'func(e interface{}) bool { return TnIsNativeError(e) }';
265
+ if (['TypeError', 'RangeError', 'SyntaxError', 'ReferenceError', 'EvalError', 'URIError'].includes(name)) {
266
+ return `func(e interface{}) bool { err, ok := e.(*TnError); return ok && err.Get_name() == ${JSON.stringify(name)} }`;
267
+ }
268
+ return `func(e interface{}) bool { _, ok := e.(*${name}); return ok }`;
269
+ }
270
+ return 'nil';
271
+ }
272
+ // The message argument of throws(fn, [expected], [message]) when expected is a string
273
+ function throwsArgs(r, call, from) {
274
+ const node = call.nodes[from];
275
+ if (node && call.types[from] === 'string') {
276
+ return `nil, ${call.args[from]}`;
277
+ }
278
+ const check = errorCheck(r, node, call.args[from] ?? '', call.types[from]);
279
+ const message = call.args[from + 1];
280
+ return message ? `${check}, ${message}` : check;
281
+ }
282
+ export function registerAssert(r) {
283
+ defineModule(r, 'assert');
284
+ defineModule(r, 'assert/strict');
285
+ defineHelper(r, 'nodeAssert', ['fmt', 'math', 'regexp'], ['error', 'dynamic', 'nodeUtil', 'promise'], assertHelper);
286
+ // AssertionError is a TnError (see NodeJS.ErrnoException); keep that the class of *TnError
287
+ const errnoKey = r.classByGoType['*TnError'];
288
+ defineClass(r, 'assert.AssertionError', '*TnError', 'class', '', 'message=string; code=string', 'name=string; actual=interface{}; expected=interface{}; operator=string; generatedMessage=bool', '');
289
+ if (errnoKey)
290
+ r.classByGoType['*TnError'] = errnoKey;
291
+ r.classes['assert/strict.AssertionError'] = r.classes['assert.AssertionError'];
292
+ r.namespaces['assert.strict'] = 'assert/strict';
293
+ r.namespaces['assert/strict.strict'] = 'assert/strict';
294
+ for (const mod of ['assert', 'assert/strict']) {
295
+ const strict = mod === 'assert/strict';
296
+ const fn = (name, emit) => {
297
+ r.functions[`${mod}.${name}`] = (call) => {
298
+ r.helper('nodeAssert');
299
+ return emit(call);
300
+ };
301
+ r.results[`${mod}.${name}`] = '';
302
+ };
303
+ const ok = (call) => `TnAssertOk(${call.args.join(', ')})`;
304
+ r.functions[mod] = (call) => {
305
+ r.helper('nodeAssert');
306
+ return ok(call);
307
+ };
308
+ fn('ok', ok);
309
+ fn('equal', (c) => (strict ? `TnAssertStrictEqual(${c.args.join(', ')})` : `TnAssertEqual(${c.args.join(', ')})`));
310
+ fn('notEqual', (c) => (strict ? `TnAssertNotStrictEqual(${c.args.join(', ')})` : `TnAssertNotEqual(${c.args.join(', ')})`));
311
+ fn('strictEqual', (c) => `TnAssertStrictEqual(${c.args.join(', ')})`);
312
+ fn('notStrictEqual', (c) => `TnAssertNotStrictEqual(${c.args.join(', ')})`);
313
+ const deep = (s, negate) => (c) => {
314
+ const rest = c.args.slice(2);
315
+ const tail = rest.length > 0 ? `, ${rest.join(', ')}` : '';
316
+ return `${negate ? 'TnAssertNotDeepEqual' : 'TnAssertDeepEqual'}(${c.args[0]}, ${c.args[1]}, ${s ? 'true' : 'false'}${tail})`;
317
+ };
318
+ fn('deepEqual', deep(strict, false));
319
+ fn('notDeepEqual', deep(strict, true));
320
+ fn('deepStrictEqual', deep(true, false));
321
+ fn('notDeepStrictEqual', deep(true, true));
322
+ fn('throws', (c) => `TnAssertThrows(func() { (${c.args[0]})() }, ${throwsArgs(r, c, 1)})`);
323
+ fn('doesNotThrow', (c) => {
324
+ const message = c.types[1] === 'string' ? `, ${c.args[1]}` : c.args[2] ? `, ${c.args[2]}` : '';
325
+ return `TnAssertDoesNotThrow(func() { (${c.args[0]})() }${message})`;
326
+ });
327
+ const promiseArg = (c) => (isFunctionNode(c.nodes[0]) || c.types[0].startsWith('func(') ? `(${c.args[0]})()` : c.args[0]);
328
+ fn('rejects', (c) => `TnAssertRejects(${promiseArg(c)}, ${throwsArgs(r, c, 1)})`);
329
+ fn('doesNotReject', (c) => {
330
+ const message = c.types[1] === 'string' ? `, ${c.args[1]}` : c.args[2] ? `, ${c.args[2]}` : '';
331
+ return `TnAssertDoesNotReject(${promiseArg(c)}${message})`;
332
+ });
333
+ r.results[`${mod}.rejects`] = 'chan struct{}';
334
+ r.results[`${mod}.doesNotReject`] = 'chan struct{}';
335
+ fn('match', (c) => `TnAssertMatch(${c.args[0]}, ${c.args[1]}, false${c.args[2] ? `, ${c.args[2]}` : ''})`);
336
+ fn('doesNotMatch', (c) => `TnAssertMatch(${c.args[0]}, ${c.args[1]}, true${c.args[2] ? `, ${c.args[2]}` : ''})`);
337
+ fn('fail', (c) => `TnAssertFail(${c.args.slice(0, 1).join(', ')})`);
338
+ fn('ifError', (c) => `TnAssertIfError(${c.args[0]})`);
339
+ for (const name of ['throws', 'rejects', 'doesNotThrow', 'doesNotReject']) {
340
+ r.paramTypers[`${mod}.${name}`] = (_n) => ['interface{}'];
341
+ }
342
+ setResults(r, mod, '');
343
+ }
344
+ }
@@ -0,0 +1,273 @@
1
+ // node:async_hooks — AsyncLocalStorage and AsyncResource on the event loop's
2
+ // async context (TnAsyncContext): the stores active when a callback is
3
+ // scheduled (timers, immediates, nextTick, microtasks, promise callbacks,
4
+ // async function bodies, fs / dns callbacks, streams, sockets and servers)
5
+ // are active again when it runs, and an await resumes with its own stores.
6
+ // createHook is accepted but its callbacks are never called; executionAsyncId
7
+ // is always 1 (ids are not tracked).
8
+ import { defineClass, defineHelper, defineModule, setResults } from './registry.js';
9
+ const asyncHooksHelper = `// node:async_hooks
10
+ type TnAsyncLocalStorage struct {
11
+ name string
12
+ }
13
+
14
+ func TnNewAsyncLocalStorage(options ...interface{}) *TnAsyncLocalStorage {
15
+ als := &TnAsyncLocalStorage{}
16
+ if len(options) > 0 && options[0] != nil {
17
+ if n, ok := TnGet(options[0], "name").(string); ok {
18
+ als.name = n
19
+ }
20
+ }
21
+ return als
22
+ }
23
+
24
+ func (als *TnAsyncLocalStorage) Get_name() string { return als.name }
25
+
26
+ // A copy of the current context with key set to store (nil removes it)
27
+ func tnAsyncWith(key interface{}, store interface{}, remove bool) TnAsyncContext {
28
+ ctx := TnAsyncContext{}
29
+ for k, v := range tnAsyncCtx {
30
+ ctx[k] = v
31
+ }
32
+ if remove {
33
+ delete(ctx, key)
34
+ } else {
35
+ ctx[key] = store
36
+ }
37
+ if len(ctx) == 0 {
38
+ return nil
39
+ }
40
+ return ctx
41
+ }
42
+
43
+ func (als *TnAsyncLocalStorage) getStore() interface{} {
44
+ if tnAsyncCtx == nil {
45
+ return nil
46
+ }
47
+ return tnAsyncCtx[als]
48
+ }
49
+
50
+ func (als *TnAsyncLocalStorage) enterWith(store interface{}) {
51
+ tnAsyncCtx = tnAsyncWith(als, store, false)
52
+ }
53
+
54
+ func (als *TnAsyncLocalStorage) disable() {
55
+ tnAsyncCtx = tnAsyncWith(als, nil, true)
56
+ }
57
+
58
+ // run(store, fn): fn's result; fn (and everything it schedules) sees store
59
+ func TnAlsRun[R any](als *TnAsyncLocalStorage, store interface{}, fn func() R) R {
60
+ var out R
61
+ TnAsyncRun(tnAsyncWith(als, store, false), func() { out = fn() })
62
+ return out
63
+ }
64
+
65
+ func TnAlsRunVoid(als *TnAsyncLocalStorage, store interface{}, fn func()) {
66
+ TnAsyncRun(tnAsyncWith(als, store, false), fn)
67
+ }
68
+
69
+ func TnAlsRunAny(als *TnAsyncLocalStorage, store interface{}, fn interface{}, args ...interface{}) interface{} {
70
+ var out interface{}
71
+ TnAsyncRun(tnAsyncWith(als, store, false), func() { out = TnInvoke(fn, args...) })
72
+ return out
73
+ }
74
+
75
+ func TnAlsExit[R any](als *TnAsyncLocalStorage, fn func() R) R {
76
+ var out R
77
+ TnAsyncRun(tnAsyncWith(als, nil, true), func() { out = fn() })
78
+ return out
79
+ }
80
+
81
+ func TnAlsExitVoid(als *TnAsyncLocalStorage, fn func()) {
82
+ TnAsyncRun(tnAsyncWith(als, nil, true), fn)
83
+ }
84
+
85
+ // A function of any type that runs in ctx
86
+ func tnAsyncBindTo[F any](ctx TnAsyncContext, fn F) F {
87
+ fv := reflect.ValueOf(fn)
88
+ if !fv.IsValid() || fv.Kind() != reflect.Func || fv.IsNil() {
89
+ return fn
90
+ }
91
+ bound := reflect.MakeFunc(fv.Type(), func(in []reflect.Value) []reflect.Value {
92
+ var out []reflect.Value
93
+ TnAsyncRun(ctx, func() {
94
+ if fv.Type().IsVariadic() {
95
+ out = fv.CallSlice(in)
96
+ } else {
97
+ out = fv.Call(in)
98
+ }
99
+ })
100
+ return out
101
+ })
102
+ return bound.Interface().(F)
103
+ }
104
+
105
+ // AsyncLocalStorage.bind(fn) / AsyncResource.bind(fn): fn bound to the current context
106
+ func TnAsyncBind[F any](fn F) F { return tnAsyncBindTo(tnAsyncCtx, fn) }
107
+
108
+ // AsyncLocalStorage.snapshot(): runs functions in the current context
109
+ func TnAsyncSnapshotRunner() func(fn interface{}, args ...interface{}) interface{} {
110
+ ctx := tnAsyncCtx
111
+ return func(fn interface{}, args ...interface{}) interface{} {
112
+ var out interface{}
113
+ TnAsyncRun(ctx, func() { out = TnInvoke(fn, args...) })
114
+ return out
115
+ }
116
+ }
117
+
118
+ var tnAsyncIDs float64 = 1
119
+
120
+ // AsyncResource: a context captured at construction
121
+ type TnAsyncResource struct {
122
+ type_ string
123
+ id float64
124
+ triggerID float64
125
+ ctx TnAsyncContext
126
+ }
127
+
128
+ func TnNewAsyncResource(kind string, options ...interface{}) *TnAsyncResource {
129
+ tnAsyncIDs++
130
+ res := &TnAsyncResource{type_: kind, id: tnAsyncIDs, triggerID: 1, ctx: tnAsyncCtx}
131
+ if len(options) > 0 && options[0] != nil {
132
+ if n, ok := tnNetNumberAsync(TnGet(options[0], "triggerAsyncId")); ok {
133
+ res.triggerID = n
134
+ }
135
+ }
136
+ return res
137
+ }
138
+
139
+ func tnNetNumberAsync(v interface{}) (float64, bool) {
140
+ switch n := v.(type) {
141
+ case float64:
142
+ return n, true
143
+ case int:
144
+ return float64(n), true
145
+ }
146
+ return 0, false
147
+ }
148
+
149
+ func (res *TnAsyncResource) asyncId() float64 { return res.id }
150
+ func (res *TnAsyncResource) triggerAsyncId() float64 { return res.triggerID }
151
+ func (res *TnAsyncResource) emitDestroy() *TnAsyncResource { return res }
152
+
153
+ func TnAsyncResourceRun[R any](res *TnAsyncResource, fn func() R) R {
154
+ var out R
155
+ TnAsyncRun(res.ctx, func() { out = fn() })
156
+ return out
157
+ }
158
+
159
+ func TnAsyncResourceRunVoid(res *TnAsyncResource, fn func()) {
160
+ TnAsyncRun(res.ctx, fn)
161
+ }
162
+
163
+ func TnAsyncResourceBind[F any](res *TnAsyncResource, fn F) F { return tnAsyncBindTo(res.ctx, fn) }
164
+
165
+ // createHook: accepted, its callbacks are not called
166
+ type TnAsyncHook struct {
167
+ enabled bool
168
+ }
169
+
170
+ func (h *TnAsyncHook) enable() *TnAsyncHook {
171
+ h.enabled = true
172
+ return h
173
+ }
174
+
175
+ func (h *TnAsyncHook) disable() *TnAsyncHook {
176
+ h.enabled = false
177
+ return h
178
+ }`;
179
+ // The result type of a Go func type ('func(a string) float64' → 'float64', '' for none)
180
+ export function goFuncResult(goType) {
181
+ if (!goType || !goType.startsWith('func('))
182
+ return '';
183
+ let depth = 0;
184
+ for (let i = 4; i < goType.length; i++) {
185
+ const ch = goType[i];
186
+ if (ch === '(')
187
+ depth++;
188
+ else if (ch === ')') {
189
+ depth--;
190
+ if (depth === 0)
191
+ return goType.substring(i + 1).trim();
192
+ }
193
+ }
194
+ return '';
195
+ }
196
+ // Calls fn with the extra arguments inside a zero-argument closure
197
+ export function closure(fn, fnType, extra) {
198
+ if (extra.length === 0 && fnType.startsWith('func()'))
199
+ return fn;
200
+ const result = goFuncResult(fnType);
201
+ const call = `(${fn})(${extra.join(', ')})`;
202
+ return result ? `func() ${result} { return ${call} }` : `func() { ${call} }`;
203
+ }
204
+ export function registerAsyncHooks(r) {
205
+ defineModule(r, 'async_hooks');
206
+ defineHelper(r, 'nodeAsyncHooks', ['reflect'], ['eventLoop', 'dynamic', 'nodeInvoke'], asyncHooksHelper);
207
+ const use = () => r.helper('nodeAsyncHooks');
208
+ defineClass(r, 'async_hooks.AsyncLocalStorage', '*TnAsyncLocalStorage', 'class', 'getStore=interface{}; enterWith=; disable=', '', 'name=string', '');
209
+ defineClass(r, 'async_hooks.AsyncResource', '*TnAsyncResource', 'class', 'asyncId=float64; triggerAsyncId=float64; emitDestroy=*TnAsyncResource', '', '', '');
210
+ defineClass(r, 'async_hooks.AsyncHook', '*TnAsyncHook', 'class', 'enable=*TnAsyncHook; disable=*TnAsyncHook', '', '', '');
211
+ r.constructors['async_hooks.AsyncLocalStorage'] = (c) => {
212
+ use();
213
+ return `TnNewAsyncLocalStorage(${c.args.join(', ')})`;
214
+ };
215
+ r.constructors['async_hooks.AsyncResource'] = (c) => {
216
+ use();
217
+ return `TnNewAsyncResource(${c.args.join(', ')})`;
218
+ };
219
+ // run(store, fn, ...args) / exit(fn, ...args): typed by the callback's result
220
+ r.methods['async_hooks.AsyncLocalStorage#run'] = (c) => {
221
+ use();
222
+ const fnType = c.types[1] || '';
223
+ if (!fnType.startsWith('func('))
224
+ return `TnAlsRunAny(${c.recv}, ${c.args.join(', ')})`;
225
+ const fn = closure(c.args[1], fnType, c.args.slice(2));
226
+ return goFuncResult(fnType) ? `TnAlsRun(${c.recv}, ${c.args[0]}, ${fn})` : `TnAlsRunVoid(${c.recv}, ${c.args[0]}, ${fn})`;
227
+ };
228
+ r.typers['async_hooks.AsyncLocalStorage#run'] = (c) => {
229
+ const fnType = c.types[1] || '';
230
+ return fnType.startsWith('func(') ? goFuncResult(fnType) : 'interface{}';
231
+ };
232
+ r.methods['async_hooks.AsyncLocalStorage#exit'] = (c) => {
233
+ use();
234
+ const fnType = c.types[0] || 'func()';
235
+ const fn = closure(c.args[0], fnType, c.args.slice(1));
236
+ return goFuncResult(fnType) ? `TnAlsExit(${c.recv}, ${fn})` : `TnAlsExitVoid(${c.recv}, ${fn})`;
237
+ };
238
+ r.typers['async_hooks.AsyncLocalStorage#exit'] = (c) => goFuncResult(c.types[0] || '');
239
+ r.methods['async_hooks.AsyncResource#runInAsyncScope'] = (c) => {
240
+ use();
241
+ const fnType = c.types[0] || 'func()';
242
+ // runInAsyncScope(fn, thisArg, ...args): thisArg is ignored
243
+ const fn = closure(c.args[0], fnType, c.args.slice(2));
244
+ return goFuncResult(fnType) ? `TnAsyncResourceRun(${c.recv}, ${fn})` : `TnAsyncResourceRunVoid(${c.recv}, ${fn})`;
245
+ };
246
+ r.typers['async_hooks.AsyncResource#runInAsyncScope'] = (c) => goFuncResult(c.types[0] || '');
247
+ r.methods['async_hooks.AsyncResource#bind'] = (c) => {
248
+ use();
249
+ return `TnAsyncResourceBind(${c.recv}, ${c.args[0]})`;
250
+ };
251
+ r.typers['async_hooks.AsyncResource#bind'] = (c) => c.types[0] || 'interface{}';
252
+ for (const cls of ['AsyncLocalStorage', 'AsyncResource']) {
253
+ r.functions[`async_hooks.${cls}.bind`] = (c) => {
254
+ use();
255
+ return `TnAsyncBind(${c.args[0]})`;
256
+ };
257
+ r.typers[`async_hooks.${cls}.bind`] = (c) => c.types[0] || 'interface{}';
258
+ }
259
+ r.functions['async_hooks.AsyncLocalStorage.snapshot'] = (_c) => {
260
+ use();
261
+ return 'TnAsyncSnapshotRunner()';
262
+ };
263
+ r.results['async_hooks.AsyncLocalStorage.snapshot'] = 'func(interface{}, ...interface{}) interface{}';
264
+ // Execution ids are not tracked: the top-level id (1) everywhere
265
+ r.functions['async_hooks.executionAsyncId'] = (_c) => '1.0';
266
+ r.functions['async_hooks.triggerAsyncId'] = (_c) => '0.0';
267
+ r.functions['async_hooks.executionAsyncResource'] = (_c) => 'interface{}(map[string]interface{}{})';
268
+ r.functions['async_hooks.createHook'] = (_c) => {
269
+ use();
270
+ return '&TnAsyncHook{}';
271
+ };
272
+ setResults(r, 'async_hooks', 'executionAsyncId=float64; triggerAsyncId=float64; executionAsyncResource=interface{}; createHook=*TnAsyncHook');
273
+ }