typenative 0.1.3 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (505) hide show
  1. package/.gitattributes +1 -0
  2. package/.github/workflows/ci.yml +39 -2
  3. package/.github/workflows/npm-publish-github-packages.yml +7 -2
  4. package/CHANGELOG.md +293 -0
  5. package/CONTRIBUTION.md +8 -6
  6. package/README.md +15 -11
  7. package/bin/cli.js +7 -1
  8. package/bin/go/bridge.js +919 -0
  9. package/bin/go/convert.js +238 -0
  10. package/bin/go/metadata.js +211 -0
  11. package/bin/go/overrides.js +68 -0
  12. package/bin/go/stdlib.generated.js +175 -0
  13. package/bin/index.js +337 -239
  14. package/bin/main.js +9 -2
  15. package/bin/node/assert.js +344 -0
  16. package/bin/node/async_hooks.js +273 -0
  17. package/bin/node/buffer.js +765 -0
  18. package/bin/node/child_process.js +600 -0
  19. package/bin/node/cluster.js +1002 -0
  20. package/bin/node/console.js +121 -0
  21. package/bin/node/core.js +111 -0
  22. package/bin/node/crypto.js +414 -0
  23. package/bin/node/crypto_keys.js +2685 -0
  24. package/bin/node/dgram.js +388 -0
  25. package/bin/node/diagnostics_channel.js +534 -0
  26. package/bin/node/dns.js +635 -0
  27. package/bin/node/events.js +743 -0
  28. package/bin/node/fetch.js +737 -0
  29. package/bin/node/fs.js +998 -0
  30. package/bin/node/http.js +1500 -0
  31. package/bin/node/http2.js +688 -0
  32. package/bin/node/net.js +1143 -0
  33. package/bin/node/os.js +257 -0
  34. package/bin/node/path.js +758 -0
  35. package/bin/node/process.js +316 -0
  36. package/bin/node/punycode.js +195 -0
  37. package/bin/node/querystring.js +143 -0
  38. package/bin/node/readline.js +299 -0
  39. package/bin/node/registry.js +161 -0
  40. package/bin/node/sqlite.js +1142 -0
  41. package/bin/node/stream.js +1221 -0
  42. package/bin/node/stream_web.js +2259 -0
  43. package/bin/node/string_decoder.js +101 -0
  44. package/bin/node/system_extra.js +714 -0
  45. package/bin/node/test.js +1068 -0
  46. package/bin/node/timers.js +263 -0
  47. package/bin/node/tls.js +719 -0
  48. package/bin/node/url.js +861 -0
  49. package/bin/node/util.js +1311 -0
  50. package/bin/node/util_extra.js +599 -0
  51. package/bin/node/worker_threads.js +745 -0
  52. package/bin/node/zlib.js +263 -0
  53. package/bin/parse-native.js +10 -0
  54. package/bin/parse-node.js +10 -0
  55. package/bin/transpiler.js +2824 -588
  56. package/bin/typecheck-node.js +78 -0
  57. package/bin/version.js +2 -0
  58. package/conformance.md +708 -241
  59. package/govendor/github.com/ncruces/go-sqlite3/LICENSE +21 -0
  60. package/govendor/github.com/ncruces/go-sqlite3/README.md +121 -0
  61. package/govendor/github.com/ncruces/go-sqlite3/backup.go +132 -0
  62. package/govendor/github.com/ncruces/go-sqlite3/blob.go +266 -0
  63. package/govendor/github.com/ncruces/go-sqlite3/config.go +397 -0
  64. package/govendor/github.com/ncruces/go-sqlite3/conn.go +540 -0
  65. package/govendor/github.com/ncruces/go-sqlite3/conn_127.go +93 -0
  66. package/govendor/github.com/ncruces/go-sqlite3/const.go +436 -0
  67. package/govendor/github.com/ncruces/go-sqlite3/context.go +222 -0
  68. package/govendor/github.com/ncruces/go-sqlite3/error.go +182 -0
  69. package/govendor/github.com/ncruces/go-sqlite3/ext.go +153 -0
  70. package/govendor/github.com/ncruces/go-sqlite3/func.go +309 -0
  71. package/govendor/github.com/ncruces/go-sqlite3/go.mod +3 -0
  72. package/govendor/github.com/ncruces/go-sqlite3/internal/dotlk/dotlk.go +29 -0
  73. package/govendor/github.com/ncruces/go-sqlite3/internal/dotlk/dotlk_other.go +13 -0
  74. package/govendor/github.com/ncruces/go-sqlite3/internal/dotlk/dotlk_unix.go +57 -0
  75. package/govendor/github.com/ncruces/go-sqlite3/internal/errutil/error.go +41 -0
  76. package/govendor/github.com/ncruces/go-sqlite3/internal/sqlite3_wrap/alloc.go +128 -0
  77. package/govendor/github.com/ncruces/go-sqlite3/internal/sqlite3_wrap/const.go +122 -0
  78. package/govendor/github.com/ncruces/go-sqlite3/internal/sqlite3_wrap/error.go +77 -0
  79. package/govendor/github.com/ncruces/go-sqlite3/internal/sqlite3_wrap/mem.go +116 -0
  80. package/govendor/github.com/ncruces/go-sqlite3/internal/sqlite3_wrap/mem_other.go +34 -0
  81. package/govendor/github.com/ncruces/go-sqlite3/internal/sqlite3_wrap/mem_unix.go +87 -0
  82. package/govendor/github.com/ncruces/go-sqlite3/internal/sqlite3_wrap/mem_windows.go +149 -0
  83. package/govendor/github.com/ncruces/go-sqlite3/internal/sqlite3_wrap/mmap_unix.go +80 -0
  84. package/govendor/github.com/ncruces/go-sqlite3/internal/sqlite3_wrap/mmap_windows.go +129 -0
  85. package/govendor/github.com/ncruces/go-sqlite3/internal/sqlite3_wrap/sys_windows.go +60 -0
  86. package/govendor/github.com/ncruces/go-sqlite3/internal/sqlite3_wrap/wrap.go +82 -0
  87. package/govendor/github.com/ncruces/go-sqlite3/internal/sqlite3_wrap/wrap_sys.go +113 -0
  88. package/govendor/github.com/ncruces/go-sqlite3/internal/sqlite3_wrap/wrap_vfs.go +181 -0
  89. package/govendor/github.com/ncruces/go-sqlite3/internal/testenv/env.go +55 -0
  90. package/govendor/github.com/ncruces/go-sqlite3/internal/util/json.go +54 -0
  91. package/govendor/github.com/ncruces/go-sqlite3/internal/util/json_v2.go +54 -0
  92. package/govendor/github.com/ncruces/go-sqlite3/internal/util/math.go +29 -0
  93. package/govendor/github.com/ncruces/go-sqlite3/internal/util/page.go +5 -0
  94. package/govendor/github.com/ncruces/go-sqlite3/internal/util/parse.go +142 -0
  95. package/govendor/github.com/ncruces/go-sqlite3/internal/util/pointer.go +3 -0
  96. package/govendor/github.com/ncruces/go-sqlite3/internal/util/reflect.go +10 -0
  97. package/govendor/github.com/ncruces/go-sqlite3/json.go +100 -0
  98. package/govendor/github.com/ncruces/go-sqlite3/json_v2.go +116 -0
  99. package/govendor/github.com/ncruces/go-sqlite3/pointer.go +13 -0
  100. package/govendor/github.com/ncruces/go-sqlite3/quote.go +140 -0
  101. package/govendor/github.com/ncruces/go-sqlite3/stmt.go +692 -0
  102. package/govendor/github.com/ncruces/go-sqlite3/time.go +360 -0
  103. package/govendor/github.com/ncruces/go-sqlite3/txn.go +374 -0
  104. package/govendor/github.com/ncruces/go-sqlite3/value.go +212 -0
  105. package/govendor/github.com/ncruces/go-sqlite3/vfs/README.md +133 -0
  106. package/govendor/github.com/ncruces/go-sqlite3/vfs/api.go +239 -0
  107. package/govendor/github.com/ncruces/go-sqlite3/vfs/cksm.go +143 -0
  108. package/govendor/github.com/ncruces/go-sqlite3/vfs/const.go +256 -0
  109. package/govendor/github.com/ncruces/go-sqlite3/vfs/file.go +260 -0
  110. package/govendor/github.com/ncruces/go-sqlite3/vfs/filename.go +187 -0
  111. package/govendor/github.com/ncruces/go-sqlite3/vfs/lock.go +128 -0
  112. package/govendor/github.com/ncruces/go-sqlite3/vfs/lock_other.go +23 -0
  113. package/govendor/github.com/ncruces/go-sqlite3/vfs/map.go +63 -0
  114. package/govendor/github.com/ncruces/go-sqlite3/vfs/map_other.go +13 -0
  115. package/govendor/github.com/ncruces/go-sqlite3/vfs/os_bsd.go +110 -0
  116. package/govendor/github.com/ncruces/go-sqlite3/vfs/os_darwin.go +131 -0
  117. package/govendor/github.com/ncruces/go-sqlite3/vfs/os_dotlk.go +140 -0
  118. package/govendor/github.com/ncruces/go-sqlite3/vfs/os_f2fs_linux.go +56 -0
  119. package/govendor/github.com/ncruces/go-sqlite3/vfs/os_linux.go +117 -0
  120. package/govendor/github.com/ncruces/go-sqlite3/vfs/os_ofd.go +59 -0
  121. package/govendor/github.com/ncruces/go-sqlite3/vfs/os_std.go +50 -0
  122. package/govendor/github.com/ncruces/go-sqlite3/vfs/os_std_alloc.go +19 -0
  123. package/govendor/github.com/ncruces/go-sqlite3/vfs/os_std_atomic.go +9 -0
  124. package/govendor/github.com/ncruces/go-sqlite3/vfs/os_std_rw.go +13 -0
  125. package/govendor/github.com/ncruces/go-sqlite3/vfs/os_std_sync.go +9 -0
  126. package/govendor/github.com/ncruces/go-sqlite3/vfs/os_std_temp.go +16 -0
  127. package/govendor/github.com/ncruces/go-sqlite3/vfs/os_unix.go +108 -0
  128. package/govendor/github.com/ncruces/go-sqlite3/vfs/os_windows.go +180 -0
  129. package/govendor/github.com/ncruces/go-sqlite3/vfs/registry.go +48 -0
  130. package/govendor/github.com/ncruces/go-sqlite3/vfs/shm.go +26 -0
  131. package/govendor/github.com/ncruces/go-sqlite3/vfs/shm_bsd.go +258 -0
  132. package/govendor/github.com/ncruces/go-sqlite3/vfs/shm_copy.go +90 -0
  133. package/govendor/github.com/ncruces/go-sqlite3/vfs/shm_dotlk.go +168 -0
  134. package/govendor/github.com/ncruces/go-sqlite3/vfs/shm_memlk.go +52 -0
  135. package/govendor/github.com/ncruces/go-sqlite3/vfs/shm_ofd.go +185 -0
  136. package/govendor/github.com/ncruces/go-sqlite3/vfs/shm_other.go +21 -0
  137. package/govendor/github.com/ncruces/go-sqlite3/vfs/shm_windows.go +124 -0
  138. package/govendor/github.com/ncruces/go-sqlite3/vfs/vfs.go +455 -0
  139. package/govendor/github.com/ncruces/go-sqlite3/vtab.go +677 -0
  140. package/govendor/github.com/ncruces/go-sqlite3/wrap.go +48 -0
  141. package/govendor/github.com/ncruces/go-sqlite3-wasm/v6/LICENSE +18 -0
  142. package/govendor/github.com/ncruces/go-sqlite3-wasm/v6/README.md +11 -0
  143. package/govendor/github.com/ncruces/go-sqlite3-wasm/v6/go.mod +3 -0
  144. package/govendor/github.com/ncruces/go-sqlite3-wasm/v6/libc.go +215 -0
  145. package/govendor/github.com/ncruces/go-sqlite3-wasm/v6/sqlite3.dat +0 -0
  146. package/govendor/github.com/ncruces/go-sqlite3-wasm/v6/sqlite3.go +157903 -0
  147. package/govendor/github.com/ncruces/go-sqlite3-wasm/v6/tools.sh +38 -0
  148. package/govendor/github.com/ncruces/julianday/LICENSE +21 -0
  149. package/govendor/github.com/ncruces/julianday/README.md +9 -0
  150. package/govendor/github.com/ncruces/julianday/go.mod +3 -0
  151. package/govendor/github.com/ncruces/julianday/julianday.go +124 -0
  152. package/govendor/golang.org/x/sys/LICENSE +27 -0
  153. package/govendor/golang.org/x/sys/PATENTS +22 -0
  154. package/govendor/golang.org/x/sys/go.mod +3 -0
  155. package/govendor/golang.org/x/sys/unix/README.md +184 -0
  156. package/govendor/golang.org/x/sys/unix/affinity_linux.go +189 -0
  157. package/govendor/golang.org/x/sys/unix/aliases.go +13 -0
  158. package/govendor/golang.org/x/sys/unix/asm_aix_ppc64.s +17 -0
  159. package/govendor/golang.org/x/sys/unix/asm_bsd_386.s +27 -0
  160. package/govendor/golang.org/x/sys/unix/asm_bsd_amd64.s +27 -0
  161. package/govendor/golang.org/x/sys/unix/asm_bsd_arm.s +27 -0
  162. package/govendor/golang.org/x/sys/unix/asm_bsd_arm64.s +27 -0
  163. package/govendor/golang.org/x/sys/unix/asm_bsd_ppc64.s +29 -0
  164. package/govendor/golang.org/x/sys/unix/asm_bsd_riscv64.s +27 -0
  165. package/govendor/golang.org/x/sys/unix/asm_linux_386.s +65 -0
  166. package/govendor/golang.org/x/sys/unix/asm_linux_amd64.s +57 -0
  167. package/govendor/golang.org/x/sys/unix/asm_linux_arm.s +56 -0
  168. package/govendor/golang.org/x/sys/unix/asm_linux_arm64.s +50 -0
  169. package/govendor/golang.org/x/sys/unix/asm_linux_loong64.s +51 -0
  170. package/govendor/golang.org/x/sys/unix/asm_linux_mips64x.s +54 -0
  171. package/govendor/golang.org/x/sys/unix/asm_linux_mipsx.s +52 -0
  172. package/govendor/golang.org/x/sys/unix/asm_linux_ppc64x.s +42 -0
  173. package/govendor/golang.org/x/sys/unix/asm_linux_riscv64.s +47 -0
  174. package/govendor/golang.org/x/sys/unix/asm_linux_s390x.s +54 -0
  175. package/govendor/golang.org/x/sys/unix/asm_openbsd_mips64.s +29 -0
  176. package/govendor/golang.org/x/sys/unix/asm_solaris_amd64.s +17 -0
  177. package/govendor/golang.org/x/sys/unix/asm_zos_s390x.s +382 -0
  178. package/govendor/golang.org/x/sys/unix/auxv.go +36 -0
  179. package/govendor/golang.org/x/sys/unix/auxv_unsupported.go +13 -0
  180. package/govendor/golang.org/x/sys/unix/bluetooth_linux.go +36 -0
  181. package/govendor/golang.org/x/sys/unix/bpxsvc_zos.go +657 -0
  182. package/govendor/golang.org/x/sys/unix/bpxsvc_zos.s +192 -0
  183. package/govendor/golang.org/x/sys/unix/cap_freebsd.go +195 -0
  184. package/govendor/golang.org/x/sys/unix/constants.go +13 -0
  185. package/govendor/golang.org/x/sys/unix/dev_aix_ppc.go +26 -0
  186. package/govendor/golang.org/x/sys/unix/dev_aix_ppc64.go +28 -0
  187. package/govendor/golang.org/x/sys/unix/dev_darwin.go +24 -0
  188. package/govendor/golang.org/x/sys/unix/dev_dragonfly.go +30 -0
  189. package/govendor/golang.org/x/sys/unix/dev_freebsd.go +30 -0
  190. package/govendor/golang.org/x/sys/unix/dev_linux.go +42 -0
  191. package/govendor/golang.org/x/sys/unix/dev_netbsd.go +29 -0
  192. package/govendor/golang.org/x/sys/unix/dev_openbsd.go +29 -0
  193. package/govendor/golang.org/x/sys/unix/dev_zos.go +28 -0
  194. package/govendor/golang.org/x/sys/unix/dirent.go +102 -0
  195. package/govendor/golang.org/x/sys/unix/endian_big.go +9 -0
  196. package/govendor/golang.org/x/sys/unix/endian_little.go +9 -0
  197. package/govendor/golang.org/x/sys/unix/env_unix.go +31 -0
  198. package/govendor/golang.org/x/sys/unix/fcntl.go +36 -0
  199. package/govendor/golang.org/x/sys/unix/fcntl_darwin.go +24 -0
  200. package/govendor/golang.org/x/sys/unix/fcntl_linux_32bit.go +13 -0
  201. package/govendor/golang.org/x/sys/unix/fdset.go +27 -0
  202. package/govendor/golang.org/x/sys/unix/gccgo.go +59 -0
  203. package/govendor/golang.org/x/sys/unix/gccgo_c.c +44 -0
  204. package/govendor/golang.org/x/sys/unix/gccgo_linux_amd64.go +20 -0
  205. package/govendor/golang.org/x/sys/unix/ifreq_linux.go +145 -0
  206. package/govendor/golang.org/x/sys/unix/ioctl_linux.go +341 -0
  207. package/govendor/golang.org/x/sys/unix/ioctl_signed.go +74 -0
  208. package/govendor/golang.org/x/sys/unix/ioctl_unsigned.go +74 -0
  209. package/govendor/golang.org/x/sys/unix/ioctl_zos.go +71 -0
  210. package/govendor/golang.org/x/sys/unix/mkall.sh +250 -0
  211. package/govendor/golang.org/x/sys/unix/mkerrors.sh +807 -0
  212. package/govendor/golang.org/x/sys/unix/mmap_nomremap.go +13 -0
  213. package/govendor/golang.org/x/sys/unix/mremap.go +57 -0
  214. package/govendor/golang.org/x/sys/unix/pagesize_unix.go +15 -0
  215. package/govendor/golang.org/x/sys/unix/pledge_openbsd.go +111 -0
  216. package/govendor/golang.org/x/sys/unix/ptrace_darwin.go +11 -0
  217. package/govendor/golang.org/x/sys/unix/ptrace_ios.go +11 -0
  218. package/govendor/golang.org/x/sys/unix/race.go +30 -0
  219. package/govendor/golang.org/x/sys/unix/race0.go +25 -0
  220. package/govendor/golang.org/x/sys/unix/readdirent_getdents.go +12 -0
  221. package/govendor/golang.org/x/sys/unix/readdirent_getdirentries.go +19 -0
  222. package/govendor/golang.org/x/sys/unix/readv_unix.go +103 -0
  223. package/govendor/golang.org/x/sys/unix/sockcmsg_dragonfly.go +16 -0
  224. package/govendor/golang.org/x/sys/unix/sockcmsg_linux.go +85 -0
  225. package/govendor/golang.org/x/sys/unix/sockcmsg_unix.go +106 -0
  226. package/govendor/golang.org/x/sys/unix/sockcmsg_unix_other.go +46 -0
  227. package/govendor/golang.org/x/sys/unix/sockcmsg_zos.go +58 -0
  228. package/govendor/golang.org/x/sys/unix/symaddr_zos_s390x.s +75 -0
  229. package/govendor/golang.org/x/sys/unix/syscall.go +86 -0
  230. package/govendor/golang.org/x/sys/unix/syscall_aix.go +582 -0
  231. package/govendor/golang.org/x/sys/unix/syscall_aix_ppc.go +52 -0
  232. package/govendor/golang.org/x/sys/unix/syscall_aix_ppc64.go +83 -0
  233. package/govendor/golang.org/x/sys/unix/syscall_bsd.go +609 -0
  234. package/govendor/golang.org/x/sys/unix/syscall_darwin.go +711 -0
  235. package/govendor/golang.org/x/sys/unix/syscall_darwin_amd64.go +50 -0
  236. package/govendor/golang.org/x/sys/unix/syscall_darwin_arm64.go +50 -0
  237. package/govendor/golang.org/x/sys/unix/syscall_darwin_libSystem.go +26 -0
  238. package/govendor/golang.org/x/sys/unix/syscall_dragonfly.go +359 -0
  239. package/govendor/golang.org/x/sys/unix/syscall_dragonfly_amd64.go +56 -0
  240. package/govendor/golang.org/x/sys/unix/syscall_freebsd.go +455 -0
  241. package/govendor/golang.org/x/sys/unix/syscall_freebsd_386.go +64 -0
  242. package/govendor/golang.org/x/sys/unix/syscall_freebsd_amd64.go +64 -0
  243. package/govendor/golang.org/x/sys/unix/syscall_freebsd_arm.go +60 -0
  244. package/govendor/golang.org/x/sys/unix/syscall_freebsd_arm64.go +60 -0
  245. package/govendor/golang.org/x/sys/unix/syscall_freebsd_riscv64.go +60 -0
  246. package/govendor/golang.org/x/sys/unix/syscall_hurd.go +30 -0
  247. package/govendor/golang.org/x/sys/unix/syscall_hurd_386.go +28 -0
  248. package/govendor/golang.org/x/sys/unix/syscall_illumos.go +78 -0
  249. package/govendor/golang.org/x/sys/unix/syscall_linux.go +2574 -0
  250. package/govendor/golang.org/x/sys/unix/syscall_linux_386.go +313 -0
  251. package/govendor/golang.org/x/sys/unix/syscall_linux_alarm.go +12 -0
  252. package/govendor/golang.org/x/sys/unix/syscall_linux_amd64.go +144 -0
  253. package/govendor/golang.org/x/sys/unix/syscall_linux_amd64_gc.go +12 -0
  254. package/govendor/golang.org/x/sys/unix/syscall_linux_arm.go +218 -0
  255. package/govendor/golang.org/x/sys/unix/syscall_linux_arm64.go +188 -0
  256. package/govendor/golang.org/x/sys/unix/syscall_linux_gc.go +14 -0
  257. package/govendor/golang.org/x/sys/unix/syscall_linux_gc_386.go +16 -0
  258. package/govendor/golang.org/x/sys/unix/syscall_linux_gc_arm.go +13 -0
  259. package/govendor/golang.org/x/sys/unix/syscall_linux_gccgo_386.go +30 -0
  260. package/govendor/golang.org/x/sys/unix/syscall_linux_gccgo_arm.go +20 -0
  261. package/govendor/golang.org/x/sys/unix/syscall_linux_loong64.go +220 -0
  262. package/govendor/golang.org/x/sys/unix/syscall_linux_mips64x.go +187 -0
  263. package/govendor/golang.org/x/sys/unix/syscall_linux_mipsx.go +173 -0
  264. package/govendor/golang.org/x/sys/unix/syscall_linux_ppc.go +203 -0
  265. package/govendor/golang.org/x/sys/unix/syscall_linux_ppc64x.go +114 -0
  266. package/govendor/golang.org/x/sys/unix/syscall_linux_riscv64.go +193 -0
  267. package/govendor/golang.org/x/sys/unix/syscall_linux_s390x.go +295 -0
  268. package/govendor/golang.org/x/sys/unix/syscall_linux_sparc64.go +111 -0
  269. package/govendor/golang.org/x/sys/unix/syscall_netbsd.go +388 -0
  270. package/govendor/golang.org/x/sys/unix/syscall_netbsd_386.go +37 -0
  271. package/govendor/golang.org/x/sys/unix/syscall_netbsd_amd64.go +37 -0
  272. package/govendor/golang.org/x/sys/unix/syscall_netbsd_arm.go +37 -0
  273. package/govendor/golang.org/x/sys/unix/syscall_netbsd_arm64.go +37 -0
  274. package/govendor/golang.org/x/sys/unix/syscall_openbsd.go +346 -0
  275. package/govendor/golang.org/x/sys/unix/syscall_openbsd_386.go +41 -0
  276. package/govendor/golang.org/x/sys/unix/syscall_openbsd_amd64.go +41 -0
  277. package/govendor/golang.org/x/sys/unix/syscall_openbsd_arm.go +41 -0
  278. package/govendor/golang.org/x/sys/unix/syscall_openbsd_arm64.go +41 -0
  279. package/govendor/golang.org/x/sys/unix/syscall_openbsd_libc.go +26 -0
  280. package/govendor/golang.org/x/sys/unix/syscall_openbsd_mips64.go +39 -0
  281. package/govendor/golang.org/x/sys/unix/syscall_openbsd_ppc64.go +41 -0
  282. package/govendor/golang.org/x/sys/unix/syscall_openbsd_riscv64.go +41 -0
  283. package/govendor/golang.org/x/sys/unix/syscall_solaris.go +1183 -0
  284. package/govendor/golang.org/x/sys/unix/syscall_solaris_amd64.go +27 -0
  285. package/govendor/golang.org/x/sys/unix/syscall_unix.go +619 -0
  286. package/govendor/golang.org/x/sys/unix/syscall_unix_gc.go +14 -0
  287. package/govendor/golang.org/x/sys/unix/syscall_unix_gc_ppc64x.go +22 -0
  288. package/govendor/golang.org/x/sys/unix/syscall_zos_s390x.go +3213 -0
  289. package/govendor/golang.org/x/sys/unix/sysvshm_linux.go +20 -0
  290. package/govendor/golang.org/x/sys/unix/sysvshm_unix.go +51 -0
  291. package/govendor/golang.org/x/sys/unix/sysvshm_unix_other.go +13 -0
  292. package/govendor/golang.org/x/sys/unix/timestruct.go +76 -0
  293. package/govendor/golang.org/x/sys/unix/unveil_openbsd.go +51 -0
  294. package/govendor/golang.org/x/sys/unix/vgetrandom_linux.go +13 -0
  295. package/govendor/golang.org/x/sys/unix/vgetrandom_unsupported.go +11 -0
  296. package/govendor/golang.org/x/sys/unix/xattr_bsd.go +280 -0
  297. package/govendor/golang.org/x/sys/unix/zerrors_aix_ppc.go +1384 -0
  298. package/govendor/golang.org/x/sys/unix/zerrors_aix_ppc64.go +1385 -0
  299. package/govendor/golang.org/x/sys/unix/zerrors_darwin_amd64.go +1922 -0
  300. package/govendor/golang.org/x/sys/unix/zerrors_darwin_arm64.go +1922 -0
  301. package/govendor/golang.org/x/sys/unix/zerrors_dragonfly_amd64.go +1737 -0
  302. package/govendor/golang.org/x/sys/unix/zerrors_freebsd_386.go +2042 -0
  303. package/govendor/golang.org/x/sys/unix/zerrors_freebsd_amd64.go +2039 -0
  304. package/govendor/golang.org/x/sys/unix/zerrors_freebsd_arm.go +2033 -0
  305. package/govendor/golang.org/x/sys/unix/zerrors_freebsd_arm64.go +2033 -0
  306. package/govendor/golang.org/x/sys/unix/zerrors_freebsd_riscv64.go +2147 -0
  307. package/govendor/golang.org/x/sys/unix/zerrors_linux.go +4209 -0
  308. package/govendor/golang.org/x/sys/unix/zerrors_linux_386.go +882 -0
  309. package/govendor/golang.org/x/sys/unix/zerrors_linux_amd64.go +882 -0
  310. package/govendor/golang.org/x/sys/unix/zerrors_linux_arm.go +887 -0
  311. package/govendor/golang.org/x/sys/unix/zerrors_linux_arm64.go +884 -0
  312. package/govendor/golang.org/x/sys/unix/zerrors_linux_loong64.go +874 -0
  313. package/govendor/golang.org/x/sys/unix/zerrors_linux_mips.go +888 -0
  314. package/govendor/golang.org/x/sys/unix/zerrors_linux_mips64.go +888 -0
  315. package/govendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go +888 -0
  316. package/govendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go +888 -0
  317. package/govendor/golang.org/x/sys/unix/zerrors_linux_ppc.go +940 -0
  318. package/govendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go +944 -0
  319. package/govendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go +944 -0
  320. package/govendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go +884 -0
  321. package/govendor/golang.org/x/sys/unix/zerrors_linux_s390x.go +943 -0
  322. package/govendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go +992 -0
  323. package/govendor/golang.org/x/sys/unix/zerrors_netbsd_386.go +1779 -0
  324. package/govendor/golang.org/x/sys/unix/zerrors_netbsd_amd64.go +1769 -0
  325. package/govendor/golang.org/x/sys/unix/zerrors_netbsd_arm.go +1758 -0
  326. package/govendor/golang.org/x/sys/unix/zerrors_netbsd_arm64.go +1769 -0
  327. package/govendor/golang.org/x/sys/unix/zerrors_openbsd_386.go +1905 -0
  328. package/govendor/golang.org/x/sys/unix/zerrors_openbsd_amd64.go +1905 -0
  329. package/govendor/golang.org/x/sys/unix/zerrors_openbsd_arm.go +1905 -0
  330. package/govendor/golang.org/x/sys/unix/zerrors_openbsd_arm64.go +1905 -0
  331. package/govendor/golang.org/x/sys/unix/zerrors_openbsd_mips64.go +1905 -0
  332. package/govendor/golang.org/x/sys/unix/zerrors_openbsd_ppc64.go +1904 -0
  333. package/govendor/golang.org/x/sys/unix/zerrors_openbsd_riscv64.go +1903 -0
  334. package/govendor/golang.org/x/sys/unix/zerrors_solaris_amd64.go +1556 -0
  335. package/govendor/golang.org/x/sys/unix/zerrors_zos_s390x.go +990 -0
  336. package/govendor/golang.org/x/sys/unix/zptrace_armnn_linux.go +40 -0
  337. package/govendor/golang.org/x/sys/unix/zptrace_linux_arm64.go +17 -0
  338. package/govendor/golang.org/x/sys/unix/zptrace_mipsnn_linux.go +49 -0
  339. package/govendor/golang.org/x/sys/unix/zptrace_mipsnnle_linux.go +49 -0
  340. package/govendor/golang.org/x/sys/unix/zptrace_x86_linux.go +79 -0
  341. package/govendor/golang.org/x/sys/unix/zsymaddr_zos_s390x.s +364 -0
  342. package/govendor/golang.org/x/sys/unix/zsyscall_aix_ppc.go +1461 -0
  343. package/govendor/golang.org/x/sys/unix/zsyscall_aix_ppc64.go +1420 -0
  344. package/govendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gc.go +1188 -0
  345. package/govendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gccgo.go +1069 -0
  346. package/govendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go +2728 -0
  347. package/govendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.s +799 -0
  348. package/govendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go +2728 -0
  349. package/govendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.s +799 -0
  350. package/govendor/golang.org/x/sys/unix/zsyscall_dragonfly_amd64.go +1666 -0
  351. package/govendor/golang.org/x/sys/unix/zsyscall_freebsd_386.go +1886 -0
  352. package/govendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go +1886 -0
  353. package/govendor/golang.org/x/sys/unix/zsyscall_freebsd_arm.go +1886 -0
  354. package/govendor/golang.org/x/sys/unix/zsyscall_freebsd_arm64.go +1886 -0
  355. package/govendor/golang.org/x/sys/unix/zsyscall_freebsd_riscv64.go +1886 -0
  356. package/govendor/golang.org/x/sys/unix/zsyscall_illumos_amd64.go +101 -0
  357. package/govendor/golang.org/x/sys/unix/zsyscall_linux.go +2267 -0
  358. package/govendor/golang.org/x/sys/unix/zsyscall_linux_386.go +469 -0
  359. package/govendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go +636 -0
  360. package/govendor/golang.org/x/sys/unix/zsyscall_linux_arm.go +584 -0
  361. package/govendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go +535 -0
  362. package/govendor/golang.org/x/sys/unix/zsyscall_linux_loong64.go +469 -0
  363. package/govendor/golang.org/x/sys/unix/zsyscall_linux_mips.go +636 -0
  364. package/govendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go +630 -0
  365. package/govendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go +619 -0
  366. package/govendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go +636 -0
  367. package/govendor/golang.org/x/sys/unix/zsyscall_linux_ppc.go +641 -0
  368. package/govendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go +687 -0
  369. package/govendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go +687 -0
  370. package/govendor/golang.org/x/sys/unix/zsyscall_linux_riscv64.go +531 -0
  371. package/govendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go +478 -0
  372. package/govendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go +631 -0
  373. package/govendor/golang.org/x/sys/unix/zsyscall_netbsd_386.go +1848 -0
  374. package/govendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go +1848 -0
  375. package/govendor/golang.org/x/sys/unix/zsyscall_netbsd_arm.go +1848 -0
  376. package/govendor/golang.org/x/sys/unix/zsyscall_netbsd_arm64.go +1848 -0
  377. package/govendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go +2407 -0
  378. package/govendor/golang.org/x/sys/unix/zsyscall_openbsd_386.s +719 -0
  379. package/govendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go +2407 -0
  380. package/govendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.s +719 -0
  381. package/govendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go +2407 -0
  382. package/govendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.s +719 -0
  383. package/govendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.go +2407 -0
  384. package/govendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.s +719 -0
  385. package/govendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.go +2407 -0
  386. package/govendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.s +719 -0
  387. package/govendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.go +2407 -0
  388. package/govendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.s +862 -0
  389. package/govendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.go +2407 -0
  390. package/govendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.s +719 -0
  391. package/govendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go +2217 -0
  392. package/govendor/golang.org/x/sys/unix/zsyscall_zos_s390x.go +3458 -0
  393. package/govendor/golang.org/x/sys/unix/zsysctl_openbsd_386.go +280 -0
  394. package/govendor/golang.org/x/sys/unix/zsysctl_openbsd_amd64.go +280 -0
  395. package/govendor/golang.org/x/sys/unix/zsysctl_openbsd_arm.go +280 -0
  396. package/govendor/golang.org/x/sys/unix/zsysctl_openbsd_arm64.go +280 -0
  397. package/govendor/golang.org/x/sys/unix/zsysctl_openbsd_mips64.go +280 -0
  398. package/govendor/golang.org/x/sys/unix/zsysctl_openbsd_ppc64.go +280 -0
  399. package/govendor/golang.org/x/sys/unix/zsysctl_openbsd_riscv64.go +281 -0
  400. package/govendor/golang.org/x/sys/unix/zsysnum_darwin_amd64.go +439 -0
  401. package/govendor/golang.org/x/sys/unix/zsysnum_darwin_arm64.go +437 -0
  402. package/govendor/golang.org/x/sys/unix/zsysnum_dragonfly_amd64.go +316 -0
  403. package/govendor/golang.org/x/sys/unix/zsysnum_freebsd_386.go +393 -0
  404. package/govendor/golang.org/x/sys/unix/zsysnum_freebsd_amd64.go +393 -0
  405. package/govendor/golang.org/x/sys/unix/zsysnum_freebsd_arm.go +393 -0
  406. package/govendor/golang.org/x/sys/unix/zsysnum_freebsd_arm64.go +393 -0
  407. package/govendor/golang.org/x/sys/unix/zsysnum_freebsd_riscv64.go +393 -0
  408. package/govendor/golang.org/x/sys/unix/zsysnum_linux_386.go +470 -0
  409. package/govendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go +394 -0
  410. package/govendor/golang.org/x/sys/unix/zsysnum_linux_arm.go +434 -0
  411. package/govendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go +337 -0
  412. package/govendor/golang.org/x/sys/unix/zsysnum_linux_loong64.go +334 -0
  413. package/govendor/golang.org/x/sys/unix/zsysnum_linux_mips.go +454 -0
  414. package/govendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go +384 -0
  415. package/govendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go +384 -0
  416. package/govendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go +454 -0
  417. package/govendor/golang.org/x/sys/unix/zsysnum_linux_ppc.go +461 -0
  418. package/govendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go +433 -0
  419. package/govendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go +433 -0
  420. package/govendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go +338 -0
  421. package/govendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go +399 -0
  422. package/govendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go +413 -0
  423. package/govendor/golang.org/x/sys/unix/zsysnum_netbsd_386.go +274 -0
  424. package/govendor/golang.org/x/sys/unix/zsysnum_netbsd_amd64.go +274 -0
  425. package/govendor/golang.org/x/sys/unix/zsysnum_netbsd_arm.go +274 -0
  426. package/govendor/golang.org/x/sys/unix/zsysnum_netbsd_arm64.go +274 -0
  427. package/govendor/golang.org/x/sys/unix/zsysnum_openbsd_386.go +219 -0
  428. package/govendor/golang.org/x/sys/unix/zsysnum_openbsd_amd64.go +219 -0
  429. package/govendor/golang.org/x/sys/unix/zsysnum_openbsd_arm.go +219 -0
  430. package/govendor/golang.org/x/sys/unix/zsysnum_openbsd_arm64.go +218 -0
  431. package/govendor/golang.org/x/sys/unix/zsysnum_openbsd_mips64.go +221 -0
  432. package/govendor/golang.org/x/sys/unix/zsysnum_openbsd_ppc64.go +217 -0
  433. package/govendor/golang.org/x/sys/unix/zsysnum_openbsd_riscv64.go +218 -0
  434. package/govendor/golang.org/x/sys/unix/zsysnum_zos_s390x.go +2852 -0
  435. package/govendor/golang.org/x/sys/unix/ztypes_aix_ppc.go +353 -0
  436. package/govendor/golang.org/x/sys/unix/ztypes_aix_ppc64.go +357 -0
  437. package/govendor/golang.org/x/sys/unix/ztypes_darwin_amd64.go +878 -0
  438. package/govendor/golang.org/x/sys/unix/ztypes_darwin_arm64.go +878 -0
  439. package/govendor/golang.org/x/sys/unix/ztypes_dragonfly_amd64.go +473 -0
  440. package/govendor/golang.org/x/sys/unix/ztypes_freebsd_386.go +651 -0
  441. package/govendor/golang.org/x/sys/unix/ztypes_freebsd_amd64.go +656 -0
  442. package/govendor/golang.org/x/sys/unix/ztypes_freebsd_arm.go +642 -0
  443. package/govendor/golang.org/x/sys/unix/ztypes_freebsd_arm64.go +636 -0
  444. package/govendor/golang.org/x/sys/unix/ztypes_freebsd_riscv64.go +638 -0
  445. package/govendor/golang.org/x/sys/unix/ztypes_linux.go +6547 -0
  446. package/govendor/golang.org/x/sys/unix/ztypes_linux_386.go +747 -0
  447. package/govendor/golang.org/x/sys/unix/ztypes_linux_amd64.go +761 -0
  448. package/govendor/golang.org/x/sys/unix/ztypes_linux_arm.go +741 -0
  449. package/govendor/golang.org/x/sys/unix/ztypes_linux_arm64.go +740 -0
  450. package/govendor/golang.org/x/sys/unix/ztypes_linux_loong64.go +741 -0
  451. package/govendor/golang.org/x/sys/unix/ztypes_linux_mips.go +746 -0
  452. package/govendor/golang.org/x/sys/unix/ztypes_linux_mips64.go +743 -0
  453. package/govendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go +743 -0
  454. package/govendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go +746 -0
  455. package/govendor/golang.org/x/sys/unix/ztypes_linux_ppc.go +754 -0
  456. package/govendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go +749 -0
  457. package/govendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go +749 -0
  458. package/govendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go +828 -0
  459. package/govendor/golang.org/x/sys/unix/ztypes_linux_s390x.go +763 -0
  460. package/govendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go +744 -0
  461. package/govendor/golang.org/x/sys/unix/ztypes_netbsd_386.go +585 -0
  462. package/govendor/golang.org/x/sys/unix/ztypes_netbsd_amd64.go +593 -0
  463. package/govendor/golang.org/x/sys/unix/ztypes_netbsd_arm.go +590 -0
  464. package/govendor/golang.org/x/sys/unix/ztypes_netbsd_arm64.go +593 -0
  465. package/govendor/golang.org/x/sys/unix/ztypes_openbsd_386.go +568 -0
  466. package/govendor/golang.org/x/sys/unix/ztypes_openbsd_amd64.go +568 -0
  467. package/govendor/golang.org/x/sys/unix/ztypes_openbsd_arm.go +575 -0
  468. package/govendor/golang.org/x/sys/unix/ztypes_openbsd_arm64.go +568 -0
  469. package/govendor/golang.org/x/sys/unix/ztypes_openbsd_mips64.go +568 -0
  470. package/govendor/golang.org/x/sys/unix/ztypes_openbsd_ppc64.go +570 -0
  471. package/govendor/golang.org/x/sys/unix/ztypes_openbsd_riscv64.go +570 -0
  472. package/govendor/golang.org/x/sys/unix/ztypes_solaris_amd64.go +516 -0
  473. package/govendor/golang.org/x/sys/unix/ztypes_zos_s390x.go +552 -0
  474. package/govendor/golang.org/x/sys/windows/aliases.go +13 -0
  475. package/govendor/golang.org/x/sys/windows/dll_windows.go +380 -0
  476. package/govendor/golang.org/x/sys/windows/env_windows.go +57 -0
  477. package/govendor/golang.org/x/sys/windows/eventlog.go +20 -0
  478. package/govendor/golang.org/x/sys/windows/exec_windows.go +248 -0
  479. package/govendor/golang.org/x/sys/windows/memory_windows.go +48 -0
  480. package/govendor/golang.org/x/sys/windows/mkerrors.bash +70 -0
  481. package/govendor/golang.org/x/sys/windows/mkknownfolderids.bash +27 -0
  482. package/govendor/golang.org/x/sys/windows/mksyscall.go +9 -0
  483. package/govendor/golang.org/x/sys/windows/race.go +30 -0
  484. package/govendor/golang.org/x/sys/windows/race0.go +25 -0
  485. package/govendor/golang.org/x/sys/windows/security_windows.go +1537 -0
  486. package/govendor/golang.org/x/sys/windows/service.go +257 -0
  487. package/govendor/golang.org/x/sys/windows/setupapi_windows.go +1425 -0
  488. package/govendor/golang.org/x/sys/windows/str.go +22 -0
  489. package/govendor/golang.org/x/sys/windows/syscall.go +104 -0
  490. package/govendor/golang.org/x/sys/windows/syscall_windows.go +1952 -0
  491. package/govendor/golang.org/x/sys/windows/types_windows.go +4058 -0
  492. package/govendor/golang.org/x/sys/windows/types_windows_386.go +35 -0
  493. package/govendor/golang.org/x/sys/windows/types_windows_amd64.go +34 -0
  494. package/govendor/golang.org/x/sys/windows/types_windows_arm.go +35 -0
  495. package/govendor/golang.org/x/sys/windows/types_windows_arm64.go +34 -0
  496. package/govendor/golang.org/x/sys/windows/zerrors_windows.go +9468 -0
  497. package/govendor/golang.org/x/sys/windows/zknownfolderids_windows.go +149 -0
  498. package/govendor/golang.org/x/sys/windows/zsyscall_windows.go +4828 -0
  499. package/govendor/manifest.txt +7 -0
  500. package/package.json +7 -1
  501. package/tsparser/check.go +157 -0
  502. package/tsparser/main.go +30 -1
  503. package/types/typenative-go.d.ts +15159 -5
  504. package/types/typenative-npm.d.ts +2640 -34
  505. package/types/typenative.d.ts +651 -8
