typenative 0.1.2 → 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 (504) 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 +30 -21
  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 +98 -6
  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/parse-native.js +3 -2
  54. package/bin/parse-node.js +18 -2
  55. package/bin/transpiler.js +3529 -597
  56. package/bin/version.js +2 -0
  57. package/conformance.md +724 -258
  58. package/govendor/github.com/ncruces/go-sqlite3/LICENSE +21 -0
  59. package/govendor/github.com/ncruces/go-sqlite3/README.md +121 -0
  60. package/govendor/github.com/ncruces/go-sqlite3/backup.go +132 -0
  61. package/govendor/github.com/ncruces/go-sqlite3/blob.go +266 -0
  62. package/govendor/github.com/ncruces/go-sqlite3/config.go +397 -0
  63. package/govendor/github.com/ncruces/go-sqlite3/conn.go +540 -0
  64. package/govendor/github.com/ncruces/go-sqlite3/conn_127.go +93 -0
  65. package/govendor/github.com/ncruces/go-sqlite3/const.go +436 -0
  66. package/govendor/github.com/ncruces/go-sqlite3/context.go +222 -0
  67. package/govendor/github.com/ncruces/go-sqlite3/error.go +182 -0
  68. package/govendor/github.com/ncruces/go-sqlite3/ext.go +153 -0
  69. package/govendor/github.com/ncruces/go-sqlite3/func.go +309 -0
  70. package/govendor/github.com/ncruces/go-sqlite3/go.mod +3 -0
  71. package/govendor/github.com/ncruces/go-sqlite3/internal/dotlk/dotlk.go +29 -0
  72. package/govendor/github.com/ncruces/go-sqlite3/internal/dotlk/dotlk_other.go +13 -0
  73. package/govendor/github.com/ncruces/go-sqlite3/internal/dotlk/dotlk_unix.go +57 -0
  74. package/govendor/github.com/ncruces/go-sqlite3/internal/errutil/error.go +41 -0
  75. package/govendor/github.com/ncruces/go-sqlite3/internal/sqlite3_wrap/alloc.go +128 -0
  76. package/govendor/github.com/ncruces/go-sqlite3/internal/sqlite3_wrap/const.go +122 -0
  77. package/govendor/github.com/ncruces/go-sqlite3/internal/sqlite3_wrap/error.go +77 -0
  78. package/govendor/github.com/ncruces/go-sqlite3/internal/sqlite3_wrap/mem.go +116 -0
  79. package/govendor/github.com/ncruces/go-sqlite3/internal/sqlite3_wrap/mem_other.go +34 -0
  80. package/govendor/github.com/ncruces/go-sqlite3/internal/sqlite3_wrap/mem_unix.go +87 -0
  81. package/govendor/github.com/ncruces/go-sqlite3/internal/sqlite3_wrap/mem_windows.go +149 -0
  82. package/govendor/github.com/ncruces/go-sqlite3/internal/sqlite3_wrap/mmap_unix.go +80 -0
  83. package/govendor/github.com/ncruces/go-sqlite3/internal/sqlite3_wrap/mmap_windows.go +129 -0
  84. package/govendor/github.com/ncruces/go-sqlite3/internal/sqlite3_wrap/sys_windows.go +60 -0
  85. package/govendor/github.com/ncruces/go-sqlite3/internal/sqlite3_wrap/wrap.go +82 -0
  86. package/govendor/github.com/ncruces/go-sqlite3/internal/sqlite3_wrap/wrap_sys.go +113 -0
  87. package/govendor/github.com/ncruces/go-sqlite3/internal/sqlite3_wrap/wrap_vfs.go +181 -0
  88. package/govendor/github.com/ncruces/go-sqlite3/internal/testenv/env.go +55 -0
  89. package/govendor/github.com/ncruces/go-sqlite3/internal/util/json.go +54 -0
  90. package/govendor/github.com/ncruces/go-sqlite3/internal/util/json_v2.go +54 -0
  91. package/govendor/github.com/ncruces/go-sqlite3/internal/util/math.go +29 -0
  92. package/govendor/github.com/ncruces/go-sqlite3/internal/util/page.go +5 -0
  93. package/govendor/github.com/ncruces/go-sqlite3/internal/util/parse.go +142 -0
  94. package/govendor/github.com/ncruces/go-sqlite3/internal/util/pointer.go +3 -0
  95. package/govendor/github.com/ncruces/go-sqlite3/internal/util/reflect.go +10 -0
  96. package/govendor/github.com/ncruces/go-sqlite3/json.go +100 -0
  97. package/govendor/github.com/ncruces/go-sqlite3/json_v2.go +116 -0
  98. package/govendor/github.com/ncruces/go-sqlite3/pointer.go +13 -0
  99. package/govendor/github.com/ncruces/go-sqlite3/quote.go +140 -0
  100. package/govendor/github.com/ncruces/go-sqlite3/stmt.go +692 -0
  101. package/govendor/github.com/ncruces/go-sqlite3/time.go +360 -0
  102. package/govendor/github.com/ncruces/go-sqlite3/txn.go +374 -0
  103. package/govendor/github.com/ncruces/go-sqlite3/value.go +212 -0
  104. package/govendor/github.com/ncruces/go-sqlite3/vfs/README.md +133 -0
  105. package/govendor/github.com/ncruces/go-sqlite3/vfs/api.go +239 -0
  106. package/govendor/github.com/ncruces/go-sqlite3/vfs/cksm.go +143 -0
  107. package/govendor/github.com/ncruces/go-sqlite3/vfs/const.go +256 -0
  108. package/govendor/github.com/ncruces/go-sqlite3/vfs/file.go +260 -0
  109. package/govendor/github.com/ncruces/go-sqlite3/vfs/filename.go +187 -0
  110. package/govendor/github.com/ncruces/go-sqlite3/vfs/lock.go +128 -0
  111. package/govendor/github.com/ncruces/go-sqlite3/vfs/lock_other.go +23 -0
  112. package/govendor/github.com/ncruces/go-sqlite3/vfs/map.go +63 -0
  113. package/govendor/github.com/ncruces/go-sqlite3/vfs/map_other.go +13 -0
  114. package/govendor/github.com/ncruces/go-sqlite3/vfs/os_bsd.go +110 -0
  115. package/govendor/github.com/ncruces/go-sqlite3/vfs/os_darwin.go +131 -0
  116. package/govendor/github.com/ncruces/go-sqlite3/vfs/os_dotlk.go +140 -0
  117. package/govendor/github.com/ncruces/go-sqlite3/vfs/os_f2fs_linux.go +56 -0
  118. package/govendor/github.com/ncruces/go-sqlite3/vfs/os_linux.go +117 -0
  119. package/govendor/github.com/ncruces/go-sqlite3/vfs/os_ofd.go +59 -0
  120. package/govendor/github.com/ncruces/go-sqlite3/vfs/os_std.go +50 -0
  121. package/govendor/github.com/ncruces/go-sqlite3/vfs/os_std_alloc.go +19 -0
  122. package/govendor/github.com/ncruces/go-sqlite3/vfs/os_std_atomic.go +9 -0
  123. package/govendor/github.com/ncruces/go-sqlite3/vfs/os_std_rw.go +13 -0
  124. package/govendor/github.com/ncruces/go-sqlite3/vfs/os_std_sync.go +9 -0
  125. package/govendor/github.com/ncruces/go-sqlite3/vfs/os_std_temp.go +16 -0
  126. package/govendor/github.com/ncruces/go-sqlite3/vfs/os_unix.go +108 -0
  127. package/govendor/github.com/ncruces/go-sqlite3/vfs/os_windows.go +180 -0
  128. package/govendor/github.com/ncruces/go-sqlite3/vfs/registry.go +48 -0
  129. package/govendor/github.com/ncruces/go-sqlite3/vfs/shm.go +26 -0
  130. package/govendor/github.com/ncruces/go-sqlite3/vfs/shm_bsd.go +258 -0
  131. package/govendor/github.com/ncruces/go-sqlite3/vfs/shm_copy.go +90 -0
  132. package/govendor/github.com/ncruces/go-sqlite3/vfs/shm_dotlk.go +168 -0
  133. package/govendor/github.com/ncruces/go-sqlite3/vfs/shm_memlk.go +52 -0
  134. package/govendor/github.com/ncruces/go-sqlite3/vfs/shm_ofd.go +185 -0
  135. package/govendor/github.com/ncruces/go-sqlite3/vfs/shm_other.go +21 -0
  136. package/govendor/github.com/ncruces/go-sqlite3/vfs/shm_windows.go +124 -0
  137. package/govendor/github.com/ncruces/go-sqlite3/vfs/vfs.go +455 -0
  138. package/govendor/github.com/ncruces/go-sqlite3/vtab.go +677 -0
  139. package/govendor/github.com/ncruces/go-sqlite3/wrap.go +48 -0
  140. package/govendor/github.com/ncruces/go-sqlite3-wasm/v6/LICENSE +18 -0
  141. package/govendor/github.com/ncruces/go-sqlite3-wasm/v6/README.md +11 -0
  142. package/govendor/github.com/ncruces/go-sqlite3-wasm/v6/go.mod +3 -0
  143. package/govendor/github.com/ncruces/go-sqlite3-wasm/v6/libc.go +215 -0
  144. package/govendor/github.com/ncruces/go-sqlite3-wasm/v6/sqlite3.dat +0 -0
  145. package/govendor/github.com/ncruces/go-sqlite3-wasm/v6/sqlite3.go +157903 -0
  146. package/govendor/github.com/ncruces/go-sqlite3-wasm/v6/tools.sh +38 -0
  147. package/govendor/github.com/ncruces/julianday/LICENSE +21 -0
  148. package/govendor/github.com/ncruces/julianday/README.md +9 -0
  149. package/govendor/github.com/ncruces/julianday/go.mod +3 -0
  150. package/govendor/github.com/ncruces/julianday/julianday.go +124 -0
  151. package/govendor/golang.org/x/sys/LICENSE +27 -0
  152. package/govendor/golang.org/x/sys/PATENTS +22 -0
  153. package/govendor/golang.org/x/sys/go.mod +3 -0
  154. package/govendor/golang.org/x/sys/unix/README.md +184 -0
  155. package/govendor/golang.org/x/sys/unix/affinity_linux.go +189 -0
  156. package/govendor/golang.org/x/sys/unix/aliases.go +13 -0
  157. package/govendor/golang.org/x/sys/unix/asm_aix_ppc64.s +17 -0
  158. package/govendor/golang.org/x/sys/unix/asm_bsd_386.s +27 -0
  159. package/govendor/golang.org/x/sys/unix/asm_bsd_amd64.s +27 -0
  160. package/govendor/golang.org/x/sys/unix/asm_bsd_arm.s +27 -0
  161. package/govendor/golang.org/x/sys/unix/asm_bsd_arm64.s +27 -0
  162. package/govendor/golang.org/x/sys/unix/asm_bsd_ppc64.s +29 -0
  163. package/govendor/golang.org/x/sys/unix/asm_bsd_riscv64.s +27 -0
  164. package/govendor/golang.org/x/sys/unix/asm_linux_386.s +65 -0
  165. package/govendor/golang.org/x/sys/unix/asm_linux_amd64.s +57 -0
  166. package/govendor/golang.org/x/sys/unix/asm_linux_arm.s +56 -0
  167. package/govendor/golang.org/x/sys/unix/asm_linux_arm64.s +50 -0
  168. package/govendor/golang.org/x/sys/unix/asm_linux_loong64.s +51 -0
  169. package/govendor/golang.org/x/sys/unix/asm_linux_mips64x.s +54 -0
  170. package/govendor/golang.org/x/sys/unix/asm_linux_mipsx.s +52 -0
  171. package/govendor/golang.org/x/sys/unix/asm_linux_ppc64x.s +42 -0
  172. package/govendor/golang.org/x/sys/unix/asm_linux_riscv64.s +47 -0
  173. package/govendor/golang.org/x/sys/unix/asm_linux_s390x.s +54 -0
  174. package/govendor/golang.org/x/sys/unix/asm_openbsd_mips64.s +29 -0
  175. package/govendor/golang.org/x/sys/unix/asm_solaris_amd64.s +17 -0
  176. package/govendor/golang.org/x/sys/unix/asm_zos_s390x.s +382 -0
  177. package/govendor/golang.org/x/sys/unix/auxv.go +36 -0
  178. package/govendor/golang.org/x/sys/unix/auxv_unsupported.go +13 -0
  179. package/govendor/golang.org/x/sys/unix/bluetooth_linux.go +36 -0
  180. package/govendor/golang.org/x/sys/unix/bpxsvc_zos.go +657 -0
  181. package/govendor/golang.org/x/sys/unix/bpxsvc_zos.s +192 -0
  182. package/govendor/golang.org/x/sys/unix/cap_freebsd.go +195 -0
  183. package/govendor/golang.org/x/sys/unix/constants.go +13 -0
  184. package/govendor/golang.org/x/sys/unix/dev_aix_ppc.go +26 -0
  185. package/govendor/golang.org/x/sys/unix/dev_aix_ppc64.go +28 -0
  186. package/govendor/golang.org/x/sys/unix/dev_darwin.go +24 -0
  187. package/govendor/golang.org/x/sys/unix/dev_dragonfly.go +30 -0
  188. package/govendor/golang.org/x/sys/unix/dev_freebsd.go +30 -0
  189. package/govendor/golang.org/x/sys/unix/dev_linux.go +42 -0
  190. package/govendor/golang.org/x/sys/unix/dev_netbsd.go +29 -0
  191. package/govendor/golang.org/x/sys/unix/dev_openbsd.go +29 -0
  192. package/govendor/golang.org/x/sys/unix/dev_zos.go +28 -0
  193. package/govendor/golang.org/x/sys/unix/dirent.go +102 -0
  194. package/govendor/golang.org/x/sys/unix/endian_big.go +9 -0
  195. package/govendor/golang.org/x/sys/unix/endian_little.go +9 -0
  196. package/govendor/golang.org/x/sys/unix/env_unix.go +31 -0
  197. package/govendor/golang.org/x/sys/unix/fcntl.go +36 -0
  198. package/govendor/golang.org/x/sys/unix/fcntl_darwin.go +24 -0
  199. package/govendor/golang.org/x/sys/unix/fcntl_linux_32bit.go +13 -0
  200. package/govendor/golang.org/x/sys/unix/fdset.go +27 -0
  201. package/govendor/golang.org/x/sys/unix/gccgo.go +59 -0
  202. package/govendor/golang.org/x/sys/unix/gccgo_c.c +44 -0
  203. package/govendor/golang.org/x/sys/unix/gccgo_linux_amd64.go +20 -0
  204. package/govendor/golang.org/x/sys/unix/ifreq_linux.go +145 -0
  205. package/govendor/golang.org/x/sys/unix/ioctl_linux.go +341 -0
  206. package/govendor/golang.org/x/sys/unix/ioctl_signed.go +74 -0
  207. package/govendor/golang.org/x/sys/unix/ioctl_unsigned.go +74 -0
  208. package/govendor/golang.org/x/sys/unix/ioctl_zos.go +71 -0
  209. package/govendor/golang.org/x/sys/unix/mkall.sh +250 -0
  210. package/govendor/golang.org/x/sys/unix/mkerrors.sh +807 -0
  211. package/govendor/golang.org/x/sys/unix/mmap_nomremap.go +13 -0
  212. package/govendor/golang.org/x/sys/unix/mremap.go +57 -0
  213. package/govendor/golang.org/x/sys/unix/pagesize_unix.go +15 -0
  214. package/govendor/golang.org/x/sys/unix/pledge_openbsd.go +111 -0
  215. package/govendor/golang.org/x/sys/unix/ptrace_darwin.go +11 -0
  216. package/govendor/golang.org/x/sys/unix/ptrace_ios.go +11 -0
  217. package/govendor/golang.org/x/sys/unix/race.go +30 -0
  218. package/govendor/golang.org/x/sys/unix/race0.go +25 -0
  219. package/govendor/golang.org/x/sys/unix/readdirent_getdents.go +12 -0
  220. package/govendor/golang.org/x/sys/unix/readdirent_getdirentries.go +19 -0
  221. package/govendor/golang.org/x/sys/unix/readv_unix.go +103 -0
  222. package/govendor/golang.org/x/sys/unix/sockcmsg_dragonfly.go +16 -0
  223. package/govendor/golang.org/x/sys/unix/sockcmsg_linux.go +85 -0
  224. package/govendor/golang.org/x/sys/unix/sockcmsg_unix.go +106 -0
  225. package/govendor/golang.org/x/sys/unix/sockcmsg_unix_other.go +46 -0
  226. package/govendor/golang.org/x/sys/unix/sockcmsg_zos.go +58 -0
  227. package/govendor/golang.org/x/sys/unix/symaddr_zos_s390x.s +75 -0
  228. package/govendor/golang.org/x/sys/unix/syscall.go +86 -0
  229. package/govendor/golang.org/x/sys/unix/syscall_aix.go +582 -0
  230. package/govendor/golang.org/x/sys/unix/syscall_aix_ppc.go +52 -0
  231. package/govendor/golang.org/x/sys/unix/syscall_aix_ppc64.go +83 -0
  232. package/govendor/golang.org/x/sys/unix/syscall_bsd.go +609 -0
  233. package/govendor/golang.org/x/sys/unix/syscall_darwin.go +711 -0
  234. package/govendor/golang.org/x/sys/unix/syscall_darwin_amd64.go +50 -0
  235. package/govendor/golang.org/x/sys/unix/syscall_darwin_arm64.go +50 -0
  236. package/govendor/golang.org/x/sys/unix/syscall_darwin_libSystem.go +26 -0
  237. package/govendor/golang.org/x/sys/unix/syscall_dragonfly.go +359 -0
  238. package/govendor/golang.org/x/sys/unix/syscall_dragonfly_amd64.go +56 -0
  239. package/govendor/golang.org/x/sys/unix/syscall_freebsd.go +455 -0
  240. package/govendor/golang.org/x/sys/unix/syscall_freebsd_386.go +64 -0
  241. package/govendor/golang.org/x/sys/unix/syscall_freebsd_amd64.go +64 -0
  242. package/govendor/golang.org/x/sys/unix/syscall_freebsd_arm.go +60 -0
  243. package/govendor/golang.org/x/sys/unix/syscall_freebsd_arm64.go +60 -0
  244. package/govendor/golang.org/x/sys/unix/syscall_freebsd_riscv64.go +60 -0
  245. package/govendor/golang.org/x/sys/unix/syscall_hurd.go +30 -0
  246. package/govendor/golang.org/x/sys/unix/syscall_hurd_386.go +28 -0
  247. package/govendor/golang.org/x/sys/unix/syscall_illumos.go +78 -0
  248. package/govendor/golang.org/x/sys/unix/syscall_linux.go +2574 -0
  249. package/govendor/golang.org/x/sys/unix/syscall_linux_386.go +313 -0
  250. package/govendor/golang.org/x/sys/unix/syscall_linux_alarm.go +12 -0
  251. package/govendor/golang.org/x/sys/unix/syscall_linux_amd64.go +144 -0
  252. package/govendor/golang.org/x/sys/unix/syscall_linux_amd64_gc.go +12 -0
  253. package/govendor/golang.org/x/sys/unix/syscall_linux_arm.go +218 -0
  254. package/govendor/golang.org/x/sys/unix/syscall_linux_arm64.go +188 -0
  255. package/govendor/golang.org/x/sys/unix/syscall_linux_gc.go +14 -0
  256. package/govendor/golang.org/x/sys/unix/syscall_linux_gc_386.go +16 -0
  257. package/govendor/golang.org/x/sys/unix/syscall_linux_gc_arm.go +13 -0
  258. package/govendor/golang.org/x/sys/unix/syscall_linux_gccgo_386.go +30 -0
  259. package/govendor/golang.org/x/sys/unix/syscall_linux_gccgo_arm.go +20 -0
  260. package/govendor/golang.org/x/sys/unix/syscall_linux_loong64.go +220 -0
  261. package/govendor/golang.org/x/sys/unix/syscall_linux_mips64x.go +187 -0
  262. package/govendor/golang.org/x/sys/unix/syscall_linux_mipsx.go +173 -0
  263. package/govendor/golang.org/x/sys/unix/syscall_linux_ppc.go +203 -0
  264. package/govendor/golang.org/x/sys/unix/syscall_linux_ppc64x.go +114 -0
  265. package/govendor/golang.org/x/sys/unix/syscall_linux_riscv64.go +193 -0
  266. package/govendor/golang.org/x/sys/unix/syscall_linux_s390x.go +295 -0
  267. package/govendor/golang.org/x/sys/unix/syscall_linux_sparc64.go +111 -0
  268. package/govendor/golang.org/x/sys/unix/syscall_netbsd.go +388 -0
  269. package/govendor/golang.org/x/sys/unix/syscall_netbsd_386.go +37 -0
  270. package/govendor/golang.org/x/sys/unix/syscall_netbsd_amd64.go +37 -0
  271. package/govendor/golang.org/x/sys/unix/syscall_netbsd_arm.go +37 -0
  272. package/govendor/golang.org/x/sys/unix/syscall_netbsd_arm64.go +37 -0
  273. package/govendor/golang.org/x/sys/unix/syscall_openbsd.go +346 -0
  274. package/govendor/golang.org/x/sys/unix/syscall_openbsd_386.go +41 -0
  275. package/govendor/golang.org/x/sys/unix/syscall_openbsd_amd64.go +41 -0
  276. package/govendor/golang.org/x/sys/unix/syscall_openbsd_arm.go +41 -0
  277. package/govendor/golang.org/x/sys/unix/syscall_openbsd_arm64.go +41 -0
  278. package/govendor/golang.org/x/sys/unix/syscall_openbsd_libc.go +26 -0
  279. package/govendor/golang.org/x/sys/unix/syscall_openbsd_mips64.go +39 -0
  280. package/govendor/golang.org/x/sys/unix/syscall_openbsd_ppc64.go +41 -0
  281. package/govendor/golang.org/x/sys/unix/syscall_openbsd_riscv64.go +41 -0
  282. package/govendor/golang.org/x/sys/unix/syscall_solaris.go +1183 -0
  283. package/govendor/golang.org/x/sys/unix/syscall_solaris_amd64.go +27 -0
  284. package/govendor/golang.org/x/sys/unix/syscall_unix.go +619 -0
  285. package/govendor/golang.org/x/sys/unix/syscall_unix_gc.go +14 -0
  286. package/govendor/golang.org/x/sys/unix/syscall_unix_gc_ppc64x.go +22 -0
  287. package/govendor/golang.org/x/sys/unix/syscall_zos_s390x.go +3213 -0
  288. package/govendor/golang.org/x/sys/unix/sysvshm_linux.go +20 -0
  289. package/govendor/golang.org/x/sys/unix/sysvshm_unix.go +51 -0
  290. package/govendor/golang.org/x/sys/unix/sysvshm_unix_other.go +13 -0
  291. package/govendor/golang.org/x/sys/unix/timestruct.go +76 -0
  292. package/govendor/golang.org/x/sys/unix/unveil_openbsd.go +51 -0
  293. package/govendor/golang.org/x/sys/unix/vgetrandom_linux.go +13 -0
  294. package/govendor/golang.org/x/sys/unix/vgetrandom_unsupported.go +11 -0
  295. package/govendor/golang.org/x/sys/unix/xattr_bsd.go +280 -0
  296. package/govendor/golang.org/x/sys/unix/zerrors_aix_ppc.go +1384 -0
  297. package/govendor/golang.org/x/sys/unix/zerrors_aix_ppc64.go +1385 -0
  298. package/govendor/golang.org/x/sys/unix/zerrors_darwin_amd64.go +1922 -0
  299. package/govendor/golang.org/x/sys/unix/zerrors_darwin_arm64.go +1922 -0
  300. package/govendor/golang.org/x/sys/unix/zerrors_dragonfly_amd64.go +1737 -0
  301. package/govendor/golang.org/x/sys/unix/zerrors_freebsd_386.go +2042 -0
  302. package/govendor/golang.org/x/sys/unix/zerrors_freebsd_amd64.go +2039 -0
  303. package/govendor/golang.org/x/sys/unix/zerrors_freebsd_arm.go +2033 -0
  304. package/govendor/golang.org/x/sys/unix/zerrors_freebsd_arm64.go +2033 -0
  305. package/govendor/golang.org/x/sys/unix/zerrors_freebsd_riscv64.go +2147 -0
  306. package/govendor/golang.org/x/sys/unix/zerrors_linux.go +4209 -0
  307. package/govendor/golang.org/x/sys/unix/zerrors_linux_386.go +882 -0
  308. package/govendor/golang.org/x/sys/unix/zerrors_linux_amd64.go +882 -0
  309. package/govendor/golang.org/x/sys/unix/zerrors_linux_arm.go +887 -0
  310. package/govendor/golang.org/x/sys/unix/zerrors_linux_arm64.go +884 -0
  311. package/govendor/golang.org/x/sys/unix/zerrors_linux_loong64.go +874 -0
  312. package/govendor/golang.org/x/sys/unix/zerrors_linux_mips.go +888 -0
  313. package/govendor/golang.org/x/sys/unix/zerrors_linux_mips64.go +888 -0
  314. package/govendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go +888 -0
  315. package/govendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go +888 -0
  316. package/govendor/golang.org/x/sys/unix/zerrors_linux_ppc.go +940 -0
  317. package/govendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go +944 -0
  318. package/govendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go +944 -0
  319. package/govendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go +884 -0
  320. package/govendor/golang.org/x/sys/unix/zerrors_linux_s390x.go +943 -0
  321. package/govendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go +992 -0
  322. package/govendor/golang.org/x/sys/unix/zerrors_netbsd_386.go +1779 -0
  323. package/govendor/golang.org/x/sys/unix/zerrors_netbsd_amd64.go +1769 -0
  324. package/govendor/golang.org/x/sys/unix/zerrors_netbsd_arm.go +1758 -0
  325. package/govendor/golang.org/x/sys/unix/zerrors_netbsd_arm64.go +1769 -0
  326. package/govendor/golang.org/x/sys/unix/zerrors_openbsd_386.go +1905 -0
  327. package/govendor/golang.org/x/sys/unix/zerrors_openbsd_amd64.go +1905 -0
  328. package/govendor/golang.org/x/sys/unix/zerrors_openbsd_arm.go +1905 -0
  329. package/govendor/golang.org/x/sys/unix/zerrors_openbsd_arm64.go +1905 -0
  330. package/govendor/golang.org/x/sys/unix/zerrors_openbsd_mips64.go +1905 -0
  331. package/govendor/golang.org/x/sys/unix/zerrors_openbsd_ppc64.go +1904 -0
  332. package/govendor/golang.org/x/sys/unix/zerrors_openbsd_riscv64.go +1903 -0
  333. package/govendor/golang.org/x/sys/unix/zerrors_solaris_amd64.go +1556 -0
  334. package/govendor/golang.org/x/sys/unix/zerrors_zos_s390x.go +990 -0
  335. package/govendor/golang.org/x/sys/unix/zptrace_armnn_linux.go +40 -0
  336. package/govendor/golang.org/x/sys/unix/zptrace_linux_arm64.go +17 -0
  337. package/govendor/golang.org/x/sys/unix/zptrace_mipsnn_linux.go +49 -0
  338. package/govendor/golang.org/x/sys/unix/zptrace_mipsnnle_linux.go +49 -0
  339. package/govendor/golang.org/x/sys/unix/zptrace_x86_linux.go +79 -0
  340. package/govendor/golang.org/x/sys/unix/zsymaddr_zos_s390x.s +364 -0
  341. package/govendor/golang.org/x/sys/unix/zsyscall_aix_ppc.go +1461 -0
  342. package/govendor/golang.org/x/sys/unix/zsyscall_aix_ppc64.go +1420 -0
  343. package/govendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gc.go +1188 -0
  344. package/govendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gccgo.go +1069 -0
  345. package/govendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go +2728 -0
  346. package/govendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.s +799 -0
  347. package/govendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go +2728 -0
  348. package/govendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.s +799 -0
  349. package/govendor/golang.org/x/sys/unix/zsyscall_dragonfly_amd64.go +1666 -0
  350. package/govendor/golang.org/x/sys/unix/zsyscall_freebsd_386.go +1886 -0
  351. package/govendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go +1886 -0
  352. package/govendor/golang.org/x/sys/unix/zsyscall_freebsd_arm.go +1886 -0
  353. package/govendor/golang.org/x/sys/unix/zsyscall_freebsd_arm64.go +1886 -0
  354. package/govendor/golang.org/x/sys/unix/zsyscall_freebsd_riscv64.go +1886 -0
  355. package/govendor/golang.org/x/sys/unix/zsyscall_illumos_amd64.go +101 -0
  356. package/govendor/golang.org/x/sys/unix/zsyscall_linux.go +2267 -0
  357. package/govendor/golang.org/x/sys/unix/zsyscall_linux_386.go +469 -0
  358. package/govendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go +636 -0
  359. package/govendor/golang.org/x/sys/unix/zsyscall_linux_arm.go +584 -0
  360. package/govendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go +535 -0
  361. package/govendor/golang.org/x/sys/unix/zsyscall_linux_loong64.go +469 -0
  362. package/govendor/golang.org/x/sys/unix/zsyscall_linux_mips.go +636 -0
  363. package/govendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go +630 -0
  364. package/govendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go +619 -0
  365. package/govendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go +636 -0
  366. package/govendor/golang.org/x/sys/unix/zsyscall_linux_ppc.go +641 -0
  367. package/govendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go +687 -0
  368. package/govendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go +687 -0
  369. package/govendor/golang.org/x/sys/unix/zsyscall_linux_riscv64.go +531 -0
  370. package/govendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go +478 -0
  371. package/govendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go +631 -0
  372. package/govendor/golang.org/x/sys/unix/zsyscall_netbsd_386.go +1848 -0
  373. package/govendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go +1848 -0
  374. package/govendor/golang.org/x/sys/unix/zsyscall_netbsd_arm.go +1848 -0
  375. package/govendor/golang.org/x/sys/unix/zsyscall_netbsd_arm64.go +1848 -0
  376. package/govendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go +2407 -0
  377. package/govendor/golang.org/x/sys/unix/zsyscall_openbsd_386.s +719 -0
  378. package/govendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go +2407 -0
  379. package/govendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.s +719 -0
  380. package/govendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go +2407 -0
  381. package/govendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.s +719 -0
  382. package/govendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.go +2407 -0
  383. package/govendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.s +719 -0
  384. package/govendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.go +2407 -0
  385. package/govendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.s +719 -0
  386. package/govendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.go +2407 -0
  387. package/govendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.s +862 -0
  388. package/govendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.go +2407 -0
  389. package/govendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.s +719 -0
  390. package/govendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go +2217 -0
  391. package/govendor/golang.org/x/sys/unix/zsyscall_zos_s390x.go +3458 -0
  392. package/govendor/golang.org/x/sys/unix/zsysctl_openbsd_386.go +280 -0
  393. package/govendor/golang.org/x/sys/unix/zsysctl_openbsd_amd64.go +280 -0
  394. package/govendor/golang.org/x/sys/unix/zsysctl_openbsd_arm.go +280 -0
  395. package/govendor/golang.org/x/sys/unix/zsysctl_openbsd_arm64.go +280 -0
  396. package/govendor/golang.org/x/sys/unix/zsysctl_openbsd_mips64.go +280 -0
  397. package/govendor/golang.org/x/sys/unix/zsysctl_openbsd_ppc64.go +280 -0
  398. package/govendor/golang.org/x/sys/unix/zsysctl_openbsd_riscv64.go +281 -0
  399. package/govendor/golang.org/x/sys/unix/zsysnum_darwin_amd64.go +439 -0
  400. package/govendor/golang.org/x/sys/unix/zsysnum_darwin_arm64.go +437 -0
  401. package/govendor/golang.org/x/sys/unix/zsysnum_dragonfly_amd64.go +316 -0
  402. package/govendor/golang.org/x/sys/unix/zsysnum_freebsd_386.go +393 -0
  403. package/govendor/golang.org/x/sys/unix/zsysnum_freebsd_amd64.go +393 -0
  404. package/govendor/golang.org/x/sys/unix/zsysnum_freebsd_arm.go +393 -0
  405. package/govendor/golang.org/x/sys/unix/zsysnum_freebsd_arm64.go +393 -0
  406. package/govendor/golang.org/x/sys/unix/zsysnum_freebsd_riscv64.go +393 -0
  407. package/govendor/golang.org/x/sys/unix/zsysnum_linux_386.go +470 -0
  408. package/govendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go +394 -0
  409. package/govendor/golang.org/x/sys/unix/zsysnum_linux_arm.go +434 -0
  410. package/govendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go +337 -0
  411. package/govendor/golang.org/x/sys/unix/zsysnum_linux_loong64.go +334 -0
  412. package/govendor/golang.org/x/sys/unix/zsysnum_linux_mips.go +454 -0
  413. package/govendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go +384 -0
  414. package/govendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go +384 -0
  415. package/govendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go +454 -0
  416. package/govendor/golang.org/x/sys/unix/zsysnum_linux_ppc.go +461 -0
  417. package/govendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go +433 -0
  418. package/govendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go +433 -0
  419. package/govendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go +338 -0
  420. package/govendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go +399 -0
  421. package/govendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go +413 -0
  422. package/govendor/golang.org/x/sys/unix/zsysnum_netbsd_386.go +274 -0
  423. package/govendor/golang.org/x/sys/unix/zsysnum_netbsd_amd64.go +274 -0
  424. package/govendor/golang.org/x/sys/unix/zsysnum_netbsd_arm.go +274 -0
  425. package/govendor/golang.org/x/sys/unix/zsysnum_netbsd_arm64.go +274 -0
  426. package/govendor/golang.org/x/sys/unix/zsysnum_openbsd_386.go +219 -0
  427. package/govendor/golang.org/x/sys/unix/zsysnum_openbsd_amd64.go +219 -0
  428. package/govendor/golang.org/x/sys/unix/zsysnum_openbsd_arm.go +219 -0
  429. package/govendor/golang.org/x/sys/unix/zsysnum_openbsd_arm64.go +218 -0
  430. package/govendor/golang.org/x/sys/unix/zsysnum_openbsd_mips64.go +221 -0
  431. package/govendor/golang.org/x/sys/unix/zsysnum_openbsd_ppc64.go +217 -0
  432. package/govendor/golang.org/x/sys/unix/zsysnum_openbsd_riscv64.go +218 -0
  433. package/govendor/golang.org/x/sys/unix/zsysnum_zos_s390x.go +2852 -0
  434. package/govendor/golang.org/x/sys/unix/ztypes_aix_ppc.go +353 -0
  435. package/govendor/golang.org/x/sys/unix/ztypes_aix_ppc64.go +357 -0
  436. package/govendor/golang.org/x/sys/unix/ztypes_darwin_amd64.go +878 -0
  437. package/govendor/golang.org/x/sys/unix/ztypes_darwin_arm64.go +878 -0
  438. package/govendor/golang.org/x/sys/unix/ztypes_dragonfly_amd64.go +473 -0
  439. package/govendor/golang.org/x/sys/unix/ztypes_freebsd_386.go +651 -0
  440. package/govendor/golang.org/x/sys/unix/ztypes_freebsd_amd64.go +656 -0
  441. package/govendor/golang.org/x/sys/unix/ztypes_freebsd_arm.go +642 -0
  442. package/govendor/golang.org/x/sys/unix/ztypes_freebsd_arm64.go +636 -0
  443. package/govendor/golang.org/x/sys/unix/ztypes_freebsd_riscv64.go +638 -0
  444. package/govendor/golang.org/x/sys/unix/ztypes_linux.go +6547 -0
  445. package/govendor/golang.org/x/sys/unix/ztypes_linux_386.go +747 -0
  446. package/govendor/golang.org/x/sys/unix/ztypes_linux_amd64.go +761 -0
  447. package/govendor/golang.org/x/sys/unix/ztypes_linux_arm.go +741 -0
  448. package/govendor/golang.org/x/sys/unix/ztypes_linux_arm64.go +740 -0
  449. package/govendor/golang.org/x/sys/unix/ztypes_linux_loong64.go +741 -0
  450. package/govendor/golang.org/x/sys/unix/ztypes_linux_mips.go +746 -0
  451. package/govendor/golang.org/x/sys/unix/ztypes_linux_mips64.go +743 -0
  452. package/govendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go +743 -0
  453. package/govendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go +746 -0
  454. package/govendor/golang.org/x/sys/unix/ztypes_linux_ppc.go +754 -0
  455. package/govendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go +749 -0
  456. package/govendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go +749 -0
  457. package/govendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go +828 -0
  458. package/govendor/golang.org/x/sys/unix/ztypes_linux_s390x.go +763 -0
  459. package/govendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go +744 -0
  460. package/govendor/golang.org/x/sys/unix/ztypes_netbsd_386.go +585 -0
  461. package/govendor/golang.org/x/sys/unix/ztypes_netbsd_amd64.go +593 -0
  462. package/govendor/golang.org/x/sys/unix/ztypes_netbsd_arm.go +590 -0
  463. package/govendor/golang.org/x/sys/unix/ztypes_netbsd_arm64.go +593 -0
  464. package/govendor/golang.org/x/sys/unix/ztypes_openbsd_386.go +568 -0
  465. package/govendor/golang.org/x/sys/unix/ztypes_openbsd_amd64.go +568 -0
  466. package/govendor/golang.org/x/sys/unix/ztypes_openbsd_arm.go +575 -0
  467. package/govendor/golang.org/x/sys/unix/ztypes_openbsd_arm64.go +568 -0
  468. package/govendor/golang.org/x/sys/unix/ztypes_openbsd_mips64.go +568 -0
  469. package/govendor/golang.org/x/sys/unix/ztypes_openbsd_ppc64.go +570 -0
  470. package/govendor/golang.org/x/sys/unix/ztypes_openbsd_riscv64.go +570 -0
  471. package/govendor/golang.org/x/sys/unix/ztypes_solaris_amd64.go +516 -0
  472. package/govendor/golang.org/x/sys/unix/ztypes_zos_s390x.go +552 -0
  473. package/govendor/golang.org/x/sys/windows/aliases.go +13 -0
  474. package/govendor/golang.org/x/sys/windows/dll_windows.go +380 -0
  475. package/govendor/golang.org/x/sys/windows/env_windows.go +57 -0
  476. package/govendor/golang.org/x/sys/windows/eventlog.go +20 -0
  477. package/govendor/golang.org/x/sys/windows/exec_windows.go +248 -0
  478. package/govendor/golang.org/x/sys/windows/memory_windows.go +48 -0
  479. package/govendor/golang.org/x/sys/windows/mkerrors.bash +70 -0
  480. package/govendor/golang.org/x/sys/windows/mkknownfolderids.bash +27 -0
  481. package/govendor/golang.org/x/sys/windows/mksyscall.go +9 -0
  482. package/govendor/golang.org/x/sys/windows/race.go +30 -0
  483. package/govendor/golang.org/x/sys/windows/race0.go +25 -0
  484. package/govendor/golang.org/x/sys/windows/security_windows.go +1537 -0
  485. package/govendor/golang.org/x/sys/windows/service.go +257 -0
  486. package/govendor/golang.org/x/sys/windows/setupapi_windows.go +1425 -0
  487. package/govendor/golang.org/x/sys/windows/str.go +22 -0
  488. package/govendor/golang.org/x/sys/windows/syscall.go +104 -0
  489. package/govendor/golang.org/x/sys/windows/syscall_windows.go +1952 -0
  490. package/govendor/golang.org/x/sys/windows/types_windows.go +4058 -0
  491. package/govendor/golang.org/x/sys/windows/types_windows_386.go +35 -0
  492. package/govendor/golang.org/x/sys/windows/types_windows_amd64.go +34 -0
  493. package/govendor/golang.org/x/sys/windows/types_windows_arm.go +35 -0
  494. package/govendor/golang.org/x/sys/windows/types_windows_arm64.go +34 -0
  495. package/govendor/golang.org/x/sys/windows/zerrors_windows.go +9468 -0
  496. package/govendor/golang.org/x/sys/windows/zknownfolderids_windows.go +149 -0
  497. package/govendor/golang.org/x/sys/windows/zsyscall_windows.go +4828 -0
  498. package/govendor/manifest.txt +7 -0
  499. package/package.json +6 -1
  500. package/tsparser/main.go +37 -3
  501. package/tsparser/tsparser.exe +2 -2
  502. package/types/typenative-go.d.ts +15159 -5
  503. package/types/typenative-npm.d.ts +2637 -30
  504. package/types/typenative.d.ts +1092 -56
