typenative 0.1.3 → 0.3.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 (505) hide show
  1. package/.gitattributes +1 -0
  2. package/.github/workflows/ci.yml +39 -2
  3. package/.github/workflows/npm-publish-github-packages.yml +7 -2
  4. package/CHANGELOG.md +293 -0
  5. package/CONTRIBUTION.md +8 -6
  6. package/README.md +15 -11
  7. package/bin/cli.js +7 -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 +337 -239
  14. package/bin/main.js +9 -2
  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 +714 -0
  45. package/bin/node/test.js +1068 -0
  46. package/bin/node/timers.js +263 -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/parse-native.js +10 -0
  54. package/bin/parse-node.js +10 -0
  55. package/bin/transpiler.js +2824 -588
  56. package/bin/typecheck-node.js +78 -0
  57. package/bin/version.js +2 -0
  58. package/conformance.md +708 -241
  59. package/govendor/github.com/ncruces/go-sqlite3/LICENSE +21 -0
  60. package/govendor/github.com/ncruces/go-sqlite3/README.md +121 -0
  61. package/govendor/github.com/ncruces/go-sqlite3/backup.go +132 -0
  62. package/govendor/github.com/ncruces/go-sqlite3/blob.go +266 -0
  63. package/govendor/github.com/ncruces/go-sqlite3/config.go +397 -0
  64. package/govendor/github.com/ncruces/go-sqlite3/conn.go +540 -0
  65. package/govendor/github.com/ncruces/go-sqlite3/conn_127.go +93 -0
  66. package/govendor/github.com/ncruces/go-sqlite3/const.go +436 -0
  67. package/govendor/github.com/ncruces/go-sqlite3/context.go +222 -0
  68. package/govendor/github.com/ncruces/go-sqlite3/error.go +182 -0
  69. package/govendor/github.com/ncruces/go-sqlite3/ext.go +153 -0
  70. package/govendor/github.com/ncruces/go-sqlite3/func.go +309 -0
  71. package/govendor/github.com/ncruces/go-sqlite3/go.mod +3 -0
  72. package/govendor/github.com/ncruces/go-sqlite3/internal/dotlk/dotlk.go +29 -0
  73. package/govendor/github.com/ncruces/go-sqlite3/internal/dotlk/dotlk_other.go +13 -0
  74. package/govendor/github.com/ncruces/go-sqlite3/internal/dotlk/dotlk_unix.go +57 -0
  75. package/govendor/github.com/ncruces/go-sqlite3/internal/errutil/error.go +41 -0
  76. package/govendor/github.com/ncruces/go-sqlite3/internal/sqlite3_wrap/alloc.go +128 -0
  77. package/govendor/github.com/ncruces/go-sqlite3/internal/sqlite3_wrap/const.go +122 -0
  78. package/govendor/github.com/ncruces/go-sqlite3/internal/sqlite3_wrap/error.go +77 -0
  79. package/govendor/github.com/ncruces/go-sqlite3/internal/sqlite3_wrap/mem.go +116 -0
  80. package/govendor/github.com/ncruces/go-sqlite3/internal/sqlite3_wrap/mem_other.go +34 -0
  81. package/govendor/github.com/ncruces/go-sqlite3/internal/sqlite3_wrap/mem_unix.go +87 -0
  82. package/govendor/github.com/ncruces/go-sqlite3/internal/sqlite3_wrap/mem_windows.go +149 -0
  83. package/govendor/github.com/ncruces/go-sqlite3/internal/sqlite3_wrap/mmap_unix.go +80 -0
  84. package/govendor/github.com/ncruces/go-sqlite3/internal/sqlite3_wrap/mmap_windows.go +129 -0
  85. package/govendor/github.com/ncruces/go-sqlite3/internal/sqlite3_wrap/sys_windows.go +60 -0
  86. package/govendor/github.com/ncruces/go-sqlite3/internal/sqlite3_wrap/wrap.go +82 -0
  87. package/govendor/github.com/ncruces/go-sqlite3/internal/sqlite3_wrap/wrap_sys.go +113 -0
  88. package/govendor/github.com/ncruces/go-sqlite3/internal/sqlite3_wrap/wrap_vfs.go +181 -0
  89. package/govendor/github.com/ncruces/go-sqlite3/internal/testenv/env.go +55 -0
  90. package/govendor/github.com/ncruces/go-sqlite3/internal/util/json.go +54 -0
  91. package/govendor/github.com/ncruces/go-sqlite3/internal/util/json_v2.go +54 -0
  92. package/govendor/github.com/ncruces/go-sqlite3/internal/util/math.go +29 -0
  93. package/govendor/github.com/ncruces/go-sqlite3/internal/util/page.go +5 -0
  94. package/govendor/github.com/ncruces/go-sqlite3/internal/util/parse.go +142 -0
  95. package/govendor/github.com/ncruces/go-sqlite3/internal/util/pointer.go +3 -0
  96. package/govendor/github.com/ncruces/go-sqlite3/internal/util/reflect.go +10 -0
  97. package/govendor/github.com/ncruces/go-sqlite3/json.go +100 -0
  98. package/govendor/github.com/ncruces/go-sqlite3/json_v2.go +116 -0
  99. package/govendor/github.com/ncruces/go-sqlite3/pointer.go +13 -0
  100. package/govendor/github.com/ncruces/go-sqlite3/quote.go +140 -0
  101. package/govendor/github.com/ncruces/go-sqlite3/stmt.go +692 -0
  102. package/govendor/github.com/ncruces/go-sqlite3/time.go +360 -0
  103. package/govendor/github.com/ncruces/go-sqlite3/txn.go +374 -0
  104. package/govendor/github.com/ncruces/go-sqlite3/value.go +212 -0
  105. package/govendor/github.com/ncruces/go-sqlite3/vfs/README.md +133 -0
  106. package/govendor/github.com/ncruces/go-sqlite3/vfs/api.go +239 -0
  107. package/govendor/github.com/ncruces/go-sqlite3/vfs/cksm.go +143 -0
  108. package/govendor/github.com/ncruces/go-sqlite3/vfs/const.go +256 -0
  109. package/govendor/github.com/ncruces/go-sqlite3/vfs/file.go +260 -0
  110. package/govendor/github.com/ncruces/go-sqlite3/vfs/filename.go +187 -0
  111. package/govendor/github.com/ncruces/go-sqlite3/vfs/lock.go +128 -0
  112. package/govendor/github.com/ncruces/go-sqlite3/vfs/lock_other.go +23 -0
  113. package/govendor/github.com/ncruces/go-sqlite3/vfs/map.go +63 -0
  114. package/govendor/github.com/ncruces/go-sqlite3/vfs/map_other.go +13 -0
  115. package/govendor/github.com/ncruces/go-sqlite3/vfs/os_bsd.go +110 -0
  116. package/govendor/github.com/ncruces/go-sqlite3/vfs/os_darwin.go +131 -0
  117. package/govendor/github.com/ncruces/go-sqlite3/vfs/os_dotlk.go +140 -0
  118. package/govendor/github.com/ncruces/go-sqlite3/vfs/os_f2fs_linux.go +56 -0
  119. package/govendor/github.com/ncruces/go-sqlite3/vfs/os_linux.go +117 -0
  120. package/govendor/github.com/ncruces/go-sqlite3/vfs/os_ofd.go +59 -0
  121. package/govendor/github.com/ncruces/go-sqlite3/vfs/os_std.go +50 -0
  122. package/govendor/github.com/ncruces/go-sqlite3/vfs/os_std_alloc.go +19 -0
  123. package/govendor/github.com/ncruces/go-sqlite3/vfs/os_std_atomic.go +9 -0
  124. package/govendor/github.com/ncruces/go-sqlite3/vfs/os_std_rw.go +13 -0
  125. package/govendor/github.com/ncruces/go-sqlite3/vfs/os_std_sync.go +9 -0
  126. package/govendor/github.com/ncruces/go-sqlite3/vfs/os_std_temp.go +16 -0
  127. package/govendor/github.com/ncruces/go-sqlite3/vfs/os_unix.go +108 -0
  128. package/govendor/github.com/ncruces/go-sqlite3/vfs/os_windows.go +180 -0
  129. package/govendor/github.com/ncruces/go-sqlite3/vfs/registry.go +48 -0
  130. package/govendor/github.com/ncruces/go-sqlite3/vfs/shm.go +26 -0
  131. package/govendor/github.com/ncruces/go-sqlite3/vfs/shm_bsd.go +258 -0
  132. package/govendor/github.com/ncruces/go-sqlite3/vfs/shm_copy.go +90 -0
  133. package/govendor/github.com/ncruces/go-sqlite3/vfs/shm_dotlk.go +168 -0
  134. package/govendor/github.com/ncruces/go-sqlite3/vfs/shm_memlk.go +52 -0
  135. package/govendor/github.com/ncruces/go-sqlite3/vfs/shm_ofd.go +185 -0
  136. package/govendor/github.com/ncruces/go-sqlite3/vfs/shm_other.go +21 -0
  137. package/govendor/github.com/ncruces/go-sqlite3/vfs/shm_windows.go +124 -0
  138. package/govendor/github.com/ncruces/go-sqlite3/vfs/vfs.go +455 -0
  139. package/govendor/github.com/ncruces/go-sqlite3/vtab.go +677 -0
  140. package/govendor/github.com/ncruces/go-sqlite3/wrap.go +48 -0
  141. package/govendor/github.com/ncruces/go-sqlite3-wasm/v6/LICENSE +18 -0
  142. package/govendor/github.com/ncruces/go-sqlite3-wasm/v6/README.md +11 -0
  143. package/govendor/github.com/ncruces/go-sqlite3-wasm/v6/go.mod +3 -0
  144. package/govendor/github.com/ncruces/go-sqlite3-wasm/v6/libc.go +215 -0
  145. package/govendor/github.com/ncruces/go-sqlite3-wasm/v6/sqlite3.dat +0 -0
  146. package/govendor/github.com/ncruces/go-sqlite3-wasm/v6/sqlite3.go +157903 -0
  147. package/govendor/github.com/ncruces/go-sqlite3-wasm/v6/tools.sh +38 -0
  148. package/govendor/github.com/ncruces/julianday/LICENSE +21 -0
  149. package/govendor/github.com/ncruces/julianday/README.md +9 -0
  150. package/govendor/github.com/ncruces/julianday/go.mod +3 -0
  151. package/govendor/github.com/ncruces/julianday/julianday.go +124 -0
  152. package/govendor/golang.org/x/sys/LICENSE +27 -0
  153. package/govendor/golang.org/x/sys/PATENTS +22 -0
  154. package/govendor/golang.org/x/sys/go.mod +3 -0
  155. package/govendor/golang.org/x/sys/unix/README.md +184 -0
  156. package/govendor/golang.org/x/sys/unix/affinity_linux.go +189 -0
  157. package/govendor/golang.org/x/sys/unix/aliases.go +13 -0
  158. package/govendor/golang.org/x/sys/unix/asm_aix_ppc64.s +17 -0
  159. package/govendor/golang.org/x/sys/unix/asm_bsd_386.s +27 -0
  160. package/govendor/golang.org/x/sys/unix/asm_bsd_amd64.s +27 -0
  161. package/govendor/golang.org/x/sys/unix/asm_bsd_arm.s +27 -0
  162. package/govendor/golang.org/x/sys/unix/asm_bsd_arm64.s +27 -0
  163. package/govendor/golang.org/x/sys/unix/asm_bsd_ppc64.s +29 -0
  164. package/govendor/golang.org/x/sys/unix/asm_bsd_riscv64.s +27 -0
  165. package/govendor/golang.org/x/sys/unix/asm_linux_386.s +65 -0
  166. package/govendor/golang.org/x/sys/unix/asm_linux_amd64.s +57 -0
  167. package/govendor/golang.org/x/sys/unix/asm_linux_arm.s +56 -0
  168. package/govendor/golang.org/x/sys/unix/asm_linux_arm64.s +50 -0
  169. package/govendor/golang.org/x/sys/unix/asm_linux_loong64.s +51 -0
  170. package/govendor/golang.org/x/sys/unix/asm_linux_mips64x.s +54 -0
  171. package/govendor/golang.org/x/sys/unix/asm_linux_mipsx.s +52 -0
  172. package/govendor/golang.org/x/sys/unix/asm_linux_ppc64x.s +42 -0
  173. package/govendor/golang.org/x/sys/unix/asm_linux_riscv64.s +47 -0
  174. package/govendor/golang.org/x/sys/unix/asm_linux_s390x.s +54 -0
  175. package/govendor/golang.org/x/sys/unix/asm_openbsd_mips64.s +29 -0
  176. package/govendor/golang.org/x/sys/unix/asm_solaris_amd64.s +17 -0
  177. package/govendor/golang.org/x/sys/unix/asm_zos_s390x.s +382 -0
  178. package/govendor/golang.org/x/sys/unix/auxv.go +36 -0
  179. package/govendor/golang.org/x/sys/unix/auxv_unsupported.go +13 -0
  180. package/govendor/golang.org/x/sys/unix/bluetooth_linux.go +36 -0
  181. package/govendor/golang.org/x/sys/unix/bpxsvc_zos.go +657 -0
  182. package/govendor/golang.org/x/sys/unix/bpxsvc_zos.s +192 -0
  183. package/govendor/golang.org/x/sys/unix/cap_freebsd.go +195 -0
  184. package/govendor/golang.org/x/sys/unix/constants.go +13 -0
  185. package/govendor/golang.org/x/sys/unix/dev_aix_ppc.go +26 -0
  186. package/govendor/golang.org/x/sys/unix/dev_aix_ppc64.go +28 -0
  187. package/govendor/golang.org/x/sys/unix/dev_darwin.go +24 -0
  188. package/govendor/golang.org/x/sys/unix/dev_dragonfly.go +30 -0
  189. package/govendor/golang.org/x/sys/unix/dev_freebsd.go +30 -0
  190. package/govendor/golang.org/x/sys/unix/dev_linux.go +42 -0
  191. package/govendor/golang.org/x/sys/unix/dev_netbsd.go +29 -0
  192. package/govendor/golang.org/x/sys/unix/dev_openbsd.go +29 -0
  193. package/govendor/golang.org/x/sys/unix/dev_zos.go +28 -0
  194. package/govendor/golang.org/x/sys/unix/dirent.go +102 -0
  195. package/govendor/golang.org/x/sys/unix/endian_big.go +9 -0
  196. package/govendor/golang.org/x/sys/unix/endian_little.go +9 -0
  197. package/govendor/golang.org/x/sys/unix/env_unix.go +31 -0
  198. package/govendor/golang.org/x/sys/unix/fcntl.go +36 -0
  199. package/govendor/golang.org/x/sys/unix/fcntl_darwin.go +24 -0
  200. package/govendor/golang.org/x/sys/unix/fcntl_linux_32bit.go +13 -0
  201. package/govendor/golang.org/x/sys/unix/fdset.go +27 -0
  202. package/govendor/golang.org/x/sys/unix/gccgo.go +59 -0
  203. package/govendor/golang.org/x/sys/unix/gccgo_c.c +44 -0
  204. package/govendor/golang.org/x/sys/unix/gccgo_linux_amd64.go +20 -0
  205. package/govendor/golang.org/x/sys/unix/ifreq_linux.go +145 -0
  206. package/govendor/golang.org/x/sys/unix/ioctl_linux.go +341 -0
  207. package/govendor/golang.org/x/sys/unix/ioctl_signed.go +74 -0
  208. package/govendor/golang.org/x/sys/unix/ioctl_unsigned.go +74 -0
  209. package/govendor/golang.org/x/sys/unix/ioctl_zos.go +71 -0
  210. package/govendor/golang.org/x/sys/unix/mkall.sh +250 -0
  211. package/govendor/golang.org/x/sys/unix/mkerrors.sh +807 -0
  212. package/govendor/golang.org/x/sys/unix/mmap_nomremap.go +13 -0
  213. package/govendor/golang.org/x/sys/unix/mremap.go +57 -0
  214. package/govendor/golang.org/x/sys/unix/pagesize_unix.go +15 -0
  215. package/govendor/golang.org/x/sys/unix/pledge_openbsd.go +111 -0
  216. package/govendor/golang.org/x/sys/unix/ptrace_darwin.go +11 -0
  217. package/govendor/golang.org/x/sys/unix/ptrace_ios.go +11 -0
  218. package/govendor/golang.org/x/sys/unix/race.go +30 -0
  219. package/govendor/golang.org/x/sys/unix/race0.go +25 -0
  220. package/govendor/golang.org/x/sys/unix/readdirent_getdents.go +12 -0
  221. package/govendor/golang.org/x/sys/unix/readdirent_getdirentries.go +19 -0
  222. package/govendor/golang.org/x/sys/unix/readv_unix.go +103 -0
  223. package/govendor/golang.org/x/sys/unix/sockcmsg_dragonfly.go +16 -0
  224. package/govendor/golang.org/x/sys/unix/sockcmsg_linux.go +85 -0
  225. package/govendor/golang.org/x/sys/unix/sockcmsg_unix.go +106 -0
  226. package/govendor/golang.org/x/sys/unix/sockcmsg_unix_other.go +46 -0
  227. package/govendor/golang.org/x/sys/unix/sockcmsg_zos.go +58 -0
  228. package/govendor/golang.org/x/sys/unix/symaddr_zos_s390x.s +75 -0
  229. package/govendor/golang.org/x/sys/unix/syscall.go +86 -0
  230. package/govendor/golang.org/x/sys/unix/syscall_aix.go +582 -0
  231. package/govendor/golang.org/x/sys/unix/syscall_aix_ppc.go +52 -0
  232. package/govendor/golang.org/x/sys/unix/syscall_aix_ppc64.go +83 -0
  233. package/govendor/golang.org/x/sys/unix/syscall_bsd.go +609 -0
  234. package/govendor/golang.org/x/sys/unix/syscall_darwin.go +711 -0
  235. package/govendor/golang.org/x/sys/unix/syscall_darwin_amd64.go +50 -0
  236. package/govendor/golang.org/x/sys/unix/syscall_darwin_arm64.go +50 -0
  237. package/govendor/golang.org/x/sys/unix/syscall_darwin_libSystem.go +26 -0
  238. package/govendor/golang.org/x/sys/unix/syscall_dragonfly.go +359 -0
  239. package/govendor/golang.org/x/sys/unix/syscall_dragonfly_amd64.go +56 -0
  240. package/govendor/golang.org/x/sys/unix/syscall_freebsd.go +455 -0
  241. package/govendor/golang.org/x/sys/unix/syscall_freebsd_386.go +64 -0
  242. package/govendor/golang.org/x/sys/unix/syscall_freebsd_amd64.go +64 -0
  243. package/govendor/golang.org/x/sys/unix/syscall_freebsd_arm.go +60 -0
  244. package/govendor/golang.org/x/sys/unix/syscall_freebsd_arm64.go +60 -0
  245. package/govendor/golang.org/x/sys/unix/syscall_freebsd_riscv64.go +60 -0
  246. package/govendor/golang.org/x/sys/unix/syscall_hurd.go +30 -0
  247. package/govendor/golang.org/x/sys/unix/syscall_hurd_386.go +28 -0
  248. package/govendor/golang.org/x/sys/unix/syscall_illumos.go +78 -0
  249. package/govendor/golang.org/x/sys/unix/syscall_linux.go +2574 -0
  250. package/govendor/golang.org/x/sys/unix/syscall_linux_386.go +313 -0
  251. package/govendor/golang.org/x/sys/unix/syscall_linux_alarm.go +12 -0
  252. package/govendor/golang.org/x/sys/unix/syscall_linux_amd64.go +144 -0
  253. package/govendor/golang.org/x/sys/unix/syscall_linux_amd64_gc.go +12 -0
  254. package/govendor/golang.org/x/sys/unix/syscall_linux_arm.go +218 -0
  255. package/govendor/golang.org/x/sys/unix/syscall_linux_arm64.go +188 -0
  256. package/govendor/golang.org/x/sys/unix/syscall_linux_gc.go +14 -0
  257. package/govendor/golang.org/x/sys/unix/syscall_linux_gc_386.go +16 -0
  258. package/govendor/golang.org/x/sys/unix/syscall_linux_gc_arm.go +13 -0
  259. package/govendor/golang.org/x/sys/unix/syscall_linux_gccgo_386.go +30 -0
  260. package/govendor/golang.org/x/sys/unix/syscall_linux_gccgo_arm.go +20 -0
  261. package/govendor/golang.org/x/sys/unix/syscall_linux_loong64.go +220 -0
  262. package/govendor/golang.org/x/sys/unix/syscall_linux_mips64x.go +187 -0
  263. package/govendor/golang.org/x/sys/unix/syscall_linux_mipsx.go +173 -0
  264. package/govendor/golang.org/x/sys/unix/syscall_linux_ppc.go +203 -0
  265. package/govendor/golang.org/x/sys/unix/syscall_linux_ppc64x.go +114 -0
  266. package/govendor/golang.org/x/sys/unix/syscall_linux_riscv64.go +193 -0
  267. package/govendor/golang.org/x/sys/unix/syscall_linux_s390x.go +295 -0
  268. package/govendor/golang.org/x/sys/unix/syscall_linux_sparc64.go +111 -0
  269. package/govendor/golang.org/x/sys/unix/syscall_netbsd.go +388 -0
  270. package/govendor/golang.org/x/sys/unix/syscall_netbsd_386.go +37 -0
  271. package/govendor/golang.org/x/sys/unix/syscall_netbsd_amd64.go +37 -0
  272. package/govendor/golang.org/x/sys/unix/syscall_netbsd_arm.go +37 -0
  273. package/govendor/golang.org/x/sys/unix/syscall_netbsd_arm64.go +37 -0
  274. package/govendor/golang.org/x/sys/unix/syscall_openbsd.go +346 -0
  275. package/govendor/golang.org/x/sys/unix/syscall_openbsd_386.go +41 -0
  276. package/govendor/golang.org/x/sys/unix/syscall_openbsd_amd64.go +41 -0
  277. package/govendor/golang.org/x/sys/unix/syscall_openbsd_arm.go +41 -0
  278. package/govendor/golang.org/x/sys/unix/syscall_openbsd_arm64.go +41 -0
  279. package/govendor/golang.org/x/sys/unix/syscall_openbsd_libc.go +26 -0
  280. package/govendor/golang.org/x/sys/unix/syscall_openbsd_mips64.go +39 -0
  281. package/govendor/golang.org/x/sys/unix/syscall_openbsd_ppc64.go +41 -0
  282. package/govendor/golang.org/x/sys/unix/syscall_openbsd_riscv64.go +41 -0
  283. package/govendor/golang.org/x/sys/unix/syscall_solaris.go +1183 -0
  284. package/govendor/golang.org/x/sys/unix/syscall_solaris_amd64.go +27 -0
  285. package/govendor/golang.org/x/sys/unix/syscall_unix.go +619 -0
  286. package/govendor/golang.org/x/sys/unix/syscall_unix_gc.go +14 -0
  287. package/govendor/golang.org/x/sys/unix/syscall_unix_gc_ppc64x.go +22 -0
  288. package/govendor/golang.org/x/sys/unix/syscall_zos_s390x.go +3213 -0
  289. package/govendor/golang.org/x/sys/unix/sysvshm_linux.go +20 -0
  290. package/govendor/golang.org/x/sys/unix/sysvshm_unix.go +51 -0
  291. package/govendor/golang.org/x/sys/unix/sysvshm_unix_other.go +13 -0
  292. package/govendor/golang.org/x/sys/unix/timestruct.go +76 -0
  293. package/govendor/golang.org/x/sys/unix/unveil_openbsd.go +51 -0
  294. package/govendor/golang.org/x/sys/unix/vgetrandom_linux.go +13 -0
  295. package/govendor/golang.org/x/sys/unix/vgetrandom_unsupported.go +11 -0
  296. package/govendor/golang.org/x/sys/unix/xattr_bsd.go +280 -0
  297. package/govendor/golang.org/x/sys/unix/zerrors_aix_ppc.go +1384 -0
  298. package/govendor/golang.org/x/sys/unix/zerrors_aix_ppc64.go +1385 -0
  299. package/govendor/golang.org/x/sys/unix/zerrors_darwin_amd64.go +1922 -0
  300. package/govendor/golang.org/x/sys/unix/zerrors_darwin_arm64.go +1922 -0
  301. package/govendor/golang.org/x/sys/unix/zerrors_dragonfly_amd64.go +1737 -0
  302. package/govendor/golang.org/x/sys/unix/zerrors_freebsd_386.go +2042 -0
  303. package/govendor/golang.org/x/sys/unix/zerrors_freebsd_amd64.go +2039 -0
  304. package/govendor/golang.org/x/sys/unix/zerrors_freebsd_arm.go +2033 -0
  305. package/govendor/golang.org/x/sys/unix/zerrors_freebsd_arm64.go +2033 -0
  306. package/govendor/golang.org/x/sys/unix/zerrors_freebsd_riscv64.go +2147 -0
  307. package/govendor/golang.org/x/sys/unix/zerrors_linux.go +4209 -0
  308. package/govendor/golang.org/x/sys/unix/zerrors_linux_386.go +882 -0
  309. package/govendor/golang.org/x/sys/unix/zerrors_linux_amd64.go +882 -0
  310. package/govendor/golang.org/x/sys/unix/zerrors_linux_arm.go +887 -0
  311. package/govendor/golang.org/x/sys/unix/zerrors_linux_arm64.go +884 -0
  312. package/govendor/golang.org/x/sys/unix/zerrors_linux_loong64.go +874 -0
  313. package/govendor/golang.org/x/sys/unix/zerrors_linux_mips.go +888 -0
  314. package/govendor/golang.org/x/sys/unix/zerrors_linux_mips64.go +888 -0
  315. package/govendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go +888 -0
  316. package/govendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go +888 -0
  317. package/govendor/golang.org/x/sys/unix/zerrors_linux_ppc.go +940 -0
  318. package/govendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go +944 -0
  319. package/govendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go +944 -0
  320. package/govendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go +884 -0
  321. package/govendor/golang.org/x/sys/unix/zerrors_linux_s390x.go +943 -0
  322. package/govendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go +992 -0
  323. package/govendor/golang.org/x/sys/unix/zerrors_netbsd_386.go +1779 -0
  324. package/govendor/golang.org/x/sys/unix/zerrors_netbsd_amd64.go +1769 -0
  325. package/govendor/golang.org/x/sys/unix/zerrors_netbsd_arm.go +1758 -0
  326. package/govendor/golang.org/x/sys/unix/zerrors_netbsd_arm64.go +1769 -0
  327. package/govendor/golang.org/x/sys/unix/zerrors_openbsd_386.go +1905 -0
  328. package/govendor/golang.org/x/sys/unix/zerrors_openbsd_amd64.go +1905 -0
  329. package/govendor/golang.org/x/sys/unix/zerrors_openbsd_arm.go +1905 -0
  330. package/govendor/golang.org/x/sys/unix/zerrors_openbsd_arm64.go +1905 -0
  331. package/govendor/golang.org/x/sys/unix/zerrors_openbsd_mips64.go +1905 -0
  332. package/govendor/golang.org/x/sys/unix/zerrors_openbsd_ppc64.go +1904 -0
  333. package/govendor/golang.org/x/sys/unix/zerrors_openbsd_riscv64.go +1903 -0
  334. package/govendor/golang.org/x/sys/unix/zerrors_solaris_amd64.go +1556 -0
  335. package/govendor/golang.org/x/sys/unix/zerrors_zos_s390x.go +990 -0
  336. package/govendor/golang.org/x/sys/unix/zptrace_armnn_linux.go +40 -0
  337. package/govendor/golang.org/x/sys/unix/zptrace_linux_arm64.go +17 -0
  338. package/govendor/golang.org/x/sys/unix/zptrace_mipsnn_linux.go +49 -0
  339. package/govendor/golang.org/x/sys/unix/zptrace_mipsnnle_linux.go +49 -0
  340. package/govendor/golang.org/x/sys/unix/zptrace_x86_linux.go +79 -0
  341. package/govendor/golang.org/x/sys/unix/zsymaddr_zos_s390x.s +364 -0
  342. package/govendor/golang.org/x/sys/unix/zsyscall_aix_ppc.go +1461 -0
  343. package/govendor/golang.org/x/sys/unix/zsyscall_aix_ppc64.go +1420 -0
  344. package/govendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gc.go +1188 -0
  345. package/govendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gccgo.go +1069 -0
  346. package/govendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go +2728 -0
  347. package/govendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.s +799 -0
  348. package/govendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go +2728 -0
  349. package/govendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.s +799 -0
  350. package/govendor/golang.org/x/sys/unix/zsyscall_dragonfly_amd64.go +1666 -0
  351. package/govendor/golang.org/x/sys/unix/zsyscall_freebsd_386.go +1886 -0
  352. package/govendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go +1886 -0
  353. package/govendor/golang.org/x/sys/unix/zsyscall_freebsd_arm.go +1886 -0
  354. package/govendor/golang.org/x/sys/unix/zsyscall_freebsd_arm64.go +1886 -0
  355. package/govendor/golang.org/x/sys/unix/zsyscall_freebsd_riscv64.go +1886 -0
  356. package/govendor/golang.org/x/sys/unix/zsyscall_illumos_amd64.go +101 -0
  357. package/govendor/golang.org/x/sys/unix/zsyscall_linux.go +2267 -0
  358. package/govendor/golang.org/x/sys/unix/zsyscall_linux_386.go +469 -0
  359. package/govendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go +636 -0
  360. package/govendor/golang.org/x/sys/unix/zsyscall_linux_arm.go +584 -0
  361. package/govendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go +535 -0
  362. package/govendor/golang.org/x/sys/unix/zsyscall_linux_loong64.go +469 -0
  363. package/govendor/golang.org/x/sys/unix/zsyscall_linux_mips.go +636 -0
  364. package/govendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go +630 -0
  365. package/govendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go +619 -0
  366. package/govendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go +636 -0
  367. package/govendor/golang.org/x/sys/unix/zsyscall_linux_ppc.go +641 -0
  368. package/govendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go +687 -0
  369. package/govendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go +687 -0
  370. package/govendor/golang.org/x/sys/unix/zsyscall_linux_riscv64.go +531 -0
  371. package/govendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go +478 -0
  372. package/govendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go +631 -0
  373. package/govendor/golang.org/x/sys/unix/zsyscall_netbsd_386.go +1848 -0
  374. package/govendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go +1848 -0
  375. package/govendor/golang.org/x/sys/unix/zsyscall_netbsd_arm.go +1848 -0
  376. package/govendor/golang.org/x/sys/unix/zsyscall_netbsd_arm64.go +1848 -0
  377. package/govendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go +2407 -0
  378. package/govendor/golang.org/x/sys/unix/zsyscall_openbsd_386.s +719 -0
  379. package/govendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go +2407 -0
  380. package/govendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.s +719 -0
  381. package/govendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go +2407 -0
  382. package/govendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.s +719 -0
  383. package/govendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.go +2407 -0
  384. package/govendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.s +719 -0
  385. package/govendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.go +2407 -0
  386. package/govendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.s +719 -0
  387. package/govendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.go +2407 -0
  388. package/govendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.s +862 -0
  389. package/govendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.go +2407 -0
  390. package/govendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.s +719 -0
  391. package/govendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go +2217 -0
  392. package/govendor/golang.org/x/sys/unix/zsyscall_zos_s390x.go +3458 -0
  393. package/govendor/golang.org/x/sys/unix/zsysctl_openbsd_386.go +280 -0
  394. package/govendor/golang.org/x/sys/unix/zsysctl_openbsd_amd64.go +280 -0
  395. package/govendor/golang.org/x/sys/unix/zsysctl_openbsd_arm.go +280 -0
  396. package/govendor/golang.org/x/sys/unix/zsysctl_openbsd_arm64.go +280 -0
  397. package/govendor/golang.org/x/sys/unix/zsysctl_openbsd_mips64.go +280 -0
  398. package/govendor/golang.org/x/sys/unix/zsysctl_openbsd_ppc64.go +280 -0
  399. package/govendor/golang.org/x/sys/unix/zsysctl_openbsd_riscv64.go +281 -0
  400. package/govendor/golang.org/x/sys/unix/zsysnum_darwin_amd64.go +439 -0
  401. package/govendor/golang.org/x/sys/unix/zsysnum_darwin_arm64.go +437 -0
  402. package/govendor/golang.org/x/sys/unix/zsysnum_dragonfly_amd64.go +316 -0
  403. package/govendor/golang.org/x/sys/unix/zsysnum_freebsd_386.go +393 -0
  404. package/govendor/golang.org/x/sys/unix/zsysnum_freebsd_amd64.go +393 -0
  405. package/govendor/golang.org/x/sys/unix/zsysnum_freebsd_arm.go +393 -0
  406. package/govendor/golang.org/x/sys/unix/zsysnum_freebsd_arm64.go +393 -0
  407. package/govendor/golang.org/x/sys/unix/zsysnum_freebsd_riscv64.go +393 -0
  408. package/govendor/golang.org/x/sys/unix/zsysnum_linux_386.go +470 -0
  409. package/govendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go +394 -0
  410. package/govendor/golang.org/x/sys/unix/zsysnum_linux_arm.go +434 -0
  411. package/govendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go +337 -0
  412. package/govendor/golang.org/x/sys/unix/zsysnum_linux_loong64.go +334 -0
  413. package/govendor/golang.org/x/sys/unix/zsysnum_linux_mips.go +454 -0
  414. package/govendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go +384 -0
  415. package/govendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go +384 -0
  416. package/govendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go +454 -0
  417. package/govendor/golang.org/x/sys/unix/zsysnum_linux_ppc.go +461 -0
  418. package/govendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go +433 -0
  419. package/govendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go +433 -0
  420. package/govendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go +338 -0
  421. package/govendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go +399 -0
  422. package/govendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go +413 -0
  423. package/govendor/golang.org/x/sys/unix/zsysnum_netbsd_386.go +274 -0
  424. package/govendor/golang.org/x/sys/unix/zsysnum_netbsd_amd64.go +274 -0
  425. package/govendor/golang.org/x/sys/unix/zsysnum_netbsd_arm.go +274 -0
  426. package/govendor/golang.org/x/sys/unix/zsysnum_netbsd_arm64.go +274 -0
  427. package/govendor/golang.org/x/sys/unix/zsysnum_openbsd_386.go +219 -0
  428. package/govendor/golang.org/x/sys/unix/zsysnum_openbsd_amd64.go +219 -0
  429. package/govendor/golang.org/x/sys/unix/zsysnum_openbsd_arm.go +219 -0
  430. package/govendor/golang.org/x/sys/unix/zsysnum_openbsd_arm64.go +218 -0
  431. package/govendor/golang.org/x/sys/unix/zsysnum_openbsd_mips64.go +221 -0
  432. package/govendor/golang.org/x/sys/unix/zsysnum_openbsd_ppc64.go +217 -0
  433. package/govendor/golang.org/x/sys/unix/zsysnum_openbsd_riscv64.go +218 -0
  434. package/govendor/golang.org/x/sys/unix/zsysnum_zos_s390x.go +2852 -0
  435. package/govendor/golang.org/x/sys/unix/ztypes_aix_ppc.go +353 -0
  436. package/govendor/golang.org/x/sys/unix/ztypes_aix_ppc64.go +357 -0
  437. package/govendor/golang.org/x/sys/unix/ztypes_darwin_amd64.go +878 -0
  438. package/govendor/golang.org/x/sys/unix/ztypes_darwin_arm64.go +878 -0
  439. package/govendor/golang.org/x/sys/unix/ztypes_dragonfly_amd64.go +473 -0
  440. package/govendor/golang.org/x/sys/unix/ztypes_freebsd_386.go +651 -0
  441. package/govendor/golang.org/x/sys/unix/ztypes_freebsd_amd64.go +656 -0
  442. package/govendor/golang.org/x/sys/unix/ztypes_freebsd_arm.go +642 -0
  443. package/govendor/golang.org/x/sys/unix/ztypes_freebsd_arm64.go +636 -0
  444. package/govendor/golang.org/x/sys/unix/ztypes_freebsd_riscv64.go +638 -0
  445. package/govendor/golang.org/x/sys/unix/ztypes_linux.go +6547 -0
  446. package/govendor/golang.org/x/sys/unix/ztypes_linux_386.go +747 -0
  447. package/govendor/golang.org/x/sys/unix/ztypes_linux_amd64.go +761 -0
  448. package/govendor/golang.org/x/sys/unix/ztypes_linux_arm.go +741 -0
  449. package/govendor/golang.org/x/sys/unix/ztypes_linux_arm64.go +740 -0
  450. package/govendor/golang.org/x/sys/unix/ztypes_linux_loong64.go +741 -0
  451. package/govendor/golang.org/x/sys/unix/ztypes_linux_mips.go +746 -0
  452. package/govendor/golang.org/x/sys/unix/ztypes_linux_mips64.go +743 -0
  453. package/govendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go +743 -0
  454. package/govendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go +746 -0
  455. package/govendor/golang.org/x/sys/unix/ztypes_linux_ppc.go +754 -0
  456. package/govendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go +749 -0
  457. package/govendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go +749 -0
  458. package/govendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go +828 -0
  459. package/govendor/golang.org/x/sys/unix/ztypes_linux_s390x.go +763 -0
  460. package/govendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go +744 -0
  461. package/govendor/golang.org/x/sys/unix/ztypes_netbsd_386.go +585 -0
  462. package/govendor/golang.org/x/sys/unix/ztypes_netbsd_amd64.go +593 -0
  463. package/govendor/golang.org/x/sys/unix/ztypes_netbsd_arm.go +590 -0
  464. package/govendor/golang.org/x/sys/unix/ztypes_netbsd_arm64.go +593 -0
  465. package/govendor/golang.org/x/sys/unix/ztypes_openbsd_386.go +568 -0
  466. package/govendor/golang.org/x/sys/unix/ztypes_openbsd_amd64.go +568 -0
  467. package/govendor/golang.org/x/sys/unix/ztypes_openbsd_arm.go +575 -0
  468. package/govendor/golang.org/x/sys/unix/ztypes_openbsd_arm64.go +568 -0
  469. package/govendor/golang.org/x/sys/unix/ztypes_openbsd_mips64.go +568 -0
  470. package/govendor/golang.org/x/sys/unix/ztypes_openbsd_ppc64.go +570 -0
  471. package/govendor/golang.org/x/sys/unix/ztypes_openbsd_riscv64.go +570 -0
  472. package/govendor/golang.org/x/sys/unix/ztypes_solaris_amd64.go +516 -0
  473. package/govendor/golang.org/x/sys/unix/ztypes_zos_s390x.go +552 -0
  474. package/govendor/golang.org/x/sys/windows/aliases.go +13 -0
  475. package/govendor/golang.org/x/sys/windows/dll_windows.go +380 -0
  476. package/govendor/golang.org/x/sys/windows/env_windows.go +57 -0
  477. package/govendor/golang.org/x/sys/windows/eventlog.go +20 -0
  478. package/govendor/golang.org/x/sys/windows/exec_windows.go +248 -0
  479. package/govendor/golang.org/x/sys/windows/memory_windows.go +48 -0
  480. package/govendor/golang.org/x/sys/windows/mkerrors.bash +70 -0
  481. package/govendor/golang.org/x/sys/windows/mkknownfolderids.bash +27 -0
  482. package/govendor/golang.org/x/sys/windows/mksyscall.go +9 -0
  483. package/govendor/golang.org/x/sys/windows/race.go +30 -0
  484. package/govendor/golang.org/x/sys/windows/race0.go +25 -0
  485. package/govendor/golang.org/x/sys/windows/security_windows.go +1537 -0
  486. package/govendor/golang.org/x/sys/windows/service.go +257 -0
  487. package/govendor/golang.org/x/sys/windows/setupapi_windows.go +1425 -0
  488. package/govendor/golang.org/x/sys/windows/str.go +22 -0
  489. package/govendor/golang.org/x/sys/windows/syscall.go +104 -0
  490. package/govendor/golang.org/x/sys/windows/syscall_windows.go +1952 -0
  491. package/govendor/golang.org/x/sys/windows/types_windows.go +4058 -0
  492. package/govendor/golang.org/x/sys/windows/types_windows_386.go +35 -0
  493. package/govendor/golang.org/x/sys/windows/types_windows_amd64.go +34 -0
  494. package/govendor/golang.org/x/sys/windows/types_windows_arm.go +35 -0
  495. package/govendor/golang.org/x/sys/windows/types_windows_arm64.go +34 -0
  496. package/govendor/golang.org/x/sys/windows/zerrors_windows.go +9468 -0
  497. package/govendor/golang.org/x/sys/windows/zknownfolderids_windows.go +149 -0
  498. package/govendor/golang.org/x/sys/windows/zsyscall_windows.go +4828 -0
  499. package/govendor/manifest.txt +7 -0
  500. package/package.json +7 -1
  501. package/tsparser/check.go +157 -0
  502. package/tsparser/main.go +30 -1
  503. package/types/typenative-go.d.ts +15159 -5
  504. package/types/typenative-npm.d.ts +2640 -34
  505. package/types/typenative.d.ts +651 -8
