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
package/bin/index.js CHANGED
@@ -10,281 +10,335 @@ import { platform } from 'node:os';
10
10
  // not reach them), so they're accessed through `any` casts for type-checking.
11
11
  import * as childProcess from 'node:child_process';
12
12
  import { transpileToNative } from './transpiler.js';
13
- // Run a command and capture its output. Uses Node's spawnSync under Node and a
14
- // Go helper (os/exec) once transpiled — both synchronous, same result shape.
15
- // dist/go.mod + dist/tnvendor/x-text: golang.org/x/text's transform and unicode/norm
16
- // packages, copied from GOROOT/src/vendor (no network needed)
13
+ import { VERSION } from './version.js';
14
+ // golang.org/x/text's transform and unicode/norm packages (String.normalize),
15
+ // copied from GOROOT/src/vendor
17
16
  function vendorXText() {
18
- const goroot = runCommand('go', ['env', 'GOROOT']).stdout.trim();
19
- const source = path.join(goroot, 'src', 'vendor', 'golang.org', 'x', 'text');
20
- for (const pkg of ['transform', path.join('unicode', 'norm')]) {
21
- const target = path.join('dist', 'tnvendor', 'x-text', pkg);
22
- fs.mkdirSync(target, { recursive: true });
23
- for (const file of fs.readdirSync(path.join(source, pkg))) {
24
- if (file.endsWith('.go') && !file.endsWith('_test.go')) {
25
- fs.writeFileSync(
26
- path.join(target, file),
27
- fs.readFileSync(path.join(source, pkg, file), 'utf-8')
28
- );
29
- }
17
+ const goroot = runCommand('go', ['env', 'GOROOT']).stdout.trim();
18
+ const source = path.join(goroot, 'src', 'vendor', 'golang.org', 'x', 'text');
19
+ for (const pkg of ['transform', path.join('unicode', 'norm')]) {
20
+ const target = path.join('dist', 'tnvendor', 'x-text', pkg);
21
+ fs.mkdirSync(target, { recursive: true });
22
+ for (const file of fs.readdirSync(path.join(source, pkg))) {
23
+ if (file.endsWith('.go') && !file.endsWith('_test.go')) {
24
+ fs.writeFileSync(path.join(target, file), fs.readFileSync(path.join(source, pkg, file), 'utf-8'));
25
+ }
26
+ }
30
27
  }
31
- }
32
- fs.writeFileSync(
33
- path.join('dist', 'tnvendor', 'x-text', 'go.mod'),
34
- 'module golang.org/x/text\n\ngo 1.23\n'
35
- );
36
- fs.writeFileSync(
37
- path.join('dist', 'go.mod'),
38
- 'module tnapp\n\ngo 1.23\n\nrequire golang.org/x/text v0.0.0\n\nreplace golang.org/x/text => ./tnvendor/x-text\n'
39
- );
28
+ fs.writeFileSync(path.join('dist', 'tnvendor', 'x-text', 'go.mod'), 'module golang.org/x/text\n\ngo 1.23\n');
29
+ return { path: 'golang.org/x/text', version: 'v0.0.0', dir: './tnvendor/x-text' };
40
30
  }
31
+ // node:sqlite's driver and its dependencies, copied from the package's
32
+ // govendor/ (listed in govendor/manifest.txt); the copy is skipped while
33
+ // dist/tnvendor already holds the same version. Returns the modules and the
34
+ // Go version their go.mod files declare.
35
+ function vendorGoModules(vendorDir) {
36
+ const manifest = fs.readFileSync(path.join(vendorDir, 'manifest.txt'), 'utf-8');
37
+ let version = '';
38
+ let goVersion = '1.23';
39
+ const modules = [];
40
+ for (const line of manifest.split('\n')) {
41
+ const parts = line.trim().split(' ');
42
+ if (parts[0] === 'version')
43
+ version = parts[1];
44
+ if (parts[0] === 'go')
45
+ goVersion = parts[1];
46
+ if (parts[0] === 'module') {
47
+ modules.push({ path: parts[1], version: parts[2], dir: './tnvendor/' + parts[1] });
48
+ }
49
+ }
50
+ const stamp = path.join('dist', 'tnvendor', 'govendor.version');
51
+ const current = fs.existsSync(stamp) ? fs.readFileSync(stamp, 'utf-8') : '';
52
+ if (current !== version) {
53
+ for (const mod of modules) {
54
+ const target = path.join('dist', 'tnvendor', mod.path);
55
+ fs.rmSync(target, { recursive: true, force: true });
56
+ fs.cpSync(path.join(vendorDir, mod.path), target, { recursive: true });
57
+ }
58
+ fs.writeFileSync(stamp, version);
59
+ }
60
+ return { modules: modules, goVersion: goVersion };
61
+ }
62
+ function writeGoMod(modules, goVersion) {
63
+ let requires = '';
64
+ let replaces = '';
65
+ for (const mod of modules) {
66
+ requires += `\t${mod.path} ${mod.version}\n`;
67
+ replaces += `\t${mod.path} => ${mod.dir}\n`;
68
+ }
69
+ fs.writeFileSync(path.join('dist', 'go.mod'), `module tnapp\n\ngo ${goVersion}\n\nrequire (\n${requires})\n\nreplace (\n${replaces})\n`);
70
+ }
71
+ // Run a command and capture its output. Uses Node's spawnSync under Node and a
72
+ // Go helper (os/exec) once transpiled — both synchronous, same result shape.
41
73
  export function runCommand(name, args) {
42
- const result = childProcess.spawnSync(name, args, { encoding: 'utf-8' });
43
- return { stdout: result.stdout, stderr: result.stderr, status: result.status };
74
+ const result = childProcess.spawnSync(name, args, { encoding: 'utf-8' });
75
+ return { stdout: result.stdout, stderr: result.stderr, status: result.status };
44
76
  }
45
77
  // Run a command with the parent's stdio, returns the exit code.
46
78
  export function runInherit(name, args = []) {
47
- const result = childProcess.spawnSync(name, args, { stdio: 'inherit' });
48
- return result.status;
79
+ const result = childProcess.spawnSync(name, args, { stdio: 'inherit' });
80
+ return result.status;
49
81
  }
50
82
  export function createProject(projectName, installDependencies) {
51
- fs.mkdirSync(projectName, { recursive: true });
52
- fs.writeFileSync(
53
- path.join(projectName, 'main.ts'),
54
- `// Write your TypeScript code here\nconsole.log('Hello, World!');\n`
55
- );
56
- fs.writeFileSync(path.join(projectName, 'tsconfig.json'), getTsConfig());
57
- fs.writeFileSync(path.join(projectName, 'package.json'), getPackageJson(projectName));
58
- fs.writeFileSync(path.join(projectName, '.gitignore'), getGitIgnore());
59
- fs.writeFileSync(path.join(projectName, 'README.md'), getReadMe(projectName));
60
- console.log(`Project "${projectName}" created successfully!`);
61
- if (installDependencies) {
62
- console.log('Installing dependencies...');
63
- // npm --prefix avoids needing cwd support in the subprocess binding
64
- const result = runCommand('npm', ['install', '--prefix', projectName]);
65
- if (result.stdout) console.log(result.stdout.trim());
66
- if (result.status !== 0) {
67
- if (result.stderr) console.error(result.stderr.trim());
68
- process.exit(result.status);
83
+ fs.mkdirSync(projectName, { recursive: true });
84
+ fs.writeFileSync(path.join(projectName, 'main.ts'), `// Write your TypeScript code here\nconsole.log('Hello, World!');\n`);
85
+ fs.writeFileSync(path.join(projectName, 'tsconfig.json'), getTsConfig());
86
+ fs.writeFileSync(path.join(projectName, 'package.json'), getPackageJson(projectName));
87
+ fs.writeFileSync(path.join(projectName, '.gitignore'), getGitIgnore());
88
+ fs.writeFileSync(path.join(projectName, 'README.md'), getReadMe(projectName));
89
+ console.log(`Project "${projectName}" created successfully!`);
90
+ if (installDependencies) {
91
+ console.log('Installing dependencies...');
92
+ // npm --prefix avoids needing cwd support in the subprocess binding
93
+ const result = runCommand('npm', ['install', '--prefix', projectName]);
94
+ if (result.stdout)
95
+ console.log(result.stdout.trim());
96
+ if (result.status !== 0) {
97
+ if (result.stderr)
98
+ console.error(result.stderr.trim());
99
+ process.exit(result.status);
100
+ }
101
+ console.log('Dependencies installed successfully!');
69
102
  }
70
- console.log('Dependencies installed successfully!');
71
- }
72
103
  }
73
104
  export function run(opts) {
74
- const sourcePath = opts.tsCode ? null : opts.source;
75
- const tsCode = opts.tsCode ? opts.tsCode : fs.readFileSync(sourcePath, 'utf-8');
76
- const sourceDir = sourcePath ? path.dirname(path.resolve(sourcePath)) : null;
77
- const transpileOptions = { parse: opts.parse, tsx: !!sourcePath && sourcePath.endsWith('.tsx') };
78
- if (sourceDir) {
79
- transpileOptions.readFile = (specifier, fromDir) => {
80
- const baseDir = fromDir ?? sourceDir;
81
- // Relative or absolute path → resolve from baseDir
82
- if (specifier.startsWith('.') || specifier.startsWith('/')) {
83
- // ES convention: ./x.js may refer to x.ts
84
- const tsSpecifier = specifier.endsWith('.js')
85
- ? specifier.replace(/\.js$/, '.ts')
86
- : specifier;
87
- const tsxSpecifier = specifier.endsWith('.js')
88
- ? specifier.replace(/\.js$/, '.tsx')
89
- : specifier + '.tsx';
90
- for (const candidate of [tsSpecifier + '.ts', tsxSpecifier, tsSpecifier, specifier]) {
91
- try {
92
- const fullPath = path.resolve(baseDir, candidate);
93
- return {
94
- content: fs.readFileSync(fullPath, 'utf-8'),
95
- dir: path.dirname(fullPath),
96
- tsx: fullPath.endsWith('.tsx')
97
- };
98
- } catch {
99
- /* not found */
100
- }
101
- }
102
- return null;
103
- }
104
- // npm package — walk up from baseDir looking for node_modules/<name>
105
- const resolved = resolveNpmPackage(baseDir, specifier);
106
- if (!resolved) return null;
107
- let { content, dir } = resolved;
108
- // Normalize CommonJS to ES module syntax
109
- if (
110
- !content.includes('export ') &&
111
- (content.includes('module.exports') || content.includes('exports.'))
112
- ) {
113
- content = normalizeCjsContent(content);
114
- }
115
- // Inject types from a local ambient .d.ts if available
116
- const typed = tryInjectDtsTypes(content, specifier, sourceDir);
117
- if (typed) content = typed;
118
- return { content, dir };
105
+ const sourcePath = opts.tsCode ? null : opts.source;
106
+ const tsCode = opts.tsCode ? opts.tsCode : fs.readFileSync(sourcePath, 'utf-8');
107
+ const sourceDir = sourcePath ? path.dirname(path.resolve(sourcePath)) : null;
108
+ const transpileOptions = {
109
+ parse: opts.parse,
110
+ tsx: !!sourcePath && sourcePath.endsWith('.tsx')
119
111
  };
120
- }
121
- const transpileResult = transpileToNative(tsCode, transpileOptions);
122
- const exeName = platform() === 'win32' ? 'native.exe' : 'native';
123
- const exePath = `dist/${exeName}`;
124
- fs.mkdirSync('dist', { recursive: true });
125
- // Clean up stale Go files from previous runs before writing new ones
126
- for (const existing of fs.readdirSync('dist')) {
127
- if (existing.endsWith('.go') || existing === 'go.mod' || existing === 'go.sum')
128
- fs.rmSync(`dist/${existing}`);
129
- }
130
- fs.writeFileSync('dist/code.go', transpileResult.main);
131
- const goFiles = ['dist/code.go'];
132
- for (const [filename, content] of transpileResult.files) {
133
- fs.writeFileSync(`dist/${filename}`, content);
134
- goFiles.push(`dist/${filename}`);
135
- }
136
- // golang.org/x/text (String.normalize) comes from the copy vendored in GOROOT
137
- const xTextImport = /^import (\w+ )?"golang\.org\/x\/text\//m;
138
- let usesXText = xTextImport.test(transpileResult.main);
139
- for (const content of transpileResult.files.values()) {
140
- if (xTextImport.test(content)) usesXText = true;
141
- }
142
- if (usesXText) vendorXText();
143
- const buildResult = usesXText
144
- ? runCommand('go', [
145
- 'build',
146
- '-C',
147
- 'dist',
148
- '-o',
149
- exeName,
150
- ...goFiles.map((f) => f.slice('dist/'.length))
151
- ])
152
- : runCommand('go', ['build', '-o', exePath, ...goFiles]);
153
- if (buildResult.status !== 0) {
154
- console.error('go build failed:');
155
- if (buildResult.stderr) console.error(buildResult.stderr.trim());
156
- process.exit(1);
157
- }
158
- if (opts.scriptMode) {
159
- process.exit(runInherit(exePath));
160
- } else if (opts.output) {
161
- fs.copyFileSync(exePath, opts.output);
162
- console.log(`Created native executable at: ${opts.output}`);
163
- }
112
+ if (sourceDir) {
113
+ transpileOptions.readFile = (specifier, fromDir) => {
114
+ const baseDir = fromDir ?? sourceDir;
115
+ // Relative or absolute path → resolve from baseDir
116
+ if (specifier.startsWith('.') || specifier.startsWith('/')) {
117
+ // ES convention: ./x.js may refer to x.ts
118
+ const tsSpecifier = specifier.endsWith('.js')
119
+ ? specifier.replace(/\.js$/, '.ts')
120
+ : specifier;
121
+ const tsxSpecifier = specifier.endsWith('.js')
122
+ ? specifier.replace(/\.js$/, '.tsx')
123
+ : specifier + '.tsx';
124
+ for (const candidate of [tsSpecifier + '.ts', tsxSpecifier, tsSpecifier, specifier]) {
125
+ try {
126
+ const fullPath = path.resolve(baseDir, candidate);
127
+ return {
128
+ content: fs.readFileSync(fullPath, 'utf-8'),
129
+ dir: path.dirname(fullPath),
130
+ tsx: fullPath.endsWith('.tsx')
131
+ };
132
+ }
133
+ catch {
134
+ /* not found */
135
+ }
136
+ }
137
+ return null;
138
+ }
139
+ // npm package — walk up from baseDir looking for node_modules/<name>
140
+ const resolved = resolveNpmPackage(baseDir, specifier);
141
+ if (!resolved)
142
+ return null;
143
+ let { content, dir } = resolved;
144
+ // Normalize CommonJS to ES module syntax
145
+ if (!content.includes('export ') &&
146
+ (content.includes('module.exports') || content.includes('exports.'))) {
147
+ content = normalizeCjsContent(content);
148
+ }
149
+ // Inject types from a local ambient .d.ts if available
150
+ const typed = tryInjectDtsTypes(content, specifier, sourceDir);
151
+ if (typed)
152
+ content = typed;
153
+ return { content, dir };
154
+ };
155
+ }
156
+ const transpileResult = transpileToNative(tsCode, transpileOptions);
157
+ const exeName = platform() === 'win32' ? 'native.exe' : 'native';
158
+ const exePath = `dist/${exeName}`;
159
+ fs.mkdirSync('dist', { recursive: true });
160
+ // Clean up stale Go files from previous runs before writing new ones
161
+ for (const existing of fs.readdirSync('dist')) {
162
+ if (existing.endsWith('.go') || existing === 'go.mod' || existing === 'go.sum')
163
+ fs.rmSync(`dist/${existing}`);
164
+ }
165
+ fs.writeFileSync('dist/code.go', transpileResult.main);
166
+ const goFiles = ['dist/code.go'];
167
+ for (const [filename, content] of transpileResult.files) {
168
+ fs.writeFileSync(`dist/${filename}`, content);
169
+ goFiles.push(`dist/${filename}`);
170
+ }
171
+ // Third-party Go modules the program imports (see vendorXText / vendorGoModules)
172
+ const generated = [transpileResult.main];
173
+ for (const content of transpileResult.files.values())
174
+ generated.push(content);
175
+ const xTextImport = /^import (\w+ )?"golang\.org\/x\/text\//m;
176
+ const sqliteImport = /^import (\w+ )?"github\.com\/ncruces\/go-sqlite3"/m;
177
+ const modules = [];
178
+ let goVersion = '1.23';
179
+ if (generated.some((content) => xTextImport.test(content)))
180
+ modules.push(vendorXText());
181
+ if (generated.some((content) => sqliteImport.test(content))) {
182
+ const vendored = vendorGoModules(opts.vendorDir);
183
+ for (const mod of vendored.modules)
184
+ modules.push(mod);
185
+ goVersion = vendored.goVersion;
186
+ }
187
+ if (modules.length > 0)
188
+ writeGoMod(modules, goVersion);
189
+ const buildResult = modules.length > 0
190
+ ? runCommand('go', [
191
+ 'build',
192
+ '-C',
193
+ 'dist',
194
+ '-o',
195
+ exeName,
196
+ ...goFiles.map((f) => f.slice('dist/'.length))
197
+ ])
198
+ : runCommand('go', ['build', '-o', exePath, ...goFiles]);
199
+ if (buildResult.status !== 0) {
200
+ console.error('go build failed:');
201
+ if (buildResult.stderr)
202
+ console.error(buildResult.stderr.trim());
203
+ process.exit(1);
204
+ }
205
+ if (opts.scriptMode) {
206
+ process.exit(runInherit(exePath));
207
+ }
208
+ else if (opts.output) {
209
+ fs.copyFileSync(exePath, opts.output);
210
+ console.log(`Created native executable at: ${opts.output}`);
211
+ }
164
212
  }
165
213
  function normalizeCjsContent(code) {
166
- code = code.replace(/['"]use strict['"];?\n?/g, '');
167
- code = code.replace(
168
- /(?:module\.exports|exports)\.(\w+)\s*=\s*function\s*\w*\s*\(/g,
169
- 'export function $1('
170
- );
171
- return code;
214
+ code = code.replace(/['"]use strict['"];?\n?/g, '');
215
+ code = code.replace(/(?:module\.exports|exports)\.(\w+)\s*=\s*function\s*\w*\s*\(/g, 'export function $1(');
216
+ return code;
172
217
  }
173
218
  function tryInjectDtsTypes(jsContent, packageName, searchDir) {
174
- if (!searchDir) return null;
175
- // Look for *.d.ts files in searchDir that declare the module
176
- let dtsBody = null;
177
- try {
178
- const escaped = packageName.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
179
- for (const file of fs.readdirSync(searchDir)) {
180
- if (!file.endsWith('.d.ts')) continue;
181
- const content = fs.readFileSync(path.join(searchDir, file), 'utf-8');
182
- const match = content.match(
183
- new RegExp(`declare module ['"]${escaped}['"][^{]*\\{([\\s\\S]*?)\\}`)
184
- );
185
- if (match) {
186
- dtsBody = match[1];
187
- break;
188
- }
219
+ if (!searchDir)
220
+ return null;
221
+ // Look for *.d.ts files in searchDir that declare the module
222
+ let dtsBody = null;
223
+ try {
224
+ const escaped = packageName.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
225
+ for (const file of fs.readdirSync(searchDir)) {
226
+ if (!file.endsWith('.d.ts'))
227
+ continue;
228
+ const content = fs.readFileSync(path.join(searchDir, file), 'utf-8');
229
+ const match = content.match(new RegExp(`declare module ['"]${escaped}['"][^{]*\\{([\\s\\S]*?)\\}`));
230
+ if (match) {
231
+ dtsBody = match[1];
232
+ break;
233
+ }
234
+ }
189
235
  }
190
- } catch {
191
- return null;
192
- }
193
- if (!dtsBody) return null;
194
- // Extract typed function signatures from the .d.ts module body
195
- const signatures = new Map();
196
- const sigRegex = /export function (\w+)\(([^)]*)\)\s*:\s*([^\n;]+)/g;
197
- for (const m of dtsBody.matchAll(sigRegex)) {
198
- signatures.set(m[1], { params: m[2].trim(), returnType: m[3].trim() });
199
- }
200
- if (signatures.size === 0) return null;
201
- // Replace untyped signatures in the normalized JS with typed ones from .d.ts
202
- return jsContent.replace(/export function (\w+)\s*\(([^)]*)\)/g, (match, name) => {
203
- const sig = signatures.get(name);
204
- if (!sig) return match;
205
- return `export function ${name}(${sig.params}): ${sig.returnType}`;
206
- });
236
+ catch {
237
+ return null;
238
+ }
239
+ if (!dtsBody)
240
+ return null;
241
+ // Extract typed function signatures from the .d.ts module body
242
+ const signatures = new Map();
243
+ const sigRegex = /export function (\w+)\(([^)]*)\)\s*:\s*([^\n;]+)/g;
244
+ for (const m of dtsBody.matchAll(sigRegex)) {
245
+ signatures.set(m[1], { params: m[2].trim(), returnType: m[3].trim() });
246
+ }
247
+ if (signatures.size === 0)
248
+ return null;
249
+ // Replace untyped signatures in the normalized JS with typed ones from .d.ts
250
+ return jsContent.replace(/export function (\w+)\s*\(([^)]*)\)/g, (match, name) => {
251
+ const sig = signatures.get(name);
252
+ if (!sig)
253
+ return match;
254
+ return `export function ${name}(${sig.params}): ${sig.returnType}`;
255
+ });
207
256
  }
208
257
  function resolveNpmPackage(fromDir, packageName) {
209
- // Walk up the directory tree looking for node_modules/<packageName>
210
- let searchDir = fromDir;
211
- while (true) {
212
- const pkgDir = path.join(searchDir, 'node_modules', packageName);
213
- const pkgJsonPath = path.join(pkgDir, 'package.json');
214
- try {
215
- const pkgJson = JSON.parse(fs.readFileSync(pkgJsonPath, 'utf-8'));
216
- // Build candidate entry points: TypeScript preferred, JavaScript as fallback
217
- const tsCandidates = [];
218
- const jsCandidates = [];
219
- for (const field of ['source', 'main', 'module']) {
220
- const entry = pkgJson[field];
221
- if (!entry) continue;
222
- if (entry.endsWith('.ts')) tsCandidates.push(entry);
223
- else if (entry.endsWith('.js')) {
224
- tsCandidates.push(entry.replace(/\.js$/, '.ts'));
225
- jsCandidates.push(entry);
226
- }
227
- }
228
- tsCandidates.push('index.ts', 'src/index.ts');
229
- jsCandidates.push('index.js', 'src/index.js');
230
- const candidates = [...tsCandidates, ...jsCandidates];
231
- for (const candidate of candidates) {
232
- const fullPath = path.resolve(pkgDir, candidate);
258
+ // Walk up the directory tree looking for node_modules/<packageName>
259
+ let searchDir = fromDir;
260
+ while (true) {
261
+ const pkgDir = path.join(searchDir, 'node_modules', packageName);
262
+ const pkgJsonPath = path.join(pkgDir, 'package.json');
233
263
  try {
234
- return { content: fs.readFileSync(fullPath, 'utf-8'), dir: path.dirname(fullPath) };
235
- } catch {
236
- /* try next candidate */
264
+ const pkgJson = JSON.parse(fs.readFileSync(pkgJsonPath, 'utf-8'));
265
+ // Build candidate entry points: TypeScript preferred, JavaScript as fallback
266
+ const tsCandidates = [];
267
+ const jsCandidates = [];
268
+ for (const field of ['source', 'main', 'module']) {
269
+ const entry = pkgJson[field];
270
+ if (!entry)
271
+ continue;
272
+ if (entry.endsWith('.ts'))
273
+ tsCandidates.push(entry);
274
+ else if (entry.endsWith('.js')) {
275
+ tsCandidates.push(entry.replace(/\.js$/, '.ts'));
276
+ jsCandidates.push(entry);
277
+ }
278
+ }
279
+ tsCandidates.push('index.ts', 'src/index.ts');
280
+ jsCandidates.push('index.js', 'src/index.js');
281
+ const candidates = [...tsCandidates, ...jsCandidates];
282
+ for (const candidate of candidates) {
283
+ const fullPath = path.resolve(pkgDir, candidate);
284
+ try {
285
+ return { content: fs.readFileSync(fullPath, 'utf-8'), dir: path.dirname(fullPath) };
286
+ }
287
+ catch {
288
+ /* try next candidate */
289
+ }
290
+ }
291
+ }
292
+ catch {
293
+ /* no package.json here, keep walking up */
237
294
  }
238
- }
239
- } catch {
240
- /* no package.json here, keep walking up */
295
+ const parent = path.dirname(searchDir);
296
+ if (parent === searchDir)
297
+ break; // filesystem root
298
+ searchDir = parent;
241
299
  }
242
- const parent = path.dirname(searchDir);
243
- if (parent === searchDir) break; // filesystem root
244
- searchDir = parent;
245
- }
246
- return null;
300
+ return null;
247
301
  }
248
302
  function getPackageJson(projectName) {
249
- const exeName = platform() === 'win32' ? `${projectName}.exe` : projectName;
250
- const pckg = {
251
- name: projectName,
252
- version: '1.0.0',
253
- scripts: {
254
- execute: 'npx typenative --source main.ts --script',
255
- build: `npx typenative --source main.ts --output bin/${exeName}`
256
- },
257
- devDependencies: {
258
- typenative: '^0.1.3'
259
- }
260
- };
261
- return JSON.stringify(pckg, null, 2);
303
+ const exeName = platform() === 'win32' ? `${projectName}.exe` : projectName;
304
+ const pckg = {
305
+ name: projectName,
306
+ version: '1.0.0',
307
+ scripts: {
308
+ execute: 'npx typenative --source main.ts --script',
309
+ build: `npx typenative --source main.ts --output bin/${exeName}`
310
+ },
311
+ devDependencies: {
312
+ typenative: `^${VERSION}`
313
+ }
314
+ };
315
+ return JSON.stringify(pckg, null, 2);
262
316
  }
263
317
  function getTsConfig() {
264
- const tsConfig = {
265
- include: ['**/*.ts'],
266
- compilerOptions: {
267
- target: 'es2020',
268
- lib: [],
269
- types: ['typenative', 'typenative/go', 'typenative/npm'],
270
- rootDir: '.',
271
- strict: true,
272
- noImplicitAny: true,
273
- allowSyntheticDefaultImports: true
274
- }
275
- };
276
- return JSON.stringify(tsConfig, null, 2);
318
+ const tsConfig = {
319
+ include: ['**/*.ts'],
320
+ compilerOptions: {
321
+ target: 'es2020',
322
+ lib: [],
323
+ types: ['typenative', 'typenative/go', 'typenative/npm'],
324
+ rootDir: '.',
325
+ strict: true,
326
+ noImplicitAny: true,
327
+ allowSyntheticDefaultImports: true
328
+ }
329
+ };
330
+ return JSON.stringify(tsConfig, null, 2);
277
331
  }
278
332
  function getGitIgnore() {
279
- return `# TypeNative generated files
333
+ return `# TypeNative generated files
280
334
  node_modules/
281
335
  dist/
282
336
  bin/
283
337
  `;
284
338
  }
285
339
  function getReadMe(projectName) {
286
- const exeName = platform() === 'win32' ? `${projectName}.exe` : projectName;
287
- return `# ${projectName}
340
+ const exeName = platform() === 'win32' ? `${projectName}.exe` : projectName;
341
+ return `# ${projectName}
288
342
 
289
343
  This project was created using TypeNative, a tool to transpile TypeScript code to native Go code.
290
344
 
package/bin/main.js CHANGED
@@ -1,6 +1,7 @@
1
1
  // Self-hosting entry point: this file is what TypeNative compiles to produce
2
2
  // the native compiler binary. Interactive prompts use the transpilable
3
3
  // prompt module (sync stdin) instead of inquirer.
4
+ import path from 'node:path';
4
5
  import { run, createProject } from './index.js';
5
6
  import { ask, askMultiline, confirm } from './prompt.js';
6
7
  import { parseAstJsonNative } from './parse-native.js';
@@ -27,5 +28,7 @@ import { parseAstJsonNative } from './parse-native.js';
27
28
  if (!newCommand && scriptMode && !source) {
28
29
  tsCode = askMultiline('Write your typescript code here:');
29
30
  }
30
- run({ source, output, scriptMode, tsCode, parse: parseAstJsonNative });
31
+ // The native compiler lives in native/, next to the package's govendor/
32
+ const vendorDir = path.join(path.dirname(path.resolve(process.argv[0])), '..', 'govendor');
33
+ run({ source, output, scriptMode, tsCode, parse: parseAstJsonNative, vendorDir });
31
34
  })();