@@ -0,0 +1,436 @@
1
+ package sqlite3
2
+
3
+ import (
4
+ "strconv"
5
+
6
+ "github.com/ncruces/go-sqlite3/internal/sqlite3_wrap"
7
+ )
8
+
9
+ const (
10
+ _OK = 0 /* Successful result */
11
+ _ROW = 100 /* sqlite3_step() has another row ready */
12
+ _DONE = 101 /* sqlite3_step() has finished executing */
13
+
14
+ _MAX_NAME = 1e6 // Self-imposed limit for most NUL terminated strings.
15
+ _MAX_LENGTH = 1e9
16
+ _MAX_SQL_LENGTH = 1e9
17
+
18
+ ptrlen = sqlite3_wrap.PtrLen
19
+ intlen = sqlite3_wrap.IntLen
20
+ )
21
+
22
+ type (
23
+ ptr_t = sqlite3_wrap.Ptr_t
24
+ res_t = sqlite3_wrap.Res_t
25
+ )
26
+
27
+ // ErrorCode is a result code that [Error.Code] might return.
28
+ //
29
+ // https://sqlite.org/rescode.html
30
+ type ErrorCode uint8
31
+
32
+ const (
33
+ ERROR ErrorCode = 1 /* Generic error */
34
+ INTERNAL ErrorCode = 2 /* Internal logic error in SQLite */
35
+ PERM ErrorCode = 3 /* Access permission denied */
36
+ ABORT ErrorCode = 4 /* Callback routine requested an abort */
37
+ BUSY ErrorCode = 5 /* The database file is locked */
38
+ LOCKED ErrorCode = 6 /* A table in the database is locked */
39
+ NOMEM ErrorCode = 7 /* A malloc() failed */
40
+ READONLY ErrorCode = 8 /* Attempt to write a readonly database */
41
+ INTERRUPT ErrorCode = 9 /* Operation terminated by sqlite3_interrupt() */
42
+ IOERR ErrorCode = 10 /* Some kind of disk I/O error occurred */
43
+ CORRUPT ErrorCode = 11 /* The database disk image is malformed */
44
+ NOTFOUND ErrorCode = 12 /* Unknown opcode in sqlite3_file_control() */
45
+ FULL ErrorCode = 13 /* Insertion failed because database is full */
46
+ CANTOPEN ErrorCode = 14 /* Unable to open the database file */
47
+ PROTOCOL ErrorCode = 15 /* Database lock protocol error */
48
+ EMPTY ErrorCode = 16 /* Internal use only */
49
+ SCHEMA ErrorCode = 17 /* The database schema changed */
50
+ TOOBIG ErrorCode = 18 /* String or BLOB exceeds size limit */
51
+ CONSTRAINT ErrorCode = 19 /* Abort due to constraint violation */
52
+ MISMATCH ErrorCode = 20 /* Data type mismatch */
53
+ MISUSE ErrorCode = 21 /* Library used incorrectly */
54
+ NOLFS ErrorCode = 22 /* Uses OS features not supported on host */
55
+ AUTH ErrorCode = 23 /* Authorization denied */
56
+ FORMAT ErrorCode = 24 /* Not used */
57
+ RANGE ErrorCode = 25 /* 2nd parameter to sqlite3_bind out of range */
58
+ NOTADB ErrorCode = 26 /* File opened that is not a database file */
59
+ NOTICE ErrorCode = 27 /* Notifications from sqlite3_log() */
60
+ WARNING ErrorCode = 28 /* Warnings from sqlite3_log() */
61
+ )
62
+
63
+ // ExtendedErrorCode is a result code that [Error.ExtendedCode] might return.
64
+ //
65
+ // https://sqlite.org/rescode.html
66
+ type (
67
+ ExtendedErrorCode uint16
68
+ xErrorCode = ExtendedErrorCode
69
+ )
70
+
71
+ const (
72
+ ERROR_MISSING_COLLSEQ ExtendedErrorCode = xErrorCode(ERROR) | (1 << 8)
73
+ ERROR_RETRY ExtendedErrorCode = xErrorCode(ERROR) | (2 << 8)
74
+ ERROR_SNAPSHOT ExtendedErrorCode = xErrorCode(ERROR) | (3 << 8)
75
+ ERROR_RESERVESIZE ExtendedErrorCode = xErrorCode(ERROR) | (4 << 8)
76
+ ERROR_KEY ExtendedErrorCode = xErrorCode(ERROR) | (5 << 8)
77
+ ERROR_UNABLE ExtendedErrorCode = xErrorCode(ERROR) | (6 << 8)
78
+ IOERR_READ ExtendedErrorCode = xErrorCode(IOERR) | (1 << 8)
79
+ IOERR_SHORT_READ ExtendedErrorCode = xErrorCode(IOERR) | (2 << 8)
80
+ IOERR_WRITE ExtendedErrorCode = xErrorCode(IOERR) | (3 << 8)
81
+ IOERR_FSYNC ExtendedErrorCode = xErrorCode(IOERR) | (4 << 8)
82
+ IOERR_DIR_FSYNC ExtendedErrorCode = xErrorCode(IOERR) | (5 << 8)
83
+ IOERR_TRUNCATE ExtendedErrorCode = xErrorCode(IOERR) | (6 << 8)
84
+ IOERR_FSTAT ExtendedErrorCode = xErrorCode(IOERR) | (7 << 8)
85
+ IOERR_UNLOCK ExtendedErrorCode = xErrorCode(IOERR) | (8 << 8)
86
+ IOERR_RDLOCK ExtendedErrorCode = xErrorCode(IOERR) | (9 << 8)
87
+ IOERR_DELETE ExtendedErrorCode = xErrorCode(IOERR) | (10 << 8)
88
+ IOERR_BLOCKED ExtendedErrorCode = xErrorCode(IOERR) | (11 << 8)
89
+ IOERR_NOMEM ExtendedErrorCode = xErrorCode(IOERR) | (12 << 8)
90
+ IOERR_ACCESS ExtendedErrorCode = xErrorCode(IOERR) | (13 << 8)
91
+ IOERR_CHECKRESERVEDLOCK ExtendedErrorCode = xErrorCode(IOERR) | (14 << 8)
92
+ IOERR_LOCK ExtendedErrorCode = xErrorCode(IOERR) | (15 << 8)
93
+ IOERR_CLOSE ExtendedErrorCode = xErrorCode(IOERR) | (16 << 8)
94
+ IOERR_DIR_CLOSE ExtendedErrorCode = xErrorCode(IOERR) | (17 << 8)
95
+ IOERR_SHMOPEN ExtendedErrorCode = xErrorCode(IOERR) | (18 << 8)
96
+ IOERR_SHMSIZE ExtendedErrorCode = xErrorCode(IOERR) | (19 << 8)
97
+ IOERR_SHMLOCK ExtendedErrorCode = xErrorCode(IOERR) | (20 << 8)
98
+ IOERR_SHMMAP ExtendedErrorCode = xErrorCode(IOERR) | (21 << 8)
99
+ IOERR_SEEK ExtendedErrorCode = xErrorCode(IOERR) | (22 << 8)
100
+ IOERR_DELETE_NOENT ExtendedErrorCode = xErrorCode(IOERR) | (23 << 8)
101
+ IOERR_MMAP ExtendedErrorCode = xErrorCode(IOERR) | (24 << 8)
102
+ IOERR_GETTEMPPATH ExtendedErrorCode = xErrorCode(IOERR) | (25 << 8)
103
+ IOERR_CONVPATH ExtendedErrorCode = xErrorCode(IOERR) | (26 << 8)
104
+ IOERR_VNODE ExtendedErrorCode = xErrorCode(IOERR) | (27 << 8)
105
+ IOERR_AUTH ExtendedErrorCode = xErrorCode(IOERR) | (28 << 8)
106
+ IOERR_BEGIN_ATOMIC ExtendedErrorCode = xErrorCode(IOERR) | (29 << 8)
107
+ IOERR_COMMIT_ATOMIC ExtendedErrorCode = xErrorCode(IOERR) | (30 << 8)
108
+ IOERR_ROLLBACK_ATOMIC ExtendedErrorCode = xErrorCode(IOERR) | (31 << 8)
109
+ IOERR_DATA ExtendedErrorCode = xErrorCode(IOERR) | (32 << 8)
110
+ IOERR_CORRUPTFS ExtendedErrorCode = xErrorCode(IOERR) | (33 << 8)
111
+ IOERR_IN_PAGE ExtendedErrorCode = xErrorCode(IOERR) | (34 << 8)
112
+ IOERR_BADKEY ExtendedErrorCode = xErrorCode(IOERR) | (35 << 8)
113
+ IOERR_CODEC ExtendedErrorCode = xErrorCode(IOERR) | (36 << 8)
114
+ LOCKED_SHAREDCACHE ExtendedErrorCode = xErrorCode(LOCKED) | (1 << 8)
115
+ LOCKED_VTAB ExtendedErrorCode = xErrorCode(LOCKED) | (2 << 8)
116
+ BUSY_RECOVERY ExtendedErrorCode = xErrorCode(BUSY) | (1 << 8)
117
+ BUSY_SNAPSHOT ExtendedErrorCode = xErrorCode(BUSY) | (2 << 8)
118
+ BUSY_TIMEOUT ExtendedErrorCode = xErrorCode(BUSY) | (3 << 8)
119
+ CANTOPEN_NOTEMPDIR ExtendedErrorCode = xErrorCode(CANTOPEN) | (1 << 8)
120
+ CANTOPEN_ISDIR ExtendedErrorCode = xErrorCode(CANTOPEN) | (2 << 8)
121
+ CANTOPEN_FULLPATH ExtendedErrorCode = xErrorCode(CANTOPEN) | (3 << 8)
122
+ CANTOPEN_CONVPATH ExtendedErrorCode = xErrorCode(CANTOPEN) | (4 << 8)
123
+ // CANTOPEN_DIRTYWAL ExtendedErrorCode = xErrorCode(CANTOPEN) | (5 << 8) /* Not Used */
124
+ CANTOPEN_SYMLINK ExtendedErrorCode = xErrorCode(CANTOPEN) | (6 << 8)
125
+ CORRUPT_VTAB ExtendedErrorCode = xErrorCode(CORRUPT) | (1 << 8)
126
+ CORRUPT_SEQUENCE ExtendedErrorCode = xErrorCode(CORRUPT) | (2 << 8)
127
+ CORRUPT_INDEX ExtendedErrorCode = xErrorCode(CORRUPT) | (3 << 8)
128
+ READONLY_RECOVERY ExtendedErrorCode = xErrorCode(READONLY) | (1 << 8)
129
+ READONLY_CANTLOCK ExtendedErrorCode = xErrorCode(READONLY) | (2 << 8)
130
+ READONLY_ROLLBACK ExtendedErrorCode = xErrorCode(READONLY) | (3 << 8)
131
+ READONLY_DBMOVED ExtendedErrorCode = xErrorCode(READONLY) | (4 << 8)
132
+ READONLY_CANTINIT ExtendedErrorCode = xErrorCode(READONLY) | (5 << 8)
133
+ READONLY_DIRECTORY ExtendedErrorCode = xErrorCode(READONLY) | (6 << 8)
134
+ ABORT_ROLLBACK ExtendedErrorCode = xErrorCode(ABORT) | (2 << 8)
135
+ CONSTRAINT_CHECK ExtendedErrorCode = xErrorCode(CONSTRAINT) | (1 << 8)
136
+ CONSTRAINT_COMMITHOOK ExtendedErrorCode = xErrorCode(CONSTRAINT) | (2 << 8)
137
+ CONSTRAINT_FOREIGNKEY ExtendedErrorCode = xErrorCode(CONSTRAINT) | (3 << 8)
138
+ CONSTRAINT_FUNCTION ExtendedErrorCode = xErrorCode(CONSTRAINT) | (4 << 8)
139
+ CONSTRAINT_NOTNULL ExtendedErrorCode = xErrorCode(CONSTRAINT) | (5 << 8)
140
+ CONSTRAINT_PRIMARYKEY ExtendedErrorCode = xErrorCode(CONSTRAINT) | (6 << 8)
141
+ CONSTRAINT_TRIGGER ExtendedErrorCode = xErrorCode(CONSTRAINT) | (7 << 8)
142
+ CONSTRAINT_UNIQUE ExtendedErrorCode = xErrorCode(CONSTRAINT) | (8 << 8)
143
+ CONSTRAINT_VTAB ExtendedErrorCode = xErrorCode(CONSTRAINT) | (9 << 8)
144
+ CONSTRAINT_ROWID ExtendedErrorCode = xErrorCode(CONSTRAINT) | (10 << 8)
145
+ CONSTRAINT_PINNED ExtendedErrorCode = xErrorCode(CONSTRAINT) | (11 << 8)
146
+ CONSTRAINT_DATATYPE ExtendedErrorCode = xErrorCode(CONSTRAINT) | (12 << 8)
147
+ NOTICE_RECOVER_WAL ExtendedErrorCode = xErrorCode(NOTICE) | (1 << 8)
148
+ NOTICE_RECOVER_ROLLBACK ExtendedErrorCode = xErrorCode(NOTICE) | (2 << 8)
149
+ NOTICE_RBU ExtendedErrorCode = xErrorCode(NOTICE) | (3 << 8)
150
+ WARNING_AUTOINDEX ExtendedErrorCode = xErrorCode(WARNING) | (1 << 8)
151
+ AUTH_USER ExtendedErrorCode = xErrorCode(AUTH) | (1 << 8)
152
+ )
153
+
154
+ // OpenFlag is a flag for the [OpenFlags] function.
155
+ //
156
+ // https://sqlite.org/c3ref/c_open_autoproxy.html
157
+ type OpenFlag uint32
158
+
159
+ const (
160
+ OPEN_READONLY OpenFlag = 0x00000001 /* Ok for sqlite3_open_v2() */
161
+ OPEN_READWRITE OpenFlag = 0x00000002 /* Ok for sqlite3_open_v2() */
162
+ OPEN_CREATE OpenFlag = 0x00000004 /* Ok for sqlite3_open_v2() */
163
+ OPEN_URI OpenFlag = 0x00000040 /* Ok for sqlite3_open_v2() */
164
+ OPEN_MEMORY OpenFlag = 0x00000080 /* Ok for sqlite3_open_v2() */
165
+ OPEN_NOMUTEX OpenFlag = 0x00008000 /* Ok for sqlite3_open_v2() */
166
+ OPEN_FULLMUTEX OpenFlag = 0x00010000 /* Ok for sqlite3_open_v2() */
167
+ OPEN_SHAREDCACHE OpenFlag = 0x00020000 /* Ok for sqlite3_open_v2() */
168
+ OPEN_PRIVATECACHE OpenFlag = 0x00040000 /* Ok for sqlite3_open_v2() */
169
+ OPEN_NOFOLLOW OpenFlag = 0x01000000 /* Ok for sqlite3_open_v2() */
170
+ OPEN_EXRESCODE OpenFlag = 0x02000000 /* Extended result codes */
171
+ )
172
+
173
+ // PrepareFlag is a flag that can be passed to [Conn.PrepareFlags].
174
+ //
175
+ // https://sqlite.org/c3ref/c_prepare_dont_log.html
176
+ type PrepareFlag uint32
177
+
178
+ const (
179
+ PREPARE_PERSISTENT PrepareFlag = 0x01
180
+ PREPARE_NORMALIZE PrepareFlag = 0x02
181
+ PREPARE_NO_VTAB PrepareFlag = 0x04
182
+ PREPARE_DONT_LOG PrepareFlag = 0x10
183
+ PREPARE_FROM_DDL PrepareFlag = 0x20
184
+ )
185
+
186
+ // FunctionFlag is a flag that can be passed to
187
+ // [Conn.CreateFunction] and [Conn.CreateWindowFunction].
188
+ //
189
+ // https://sqlite.org/c3ref/c_deterministic.html
190
+ type FunctionFlag uint32
191
+
192
+ const (
193
+ DETERMINISTIC FunctionFlag = 0x000000800
194
+ DIRECTONLY FunctionFlag = 0x000080000
195
+ SUBTYPE FunctionFlag = 0x000100000
196
+ INNOCUOUS FunctionFlag = 0x000200000
197
+ RESULT_SUBTYPE FunctionFlag = 0x001000000
198
+ SELFORDER1 FunctionFlag = 0x002000000
199
+ )
200
+
201
+ // StmtStatus name counter values associated with the [Stmt.Status] method.
202
+ //
203
+ // https://sqlite.org/c3ref/c_stmtstatus_counter.html
204
+ type StmtStatus uint32
205
+
206
+ const (
207
+ STMTSTATUS_FULLSCAN_STEP StmtStatus = 1
208
+ STMTSTATUS_SORT StmtStatus = 2
209
+ STMTSTATUS_AUTOINDEX StmtStatus = 3
210
+ STMTSTATUS_VM_STEP StmtStatus = 4
211
+ STMTSTATUS_REPREPARE StmtStatus = 5
212
+ STMTSTATUS_RUN StmtStatus = 6
213
+ STMTSTATUS_FILTER_MISS StmtStatus = 7
214
+ STMTSTATUS_FILTER_HIT StmtStatus = 8
215
+ STMTSTATUS_MEMUSED StmtStatus = 99
216
+ )
217
+
218
+ // DBStatus are the available "verbs" that can be passed to the [Conn.Status] method.
219
+ //
220
+ // https://sqlite.org/c3ref/c_dbstatus_options.html
221
+ type DBStatus uint32
222
+
223
+ const (
224
+ DBSTATUS_LOOKASIDE_USED DBStatus = 0
225
+ DBSTATUS_CACHE_USED DBStatus = 1
226
+ DBSTATUS_SCHEMA_USED DBStatus = 2
227
+ DBSTATUS_STMT_USED DBStatus = 3
228
+ DBSTATUS_LOOKASIDE_HIT DBStatus = 4
229
+ DBSTATUS_LOOKASIDE_MISS_SIZE DBStatus = 5
230
+ DBSTATUS_LOOKASIDE_MISS_FULL DBStatus = 6
231
+ DBSTATUS_CACHE_HIT DBStatus = 7
232
+ DBSTATUS_CACHE_MISS DBStatus = 8
233
+ DBSTATUS_CACHE_WRITE DBStatus = 9
234
+ DBSTATUS_DEFERRED_FKS DBStatus = 10
235
+ DBSTATUS_CACHE_USED_SHARED DBStatus = 11
236
+ DBSTATUS_CACHE_SPILL DBStatus = 12
237
+ DBSTATUS_TEMPBUF_SPILL DBStatus = 13
238
+ // DBSTATUS_MAX DBStatus = 13
239
+ )
240
+
241
+ // DBConfig are the available database connection configuration options.
242
+ //
243
+ // https://sqlite.org/c3ref/c_dbconfig_defensive.html
244
+ type DBConfig uint32
245
+
246
+ const (
247
+ // DBCONFIG_MAINDBNAME DBConfig = 1000
248
+ // DBCONFIG_LOOKASIDE DBConfig = 1001
249
+ DBCONFIG_ENABLE_FKEY DBConfig = 1002
250
+ DBCONFIG_ENABLE_TRIGGER DBConfig = 1003
251
+ DBCONFIG_ENABLE_FTS3_TOKENIZER DBConfig = 1004
252
+ DBCONFIG_ENABLE_LOAD_EXTENSION DBConfig = 1005
253
+ DBCONFIG_NO_CKPT_ON_CLOSE DBConfig = 1006
254
+ DBCONFIG_ENABLE_QPSG DBConfig = 1007
255
+ DBCONFIG_TRIGGER_EQP DBConfig = 1008
256
+ DBCONFIG_RESET_DATABASE DBConfig = 1009
257
+ DBCONFIG_DEFENSIVE DBConfig = 1010
258
+ DBCONFIG_WRITABLE_SCHEMA DBConfig = 1011
259
+ DBCONFIG_LEGACY_ALTER_TABLE DBConfig = 1012
260
+ DBCONFIG_DQS_DML DBConfig = 1013
261
+ DBCONFIG_DQS_DDL DBConfig = 1014
262
+ DBCONFIG_ENABLE_VIEW DBConfig = 1015
263
+ DBCONFIG_LEGACY_FILE_FORMAT DBConfig = 1016
264
+ DBCONFIG_TRUSTED_SCHEMA DBConfig = 1017
265
+ DBCONFIG_STMT_SCANSTATUS DBConfig = 1018
266
+ DBCONFIG_REVERSE_SCANORDER DBConfig = 1019
267
+ DBCONFIG_ENABLE_ATTACH_CREATE DBConfig = 1020
268
+ DBCONFIG_ENABLE_ATTACH_WRITE DBConfig = 1021
269
+ DBCONFIG_ENABLE_COMMENTS DBConfig = 1022
270
+ DBCONFIG_FP_DIGITS DBConfig = 1023
271
+ // DBCONFIG_MAX DBConfig = 1023
272
+ )
273
+
274
+ // FcntlOpcode are the available opcodes for [Conn.FileControl].
275
+ //
276
+ // https://sqlite.org/c3ref/c_fcntl_begin_atomic_write.html
277
+ type FcntlOpcode uint32
278
+
279
+ const (
280
+ FCNTL_LOCKSTATE FcntlOpcode = 1
281
+ FCNTL_CHUNK_SIZE FcntlOpcode = 6
282
+ FCNTL_FILE_POINTER FcntlOpcode = 7
283
+ FCNTL_PERSIST_WAL FcntlOpcode = 10
284
+ FCNTL_VFSNAME FcntlOpcode = 12
285
+ FCNTL_POWERSAFE_OVERWRITE FcntlOpcode = 13
286
+ FCNTL_VFS_POINTER FcntlOpcode = 27
287
+ FCNTL_JOURNAL_POINTER FcntlOpcode = 28
288
+ FCNTL_DATA_VERSION FcntlOpcode = 35
289
+ FCNTL_RESERVE_BYTES FcntlOpcode = 38
290
+ FCNTL_RESET_CACHE FcntlOpcode = 42
291
+ FCNTL_NULL_IO FcntlOpcode = 43
292
+ )
293
+
294
+ // LimitCategory are the available run-time limit categories.
295
+ //
296
+ // https://sqlite.org/c3ref/c_limit_attached.html
297
+ type LimitCategory uint32
298
+
299
+ const (
300
+ LIMIT_LENGTH LimitCategory = 0
301
+ LIMIT_SQL_LENGTH LimitCategory = 1
302
+ LIMIT_COLUMN LimitCategory = 2
303
+ LIMIT_EXPR_DEPTH LimitCategory = 3
304
+ LIMIT_COMPOUND_SELECT LimitCategory = 4
305
+ LIMIT_VDBE_OP LimitCategory = 5
306
+ LIMIT_FUNCTION_ARG LimitCategory = 6
307
+ LIMIT_ATTACHED LimitCategory = 7
308
+ LIMIT_LIKE_PATTERN_LENGTH LimitCategory = 8
309
+ LIMIT_VARIABLE_NUMBER LimitCategory = 9
310
+ LIMIT_TRIGGER_DEPTH LimitCategory = 10
311
+ LIMIT_WORKER_THREADS LimitCategory = 11
312
+ LIMIT_PARSER_DEPTH LimitCategory = 12
313
+ )
314
+
315
+ // AuthorizerActionCode are the integer action codes
316
+ // that the authorizer callback may be passed.
317
+ //
318
+ // https://sqlite.org/c3ref/c_alter_table.html
319
+ type AuthorizerActionCode uint32
320
+
321
+ const (
322
+ /***************************************************** 3rd ************ 4th ***********/
323
+ AUTH_CREATE_INDEX AuthorizerActionCode = 1 /* Index Name Table Name */
324
+ AUTH_CREATE_TABLE AuthorizerActionCode = 2 /* Table Name NULL */
325
+ AUTH_CREATE_TEMP_INDEX AuthorizerActionCode = 3 /* Index Name Table Name */
326
+ AUTH_CREATE_TEMP_TABLE AuthorizerActionCode = 4 /* Table Name NULL */
327
+ AUTH_CREATE_TEMP_TRIGGER AuthorizerActionCode = 5 /* Trigger Name Table Name */
328
+ AUTH_CREATE_TEMP_VIEW AuthorizerActionCode = 6 /* View Name NULL */
329
+ AUTH_CREATE_TRIGGER AuthorizerActionCode = 7 /* Trigger Name Table Name */
330
+ AUTH_CREATE_VIEW AuthorizerActionCode = 8 /* View Name NULL */
331
+ AUTH_DELETE AuthorizerActionCode = 9 /* Table Name NULL */
332
+ AUTH_DROP_INDEX AuthorizerActionCode = 10 /* Index Name Table Name */
333
+ AUTH_DROP_TABLE AuthorizerActionCode = 11 /* Table Name NULL */
334
+ AUTH_DROP_TEMP_INDEX AuthorizerActionCode = 12 /* Index Name Table Name */
335
+ AUTH_DROP_TEMP_TABLE AuthorizerActionCode = 13 /* Table Name NULL */
336
+ AUTH_DROP_TEMP_TRIGGER AuthorizerActionCode = 14 /* Trigger Name Table Name */
337
+ AUTH_DROP_TEMP_VIEW AuthorizerActionCode = 15 /* View Name NULL */
338
+ AUTH_DROP_TRIGGER AuthorizerActionCode = 16 /* Trigger Name Table Name */
339
+ AUTH_DROP_VIEW AuthorizerActionCode = 17 /* View Name NULL */
340
+ AUTH_INSERT AuthorizerActionCode = 18 /* Table Name NULL */
341
+ AUTH_PRAGMA AuthorizerActionCode = 19 /* Pragma Name 1st arg or NULL */
342
+ AUTH_READ AuthorizerActionCode = 20 /* Table Name Column Name */
343
+ AUTH_SELECT AuthorizerActionCode = 21 /* NULL NULL */
344
+ AUTH_TRANSACTION AuthorizerActionCode = 22 /* Operation NULL */
345
+ AUTH_UPDATE AuthorizerActionCode = 23 /* Table Name Column Name */
346
+ AUTH_ATTACH AuthorizerActionCode = 24 /* Filename NULL */
347
+ AUTH_DETACH AuthorizerActionCode = 25 /* Database Name NULL */
348
+ AUTH_ALTER_TABLE AuthorizerActionCode = 26 /* Database Name Table Name */
349
+ AUTH_REINDEX AuthorizerActionCode = 27 /* Index Name NULL */
350
+ AUTH_ANALYZE AuthorizerActionCode = 28 /* Table Name NULL */
351
+ AUTH_CREATE_VTABLE AuthorizerActionCode = 29 /* Table Name Module Name */
352
+ AUTH_DROP_VTABLE AuthorizerActionCode = 30 /* Table Name Module Name */
353
+ AUTH_FUNCTION AuthorizerActionCode = 31 /* NULL Function Name */
354
+ AUTH_SAVEPOINT AuthorizerActionCode = 32 /* Operation Savepoint Name */
355
+ AUTH_RECURSIVE AuthorizerActionCode = 33 /* NULL NULL */
356
+ // AUTH_COPY AuthorizerActionCode = 0 /* No longer used */
357
+ )
358
+
359
+ // AuthorizerReturnCode are the integer codes
360
+ // that the authorizer callback may return.
361
+ //
362
+ // https://sqlite.org/c3ref/c_deny.html
363
+ type AuthorizerReturnCode uint32
364
+
365
+ const (
366
+ AUTH_OK AuthorizerReturnCode = 0
367
+ AUTH_DENY AuthorizerReturnCode = 1 /* Abort the SQL statement with an error */
368
+ AUTH_IGNORE AuthorizerReturnCode = 2 /* Don't allow access, but don't generate an error */
369
+ )
370
+
371
+ // CheckpointMode are all the checkpoint mode values.
372
+ //
373
+ // https://sqlite.org/c3ref/c_checkpoint_full.html
374
+ type CheckpointMode int32
375
+
376
+ const (
377
+ CHECKPOINT_NOOP CheckpointMode = -1 /* Do no work at all */
378
+ CHECKPOINT_PASSIVE CheckpointMode = 0 /* Do as much as possible w/o blocking */
379
+ CHECKPOINT_FULL CheckpointMode = 1 /* Wait for writers, then checkpoint */
380
+ CHECKPOINT_RESTART CheckpointMode = 2 /* Like FULL but wait for readers */
381
+ CHECKPOINT_TRUNCATE CheckpointMode = 3 /* Like RESTART but also truncate WAL */
382
+ )
383
+
384
+ // TxnState are the allowed return values from [Conn.TxnState].
385
+ //
386
+ // https://sqlite.org/c3ref/c_txn_none.html
387
+ type TxnState uint32
388
+
389
+ const (
390
+ TXN_NONE TxnState = 0
391
+ TXN_READ TxnState = 1
392
+ TXN_WRITE TxnState = 2
393
+ )
394
+
395
+ // TraceEvent identify classes of events that can be monitored with [Conn.Trace].
396
+ //
397
+ // https://sqlite.org/c3ref/c_trace.html
398
+ type TraceEvent uint32
399
+
400
+ const (
401
+ TRACE_STMT TraceEvent = 0x01
402
+ TRACE_PROFILE TraceEvent = 0x02
403
+ TRACE_ROW TraceEvent = 0x04
404
+ TRACE_CLOSE TraceEvent = 0x08
405
+ )
406
+
407
+ // Datatype is a fundamental datatype of SQLite.
408
+ //
409
+ // https://sqlite.org/c3ref/c_blob.html
410
+ type Datatype uint32
411
+
412
+ const (
413
+ INTEGER Datatype = 1
414
+ FLOAT Datatype = 2
415
+ TEXT Datatype = 3
416
+ BLOB Datatype = 4
417
+ NULL Datatype = 5
418
+ )
419
+
420
+ // String implements the [fmt.Stringer] interface.
421
+ func (t Datatype) String() string {
422
+ const name = "INTEGERFLOATEXTBLOBNULL"
423
+ switch t {
424
+ case INTEGER:
425
+ return name[0:7]
426
+ case FLOAT:
427
+ return name[7:12]
428
+ case TEXT:
429
+ return name[11:15]
430
+ case BLOB:
431
+ return name[15:19]
432
+ case NULL:
433
+ return name[19:23]
434
+ }
435
+ return strconv.FormatUint(uint64(t), 10)
436
+ }
@@ -0,0 +1,222 @@
1
+ package sqlite3
2
+
3
+ import (
4
+ "errors"
5
+ "time"
6
+
7
+ "github.com/ncruces/go-sqlite3/internal/errutil"
8
+ )
9
+
10
+ // Context is the context in which an SQL function executes.
11
+ // It is in no way related to a Go [context.Context].
12
+ //
13
+ // https://sqlite.org/c3ref/context.html
14
+ type Context struct {
15
+ c *Conn
16
+ handle ptr_t
17
+ }
18
+
19
+ // Conn returns the database connection of the
20
+ // [Conn.CreateFunction] or [Conn.CreateWindowFunction]
21
+ // routines that originally registered the application defined function.
22
+ //
23
+ // https://sqlite.org/c3ref/context_db_handle.html
24
+ func (ctx Context) Conn() *Conn {
25
+ return ctx.c
26
+ }
27
+
28
+ // SetAuxData saves metadata for argument n of the function.
29
+ //
30
+ // https://sqlite.org/c3ref/get_auxdata.html
31
+ func (ctx Context) SetAuxData(n int, data any) {
32
+ ptr := ctx.c.wrp.AddHandle(data)
33
+ ctx.c.wrp.Xsqlite3_set_auxdata_go(int32(ctx.handle), int32(n), int32(ptr))
34
+ }
35
+
36
+ // GetAuxData returns metadata for argument n of the function.
37
+ //
38
+ // https://sqlite.org/c3ref/get_auxdata.html
39
+ func (ctx Context) GetAuxData(n int) any {
40
+ ptr := ptr_t(ctx.c.wrp.Xsqlite3_get_auxdata(int32(ctx.handle), int32(n)))
41
+ return ctx.c.wrp.GetHandle(ptr)
42
+ }
43
+
44
+ // ResultBool sets the result of the function to a bool.
45
+ // SQLite does not have a separate boolean storage class.
46
+ // Instead, boolean values are stored as integers 0 (false) and 1 (true).
47
+ //
48
+ // https://sqlite.org/c3ref/result_blob.html
49
+ func (ctx Context) ResultBool(value bool) {
50
+ var i int64
51
+ if value {
52
+ i = 1
53
+ }
54
+ ctx.ResultInt64(i)
55
+ }
56
+
57
+ // ResultInt sets the result of the function to an int.
58
+ //
59
+ // https://sqlite.org/c3ref/result_blob.html
60
+ func (ctx Context) ResultInt(value int) {
61
+ ctx.ResultInt64(int64(value))
62
+ }
63
+
64
+ // ResultInt64 sets the result of the function to an int64.
65
+ //
66
+ // https://sqlite.org/c3ref/result_blob.html
67
+ func (ctx Context) ResultInt64(value int64) {
68
+ ctx.c.wrp.Xsqlite3_result_int64(
69
+ int32(ctx.handle), value)
70
+ }
71
+
72
+ // ResultFloat sets the result of the function to a float64.
73
+ //
74
+ // https://sqlite.org/c3ref/result_blob.html
75
+ func (ctx Context) ResultFloat(value float64) {
76
+ ctx.c.wrp.Xsqlite3_result_double(
77
+ int32(ctx.handle), value)
78
+ }
79
+
80
+ // ResultText sets the result of the function to a string.
81
+ //
82
+ // https://sqlite.org/c3ref/result_blob.html
83
+ func (ctx Context) ResultText(value string) {
84
+ ptr := ctx.c.wrp.NewString(value)
85
+ ctx.c.wrp.Xsqlite3_result_text_go(
86
+ int32(ctx.handle), int32(ptr), int64(len(value)))
87
+ }
88
+
89
+ // ResultRawText sets the text result of the function to a []byte.
90
+ //
91
+ // https://sqlite.org/c3ref/result_blob.html
92
+ func (ctx Context) ResultRawText(value []byte) {
93
+ ctx.ResultText(string(value)) // does not escape
94
+ }
95
+
96
+ // ResultBlob sets the result of the function to a []byte.
97
+ //
98
+ // https://sqlite.org/c3ref/result_blob.html
99
+ func (ctx Context) ResultBlob(value []byte) {
100
+ if len(value) == 0 {
101
+ ctx.ResultZeroBlob(0)
102
+ return
103
+ }
104
+ ptr := ctx.c.wrp.NewBytes(value)
105
+ ctx.c.wrp.Xsqlite3_result_blob_go(
106
+ int32(ctx.handle), int32(ptr), int64(len(value)))
107
+ }
108
+
109
+ // ResultZeroBlob sets the result of the function to a zero-filled, length n BLOB.
110
+ //
111
+ // https://sqlite.org/c3ref/result_blob.html
112
+ func (ctx Context) ResultZeroBlob(n int64) {
113
+ ctx.c.wrp.Xsqlite3_result_zeroblob64(
114
+ int32(ctx.handle), n)
115
+ }
116
+
117
+ // ResultNull sets the result of the function to NULL.
118
+ //
119
+ // https://sqlite.org/c3ref/result_blob.html
120
+ func (ctx Context) ResultNull() {
121
+ ctx.c.wrp.Xsqlite3_result_null(
122
+ int32(ctx.handle))
123
+ }
124
+
125
+ // ResultTime sets the result of the function to a [time.Time].
126
+ //
127
+ // https://sqlite.org/c3ref/result_blob.html
128
+ func (ctx Context) ResultTime(value time.Time, format TimeFormat) {
129
+ switch format {
130
+ case TimeFormatDefault, TimeFormatAuto, time.RFC3339Nano:
131
+ ctx.resultRFC3339Nano(value)
132
+ return
133
+ }
134
+ switch v := format.Encode(value).(type) {
135
+ case string:
136
+ ctx.ResultText(v)
137
+ case int64:
138
+ ctx.ResultInt64(v)
139
+ case float64:
140
+ ctx.ResultFloat(v)
141
+ default:
142
+ panic(errutil.AssertErr())
143
+ }
144
+ }
145
+
146
+ func (ctx Context) resultRFC3339Nano(value time.Time) {
147
+ const maxlen = 48
148
+ ptr := ctx.c.wrp.New(maxlen)
149
+ buf := ctx.c.wrp.Bytes(ptr, maxlen)
150
+ buf = value.AppendFormat(buf[:0], time.RFC3339Nano)
151
+ _ = append(buf, 0)
152
+
153
+ ctx.c.wrp.Xsqlite3_result_text_go(
154
+ int32(ctx.handle), int32(ptr), int64(len(buf)))
155
+ }
156
+
157
+ // ResultPointer sets the result of the function to NULL, just like [Context.ResultNull],
158
+ // except that it also associates ptr with that NULL value such that it can be retrieved
159
+ // within an application-defined SQL function using [Value.Pointer].
160
+ //
161
+ // https://sqlite.org/c3ref/result_blob.html
162
+ func (ctx Context) ResultPointer(ptr any) {
163
+ valPtr := ctx.c.wrp.AddHandle(ptr)
164
+ ctx.c.wrp.Xsqlite3_result_pointer_go(
165
+ int32(ctx.handle), int32(valPtr))
166
+ }
167
+
168
+ // ResultValue sets the result of the function to a copy of [Value].
169
+ //
170
+ // https://sqlite.org/c3ref/result_blob.html
171
+ func (ctx Context) ResultValue(value Value) {
172
+ if value.c != ctx.c {
173
+ ctx.ResultError(MISUSE)
174
+ return
175
+ }
176
+ ctx.c.wrp.Xsqlite3_result_value(
177
+ int32(ctx.handle), int32(value.handle))
178
+ }
179
+
180
+ // ResultError sets the result of the function an error.
181
+ //
182
+ // https://sqlite.org/c3ref/result_blob.html
183
+ func (ctx Context) ResultError(err error) {
184
+ if errors.Is(err, NOMEM) {
185
+ ctx.c.wrp.Xsqlite3_result_error_nomem(int32(ctx.handle))
186
+ return
187
+ }
188
+
189
+ if errors.Is(err, TOOBIG) {
190
+ ctx.c.wrp.Xsqlite3_result_error_toobig(int32(ctx.handle))
191
+ return
192
+ }
193
+
194
+ msg, code := errorCode(err, ERROR)
195
+ if msg != "" {
196
+ defer ctx.c.arena.Mark()()
197
+ ptr := ctx.c.arena.String(msg)
198
+ ctx.c.wrp.Xsqlite3_result_error(
199
+ int32(ctx.handle), int32(ptr), int32(len(msg)))
200
+ }
201
+ if code != res_t(ERROR) {
202
+ ctx.c.wrp.Xsqlite3_result_error_code(
203
+ int32(ctx.handle), int32(code))
204
+ }
205
+ }
206
+
207
+ // ResultSubtype sets the subtype of the result of the function.
208
+ //
209
+ // https://sqlite.org/c3ref/result_subtype.html
210
+ func (ctx Context) ResultSubtype(t uint) {
211
+ ctx.c.wrp.Xsqlite3_result_subtype(
212
+ int32(ctx.handle), int32(t))
213
+ }
214
+
215
+ // VTabNoChange may return true if a column is being fetched as part
216
+ // of an update during which the column value will not change.
217
+ //
218
+ // https://sqlite.org/c3ref/vtab_nochange.html
219
+ func (ctx Context) VTabNoChange() bool {
220
+ b := ctx.c.wrp.Xsqlite3_vtab_nochange(int32(ctx.handle))
221
+ return b != 0
222
+ }