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