@@ -0,0 +1,57 @@
1
+ //go:build unix
2
+
3
+ package dotlk
4
+
5
+ import (
6
+ "errors"
7
+ "io/fs"
8
+ "os"
9
+ "strconv"
10
+
11
+ "golang.org/x/sys/unix"
12
+ )
13
+
14
+ // TryLock returns nil if it acquired the lock,
15
+ // fs.ErrExist if another process has the lock.
16
+ func TryLock(name string) error {
17
+ for retry := true; retry; retry = false {
18
+ f, err := os.OpenFile(name, os.O_RDWR|os.O_CREATE|os.O_EXCL, 0666)
19
+ if err == nil {
20
+ f.WriteString(strconv.Itoa(os.Getpid()))
21
+ f.Close()
22
+ return nil
23
+ }
24
+ if !errors.Is(err, fs.ErrExist) {
25
+ return err
26
+ }
27
+ if !removeStale(name) {
28
+ break
29
+ }
30
+ }
31
+ return fs.ErrExist
32
+ }
33
+
34
+ func removeStale(name string) bool {
35
+ buf, err := os.ReadFile(name)
36
+ if err != nil {
37
+ return errors.Is(err, fs.ErrNotExist)
38
+ }
39
+
40
+ pid, err := strconv.Atoi(string(buf))
41
+ if pid <= 0 || err != nil {
42
+ return false
43
+ }
44
+
45
+ if pid == os.Getpid() {
46
+ err = os.Remove(name)
47
+ return err == nil || errors.Is(err, fs.ErrNotExist)
48
+ }
49
+
50
+ err = unix.Kill(pid, 0)
51
+ if errors.Is(err, unix.ESRCH) {
52
+ err = os.Remove(name)
53
+ return err == nil || errors.Is(err, fs.ErrNotExist)
54
+ }
55
+
56
+ return false
57
+ }
@@ -0,0 +1,41 @@
1
+ package errutil
2
+
3
+ import (
4
+ "runtime"
5
+ "strconv"
6
+ )
7
+
8
+ type ErrorString string
9
+
10
+ func (e ErrorString) Error() string { return string(e) }
11
+
12
+ const (
13
+ NilErr = ErrorString("sqlite3: invalid memory address or null pointer dereference")
14
+ OOMErr = ErrorString("sqlite3: out of memory")
15
+ NoNulErr = ErrorString("sqlite3: missing NUL terminator")
16
+ TimeErr = ErrorString("sqlite3: invalid time value")
17
+ WhenceErr = ErrorString("sqlite3: invalid whence")
18
+ OffsetErr = ErrorString("sqlite3: invalid offset")
19
+ TailErr = ErrorString("sqlite3: multiple statements")
20
+ IsolationErr = ErrorString("sqlite3: unsupported isolation level")
21
+ ValueErr = ErrorString("sqlite3: unsupported value")
22
+ NoVFSErr = ErrorString("sqlite3: no such vfs: ")
23
+ )
24
+
25
+ func AssertErr() ErrorString {
26
+ msg := "sqlite3: assertion failed"
27
+ if _, file, line, ok := runtime.Caller(1); ok {
28
+ msg += " (" + file + ":" + strconv.Itoa(line) + ")"
29
+ }
30
+ return ErrorString(msg)
31
+ }
32
+
33
+ type ErrorJoiner []error
34
+
35
+ func (j *ErrorJoiner) Join(errs ...error) {
36
+ for _, err := range errs {
37
+ if err != nil {
38
+ *j = append(*j, err)
39
+ }
40
+ }
41
+ }
@@ -0,0 +1,128 @@
1
+ package sqlite3_wrap
2
+
3
+ import "github.com/ncruces/go-sqlite3/internal/errutil"
4
+
5
+ func (w *Wrapper) Free(ptr Ptr_t) {
6
+ if ptr == 0 {
7
+ return
8
+ }
9
+ w.Xsqlite3_free(int32(ptr))
10
+ }
11
+
12
+ func (w *Wrapper) New(size int64) Ptr_t {
13
+ ptr := Ptr_t(w.Xsqlite3_malloc64(size))
14
+ if ptr == 0 && size != 0 {
15
+ panic(errutil.OOMErr)
16
+ }
17
+ return ptr
18
+ }
19
+
20
+ func (w *Wrapper) Realloc(ptr Ptr_t, size int64) Ptr_t {
21
+ ptr = Ptr_t(w.Xsqlite3_realloc64(int32(ptr), size))
22
+ if ptr == 0 && size != 0 {
23
+ panic(errutil.OOMErr)
24
+ }
25
+ return ptr
26
+ }
27
+
28
+ func (w *Wrapper) NewBytes(b []byte) Ptr_t {
29
+ if len(b) == 0 {
30
+ return 0
31
+ }
32
+ ptr := w.New(int64(len(b)))
33
+ w.WriteBytes(ptr, b)
34
+ return ptr
35
+ }
36
+
37
+ func (w *Wrapper) NewString(s string) Ptr_t {
38
+ ptr := w.New(int64(len(s)) + 1)
39
+ w.WriteString(ptr, s)
40
+ return ptr
41
+ }
42
+
43
+ func (w *Wrapper) StackMark() (reset func()) {
44
+ ptr := w.X__stack_pointer()
45
+ old := *ptr
46
+ return func() { *ptr = old }
47
+ }
48
+
49
+ func (w *Wrapper) StackAlloc(size int64) Ptr_t {
50
+ ptr := w.X__stack_pointer()
51
+ new := int64(*ptr) - size
52
+ if size < 0 || new <= 0 {
53
+ panic(errutil.OOMErr)
54
+ }
55
+ *ptr = int32(new)
56
+ return Ptr_t(new)
57
+ }
58
+
59
+ const arenaSize = 4096
60
+
61
+ func (w *Wrapper) NewArena() Arena {
62
+ return Arena{
63
+ sqlt: w,
64
+ base: w.New(arenaSize),
65
+ }
66
+ }
67
+
68
+ type Arena struct {
69
+ sqlt *Wrapper
70
+ ptrs []Ptr_t
71
+ base Ptr_t
72
+ next int32
73
+ }
74
+
75
+ func (a *Arena) Free() {
76
+ if a.sqlt == nil {
77
+ return
78
+ }
79
+ for _, ptr := range a.ptrs {
80
+ a.sqlt.Free(ptr)
81
+ }
82
+ a.sqlt.Free(a.base)
83
+ a.sqlt = nil
84
+ }
85
+
86
+ func (a *Arena) Mark() (reset func()) {
87
+ ptrs := len(a.ptrs)
88
+ next := a.next
89
+ return func() {
90
+ for _, ptr := range a.ptrs[ptrs:] {
91
+ a.sqlt.Free(ptr)
92
+ }
93
+ a.ptrs = a.ptrs[:ptrs]
94
+ a.next = next
95
+ }
96
+ }
97
+
98
+ func (a *Arena) New(size int64) Ptr_t {
99
+ // Align the next address, to 4 or 8 bytes.
100
+ if size&7 != 0 {
101
+ a.next = (a.next + 3) &^ 3
102
+ } else {
103
+ a.next = (a.next + 7) &^ 7
104
+ }
105
+ if size <= arenaSize-int64(a.next) {
106
+ ptr := a.base + Ptr_t(a.next)
107
+ a.next += int32(size)
108
+ return Ptr_t(ptr)
109
+ }
110
+ ptr := a.sqlt.New(size)
111
+ a.ptrs = append(a.ptrs, ptr)
112
+ return Ptr_t(ptr)
113
+ }
114
+
115
+ func (a *Arena) Bytes(b []byte) Ptr_t {
116
+ if len(b) == 0 {
117
+ return 0
118
+ }
119
+ ptr := a.New(int64(len(b)))
120
+ a.sqlt.WriteBytes(ptr, b)
121
+ return ptr
122
+ }
123
+
124
+ func (a *Arena) String(s string) Ptr_t {
125
+ ptr := a.New(int64(len(s)) + 1)
126
+ a.sqlt.WriteString(ptr, s)
127
+ return ptr
128
+ }
@@ -0,0 +1,122 @@
1
+ package sqlite3_wrap
2
+
3
+ // https://sqlite.org/rescode.html
4
+ const (
5
+ OK = 0 /* Successful result */
6
+
7
+ ERROR = 1 /* Generic error */
8
+ INTERNAL = 2 /* Internal logic error in SQLite */
9
+ PERM = 3 /* Access permission denied */
10
+ ABORT = 4 /* Callback routine requested an abort */
11
+ BUSY = 5 /* The database file is locked */
12
+ LOCKED = 6 /* A table in the database is locked */
13
+ NOMEM = 7 /* A malloc() failed */
14
+ READONLY = 8 /* Attempt to write a readonly database */
15
+ INTERRUPT = 9 /* Operation terminated by sqlite3_interrupt() */
16
+ IOERR = 10 /* Some kind of disk I/O error occurred */
17
+ CORRUPT = 11 /* The database disk image is malformed */
18
+ NOTFOUND = 12 /* Unknown opcode in sqlite3_file_control() */
19
+ FULL = 13 /* Insertion failed because database is full */
20
+ CANTOPEN = 14 /* Unable to open the database file */
21
+ PROTOCOL = 15 /* Database lock protocol error */
22
+ EMPTY = 16 /* Internal use only */
23
+ SCHEMA = 17 /* The database schema changed */
24
+ TOOBIG = 18 /* String or BLOB exceeds size limit */
25
+ CONSTRAINT = 19 /* Abort due to constraint violation */
26
+ MISMATCH = 20 /* Data type mismatch */
27
+ MISUSE = 21 /* Library used incorrectly */
28
+ NOLFS = 22 /* Uses OS features not supported on host */
29
+ AUTH = 23 /* Authorization denied */
30
+ FORMAT = 24 /* Not used */
31
+ RANGE = 25 /* 2nd parameter to sqlite3_bind out of range */
32
+ NOTADB = 26 /* File opened that is not a database file */
33
+ NOTICE = 27 /* Notifications from sqlite3_log() */
34
+ WARNING = 28 /* Warnings from sqlite3_log() */
35
+
36
+ ROW = 100 /* sqlite3_step() has another row ready */
37
+ DONE = 101 /* sqlite3_step() has finished executing */
38
+
39
+ ERROR_MISSING_COLLSEQ = ERROR | (1 << 8)
40
+ ERROR_RETRY = ERROR | (2 << 8)
41
+ ERROR_SNAPSHOT = ERROR | (3 << 8)
42
+ ERROR_RESERVESIZE = ERROR | (4 << 8)
43
+ ERROR_KEY = ERROR | (5 << 8)
44
+ ERROR_UNABLE = ERROR | (6 << 8)
45
+ IOERR_READ = IOERR | (1 << 8)
46
+ IOERR_SHORT_READ = IOERR | (2 << 8)
47
+ IOERR_WRITE = IOERR | (3 << 8)
48
+ IOERR_FSYNC = IOERR | (4 << 8)
49
+ IOERR_DIR_FSYNC = IOERR | (5 << 8)
50
+ IOERR_TRUNCATE = IOERR | (6 << 8)
51
+ IOERR_FSTAT = IOERR | (7 << 8)
52
+ IOERR_UNLOCK = IOERR | (8 << 8)
53
+ IOERR_RDLOCK = IOERR | (9 << 8)
54
+ IOERR_DELETE = IOERR | (10 << 8)
55
+ IOERR_BLOCKED = IOERR | (11 << 8)
56
+ IOERR_NOMEM = IOERR | (12 << 8)
57
+ IOERR_ACCESS = IOERR | (13 << 8)
58
+ IOERR_CHECKRESERVEDLOCK = IOERR | (14 << 8)
59
+ IOERR_LOCK = IOERR | (15 << 8)
60
+ IOERR_CLOSE = IOERR | (16 << 8)
61
+ IOERR_DIR_CLOSE = IOERR | (17 << 8)
62
+ IOERR_SHMOPEN = IOERR | (18 << 8)
63
+ IOERR_SHMSIZE = IOERR | (19 << 8)
64
+ IOERR_SHMLOCK = IOERR | (20 << 8)
65
+ IOERR_SHMMAP = IOERR | (21 << 8)
66
+ IOERR_SEEK = IOERR | (22 << 8)
67
+ IOERR_DELETE_NOENT = IOERR | (23 << 8)
68
+ IOERR_MMAP = IOERR | (24 << 8)
69
+ IOERR_GETTEMPPATH = IOERR | (25 << 8)
70
+ IOERR_CONVPATH = IOERR | (26 << 8)
71
+ IOERR_VNODE = IOERR | (27 << 8)
72
+ IOERR_AUTH = IOERR | (28 << 8)
73
+ IOERR_BEGIN_ATOMIC = IOERR | (29 << 8)
74
+ IOERR_COMMIT_ATOMIC = IOERR | (30 << 8)
75
+ IOERR_ROLLBACK_ATOMIC = IOERR | (31 << 8)
76
+ IOERR_DATA = IOERR | (32 << 8)
77
+ IOERR_CORRUPTFS = IOERR | (33 << 8)
78
+ IOERR_IN_PAGE = IOERR | (34 << 8)
79
+ IOERR_BADKEY = IOERR | (35 << 8)
80
+ IOERR_CODEC = IOERR | (36 << 8)
81
+ LOCKED_SHAREDCACHE = LOCKED | (1 << 8)
82
+ LOCKED_VTAB = LOCKED | (2 << 8)
83
+ BUSY_RECOVERY = BUSY | (1 << 8)
84
+ BUSY_SNAPSHOT = BUSY | (2 << 8)
85
+ BUSY_TIMEOUT = BUSY | (3 << 8)
86
+ CANTOPEN_NOTEMPDIR = CANTOPEN | (1 << 8)
87
+ CANTOPEN_ISDIR = CANTOPEN | (2 << 8)
88
+ CANTOPEN_FULLPATH = CANTOPEN | (3 << 8)
89
+ CANTOPEN_CONVPATH = CANTOPEN | (4 << 8)
90
+ CANTOPEN_DIRTYWAL = CANTOPEN | (5 << 8) /* Not Used */
91
+ CANTOPEN_SYMLINK = CANTOPEN | (6 << 8)
92
+ CORRUPT_VTAB = CORRUPT | (1 << 8)
93
+ CORRUPT_SEQUENCE = CORRUPT | (2 << 8)
94
+ CORRUPT_INDEX = CORRUPT | (3 << 8)
95
+ READONLY_RECOVERY = READONLY | (1 << 8)
96
+ READONLY_CANTLOCK = READONLY | (2 << 8)
97
+ READONLY_ROLLBACK = READONLY | (3 << 8)
98
+ READONLY_DBMOVED = READONLY | (4 << 8)
99
+ READONLY_CANTINIT = READONLY | (5 << 8)
100
+ READONLY_DIRECTORY = READONLY | (6 << 8)
101
+ ABORT_ROLLBACK = ABORT | (2 << 8)
102
+ CONSTRAINT_CHECK = CONSTRAINT | (1 << 8)
103
+ CONSTRAINT_COMMITHOOK = CONSTRAINT | (2 << 8)
104
+ CONSTRAINT_FOREIGNKEY = CONSTRAINT | (3 << 8)
105
+ CONSTRAINT_FUNCTION = CONSTRAINT | (4 << 8)
106
+ CONSTRAINT_NOTNULL = CONSTRAINT | (5 << 8)
107
+ CONSTRAINT_PRIMARYKEY = CONSTRAINT | (6 << 8)
108
+ CONSTRAINT_TRIGGER = CONSTRAINT | (7 << 8)
109
+ CONSTRAINT_UNIQUE = CONSTRAINT | (8 << 8)
110
+ CONSTRAINT_VTAB = CONSTRAINT | (9 << 8)
111
+ CONSTRAINT_ROWID = CONSTRAINT | (10 << 8)
112
+ CONSTRAINT_PINNED = CONSTRAINT | (11 << 8)
113
+ CONSTRAINT_DATATYPE = CONSTRAINT | (12 << 8)
114
+ NOTICE_RECOVER_WAL = NOTICE | (1 << 8)
115
+ NOTICE_RECOVER_ROLLBACK = NOTICE | (2 << 8)
116
+ NOTICE_RBU = NOTICE | (3 << 8)
117
+ WARNING_AUTOINDEX = WARNING | (1 << 8)
118
+ AUTH_USER = AUTH | (1 << 8)
119
+
120
+ OK_LOAD_PERMANENTLY = OK | (1 << 8)
121
+ OK_SYMLINK = OK | (2 << 8) /* internal use only */
122
+ )
@@ -0,0 +1,77 @@
1
+ package sqlite3_wrap
2
+
3
+ type errorCode interface {
4
+ ~uint8 | ~uint16 | ~uint32 | ~int32
5
+ }
6
+
7
+ func ErrorCodeString[T errorCode](rc T) string {
8
+ switch uint32(rc) {
9
+ case ABORT_ROLLBACK:
10
+ return "sqlite3: abort due to ROLLBACK"
11
+ case ROW:
12
+ return "sqlite3: another row available"
13
+ case DONE:
14
+ return "sqlite3: no more rows available"
15
+ }
16
+ switch uint8(rc) {
17
+ case OK:
18
+ return "sqlite3: not an error"
19
+ case ERROR:
20
+ return "sqlite3: SQL logic error"
21
+ case INTERNAL:
22
+ break
23
+ case PERM:
24
+ return "sqlite3: access permission denied"
25
+ case ABORT:
26
+ return "sqlite3: query aborted"
27
+ case BUSY:
28
+ return "sqlite3: database is locked"
29
+ case LOCKED:
30
+ return "sqlite3: database table is locked"
31
+ case NOMEM:
32
+ return "sqlite3: out of memory"
33
+ case READONLY:
34
+ return "sqlite3: attempt to write a readonly database"
35
+ case INTERRUPT:
36
+ return "sqlite3: interrupted"
37
+ case IOERR:
38
+ return "sqlite3: disk I/O error"
39
+ case CORRUPT:
40
+ return "sqlite3: database disk image is malformed"
41
+ case NOTFOUND:
42
+ return "sqlite3: unknown operation"
43
+ case FULL:
44
+ return "sqlite3: database or disk is full"
45
+ case CANTOPEN:
46
+ return "sqlite3: unable to open database file"
47
+ case PROTOCOL:
48
+ return "sqlite3: locking protocol"
49
+ case EMPTY:
50
+ break
51
+ case SCHEMA:
52
+ return "sqlite3: database schema has changed"
53
+ case TOOBIG:
54
+ return "sqlite3: string or blob too big"
55
+ case CONSTRAINT:
56
+ return "sqlite3: constraint failed"
57
+ case MISMATCH:
58
+ return "sqlite3: datatype mismatch"
59
+ case MISUSE:
60
+ return "sqlite3: bad parameter or other API misuse"
61
+ case NOLFS:
62
+ break
63
+ case AUTH:
64
+ return "sqlite3: authorization denied"
65
+ case FORMAT:
66
+ break
67
+ case RANGE:
68
+ return "sqlite3: column index out of range"
69
+ case NOTADB:
70
+ return "sqlite3: file is not a database"
71
+ case NOTICE:
72
+ return "sqlite3: notification message"
73
+ case WARNING:
74
+ return "sqlite3: warning message"
75
+ }
76
+ return "sqlite3: unknown error"
77
+ }
@@ -0,0 +1,116 @@
1
+ package sqlite3_wrap
2
+
3
+ import (
4
+ "bytes"
5
+ "encoding/binary"
6
+ "math"
7
+
8
+ "github.com/ncruces/go-sqlite3/internal/errutil"
9
+ )
10
+
11
+ const (
12
+ PtrLen = 4
13
+ IntLen = 4
14
+ )
15
+
16
+ type (
17
+ Ptr_t uint32
18
+ Res_t int32
19
+ )
20
+
21
+ func (mem *Memory) Bytes(ptr Ptr_t, size int64) []byte {
22
+ if ptr == 0 {
23
+ panic(errutil.NilErr)
24
+ }
25
+ return mem.Buf[ptr:][:size:size]
26
+ }
27
+
28
+ func (mem *Memory) Read(ptr Ptr_t) byte {
29
+ if ptr == 0 {
30
+ panic(errutil.NilErr)
31
+ }
32
+ return mem.Buf[ptr]
33
+ }
34
+
35
+ func (mem *Memory) Write(ptr Ptr_t, v byte) {
36
+ if ptr == 0 {
37
+ panic(errutil.NilErr)
38
+ }
39
+ mem.Buf[ptr] = v
40
+ }
41
+
42
+ func (mem *Memory) Read32(ptr Ptr_t) uint32 {
43
+ if ptr == 0 {
44
+ panic(errutil.NilErr)
45
+ }
46
+ return binary.LittleEndian.Uint32(mem.Buf[ptr:])
47
+ }
48
+
49
+ func (mem *Memory) Write32(ptr Ptr_t, v uint32) {
50
+ if ptr == 0 {
51
+ panic(errutil.NilErr)
52
+ }
53
+ binary.LittleEndian.PutUint32(mem.Buf[ptr:], v)
54
+ }
55
+
56
+ func (mem *Memory) Read64(ptr Ptr_t) uint64 {
57
+ if ptr == 0 {
58
+ panic(errutil.NilErr)
59
+ }
60
+ return binary.LittleEndian.Uint64(mem.Buf[ptr:])
61
+ }
62
+
63
+ func (mem *Memory) Write64(ptr Ptr_t, v uint64) {
64
+ if ptr == 0 {
65
+ panic(errutil.NilErr)
66
+ }
67
+ binary.LittleEndian.PutUint64(mem.Buf[ptr:], v)
68
+ }
69
+
70
+ func (mem *Memory) ReadFloat64(ptr Ptr_t) float64 {
71
+ return math.Float64frombits(mem.Read64(ptr))
72
+ }
73
+
74
+ func (mem *Memory) WriteFloat64(ptr Ptr_t, v float64) {
75
+ mem.Write64(ptr, math.Float64bits(v))
76
+ }
77
+
78
+ func (mem *Memory) ReadBool(ptr Ptr_t) bool {
79
+ return mem.Read32(ptr) != 0
80
+ }
81
+
82
+ func (mem *Memory) WriteBool(ptr Ptr_t, v bool) {
83
+ var i uint32
84
+ if v {
85
+ i = 1
86
+ }
87
+ mem.Write32(ptr, i)
88
+ }
89
+
90
+ func (mem *Memory) ReadString(ptr Ptr_t, maxlen int64) string {
91
+ if ptr == 0 {
92
+ panic(errutil.NilErr)
93
+ }
94
+ if maxlen <= 0 {
95
+ return ""
96
+ }
97
+ buf := mem.Buf[ptr:]
98
+ if int64(len(buf)-1) > maxlen {
99
+ buf = buf[:maxlen+1]
100
+ }
101
+ if before, _, ok := bytes.Cut(buf, []byte{0}); ok {
102
+ return string(before)
103
+ }
104
+ panic(errutil.NoNulErr)
105
+ }
106
+
107
+ func (mem *Memory) WriteBytes(ptr Ptr_t, b []byte) {
108
+ buf := mem.Bytes(ptr, int64(len(b)))
109
+ copy(buf, b)
110
+ }
111
+
112
+ func (mem *Memory) WriteString(ptr Ptr_t, s string) {
113
+ buf := mem.Bytes(ptr, int64(len(s))+1)
114
+ buf[len(s)] = 0
115
+ copy(buf, s)
116
+ }
@@ -0,0 +1,34 @@
1
+ //go:build !unix && !windows
2
+
3
+ package sqlite3_wrap
4
+
5
+ import "math"
6
+
7
+ type Memory struct {
8
+ Buf []byte
9
+ Max int64
10
+ }
11
+
12
+ func (m *Memory) Slice() *[]byte {
13
+ return &m.Buf
14
+ }
15
+
16
+ func (m *Memory) Grow(delta, max int64) int64 {
17
+ len := int64(len(m.Buf))
18
+ old := len >> 16
19
+ if delta == 0 {
20
+ return old
21
+ }
22
+ new := old + delta
23
+ max = min(max, m.Max, int64(math.MaxInt)>>16)
24
+ if new > max || new < old {
25
+ return -1
26
+ }
27
+ m.Buf = append(m.Buf, make([]byte, new<<16-len)...)
28
+ return old
29
+ }
30
+
31
+ func (m *Memory) Close() error {
32
+ m.Buf = nil
33
+ return nil
34
+ }
@@ -0,0 +1,87 @@
1
+ //go:build unix
2
+
3
+ package sqlite3_wrap
4
+
5
+ import (
6
+ "math"
7
+
8
+ "golang.org/x/sys/unix"
9
+ )
10
+
11
+ type Memory struct {
12
+ Buf []byte
13
+ Max int64
14
+ regions []*MappedRegion
15
+ committed int
16
+ }
17
+
18
+ func (m *Memory) Slice() *[]byte {
19
+ return &m.Buf
20
+ }
21
+
22
+ func (m *Memory) Grow(delta, max int64) int64 {
23
+ if m.Buf == nil {
24
+ m.allocate(uint64(m.Max) << 16)
25
+ }
26
+
27
+ len := int64(len(m.Buf))
28
+ old := len >> 16
29
+ if delta == 0 {
30
+ return old
31
+ }
32
+ new := old + delta
33
+ max = min(max, m.Max, int64(math.MaxInt)>>16)
34
+ if new > max || new < old {
35
+ return -1
36
+ }
37
+ m.commit(uint64(new) << 16)
38
+ return old
39
+ }
40
+
41
+ func (m *Memory) allocate(max uint64) {
42
+ // Round up to the page size.
43
+ rnd := uint64(unix.Getpagesize() - 1)
44
+ res := (max + rnd) &^ rnd
45
+
46
+ if res > math.MaxInt {
47
+ // This ensures int(res) overflows to a negative value,
48
+ // and unix.Mmap returns EINVAL.
49
+ res = math.MaxUint64
50
+ }
51
+
52
+ // Reserve res bytes of address space, to ensure we won't need to move it.
53
+ // A protected, private, anonymous mapping should not commit memory.
54
+ b, err := unix.Mmap(-1, 0, int(res), unix.PROT_NONE, unix.MAP_PRIVATE|unix.MAP_ANON)
55
+ if err != nil {
56
+ panic(err)
57
+ }
58
+ m.Buf = b[:0]
59
+ }
60
+
61
+ func (m *Memory) commit(size uint64) {
62
+ com := uint64(m.committed)
63
+ res := uint64(cap(m.Buf))
64
+ if com < size && size <= res {
65
+ // Grow geometrically, round up to the page size.
66
+ rnd := uint64(unix.Getpagesize() - 1)
67
+ new := com + com>>3
68
+ new = min(max(size, new), res)
69
+ new = (new + rnd) &^ rnd
70
+
71
+ // Commit additional memory up to new bytes.
72
+ err := unix.Mprotect(m.Buf[m.committed:new], unix.PROT_READ|unix.PROT_WRITE)
73
+ if err != nil {
74
+ panic(err)
75
+ }
76
+ m.committed = int(new)
77
+ }
78
+ m.Buf = m.Buf[:size]
79
+ }
80
+
81
+ func (m *Memory) Close() error {
82
+ err := unix.Munmap(m.Buf[:cap(m.Buf)])
83
+ m.Buf = nil
84
+ m.regions = nil
85
+ m.committed = 0
86
+ return err
87
+ }