@@ -0,0 +1,600 @@
1
+ // node:child_process — sync (execSync / execFileSync / spawnSync, Buffers
2
+ // unless an encoding is given) and async (exec / execFile with callbacks,
3
+ // spawn → ChildProcess with stdio streams and exit / close events)
4
+ import { defineClass, defineHelper, defineModule, encodingOf, getOption, isStringNode } from './registry.js';
5
+ const childHelper = `// node:child_process
6
+ type tnSpawnOptions struct {
7
+ cwd string
8
+ env []string
9
+ shell bool
10
+ input []byte
11
+ stdio string
12
+ encoding string
13
+ }
14
+
15
+ // Environment entries from an env option (records, objects, process.env)
16
+ func tnEnvList(v interface{}) []string {
17
+ if v == nil || TnIsNil(v) {
18
+ return nil
19
+ }
20
+ out := []string{}
21
+ if withEntries, ok := v.(interface{ Entries() [][]interface{} }); ok {
22
+ for _, e := range withEntries.Entries() {
23
+ out = append(out, fmt.Sprint(e[0])+"="+TnJSString(e[1]))
24
+ }
25
+ return out
26
+ }
27
+ if m, ok := v.(map[string]interface{}); ok {
28
+ for k, val := range m {
29
+ out = append(out, k+"="+TnJSString(val))
30
+ }
31
+ return out
32
+ }
33
+ rv := reflect.ValueOf(v)
34
+ if rv.Kind() == reflect.Pointer && !rv.IsNil() && rv.Elem().Kind() == reflect.Struct {
35
+ sv := rv.Elem()
36
+ for i := 0; i < sv.NumField(); i++ {
37
+ f := sv.Field(i)
38
+ value := reflect.NewAt(f.Type(), unsafe.Pointer(f.UnsafeAddr())).Elem().Interface()
39
+ out = append(out, strings.TrimSuffix(sv.Type().Field(i).Name, "_")+"="+TnJSString(value))
40
+ }
41
+ }
42
+ return out
43
+ }
44
+
45
+ func tnSpawnOpts(options []interface{}) tnSpawnOptions {
46
+ o := tnSpawnOptions{stdio: "pipe"}
47
+ if len(options) == 0 || options[0] == nil {
48
+ return o
49
+ }
50
+ opts := options[0]
51
+ if s, ok := TnGet(opts, "cwd").(string); ok {
52
+ o.cwd = s
53
+ }
54
+ if env := TnGet(opts, "env"); env != nil {
55
+ o.env = tnEnvList(env)
56
+ }
57
+ switch sh := TnGet(opts, "shell").(type) {
58
+ case bool:
59
+ o.shell = sh
60
+ case string:
61
+ o.shell = sh != ""
62
+ }
63
+ switch in := TnGet(opts, "input").(type) {
64
+ case string:
65
+ o.input = []byte(in)
66
+ case []byte:
67
+ o.input = in
68
+ }
69
+ switch st := TnGet(opts, "stdio").(type) {
70
+ case string:
71
+ o.stdio = st
72
+ case []interface{}:
73
+ if len(st) > 1 {
74
+ if s, ok := st[1].(string); ok {
75
+ o.stdio = s
76
+ }
77
+ }
78
+ case []string:
79
+ if len(st) > 1 {
80
+ o.stdio = st[1]
81
+ }
82
+ }
83
+ if e, ok := TnGet(opts, "encoding").(string); ok {
84
+ o.encoding = e
85
+ }
86
+ return o
87
+ }
88
+
89
+ func tnShellCommand(command string) (string, []string) {
90
+ if runtime.GOOS == "windows" {
91
+ return "cmd", []string{"/d", "/s", "/c", command}
92
+ }
93
+ return "/bin/sh", []string{"-c", command}
94
+ }
95
+
96
+ func tnCommand(file string, args []string, o tnSpawnOptions) *exec.Cmd {
97
+ if o.shell {
98
+ file, args = tnShellCommand(strings.TrimSpace(file + " " + strings.Join(args, " ")))
99
+ }
100
+ cmd := exec.Command(file, args...)
101
+ cmd.Dir = o.cwd
102
+ if o.env != nil {
103
+ cmd.Env = o.env
104
+ }
105
+ return cmd
106
+ }
107
+
108
+ func tnExitStatus(err error) (float64, bool) {
109
+ if err == nil {
110
+ return 0, true
111
+ }
112
+ if exitErr, ok := err.(*exec.ExitError); ok {
113
+ return float64(exitErr.ExitCode()), true
114
+ }
115
+ return -1, false
116
+ }
117
+
118
+ func tnSpawnError(err error, file string) *TnError {
119
+ e := TnSysError(err, "spawn "+file, file)
120
+ if errors.Is(err, exec.ErrNotFound) {
121
+ e = TnSysError(fs.ErrNotExist, "spawn "+file, file)
122
+ }
123
+ e.props["spawnargs"] = []interface{}{}
124
+ return e
125
+ }
126
+
127
+ type tnSyncRun struct {
128
+ stdout []byte
129
+ stderr []byte
130
+ status float64
131
+ pid float64
132
+ err error
133
+ }
134
+
135
+ func tnRunSync(file string, args []string, o tnSpawnOptions, inheritStderr bool) tnSyncRun {
136
+ cmd := tnCommand(file, args, o)
137
+ var stdout, stderr bytes.Buffer
138
+ if o.input != nil {
139
+ cmd.Stdin = bytes.NewReader(o.input)
140
+ }
141
+ if o.stdio == "inherit" {
142
+ cmd.Stdin, cmd.Stdout, cmd.Stderr = os.Stdin, os.Stdout, os.Stderr
143
+ } else if o.stdio != "ignore" {
144
+ cmd.Stdout = &stdout
145
+ if inheritStderr {
146
+ cmd.Stderr = io.MultiWriter(&stderr, os.Stderr)
147
+ } else {
148
+ cmd.Stderr = &stderr
149
+ }
150
+ }
151
+ err := cmd.Run()
152
+ run := tnSyncRun{stdout: stdout.Bytes(), stderr: stderr.Bytes()}
153
+ if cmd.Process != nil {
154
+ run.pid = float64(cmd.Process.Pid)
155
+ }
156
+ status, ok := tnExitStatus(err)
157
+ run.status = status
158
+ if !ok {
159
+ run.err = err
160
+ }
161
+ return run
162
+ }
163
+
164
+ // execSync / execFileSync: stdout; a non-zero exit throws (status / stdout / stderr on the error)
165
+ func tnExecSyncRun(file string, args []string, display string, options []interface{}) tnSyncRun {
166
+ o := tnSpawnOpts(options)
167
+ run := tnRunSync(file, args, o, true)
168
+ if run.err != nil {
169
+ panic(tnSpawnError(run.err, file))
170
+ }
171
+ if run.status != 0 {
172
+ e := TnNodeError("Error", "", "Command failed: "+display+"\\n"+string(run.stderr))
173
+ e.props["status"] = run.status
174
+ e.props["stdout"] = TnBufferToString(run.stdout, "")
175
+ e.props["stderr"] = TnBufferToString(run.stderr, "")
176
+ e.props["pid"] = run.pid
177
+ panic(e)
178
+ }
179
+ return run
180
+ }
181
+
182
+ func TnExecSync(command string, options ...interface{}) []byte {
183
+ file, args := tnShellCommand(command)
184
+ return tnExecSyncRun(file, args, command, options).stdout
185
+ }
186
+
187
+ func TnExecSyncString(command string, enc string, options ...interface{}) string {
188
+ return TnBufferToString(TnExecSync(command, options...), enc)
189
+ }
190
+
191
+ func TnExecFileSync(file string, args []string, options ...interface{}) []byte {
192
+ return tnExecSyncRun(file, args, strings.TrimSpace(file+" "+strings.Join(args, " ")), options).stdout
193
+ }
194
+
195
+ func TnExecFileSyncString(file string, args []string, enc string, options ...interface{}) string {
196
+ return TnBufferToString(TnExecFileSync(file, args, options...), enc)
197
+ }
198
+
199
+ // spawnSync results: stdout / stderr are strings with an encoding, Buffers without
200
+ type TnSpawnSyncResult struct {
201
+ pid float64
202
+ stdout string
203
+ stderr string
204
+ status float64
205
+ signal *string
206
+ output []interface{}
207
+ error *TnError
208
+ }
209
+
210
+ type TnSpawnSyncBytes struct {
211
+ pid float64
212
+ stdout []byte
213
+ stderr []byte
214
+ status float64
215
+ signal *string
216
+ output []interface{}
217
+ error *TnError
218
+ }
219
+
220
+ func TnSpawnSync(file string, args []string, options ...interface{}) *TnSpawnSyncBytes {
221
+ o := tnSpawnOpts(options)
222
+ run := tnRunSync(file, args, o, false)
223
+ res := &TnSpawnSyncBytes{pid: run.pid, stdout: run.stdout, stderr: run.stderr, status: run.status}
224
+ res.output = []interface{}{nil, res.stdout, res.stderr}
225
+ if run.err != nil {
226
+ res.error = tnSpawnError(run.err, file)
227
+ }
228
+ return res
229
+ }
230
+
231
+ func TnSpawnSyncString(file string, args []string, enc string, options ...interface{}) *TnSpawnSyncResult {
232
+ b := TnSpawnSync(file, args, options...)
233
+ res := &TnSpawnSyncResult{pid: b.pid, stdout: TnBufferToString(b.stdout, enc), stderr: TnBufferToString(b.stderr, enc), status: b.status, error: b.error}
234
+ res.output = []interface{}{nil, res.stdout, res.stderr}
235
+ return res
236
+ }
237
+
238
+ // ChildProcess (spawn / exec / execFile)
239
+ type TnChildProcess struct {
240
+ TnEventEmitter
241
+ stdin *TnStream
242
+ stdout *TnStream
243
+ stderr *TnStream
244
+ pid float64
245
+ exitCode interface{}
246
+ signalCode interface{}
247
+ killed bool
248
+ cmd *exec.Cmd
249
+ spawnfile string
250
+ // IPC state of forked children (node:cluster / fork)
251
+ ipc interface{}
252
+ }
253
+
254
+ func (cp *TnChildProcess) Get_stdin() *TnStream { return cp.stdin }
255
+ func (cp *TnChildProcess) Get_stdout() *TnStream { return cp.stdout }
256
+ func (cp *TnChildProcess) Get_stderr() *TnStream { return cp.stderr }
257
+ func (cp *TnChildProcess) Get_pid() float64 { return cp.pid }
258
+ func (cp *TnChildProcess) Get_exitCode() interface{} { return cp.exitCode }
259
+ func (cp *TnChildProcess) Get_signalCode() interface{} { return cp.signalCode }
260
+ func (cp *TnChildProcess) Get_killed() bool { return cp.killed }
261
+ func (cp *TnChildProcess) Get_spawnfile() string { return cp.spawnfile }
262
+
263
+ func (cp *TnChildProcess) kill(signal ...interface{}) bool {
264
+ if cp.cmd == nil || cp.cmd.Process == nil || cp.exitCode != nil {
265
+ return false
266
+ }
267
+ cp.killed = true
268
+ cp.signalCode = "SIGTERM"
269
+ if len(signal) > 0 {
270
+ if s, ok := signal[0].(string); ok {
271
+ cp.signalCode = s
272
+ }
273
+ }
274
+ return cp.cmd.Process.Kill() == nil
275
+ }
276
+
277
+ func tnPipeSource(r io.Reader, s *TnStream, done *sync.WaitGroup) {
278
+ go func() {
279
+ defer done.Done()
280
+ buf := make([]byte, 32768)
281
+ for {
282
+ n, err := r.Read(buf)
283
+ if n > 0 {
284
+ chunk := append([]byte{}, buf[:n]...)
285
+ TnLoopPost(func() { s.push(chunk) })
286
+ }
287
+ if err != nil {
288
+ TnLoopPost(func() { s.push(nil) })
289
+ return
290
+ }
291
+ }
292
+ }()
293
+ }
294
+
295
+ func TnSpawn(file string, args []string, options ...interface{}) *TnChildProcess {
296
+ o := tnSpawnOpts(options)
297
+ cp := &TnChildProcess{spawnfile: file}
298
+ cmd := tnCommand(file, args, o)
299
+ cp.cmd = cmd
300
+ var streams sync.WaitGroup
301
+ if o.stdio == "inherit" {
302
+ cmd.Stdin, cmd.Stdout, cmd.Stderr = os.Stdin, os.Stdout, os.Stderr
303
+ } else if o.stdio != "ignore" {
304
+ stdinPipe, _ := cmd.StdinPipe()
305
+ stdoutPipe, _ := cmd.StdoutPipe()
306
+ stderrPipe, _ := cmd.StderrPipe()
307
+ cp.stdout = TnNewReadable()
308
+ cp.stderr = TnNewReadable()
309
+ cp.stdin = TnNewWritable()
310
+ cp.stdin.sink = func(chunk interface{}, done func(err interface{})) {
311
+ switch c := chunk.(type) {
312
+ case []byte:
313
+ stdinPipe.Write(c)
314
+ case string:
315
+ io.WriteString(stdinPipe, c)
316
+ }
317
+ done(nil)
318
+ }
319
+ cp.stdin.sinkFinal = func(done func(err interface{})) {
320
+ stdinPipe.Close()
321
+ done(nil)
322
+ }
323
+ streams.Add(2)
324
+ tnPipeSource(stdoutPipe, cp.stdout, &streams)
325
+ tnPipeSource(stderrPipe, cp.stderr, &streams)
326
+ }
327
+ if err := cmd.Start(); err != nil {
328
+ spawnErr := tnSpawnError(err, file)
329
+ TnLoopPost(func() { cp.emit("error", spawnErr) })
330
+ return cp
331
+ }
332
+ cp.pid = float64(cmd.Process.Pid)
333
+ TnLoopRef()
334
+ TnLoopPost(func() { cp.emit("spawn") })
335
+ go func() {
336
+ streams.Wait()
337
+ err := cmd.Wait()
338
+ status, _ := tnExitStatus(err)
339
+ TnLoopPost(func() {
340
+ defer TnLoopUnref()
341
+ var code interface{} = status
342
+ var signal interface{}
343
+ if cp.killed {
344
+ code, signal = nil, cp.signalCode
345
+ }
346
+ cp.exitCode = code
347
+ cp.emit("exit", code, signal)
348
+ // 'close' follows the end of the stdio streams that are being read
349
+ pending := 0
350
+ closeOnce := func() {
351
+ pending--
352
+ if pending == 0 {
353
+ cp.emit("close", code, signal)
354
+ }
355
+ }
356
+ pending++
357
+ for _, st := range []*TnStream{cp.stdout, cp.stderr} {
358
+ if st != nil && st.flowing == 1 && !st.endEmitted {
359
+ pending++
360
+ TnLoopRef()
361
+ st.TnEventEmitter.once("end", func() {
362
+ defer TnLoopUnref()
363
+ closeOnce()
364
+ })
365
+ }
366
+ }
367
+ closeOnce()
368
+ })
369
+ }()
370
+ return cp
371
+ }
372
+
373
+ // exec / execFile: the output is collected; callback(err, stdout, stderr)
374
+ func tnExecCollect(cp *TnChildProcess, display string, encoding string, cb interface{}) {
375
+ var stdout, stderr []byte
376
+ if cp.stdout != nil {
377
+ cp.stdout.on("data", func(chunk interface{}) { stdout = append(stdout, tnChunksBytes([]interface{}{chunk})...) })
378
+ cp.stderr.on("data", func(chunk interface{}) { stderr = append(stderr, tnChunksBytes([]interface{}{chunk})...) })
379
+ }
380
+ convert := func(b []byte) interface{} {
381
+ if encoding == "buffer" {
382
+ return b
383
+ }
384
+ return TnBufferToString(b, encoding)
385
+ }
386
+ finished := false
387
+ cp.TnEventEmitter.once("error", func(err interface{}) {
388
+ if !finished && cb != nil {
389
+ finished = true
390
+ TnInvoke(cb, err, convert(stdout), convert(stderr))
391
+ }
392
+ })
393
+ cp.TnEventEmitter.once("close", func(code interface{}, signal interface{}) {
394
+ if finished || cb == nil {
395
+ return
396
+ }
397
+ finished = true
398
+ if n, ok := code.(float64); ok && n == 0 {
399
+ TnInvoke(cb, nil, convert(stdout), convert(stderr))
400
+ return
401
+ }
402
+ e := TnNodeError("Error", "", "Command failed: "+display+"\\n"+string(stderr))
403
+ e.props["code"] = code
404
+ e.props["killed"] = cp.killed
405
+ e.props["signal"] = signal
406
+ e.props["cmd"] = display
407
+ e.props["stdout"] = convert(stdout)
408
+ e.props["stderr"] = convert(stderr)
409
+ TnInvoke(cb, e, convert(stdout), convert(stderr))
410
+ })
411
+ }
412
+
413
+ func tnExecEncoding(options []interface{}) string {
414
+ if len(options) > 0 && options[0] != nil {
415
+ if e, ok := TnGet(options[0], "encoding").(string); ok {
416
+ return e
417
+ }
418
+ }
419
+ return "utf8"
420
+ }
421
+
422
+ func TnExec(command string, options interface{}, cb interface{}) *TnChildProcess {
423
+ opts := []interface{}{}
424
+ if options != nil && !TnIsNil(options) {
425
+ opts = append(opts, options)
426
+ }
427
+ file, args := tnShellCommand(command)
428
+ cp := TnSpawn(file, args, opts...)
429
+ tnExecCollect(cp, command, tnExecEncoding(opts), cb)
430
+ return cp
431
+ }
432
+
433
+ func TnExecFile(file string, args []string, options interface{}, cb interface{}) *TnChildProcess {
434
+ opts := []interface{}{}
435
+ if options != nil && !TnIsNil(options) {
436
+ opts = append(opts, options)
437
+ }
438
+ cp := TnSpawn(file, args, opts...)
439
+ tnExecCollect(cp, strings.TrimSpace(file+" "+strings.Join(args, " ")), tnExecEncoding(opts), cb)
440
+ return cp
441
+ }
442
+
443
+ // util.promisify(exec) / promisify(execFile): resolves with { stdout, stderr }
444
+ type TnExecOutput struct {
445
+ stdout string
446
+ stderr string
447
+ }
448
+
449
+ func tnExecPromise(start func(cb interface{}) *TnChildProcess) chan *TnExecOutput {
450
+ ch := make(chan *TnExecOutput, 1)
451
+ start(func(err interface{}, stdout string, stderr string) {
452
+ if err != nil && !TnIsNil(err) {
453
+ TnReject(ch, err)
454
+ return
455
+ }
456
+ ch <- &TnExecOutput{stdout: stdout, stderr: stderr}
457
+ })
458
+ return ch
459
+ }
460
+
461
+ func TnExecPromise(command string, options ...interface{}) chan *TnExecOutput {
462
+ var opts interface{}
463
+ if len(options) > 0 {
464
+ opts = options[0]
465
+ }
466
+ return tnExecPromise(func(cb interface{}) *TnChildProcess { return TnExec(command, opts, cb) })
467
+ }
468
+
469
+ func TnExecFilePromise(file string, args []string, options ...interface{}) chan *TnExecOutput {
470
+ var opts interface{}
471
+ if len(options) > 0 {
472
+ opts = options[0]
473
+ }
474
+ return tnExecPromise(func(cb interface{}) *TnChildProcess { return TnExecFile(file, args, opts, cb) })
475
+ }`;
476
+ // A Go []string expression from an args argument (untyped literals are typed)
477
+ function stringArray(arg) {
478
+ if (!arg)
479
+ return '[]string{}';
480
+ if (arg.startsWith('[]') && !arg.startsWith('[]string'))
481
+ return arg.replace(/^\[\]\S* \{/, '[]string{');
482
+ return arg;
483
+ }
484
+ function isFunctionArg(node, type) {
485
+ return !!node && (node.kind === 'ArrowFunction' || node.kind === 'FunctionExpression' || type.startsWith('func('));
486
+ }
487
+ export function registerChildProcess(r) {
488
+ defineModule(r, 'child_process');
489
+ defineHelper(r, 'nodeChild', ['bytes', 'errors', 'fmt', 'io', 'io/fs', 'os', 'os/exec', 'reflect', 'runtime', 'strings', 'sync', 'unsafe'], ['nodeStream', 'fsErrors', 'buffer', 'dynamic', 'nodeInvoke', 'eventLoop', 'promise'], childHelper);
490
+ defineClass(r, 'child_process.ChildProcess', '*TnChildProcess', 'class', 'on=*TnEventEmitter; once=*TnEventEmitter; off=*TnEventEmitter; emit=bool; kill=bool', '', 'stdin=*TnStream; stdout=*TnStream; stderr=*TnStream; pid=float64; exitCode=interface{}; signalCode=interface{}; killed=bool; spawnfile=string', '');
491
+ defineClass(r, 'child_process.SpawnSyncReturns', '*TnSpawnSyncResult', 'class', '', 'pid=float64; stdout=string; stderr=string; status=float64; signal=*string; output=[]interface{}; error=*TnError', '', '');
492
+ defineClass(r, 'child_process.SpawnSyncBytes', '*TnSpawnSyncBytes', 'class', '', 'pid=float64; stdout=[]byte; stderr=[]byte; status=float64; signal=*string; output=[]interface{}; error=*TnError', '', '');
493
+ defineClass(r, 'child_process.ExecOutput', '*TnExecOutput', 'class', '', 'stdout=string; stderr=string', '', '');
494
+ r.paramTypers['child_process.ChildProcess#on'] = (nodes) => {
495
+ const event = nodes[0];
496
+ const name = event && event.kind === 'StringLiteral' ? String(event.text) : '';
497
+ if (name === 'exit' || name === 'close')
498
+ return ['interface{}', 'interface{}'];
499
+ return name === 'error' || name === 'message' ? ['interface{}'] : [];
500
+ };
501
+ r.paramTypers['child_process.ChildProcess#once'] = r.paramTypers['child_process.ChildProcess#on'];
502
+ const use = () => r.helper('nodeChild');
503
+ // A literal encoding other than 'buffer' makes the output strings
504
+ const stringEncoding = (node) => {
505
+ const enc = encodingOf(node);
506
+ return enc && enc !== 'buffer' ? enc : '';
507
+ };
508
+ const options = (c, index) => (c.args.length > index ? `, ${c.args[index]}` : '');
509
+ r.functions['child_process.execSync'] = (c) => {
510
+ use();
511
+ const enc = stringEncoding(c.nodes[1]);
512
+ if (enc)
513
+ return `TnExecSyncString(${c.args[0]}, ${JSON.stringify(enc)}${options(c, 1)})`;
514
+ return `TnExecSync(${c.args[0]}${options(c, 1)})`;
515
+ };
516
+ r.typers['child_process.execSync'] = (c) => (stringEncoding(c.nodes[1]) ? 'string' : '[]byte');
517
+ r.functions['child_process.execFileSync'] = (c) => {
518
+ use();
519
+ const hasArgs = c.types[1] ? c.types[1].startsWith('[]') : false;
520
+ const argsExpr = hasArgs ? stringArray(c.args[1]) : '[]string{}';
521
+ const optIndex = hasArgs ? 2 : 1;
522
+ const enc = stringEncoding(c.nodes[optIndex]);
523
+ if (enc)
524
+ return `TnExecFileSyncString(${c.args[0]}, ${argsExpr}, ${JSON.stringify(enc)}${options(c, optIndex)})`;
525
+ return `TnExecFileSync(${c.args[0]}, ${argsExpr}${options(c, optIndex)})`;
526
+ };
527
+ r.typers['child_process.execFileSync'] = (c) => {
528
+ const hasArgs = c.types[1] ? c.types[1].startsWith('[]') : false;
529
+ return stringEncoding(c.nodes[hasArgs ? 2 : 1]) ? 'string' : '[]byte';
530
+ };
531
+ r.functions['child_process.spawnSync'] = (c) => {
532
+ use();
533
+ const hasArgs = c.types[1] ? c.types[1].startsWith('[]') : false;
534
+ const argsExpr = hasArgs ? stringArray(c.args[1]) : '[]string{}';
535
+ const optIndex = hasArgs ? 2 : 1;
536
+ const enc = stringEncoding(c.nodes[optIndex]);
537
+ if (enc)
538
+ return `TnSpawnSyncString(${c.args[0]}, ${argsExpr}, ${JSON.stringify(enc)}${options(c, optIndex)})`;
539
+ return `TnSpawnSync(${c.args[0]}, ${argsExpr}${options(c, optIndex)})`;
540
+ };
541
+ r.typers['child_process.spawnSync'] = (c) => {
542
+ const hasArgs = c.types[1] ? c.types[1].startsWith('[]') : false;
543
+ return stringEncoding(c.nodes[hasArgs ? 2 : 1]) ? '*TnSpawnSyncResult' : '*TnSpawnSyncBytes';
544
+ };
545
+ r.functions['child_process.spawn'] = (c) => {
546
+ use();
547
+ const hasArgs = c.types[1] ? c.types[1].startsWith('[]') : false;
548
+ const argsExpr = hasArgs ? stringArray(c.args[1]) : '[]string{}';
549
+ return `TnSpawn(${c.args[0]}, ${argsExpr}${options(c, hasArgs ? 2 : 1)})`;
550
+ };
551
+ r.results['child_process.spawn'] = '*TnChildProcess';
552
+ // exec(command, [options], [callback])
553
+ r.functions['child_process.exec'] = (c) => {
554
+ use();
555
+ const last = c.nodes.length - 1;
556
+ const hasCallback = last >= 1 && isFunctionArg(c.nodes[last], c.types[last]);
557
+ const cb = hasCallback ? c.args[last] : 'nil';
558
+ const opts = c.nodes.length >= 2 && !(hasCallback && last === 1) ? c.args[1] : 'nil';
559
+ return `TnExec(${c.args[0]}, ${opts}, ${cb})`;
560
+ };
561
+ r.results['child_process.exec'] = '*TnChildProcess';
562
+ // execFile(file, [args], [options], [callback])
563
+ r.functions['child_process.execFile'] = (c) => {
564
+ use();
565
+ const last = c.nodes.length - 1;
566
+ const hasCallback = last >= 1 && isFunctionArg(c.nodes[last], c.types[last]);
567
+ const end = hasCallback ? last : c.nodes.length;
568
+ let index = 1;
569
+ let argsExpr = '[]string{}';
570
+ if (index < end && c.types[index].startsWith('[]')) {
571
+ argsExpr = stringArray(c.args[index]);
572
+ index++;
573
+ }
574
+ const opts = index < end ? c.args[index] : 'nil';
575
+ return `TnExecFile(${c.args[0]}, ${argsExpr}, ${opts}, ${hasCallback ? c.args[last] : 'nil'})`;
576
+ };
577
+ r.results['child_process.execFile'] = '*TnChildProcess';
578
+ const execCallback = (nodes) => {
579
+ // encoding: 'buffer' → Buffers
580
+ const options = nodes.length >= 3 ? nodes[nodes.length - 2] : undefined;
581
+ const encoding = options ? getOption(options, 'encoding') : undefined;
582
+ const isBuffer = !!encoding && isStringNode(encoding) && encoding.text === 'buffer';
583
+ const output = isBuffer ? '[]byte' : 'string';
584
+ return ['*TnError', output, output];
585
+ };
586
+ r.paramTypers['child_process.exec'] = execCallback;
587
+ r.paramTypers['child_process.execFile'] = execCallback;
588
+ // util.promisify(exec) / promisify(execFile)
589
+ r.functions['child_process.exec.__promisify__'] = (c) => {
590
+ use();
591
+ return `TnExecPromise(${c.args.join(', ')})`;
592
+ };
593
+ r.results['child_process.exec.__promisify__'] = 'chan *TnExecOutput';
594
+ r.functions['child_process.execFile.__promisify__'] = (c) => {
595
+ use();
596
+ const hasArgs = c.types[1] ? c.types[1].startsWith('[]') : false;
597
+ return `TnExecFilePromise(${c.args[0]}, ${hasArgs ? stringArray(c.args[1]) : '[]string{}'}${options(c, hasArgs ? 2 : 1)})`;
598
+ };
599
+ r.results['child_process.execFile.__promisify__'] = 'chan *TnExecOutput';
600
+ }