spindb 0.37.2 → 0.38.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 (811) hide show
  1. package/dist/cli/bin.js +9 -0
  2. package/dist/cli/bin.js.map +1 -0
  3. package/dist/cli/commands/attach.js +102 -0
  4. package/dist/cli/commands/attach.js.map +1 -0
  5. package/dist/cli/commands/backup.js +197 -0
  6. package/dist/cli/commands/backup.js.map +1 -0
  7. package/dist/cli/commands/backups.js +190 -0
  8. package/dist/cli/commands/backups.js.map +1 -0
  9. package/dist/cli/commands/clone.js +119 -0
  10. package/dist/cli/commands/clone.js.map +1 -0
  11. package/dist/cli/commands/config.js +276 -0
  12. package/dist/cli/commands/config.js.map +1 -0
  13. package/dist/cli/commands/connect.js +559 -0
  14. package/dist/cli/commands/connect.js.map +1 -0
  15. package/dist/cli/commands/create.js +952 -0
  16. package/dist/cli/commands/create.js.map +1 -0
  17. package/dist/cli/commands/databases.js +485 -0
  18. package/dist/cli/commands/databases.js.map +1 -0
  19. package/dist/cli/commands/delete.js +106 -0
  20. package/dist/cli/commands/delete.js.map +1 -0
  21. package/dist/cli/commands/deps.js +238 -0
  22. package/dist/cli/commands/deps.js.map +1 -0
  23. package/dist/cli/commands/detach.js +81 -0
  24. package/dist/cli/commands/detach.js.map +1 -0
  25. package/dist/cli/commands/doctor.js +567 -0
  26. package/dist/cli/commands/doctor.js.map +1 -0
  27. package/dist/cli/commands/duckdb.js +207 -0
  28. package/dist/cli/commands/duckdb.js.map +1 -0
  29. package/dist/cli/commands/edit.js +524 -0
  30. package/dist/cli/commands/edit.js.map +1 -0
  31. package/dist/cli/commands/engines.js +1414 -0
  32. package/dist/cli/commands/engines.js.map +1 -0
  33. package/dist/cli/commands/export.js +383 -0
  34. package/dist/cli/commands/export.js.map +1 -0
  35. package/dist/cli/commands/info.js +270 -0
  36. package/dist/cli/commands/info.js.map +1 -0
  37. package/dist/cli/commands/list.js +215 -0
  38. package/dist/cli/commands/list.js.map +1 -0
  39. package/dist/cli/commands/logs.js +81 -0
  40. package/dist/cli/commands/logs.js.map +1 -0
  41. package/dist/cli/commands/menu/backup-handlers.js +1202 -0
  42. package/dist/cli/commands/menu/backup-handlers.js.map +1 -0
  43. package/dist/cli/commands/menu/container-handlers.js +1788 -0
  44. package/dist/cli/commands/menu/container-handlers.js.map +1 -0
  45. package/dist/cli/commands/menu/engine-handlers.js +235 -0
  46. package/dist/cli/commands/menu/engine-handlers.js.map +1 -0
  47. package/dist/cli/commands/menu/index.js +266 -0
  48. package/dist/cli/commands/menu/index.js.map +1 -0
  49. package/dist/cli/commands/menu/settings-handlers.js +320 -0
  50. package/dist/cli/commands/menu/settings-handlers.js.map +1 -0
  51. package/dist/cli/commands/menu/shared.js +13 -0
  52. package/dist/cli/commands/menu/shared.js.map +1 -0
  53. package/dist/cli/commands/menu/shell-handlers.js +1573 -0
  54. package/dist/cli/commands/menu/shell-handlers.js.map +1 -0
  55. package/dist/cli/commands/menu/sql-handlers.js +185 -0
  56. package/dist/cli/commands/menu/sql-handlers.js.map +1 -0
  57. package/dist/cli/commands/menu/update-handlers.js +322 -0
  58. package/dist/cli/commands/menu/update-handlers.js.map +1 -0
  59. package/dist/cli/commands/menu/validators.js +9 -0
  60. package/dist/cli/commands/menu/validators.js.map +1 -0
  61. package/dist/cli/commands/ports.js +166 -0
  62. package/dist/cli/commands/ports.js.map +1 -0
  63. package/dist/cli/commands/pull.js +166 -0
  64. package/dist/cli/commands/pull.js.map +1 -0
  65. package/dist/cli/commands/query.js +180 -0
  66. package/dist/cli/commands/query.js.map +1 -0
  67. package/dist/cli/commands/restore.js +428 -0
  68. package/dist/cli/commands/restore.js.map +1 -0
  69. package/dist/cli/commands/run.js +115 -0
  70. package/dist/cli/commands/run.js.map +1 -0
  71. package/dist/cli/commands/self-update.js +99 -0
  72. package/dist/cli/commands/self-update.js.map +1 -0
  73. package/dist/cli/commands/sqlite.js +207 -0
  74. package/dist/cli/commands/sqlite.js.map +1 -0
  75. package/dist/cli/commands/start.js +196 -0
  76. package/dist/cli/commands/start.js.map +1 -0
  77. package/dist/cli/commands/stop.js +182 -0
  78. package/dist/cli/commands/stop.js.map +1 -0
  79. package/dist/cli/commands/url.js +88 -0
  80. package/dist/cli/commands/url.js.map +1 -0
  81. package/dist/cli/commands/users.js +189 -0
  82. package/dist/cli/commands/users.js.map +1 -0
  83. package/dist/cli/commands/version.js +52 -0
  84. package/dist/cli/commands/version.js.map +1 -0
  85. package/dist/cli/commands/which.js +258 -0
  86. package/dist/cli/commands/which.js.map +1 -0
  87. package/dist/cli/constants.js +212 -0
  88. package/dist/cli/constants.js.map +1 -0
  89. package/dist/cli/helpers.js +1120 -0
  90. package/dist/cli/helpers.js.map +1 -0
  91. package/dist/cli/index.js +146 -0
  92. package/dist/cli/index.js.map +1 -0
  93. package/dist/cli/ui/prompts.js +1002 -0
  94. package/dist/cli/ui/prompts.js.map +1 -0
  95. package/dist/cli/ui/spinner.js +74 -0
  96. package/dist/cli/ui/spinner.js.map +1 -0
  97. package/dist/cli/ui/theme.js +99 -0
  98. package/dist/cli/ui/theme.js.map +1 -0
  99. package/dist/cli/utils/file-follower.js +79 -0
  100. package/dist/cli/utils/file-follower.js.map +1 -0
  101. package/dist/config/backup-formats.js +363 -0
  102. package/dist/config/backup-formats.js.map +1 -0
  103. package/dist/config/defaults.js +25 -0
  104. package/dist/config/defaults.js.map +1 -0
  105. package/dist/config/engine-defaults.js +303 -0
  106. package/dist/config/engine-defaults.js.map +1 -0
  107. package/dist/config/engines-registry.js +103 -0
  108. package/dist/config/engines-registry.js.map +1 -0
  109. package/dist/config/os-dependencies.js +767 -0
  110. package/dist/config/os-dependencies.js.map +1 -0
  111. package/dist/config/paths.js +156 -0
  112. package/dist/config/paths.js.map +1 -0
  113. package/dist/config/version.js +3 -0
  114. package/dist/config/version.js.map +1 -0
  115. package/dist/core/backup-restore.js +219 -0
  116. package/dist/core/backup-restore.js.map +1 -0
  117. package/dist/core/base-binary-manager.js +403 -0
  118. package/dist/core/base-binary-manager.js.map +1 -0
  119. package/dist/core/base-document-binary-manager.js +364 -0
  120. package/dist/core/base-document-binary-manager.js.map +1 -0
  121. package/dist/core/base-embedded-binary-manager.js +364 -0
  122. package/dist/core/base-embedded-binary-manager.js.map +1 -0
  123. package/dist/core/base-server-binary-manager.js +368 -0
  124. package/dist/core/base-server-binary-manager.js.map +1 -0
  125. package/dist/core/config-manager.js +495 -0
  126. package/dist/core/config-manager.js.map +1 -0
  127. package/dist/core/container-manager.js +609 -0
  128. package/dist/core/container-manager.js.map +1 -0
  129. package/dist/core/credential-generator.js +67 -0
  130. package/dist/core/credential-generator.js.map +1 -0
  131. package/dist/core/credential-manager.js +211 -0
  132. package/dist/core/credential-manager.js.map +1 -0
  133. package/dist/core/dblab-utils.js +105 -0
  134. package/dist/core/dblab-utils.js.map +1 -0
  135. package/dist/core/dependency-manager.js +359 -0
  136. package/dist/core/dependency-manager.js.map +1 -0
  137. package/dist/core/docker-exporter.js +1077 -0
  138. package/dist/core/docker-exporter.js.map +1 -0
  139. package/dist/core/error-handler.js +295 -0
  140. package/dist/core/error-handler.js.map +1 -0
  141. package/dist/core/fs-error-utils.js +74 -0
  142. package/dist/core/fs-error-utils.js.map +1 -0
  143. package/dist/core/homebrew-version-manager.js +280 -0
  144. package/dist/core/homebrew-version-manager.js.map +1 -0
  145. package/dist/core/hostdb-client.js +252 -0
  146. package/dist/core/hostdb-client.js.map +1 -0
  147. package/dist/core/hostdb-metadata.js +243 -0
  148. package/dist/core/hostdb-metadata.js.map +1 -0
  149. package/dist/core/hostdb-releases-factory.js +161 -0
  150. package/dist/core/hostdb-releases-factory.js.map +1 -0
  151. package/dist/core/library-env.js +88 -0
  152. package/dist/core/library-env.js.map +1 -0
  153. package/dist/core/pgweb-utils.js +53 -0
  154. package/dist/core/pgweb-utils.js.map +1 -0
  155. package/dist/core/platform-service.js +632 -0
  156. package/dist/core/platform-service.js.map +1 -0
  157. package/dist/core/port-manager.js +136 -0
  158. package/dist/core/port-manager.js.map +1 -0
  159. package/dist/core/process-manager.js +445 -0
  160. package/dist/core/process-manager.js.map +1 -0
  161. package/dist/core/pull-manager.js +418 -0
  162. package/dist/core/pull-manager.js.map +1 -0
  163. package/dist/core/query-parser.js +449 -0
  164. package/dist/core/query-parser.js.map +1 -0
  165. package/dist/core/spawn-utils.js +90 -0
  166. package/dist/core/spawn-utils.js.map +1 -0
  167. package/dist/core/start-with-retry.js +90 -0
  168. package/dist/core/start-with-retry.js.map +1 -0
  169. package/dist/core/test-cleanup.js +85 -0
  170. package/dist/core/test-cleanup.js.map +1 -0
  171. package/dist/core/tls-generator.js +84 -0
  172. package/dist/core/tls-generator.js.map +1 -0
  173. package/dist/core/transaction-manager.js +139 -0
  174. package/dist/core/transaction-manager.js.map +1 -0
  175. package/dist/core/update-manager.js +241 -0
  176. package/dist/core/update-manager.js.map +1 -0
  177. package/dist/core/version-migration.js +260 -0
  178. package/dist/core/version-migration.js.map +1 -0
  179. package/dist/core/version-utils.js +91 -0
  180. package/dist/core/version-utils.js.map +1 -0
  181. package/dist/engines/base-engine.js +179 -0
  182. package/dist/engines/base-engine.js.map +1 -0
  183. package/dist/engines/clickhouse/backup.js +289 -0
  184. package/dist/engines/clickhouse/backup.js.map +1 -0
  185. package/dist/engines/clickhouse/binary-manager.js +145 -0
  186. package/dist/engines/clickhouse/binary-manager.js.map +1 -0
  187. package/dist/engines/clickhouse/binary-urls.js +100 -0
  188. package/dist/engines/clickhouse/binary-urls.js.map +1 -0
  189. package/dist/engines/clickhouse/cli-utils.js +143 -0
  190. package/dist/engines/clickhouse/cli-utils.js.map +1 -0
  191. package/dist/engines/clickhouse/hostdb-releases.js +24 -0
  192. package/dist/engines/clickhouse/hostdb-releases.js.map +1 -0
  193. package/dist/engines/clickhouse/index.js +1077 -0
  194. package/dist/engines/clickhouse/index.js.map +1 -0
  195. package/dist/engines/clickhouse/restore.js +335 -0
  196. package/dist/engines/clickhouse/restore.js.map +1 -0
  197. package/dist/engines/clickhouse/version-maps.js +83 -0
  198. package/dist/engines/clickhouse/version-maps.js.map +1 -0
  199. package/dist/engines/clickhouse/version-validator.js +133 -0
  200. package/dist/engines/clickhouse/version-validator.js.map +1 -0
  201. package/dist/engines/cockroachdb/backup.js +261 -0
  202. package/dist/engines/cockroachdb/backup.js.map +1 -0
  203. package/dist/engines/cockroachdb/binary-manager.js +33 -0
  204. package/dist/engines/cockroachdb/binary-manager.js.map +1 -0
  205. package/dist/engines/cockroachdb/binary-urls.js +33 -0
  206. package/dist/engines/cockroachdb/binary-urls.js.map +1 -0
  207. package/dist/engines/cockroachdb/cli-utils.js +338 -0
  208. package/dist/engines/cockroachdb/cli-utils.js.map +1 -0
  209. package/dist/engines/cockroachdb/hostdb-releases.js +21 -0
  210. package/dist/engines/cockroachdb/hostdb-releases.js.map +1 -0
  211. package/dist/engines/cockroachdb/index.js +1016 -0
  212. package/dist/engines/cockroachdb/index.js.map +1 -0
  213. package/dist/engines/cockroachdb/restore.js +323 -0
  214. package/dist/engines/cockroachdb/restore.js.map +1 -0
  215. package/dist/engines/cockroachdb/version-maps.js +37 -0
  216. package/dist/engines/cockroachdb/version-maps.js.map +1 -0
  217. package/dist/engines/couchdb/api-client.js +64 -0
  218. package/dist/engines/couchdb/api-client.js.map +1 -0
  219. package/dist/engines/couchdb/backup.js +90 -0
  220. package/dist/engines/couchdb/backup.js.map +1 -0
  221. package/dist/engines/couchdb/binary-manager.js +62 -0
  222. package/dist/engines/couchdb/binary-manager.js.map +1 -0
  223. package/dist/engines/couchdb/binary-urls.js +92 -0
  224. package/dist/engines/couchdb/binary-urls.js.map +1 -0
  225. package/dist/engines/couchdb/hostdb-releases.js +21 -0
  226. package/dist/engines/couchdb/hostdb-releases.js.map +1 -0
  227. package/dist/engines/couchdb/index.js +1043 -0
  228. package/dist/engines/couchdb/index.js.map +1 -0
  229. package/dist/engines/couchdb/restore.js +198 -0
  230. package/dist/engines/couchdb/restore.js.map +1 -0
  231. package/dist/engines/couchdb/version-maps.js +67 -0
  232. package/dist/engines/couchdb/version-maps.js.map +1 -0
  233. package/dist/engines/couchdb/version-validator.js +88 -0
  234. package/dist/engines/couchdb/version-validator.js.map +1 -0
  235. package/dist/engines/duckdb/binary-manager.js +33 -0
  236. package/dist/engines/duckdb/binary-manager.js.map +1 -0
  237. package/{engines/duckdb/binary-urls.ts → dist/engines/duckdb/binary-urls.js} +11 -16
  238. package/dist/engines/duckdb/binary-urls.js.map +1 -0
  239. package/dist/engines/duckdb/hostdb-releases.js +21 -0
  240. package/dist/engines/duckdb/hostdb-releases.js.map +1 -0
  241. package/dist/engines/duckdb/index.js +594 -0
  242. package/dist/engines/duckdb/index.js.map +1 -0
  243. package/dist/engines/duckdb/registry.js +265 -0
  244. package/dist/engines/duckdb/registry.js.map +1 -0
  245. package/dist/engines/duckdb/scanner.js +12 -0
  246. package/dist/engines/duckdb/scanner.js.map +1 -0
  247. package/dist/engines/duckdb/version-maps.js +67 -0
  248. package/dist/engines/duckdb/version-maps.js.map +1 -0
  249. package/dist/engines/duckdb/version-validator.js +62 -0
  250. package/dist/engines/duckdb/version-validator.js.map +1 -0
  251. package/dist/engines/ferretdb/backup.js +170 -0
  252. package/dist/engines/ferretdb/backup.js.map +1 -0
  253. package/dist/engines/ferretdb/binary-manager.js +765 -0
  254. package/dist/engines/ferretdb/binary-manager.js.map +1 -0
  255. package/dist/engines/ferretdb/binary-urls.js +135 -0
  256. package/dist/engines/ferretdb/binary-urls.js.map +1 -0
  257. package/dist/engines/ferretdb/index.js +1517 -0
  258. package/dist/engines/ferretdb/index.js.map +1 -0
  259. package/dist/engines/ferretdb/restore.js +310 -0
  260. package/dist/engines/ferretdb/restore.js.map +1 -0
  261. package/{engines/ferretdb/version-maps.ts → dist/engines/ferretdb/version-maps.js} +62 -79
  262. package/dist/engines/ferretdb/version-maps.js.map +1 -0
  263. package/dist/engines/file-based-utils.js +184 -0
  264. package/dist/engines/file-based-utils.js.map +1 -0
  265. package/dist/engines/index.js +124 -0
  266. package/dist/engines/index.js.map +1 -0
  267. package/dist/engines/influxdb/api-client.js +54 -0
  268. package/dist/engines/influxdb/api-client.js.map +1 -0
  269. package/dist/engines/influxdb/backup.js +119 -0
  270. package/dist/engines/influxdb/backup.js.map +1 -0
  271. package/dist/engines/influxdb/binary-manager.js +87 -0
  272. package/dist/engines/influxdb/binary-manager.js.map +1 -0
  273. package/dist/engines/influxdb/binary-urls.js +56 -0
  274. package/dist/engines/influxdb/binary-urls.js.map +1 -0
  275. package/dist/engines/influxdb/hostdb-releases.js +21 -0
  276. package/dist/engines/influxdb/hostdb-releases.js.map +1 -0
  277. package/dist/engines/influxdb/index.js +962 -0
  278. package/dist/engines/influxdb/index.js.map +1 -0
  279. package/dist/engines/influxdb/restore.js +329 -0
  280. package/dist/engines/influxdb/restore.js.map +1 -0
  281. package/dist/engines/influxdb/version-maps.js +64 -0
  282. package/dist/engines/influxdb/version-maps.js.map +1 -0
  283. package/dist/engines/influxdb/version-validator.js +109 -0
  284. package/dist/engines/influxdb/version-validator.js.map +1 -0
  285. package/dist/engines/mariadb/backup.js +178 -0
  286. package/dist/engines/mariadb/backup.js.map +1 -0
  287. package/dist/engines/mariadb/binary-manager.js +33 -0
  288. package/dist/engines/mariadb/binary-manager.js.map +1 -0
  289. package/{engines/mariadb/binary-urls.ts → dist/engines/mariadb/binary-urls.js} +38 -55
  290. package/dist/engines/mariadb/binary-urls.js.map +1 -0
  291. package/dist/engines/mariadb/hostdb-releases.js +21 -0
  292. package/dist/engines/mariadb/hostdb-releases.js.map +1 -0
  293. package/dist/engines/mariadb/index.js +1011 -0
  294. package/dist/engines/mariadb/index.js.map +1 -0
  295. package/dist/engines/mariadb/restore.js +322 -0
  296. package/dist/engines/mariadb/restore.js.map +1 -0
  297. package/dist/engines/mariadb/version-maps.js +63 -0
  298. package/dist/engines/mariadb/version-maps.js.map +1 -0
  299. package/dist/engines/mariadb/version-validator.js +143 -0
  300. package/dist/engines/mariadb/version-validator.js.map +1 -0
  301. package/dist/engines/meilisearch/api-client.js +50 -0
  302. package/dist/engines/meilisearch/api-client.js.map +1 -0
  303. package/dist/engines/meilisearch/backup.js +167 -0
  304. package/dist/engines/meilisearch/backup.js.map +1 -0
  305. package/dist/engines/meilisearch/binary-manager.js +31 -0
  306. package/dist/engines/meilisearch/binary-manager.js.map +1 -0
  307. package/dist/engines/meilisearch/binary-urls.js +56 -0
  308. package/dist/engines/meilisearch/binary-urls.js.map +1 -0
  309. package/dist/engines/meilisearch/hostdb-releases.js +21 -0
  310. package/dist/engines/meilisearch/hostdb-releases.js.map +1 -0
  311. package/dist/engines/meilisearch/index.js +992 -0
  312. package/dist/engines/meilisearch/index.js.map +1 -0
  313. package/dist/engines/meilisearch/restore.js +167 -0
  314. package/dist/engines/meilisearch/restore.js.map +1 -0
  315. package/dist/engines/meilisearch/version-maps.js +67 -0
  316. package/dist/engines/meilisearch/version-maps.js.map +1 -0
  317. package/dist/engines/meilisearch/version-validator.js +109 -0
  318. package/dist/engines/meilisearch/version-validator.js.map +1 -0
  319. package/dist/engines/mongodb/backup.js +109 -0
  320. package/dist/engines/mongodb/backup.js.map +1 -0
  321. package/dist/engines/mongodb/binary-manager.js +36 -0
  322. package/dist/engines/mongodb/binary-manager.js.map +1 -0
  323. package/dist/engines/mongodb/binary-urls.js +46 -0
  324. package/dist/engines/mongodb/binary-urls.js.map +1 -0
  325. package/dist/engines/mongodb/cli-utils.js +131 -0
  326. package/dist/engines/mongodb/cli-utils.js.map +1 -0
  327. package/dist/engines/mongodb/hostdb-releases.js +77 -0
  328. package/dist/engines/mongodb/hostdb-releases.js.map +1 -0
  329. package/dist/engines/mongodb/index.js +873 -0
  330. package/dist/engines/mongodb/index.js.map +1 -0
  331. package/dist/engines/mongodb/restore.js +276 -0
  332. package/dist/engines/mongodb/restore.js.map +1 -0
  333. package/dist/engines/mongodb/version-maps.js +79 -0
  334. package/dist/engines/mongodb/version-maps.js.map +1 -0
  335. package/dist/engines/mongodb/version-validator.js +133 -0
  336. package/dist/engines/mongodb/version-validator.js.map +1 -0
  337. package/dist/engines/mysql/backup.js +210 -0
  338. package/dist/engines/mysql/backup.js.map +1 -0
  339. package/dist/engines/mysql/binary-detection.js +325 -0
  340. package/dist/engines/mysql/binary-detection.js.map +1 -0
  341. package/dist/engines/mysql/binary-manager.js +30 -0
  342. package/dist/engines/mysql/binary-manager.js.map +1 -0
  343. package/dist/engines/mysql/binary-urls.js +87 -0
  344. package/dist/engines/mysql/binary-urls.js.map +1 -0
  345. package/{engines/mysql/hostdb-releases.ts → dist/engines/mysql/hostdb-releases.js} +20 -23
  346. package/dist/engines/mysql/hostdb-releases.js.map +1 -0
  347. package/dist/engines/mysql/index.js +1066 -0
  348. package/dist/engines/mysql/index.js.map +1 -0
  349. package/dist/engines/mysql/restore.js +361 -0
  350. package/dist/engines/mysql/restore.js.map +1 -0
  351. package/dist/engines/mysql/version-maps.js +79 -0
  352. package/dist/engines/mysql/version-maps.js.map +1 -0
  353. package/dist/engines/mysql/version-validator.js +266 -0
  354. package/dist/engines/mysql/version-validator.js.map +1 -0
  355. package/dist/engines/postgresql/backup.js +118 -0
  356. package/dist/engines/postgresql/backup.js.map +1 -0
  357. package/dist/engines/postgresql/binary-manager.js +85 -0
  358. package/dist/engines/postgresql/binary-manager.js.map +1 -0
  359. package/dist/engines/postgresql/binary-urls.js +80 -0
  360. package/dist/engines/postgresql/binary-urls.js.map +1 -0
  361. package/dist/engines/postgresql/hostdb-releases.js +21 -0
  362. package/dist/engines/postgresql/hostdb-releases.js.map +1 -0
  363. package/dist/engines/postgresql/index.js +852 -0
  364. package/dist/engines/postgresql/index.js.map +1 -0
  365. package/dist/engines/postgresql/remote-version.js +109 -0
  366. package/dist/engines/postgresql/remote-version.js.map +1 -0
  367. package/dist/engines/postgresql/restore.js +254 -0
  368. package/dist/engines/postgresql/restore.js.map +1 -0
  369. package/dist/engines/postgresql/version-maps.js +73 -0
  370. package/dist/engines/postgresql/version-maps.js.map +1 -0
  371. package/dist/engines/postgresql/version-validator.js +286 -0
  372. package/dist/engines/postgresql/version-validator.js.map +1 -0
  373. package/dist/engines/qdrant/api-client.js +50 -0
  374. package/dist/engines/qdrant/api-client.js.map +1 -0
  375. package/dist/engines/qdrant/backup.js +115 -0
  376. package/dist/engines/qdrant/backup.js.map +1 -0
  377. package/dist/engines/qdrant/binary-manager.js +31 -0
  378. package/dist/engines/qdrant/binary-manager.js.map +1 -0
  379. package/dist/engines/qdrant/binary-urls.js +92 -0
  380. package/dist/engines/qdrant/binary-urls.js.map +1 -0
  381. package/dist/engines/qdrant/cli-utils.js +39 -0
  382. package/dist/engines/qdrant/cli-utils.js.map +1 -0
  383. package/dist/engines/qdrant/hostdb-releases.js +21 -0
  384. package/dist/engines/qdrant/hostdb-releases.js.map +1 -0
  385. package/dist/engines/qdrant/index.js +1002 -0
  386. package/dist/engines/qdrant/index.js.map +1 -0
  387. package/dist/engines/qdrant/restore.js +154 -0
  388. package/dist/engines/qdrant/restore.js.map +1 -0
  389. package/dist/engines/qdrant/version-maps.js +67 -0
  390. package/dist/engines/qdrant/version-maps.js.map +1 -0
  391. package/dist/engines/qdrant/version-validator.js +109 -0
  392. package/dist/engines/qdrant/version-validator.js.map +1 -0
  393. package/dist/engines/questdb/backup.js +191 -0
  394. package/dist/engines/questdb/backup.js.map +1 -0
  395. package/dist/engines/questdb/binary-manager.js +247 -0
  396. package/dist/engines/questdb/binary-manager.js.map +1 -0
  397. package/dist/engines/questdb/binary-urls.js +27 -0
  398. package/dist/engines/questdb/binary-urls.js.map +1 -0
  399. package/dist/engines/questdb/hostdb-releases.js +21 -0
  400. package/dist/engines/questdb/hostdb-releases.js.map +1 -0
  401. package/dist/engines/questdb/index.js +814 -0
  402. package/dist/engines/questdb/index.js.map +1 -0
  403. package/dist/engines/questdb/restore.js +202 -0
  404. package/dist/engines/questdb/restore.js.map +1 -0
  405. package/dist/engines/questdb/version-maps.js +33 -0
  406. package/dist/engines/questdb/version-maps.js.map +1 -0
  407. package/dist/engines/questdb/version-validator.js +99 -0
  408. package/dist/engines/questdb/version-validator.js.map +1 -0
  409. package/dist/engines/redis/backup.js +292 -0
  410. package/dist/engines/redis/backup.js.map +1 -0
  411. package/dist/engines/redis/binary-manager.js +32 -0
  412. package/dist/engines/redis/binary-manager.js.map +1 -0
  413. package/dist/engines/redis/binary-urls.js +96 -0
  414. package/dist/engines/redis/binary-urls.js.map +1 -0
  415. package/dist/engines/redis/cli-utils.js +38 -0
  416. package/dist/engines/redis/cli-utils.js.map +1 -0
  417. package/dist/engines/redis/hostdb-releases.js +21 -0
  418. package/dist/engines/redis/hostdb-releases.js.map +1 -0
  419. package/dist/engines/redis/index.js +1263 -0
  420. package/dist/engines/redis/index.js.map +1 -0
  421. package/dist/engines/redis/restore.js +338 -0
  422. package/dist/engines/redis/restore.js.map +1 -0
  423. package/dist/engines/redis/version-maps.js +70 -0
  424. package/dist/engines/redis/version-maps.js.map +1 -0
  425. package/dist/engines/redis/version-validator.js +109 -0
  426. package/dist/engines/redis/version-validator.js.map +1 -0
  427. package/dist/engines/sqlite/binary-manager.js +39 -0
  428. package/dist/engines/sqlite/binary-manager.js.map +1 -0
  429. package/{engines/sqlite/binary-urls.ts → dist/engines/sqlite/binary-urls.js} +11 -16
  430. package/dist/engines/sqlite/binary-urls.js.map +1 -0
  431. package/dist/engines/sqlite/hostdb-releases.js +21 -0
  432. package/dist/engines/sqlite/hostdb-releases.js.map +1 -0
  433. package/dist/engines/sqlite/index.js +493 -0
  434. package/dist/engines/sqlite/index.js.map +1 -0
  435. package/dist/engines/sqlite/registry.js +163 -0
  436. package/dist/engines/sqlite/registry.js.map +1 -0
  437. package/dist/engines/sqlite/scanner.js +12 -0
  438. package/dist/engines/sqlite/scanner.js.map +1 -0
  439. package/dist/engines/sqlite/version-maps.js +57 -0
  440. package/dist/engines/sqlite/version-maps.js.map +1 -0
  441. package/dist/engines/surrealdb/backup.js +97 -0
  442. package/dist/engines/surrealdb/backup.js.map +1 -0
  443. package/dist/engines/surrealdb/binary-manager.js +33 -0
  444. package/dist/engines/surrealdb/binary-manager.js.map +1 -0
  445. package/dist/engines/surrealdb/binary-urls.js +33 -0
  446. package/dist/engines/surrealdb/binary-urls.js.map +1 -0
  447. package/dist/engines/surrealdb/cli-utils.js +147 -0
  448. package/dist/engines/surrealdb/cli-utils.js.map +1 -0
  449. package/dist/engines/surrealdb/hostdb-releases.js +21 -0
  450. package/dist/engines/surrealdb/hostdb-releases.js.map +1 -0
  451. package/dist/engines/surrealdb/index.js +1022 -0
  452. package/dist/engines/surrealdb/index.js.map +1 -0
  453. package/dist/engines/surrealdb/restore.js +224 -0
  454. package/dist/engines/surrealdb/restore.js.map +1 -0
  455. package/dist/engines/surrealdb/version-maps.js +36 -0
  456. package/dist/engines/surrealdb/version-maps.js.map +1 -0
  457. package/dist/engines/tigerbeetle/backup.js +36 -0
  458. package/dist/engines/tigerbeetle/backup.js.map +1 -0
  459. package/dist/engines/tigerbeetle/binary-manager.js +72 -0
  460. package/dist/engines/tigerbeetle/binary-manager.js.map +1 -0
  461. package/dist/engines/tigerbeetle/binary-urls.js +49 -0
  462. package/dist/engines/tigerbeetle/binary-urls.js.map +1 -0
  463. package/dist/engines/tigerbeetle/hostdb-releases.js +21 -0
  464. package/dist/engines/tigerbeetle/hostdb-releases.js.map +1 -0
  465. package/dist/engines/tigerbeetle/index.js +559 -0
  466. package/dist/engines/tigerbeetle/index.js.map +1 -0
  467. package/dist/engines/tigerbeetle/restore.js +91 -0
  468. package/dist/engines/tigerbeetle/restore.js.map +1 -0
  469. package/{engines/tigerbeetle/version-maps.ts → dist/engines/tigerbeetle/version-maps.js} +22 -31
  470. package/dist/engines/tigerbeetle/version-maps.js.map +1 -0
  471. package/dist/engines/tigerbeetle/version-validator.js +108 -0
  472. package/dist/engines/tigerbeetle/version-validator.js.map +1 -0
  473. package/dist/engines/typedb/backup.js +129 -0
  474. package/dist/engines/typedb/backup.js.map +1 -0
  475. package/dist/engines/typedb/binary-manager.js +151 -0
  476. package/dist/engines/typedb/binary-manager.js.map +1 -0
  477. package/dist/engines/typedb/binary-urls.js +33 -0
  478. package/dist/engines/typedb/binary-urls.js.map +1 -0
  479. package/dist/engines/typedb/cli-utils.js +163 -0
  480. package/dist/engines/typedb/cli-utils.js.map +1 -0
  481. package/dist/engines/typedb/hostdb-releases.js +21 -0
  482. package/dist/engines/typedb/hostdb-releases.js.map +1 -0
  483. package/dist/engines/typedb/index.js +1003 -0
  484. package/dist/engines/typedb/index.js.map +1 -0
  485. package/dist/engines/typedb/restore.js +279 -0
  486. package/dist/engines/typedb/restore.js.map +1 -0
  487. package/dist/engines/typedb/version-maps.js +40 -0
  488. package/dist/engines/typedb/version-maps.js.map +1 -0
  489. package/dist/engines/typedb/version-validator.js +103 -0
  490. package/dist/engines/typedb/version-validator.js.map +1 -0
  491. package/dist/engines/valkey/backup.js +292 -0
  492. package/dist/engines/valkey/backup.js.map +1 -0
  493. package/dist/engines/valkey/binary-manager.js +33 -0
  494. package/dist/engines/valkey/binary-manager.js.map +1 -0
  495. package/dist/engines/valkey/binary-urls.js +98 -0
  496. package/dist/engines/valkey/binary-urls.js.map +1 -0
  497. package/dist/engines/valkey/cli-utils.js +38 -0
  498. package/dist/engines/valkey/cli-utils.js.map +1 -0
  499. package/dist/engines/valkey/hostdb-releases.js +21 -0
  500. package/dist/engines/valkey/hostdb-releases.js.map +1 -0
  501. package/dist/engines/valkey/index.js +1257 -0
  502. package/dist/engines/valkey/index.js.map +1 -0
  503. package/dist/engines/valkey/restore.js +340 -0
  504. package/dist/engines/valkey/restore.js.map +1 -0
  505. package/dist/engines/valkey/version-maps.js +70 -0
  506. package/dist/engines/valkey/version-maps.js.map +1 -0
  507. package/dist/engines/valkey/version-validator.js +112 -0
  508. package/dist/engines/valkey/version-validator.js.map +1 -0
  509. package/dist/engines/weaviate/api-client.js +50 -0
  510. package/dist/engines/weaviate/api-client.js.map +1 -0
  511. package/dist/engines/weaviate/backup.js +95 -0
  512. package/dist/engines/weaviate/backup.js.map +1 -0
  513. package/dist/engines/weaviate/binary-manager.js +58 -0
  514. package/dist/engines/weaviate/binary-manager.js.map +1 -0
  515. package/dist/engines/weaviate/binary-urls.js +92 -0
  516. package/dist/engines/weaviate/binary-urls.js.map +1 -0
  517. package/dist/engines/weaviate/cli-utils.js +39 -0
  518. package/dist/engines/weaviate/cli-utils.js.map +1 -0
  519. package/dist/engines/weaviate/hostdb-releases.js +21 -0
  520. package/dist/engines/weaviate/hostdb-releases.js.map +1 -0
  521. package/dist/engines/weaviate/index.js +871 -0
  522. package/dist/engines/weaviate/index.js.map +1 -0
  523. package/dist/engines/weaviate/restore.js +185 -0
  524. package/dist/engines/weaviate/restore.js.map +1 -0
  525. package/dist/engines/weaviate/version-maps.js +67 -0
  526. package/dist/engines/weaviate/version-maps.js.map +1 -0
  527. package/dist/engines/weaviate/version-validator.js +109 -0
  528. package/dist/engines/weaviate/version-validator.js.map +1 -0
  529. package/dist/types/index.js +102 -0
  530. package/dist/types/index.js.map +1 -0
  531. package/package.json +12 -9
  532. package/bin/cli.js +0 -68
  533. package/cli/bin.ts +0 -10
  534. package/cli/commands/attach.ts +0 -139
  535. package/cli/commands/backup.ts +0 -290
  536. package/cli/commands/backups.ts +0 -247
  537. package/cli/commands/clone.ts +0 -159
  538. package/cli/commands/config.ts +0 -367
  539. package/cli/commands/connect.ts +0 -684
  540. package/cli/commands/create.ts +0 -1201
  541. package/cli/commands/databases.ts +0 -630
  542. package/cli/commands/delete.ts +0 -133
  543. package/cli/commands/deps.ts +0 -342
  544. package/cli/commands/detach.ts +0 -107
  545. package/cli/commands/doctor.ts +0 -689
  546. package/cli/commands/duckdb.ts +0 -273
  547. package/cli/commands/edit.ts +0 -683
  548. package/cli/commands/engines.ts +0 -1914
  549. package/cli/commands/export.ts +0 -544
  550. package/cli/commands/info.ts +0 -340
  551. package/cli/commands/list.ts +0 -284
  552. package/cli/commands/logs.ts +0 -102
  553. package/cli/commands/menu/backup-handlers.ts +0 -1571
  554. package/cli/commands/menu/container-handlers.ts +0 -2288
  555. package/cli/commands/menu/engine-handlers.ts +0 -355
  556. package/cli/commands/menu/index.ts +0 -342
  557. package/cli/commands/menu/settings-handlers.ts +0 -365
  558. package/cli/commands/menu/shared.ts +0 -23
  559. package/cli/commands/menu/shell-handlers.ts +0 -1811
  560. package/cli/commands/menu/sql-handlers.ts +0 -231
  561. package/cli/commands/menu/update-handlers.ts +0 -378
  562. package/cli/commands/menu/validators.ts +0 -8
  563. package/cli/commands/ports.ts +0 -211
  564. package/cli/commands/pull.ts +0 -223
  565. package/cli/commands/query.ts +0 -241
  566. package/cli/commands/restore.ts +0 -587
  567. package/cli/commands/run.ts +0 -178
  568. package/cli/commands/self-update.ts +0 -121
  569. package/cli/commands/sqlite.ts +0 -273
  570. package/cli/commands/start.ts +0 -218
  571. package/cli/commands/stop.ts +0 -241
  572. package/cli/commands/url.ts +0 -104
  573. package/cli/commands/users.ts +0 -264
  574. package/cli/commands/version.ts +0 -55
  575. package/cli/commands/which.ts +0 -290
  576. package/cli/constants.ts +0 -233
  577. package/cli/helpers.ts +0 -1593
  578. package/cli/index.ts +0 -162
  579. package/cli/ui/prompts.ts +0 -1525
  580. package/cli/ui/spinner.ts +0 -88
  581. package/cli/ui/theme.ts +0 -128
  582. package/cli/utils/file-follower.ts +0 -93
  583. package/config/backup-formats.ts +0 -446
  584. package/config/defaults.ts +0 -56
  585. package/config/engine-defaults.ts +0 -336
  586. package/config/engines-registry.ts +0 -150
  587. package/config/engines.schema.json +0 -135
  588. package/config/os-dependencies.ts +0 -888
  589. package/config/paths.ts +0 -200
  590. package/core/backup-restore.ts +0 -330
  591. package/core/base-binary-manager.ts +0 -562
  592. package/core/base-document-binary-manager.ts +0 -523
  593. package/core/base-embedded-binary-manager.ts +0 -547
  594. package/core/base-server-binary-manager.ts +0 -523
  595. package/core/config-manager.ts +0 -652
  596. package/core/container-manager.ts +0 -787
  597. package/core/credential-generator.ts +0 -93
  598. package/core/credential-manager.ts +0 -259
  599. package/core/dblab-utils.ts +0 -113
  600. package/core/dependency-manager.ts +0 -512
  601. package/core/docker-exporter.ts +0 -1345
  602. package/core/error-handler.ts +0 -419
  603. package/core/fs-error-utils.ts +0 -82
  604. package/core/homebrew-version-manager.ts +0 -352
  605. package/core/hostdb-client.ts +0 -344
  606. package/core/hostdb-metadata.ts +0 -350
  607. package/core/hostdb-releases-factory.ts +0 -237
  608. package/core/library-env.ts +0 -118
  609. package/core/pgweb-utils.ts +0 -62
  610. package/core/platform-service.ts +0 -829
  611. package/core/port-manager.ts +0 -165
  612. package/core/process-manager.ts +0 -576
  613. package/core/pull-manager.ts +0 -511
  614. package/core/query-parser.ts +0 -514
  615. package/core/spawn-utils.ts +0 -122
  616. package/core/start-with-retry.ts +0 -130
  617. package/core/test-cleanup.ts +0 -108
  618. package/core/tls-generator.ts +0 -116
  619. package/core/transaction-manager.ts +0 -158
  620. package/core/update-manager.ts +0 -308
  621. package/core/version-migration.ts +0 -346
  622. package/core/version-utils.ts +0 -104
  623. package/engines/base-engine.ts +0 -340
  624. package/engines/clickhouse/README.md +0 -231
  625. package/engines/clickhouse/backup.ts +0 -398
  626. package/engines/clickhouse/binary-manager.ts +0 -201
  627. package/engines/clickhouse/binary-urls.ts +0 -125
  628. package/engines/clickhouse/cli-utils.ts +0 -176
  629. package/engines/clickhouse/hostdb-releases.ts +0 -30
  630. package/engines/clickhouse/index.ts +0 -1345
  631. package/engines/clickhouse/restore.ts +0 -466
  632. package/engines/clickhouse/version-maps.ts +0 -95
  633. package/engines/clickhouse/version-validator.ts +0 -154
  634. package/engines/cockroachdb/README.md +0 -170
  635. package/engines/cockroachdb/backup.ts +0 -376
  636. package/engines/cockroachdb/binary-manager.ts +0 -45
  637. package/engines/cockroachdb/binary-urls.ts +0 -40
  638. package/engines/cockroachdb/cli-utils.ts +0 -384
  639. package/engines/cockroachdb/hostdb-releases.ts +0 -26
  640. package/engines/cockroachdb/index.ts +0 -1276
  641. package/engines/cockroachdb/restore.ts +0 -455
  642. package/engines/cockroachdb/version-maps.ts +0 -42
  643. package/engines/couchdb/README.md +0 -257
  644. package/engines/couchdb/api-client.ts +0 -81
  645. package/engines/couchdb/backup.ts +0 -137
  646. package/engines/couchdb/binary-manager.ts +0 -86
  647. package/engines/couchdb/binary-urls.ts +0 -115
  648. package/engines/couchdb/hostdb-releases.ts +0 -23
  649. package/engines/couchdb/index.ts +0 -1429
  650. package/engines/couchdb/restore.ts +0 -290
  651. package/engines/couchdb/version-maps.ts +0 -78
  652. package/engines/couchdb/version-validator.ts +0 -111
  653. package/engines/duckdb/README.md +0 -154
  654. package/engines/duckdb/binary-manager.ts +0 -45
  655. package/engines/duckdb/hostdb-releases.ts +0 -23
  656. package/engines/duckdb/index.ts +0 -749
  657. package/engines/duckdb/registry.ts +0 -303
  658. package/engines/duckdb/scanner.ts +0 -22
  659. package/engines/duckdb/version-maps.ts +0 -78
  660. package/engines/duckdb/version-validator.ts +0 -78
  661. package/engines/ferretdb/README.md +0 -262
  662. package/engines/ferretdb/backup.ts +0 -173
  663. package/engines/ferretdb/binary-manager.ts +0 -1095
  664. package/engines/ferretdb/binary-urls.ts +0 -183
  665. package/engines/ferretdb/index.ts +0 -1907
  666. package/engines/ferretdb/restore.ts +0 -357
  667. package/engines/file-based-utils.ts +0 -262
  668. package/engines/index.ts +0 -131
  669. package/engines/influxdb/README.md +0 -180
  670. package/engines/influxdb/api-client.ts +0 -64
  671. package/engines/influxdb/backup.ts +0 -160
  672. package/engines/influxdb/binary-manager.ts +0 -110
  673. package/engines/influxdb/binary-urls.ts +0 -69
  674. package/engines/influxdb/hostdb-releases.ts +0 -23
  675. package/engines/influxdb/index.ts +0 -1272
  676. package/engines/influxdb/restore.ts +0 -417
  677. package/engines/influxdb/version-maps.ts +0 -75
  678. package/engines/influxdb/version-validator.ts +0 -128
  679. package/engines/mariadb/README.md +0 -141
  680. package/engines/mariadb/backup.ts +0 -233
  681. package/engines/mariadb/binary-manager.ts +0 -45
  682. package/engines/mariadb/hostdb-releases.ts +0 -23
  683. package/engines/mariadb/index.ts +0 -1300
  684. package/engines/mariadb/restore.ts +0 -447
  685. package/engines/mariadb/version-maps.ts +0 -72
  686. package/engines/mariadb/version-validator.ts +0 -181
  687. package/engines/meilisearch/README.md +0 -255
  688. package/engines/meilisearch/api-client.ts +0 -61
  689. package/engines/meilisearch/backup.ts +0 -233
  690. package/engines/meilisearch/binary-manager.ts +0 -43
  691. package/engines/meilisearch/binary-urls.ts +0 -69
  692. package/engines/meilisearch/hostdb-releases.ts +0 -26
  693. package/engines/meilisearch/index.ts +0 -1292
  694. package/engines/meilisearch/restore.ts +0 -219
  695. package/engines/meilisearch/version-maps.ts +0 -78
  696. package/engines/meilisearch/version-validator.ts +0 -128
  697. package/engines/mongodb/README.md +0 -162
  698. package/engines/mongodb/backup.ts +0 -127
  699. package/engines/mongodb/binary-manager.ts +0 -48
  700. package/engines/mongodb/binary-urls.ts +0 -63
  701. package/engines/mongodb/cli-utils.ts +0 -171
  702. package/engines/mongodb/hostdb-releases.ts +0 -91
  703. package/engines/mongodb/index.ts +0 -1118
  704. package/engines/mongodb/restore.ts +0 -361
  705. package/engines/mongodb/version-maps.ts +0 -91
  706. package/engines/mongodb/version-validator.ts +0 -160
  707. package/engines/mysql/README.md +0 -142
  708. package/engines/mysql/backup.ts +0 -270
  709. package/engines/mysql/binary-detection.ts +0 -408
  710. package/engines/mysql/binary-manager.ts +0 -42
  711. package/engines/mysql/binary-urls.ts +0 -104
  712. package/engines/mysql/index.ts +0 -1361
  713. package/engines/mysql/restore.ts +0 -500
  714. package/engines/mysql/version-maps.ts +0 -91
  715. package/engines/mysql/version-validator.ts +0 -369
  716. package/engines/postgresql/README.md +0 -158
  717. package/engines/postgresql/backup.ts +0 -151
  718. package/engines/postgresql/binary-manager.ts +0 -114
  719. package/engines/postgresql/binary-urls.ts +0 -99
  720. package/engines/postgresql/hostdb-releases.ts +0 -26
  721. package/engines/postgresql/index.ts +0 -1143
  722. package/engines/postgresql/remote-version.ts +0 -161
  723. package/engines/postgresql/restore.ts +0 -342
  724. package/engines/postgresql/version-maps.ts +0 -83
  725. package/engines/postgresql/version-validator.ts +0 -413
  726. package/engines/qdrant/README.md +0 -222
  727. package/engines/qdrant/api-client.ts +0 -61
  728. package/engines/qdrant/backup.ts +0 -165
  729. package/engines/qdrant/binary-manager.ts +0 -43
  730. package/engines/qdrant/binary-urls.ts +0 -115
  731. package/engines/qdrant/cli-utils.ts +0 -43
  732. package/engines/qdrant/hostdb-releases.ts +0 -23
  733. package/engines/qdrant/index.ts +0 -1312
  734. package/engines/qdrant/restore.ts +0 -203
  735. package/engines/qdrant/version-maps.ts +0 -78
  736. package/engines/qdrant/version-validator.ts +0 -128
  737. package/engines/questdb/README.md +0 -334
  738. package/engines/questdb/backup.ts +0 -220
  739. package/engines/questdb/binary-manager.ts +0 -310
  740. package/engines/questdb/binary-urls.ts +0 -34
  741. package/engines/questdb/hostdb-releases.ts +0 -23
  742. package/engines/questdb/index.ts +0 -1023
  743. package/engines/questdb/restore.ts +0 -260
  744. package/engines/questdb/version-maps.ts +0 -37
  745. package/engines/questdb/version-validator.ts +0 -121
  746. package/engines/redis/README.md +0 -173
  747. package/engines/redis/backup.ts +0 -389
  748. package/engines/redis/binary-manager.ts +0 -44
  749. package/engines/redis/binary-urls.ts +0 -117
  750. package/engines/redis/cli-utils.ts +0 -42
  751. package/engines/redis/hostdb-releases.ts +0 -23
  752. package/engines/redis/index.ts +0 -1583
  753. package/engines/redis/restore.ts +0 -443
  754. package/engines/redis/version-maps.ts +0 -81
  755. package/engines/redis/version-validator.ts +0 -131
  756. package/engines/sqlite/README.md +0 -162
  757. package/engines/sqlite/binary-manager.ts +0 -52
  758. package/engines/sqlite/hostdb-releases.ts +0 -23
  759. package/engines/sqlite/index.ts +0 -641
  760. package/engines/sqlite/registry.ts +0 -198
  761. package/engines/sqlite/scanner.ts +0 -22
  762. package/engines/sqlite/version-maps.ts +0 -64
  763. package/engines/surrealdb/README.md +0 -218
  764. package/engines/surrealdb/backup.ts +0 -131
  765. package/engines/surrealdb/binary-manager.ts +0 -45
  766. package/engines/surrealdb/binary-urls.ts +0 -40
  767. package/engines/surrealdb/cli-utils.ts +0 -173
  768. package/engines/surrealdb/hostdb-releases.ts +0 -23
  769. package/engines/surrealdb/index.ts +0 -1246
  770. package/engines/surrealdb/restore.ts +0 -302
  771. package/engines/surrealdb/version-maps.ts +0 -41
  772. package/engines/tigerbeetle/README.md +0 -61
  773. package/engines/tigerbeetle/backup.ts +0 -49
  774. package/engines/tigerbeetle/binary-manager.ts +0 -95
  775. package/engines/tigerbeetle/binary-urls.ts +0 -62
  776. package/engines/tigerbeetle/hostdb-releases.ts +0 -26
  777. package/engines/tigerbeetle/index.ts +0 -746
  778. package/engines/tigerbeetle/restore.ts +0 -130
  779. package/engines/tigerbeetle/version-validator.ts +0 -126
  780. package/engines/typedb/backup.ts +0 -167
  781. package/engines/typedb/binary-manager.ts +0 -200
  782. package/engines/typedb/binary-urls.ts +0 -40
  783. package/engines/typedb/cli-utils.ts +0 -210
  784. package/engines/typedb/hostdb-releases.ts +0 -23
  785. package/engines/typedb/index.ts +0 -1275
  786. package/engines/typedb/restore.ts +0 -377
  787. package/engines/typedb/version-maps.ts +0 -48
  788. package/engines/typedb/version-validator.ts +0 -127
  789. package/engines/valkey/README.md +0 -219
  790. package/engines/valkey/backup.ts +0 -389
  791. package/engines/valkey/binary-manager.ts +0 -45
  792. package/engines/valkey/binary-urls.ts +0 -122
  793. package/engines/valkey/cli-utils.ts +0 -42
  794. package/engines/valkey/hostdb-releases.ts +0 -23
  795. package/engines/valkey/index.ts +0 -1585
  796. package/engines/valkey/restore.ts +0 -446
  797. package/engines/valkey/version-maps.ts +0 -81
  798. package/engines/valkey/version-validator.ts +0 -131
  799. package/engines/weaviate/README.md +0 -302
  800. package/engines/weaviate/api-client.ts +0 -61
  801. package/engines/weaviate/backup.ts +0 -145
  802. package/engines/weaviate/binary-manager.ts +0 -80
  803. package/engines/weaviate/binary-urls.ts +0 -115
  804. package/engines/weaviate/cli-utils.ts +0 -43
  805. package/engines/weaviate/hostdb-releases.ts +0 -23
  806. package/engines/weaviate/index.ts +0 -1139
  807. package/engines/weaviate/restore.ts +0 -235
  808. package/engines/weaviate/version-maps.ts +0 -78
  809. package/engines/weaviate/version-validator.ts +0 -128
  810. package/types/index.ts +0 -624
  811. /package/{config → dist/config}/engines.json +0 -0
@@ -1,746 +0,0 @@
1
- /**
2
- * TigerBeetle Engine Implementation
3
- *
4
- * TigerBeetle is a high-performance financial ledger database written in Zig,
5
- * with a custom binary protocol (not REST, not SQL).
6
- *
7
- * Key characteristics:
8
- * - Default port: 3000
9
- * - Single binary: `tigerbeetle` (server + REPL client)
10
- * - Two-step init: `tigerbeetle format` then `tigerbeetle start`
11
- * - No auth, no multi-database, custom binary protocol
12
- * - Health check: PID + TCP port (no HTTP endpoint)
13
- * - Backup: stop-and-copy of single data file
14
- * - REPL: `tigerbeetle repl --cluster=0 --addresses=port`
15
- * - `--development` flag required for local dev
16
- * - Abrupt shutdown (SIGTERM/SIGKILL) is safe by design
17
- */
18
-
19
- import { spawn, execFileSync, type SpawnOptions } from 'child_process'
20
- import { existsSync, openSync, closeSync } from 'fs'
21
- import { mkdir, writeFile, readFile, unlink, stat } from 'fs/promises'
22
- import { join } from 'path'
23
- import { BaseEngine } from '../base-engine'
24
- import { paths } from '../../config/paths'
25
- import { getEngineDefaults } from '../../config/defaults'
26
- import { platformService, isWindows } from '../../core/platform-service'
27
- import { configManager } from '../../core/config-manager'
28
- import { logDebug, logWarning } from '../../core/error-handler'
29
- import { processManager } from '../../core/process-manager'
30
- import { portManager } from '../../core/port-manager'
31
- import { tigerbeetleBinaryManager } from './binary-manager'
32
- import { getBinaryUrl } from './binary-urls'
33
- import {
34
- normalizeVersion,
35
- SUPPORTED_MAJOR_VERSIONS,
36
- TIGERBEETLE_VERSION_MAP,
37
- } from './version-maps'
38
- import { fetchAvailableVersions as fetchHostdbVersions } from './hostdb-releases'
39
- import {
40
- detectBackupFormat as detectBackupFormatImpl,
41
- restoreBackup,
42
- } from './restore'
43
- import { createBackup } from './backup'
44
- import {
45
- type Platform,
46
- type Arch,
47
- type ContainerConfig,
48
- type ProgressCallback,
49
- type BackupFormat,
50
- type BackupOptions,
51
- type BackupResult,
52
- type RestoreResult,
53
- type DumpResult,
54
- type StatusResult,
55
- type QueryResult,
56
- type QueryOptions,
57
- type CreateUserOptions,
58
- type UserCredentials,
59
- } from '../../types'
60
-
61
- const ENGINE = 'tigerbeetle'
62
- const engineDef = getEngineDefaults(ENGINE)
63
-
64
- /**
65
- * Default cluster ID for local single-node development.
66
- * TigerBeetle requires a cluster ID for format, start, and REPL commands.
67
- * Cluster 0 is the standard default for local/single-node usage.
68
- */
69
- const DEFAULT_CLUSTER_ID = 0
70
-
71
- export class TigerBeetleEngine extends BaseEngine {
72
- name = ENGINE
73
- displayName = 'TigerBeetle'
74
- defaultPort = engineDef.defaultPort
75
- supportedVersions = SUPPORTED_MAJOR_VERSIONS
76
-
77
- getPlatformInfo(): { platform: Platform; arch: Arch } {
78
- return platformService.getPlatformInfo()
79
- }
80
-
81
- async fetchAvailableVersions(): Promise<Record<string, string[]>> {
82
- return fetchHostdbVersions()
83
- }
84
-
85
- getBinaryUrl(version: string, platform: Platform, arch: Arch): string {
86
- return getBinaryUrl(version, platform, arch)
87
- }
88
-
89
- resolveFullVersion(version: string): string {
90
- if (/^\d+\.\d+\.\d+$/.test(version)) {
91
- return version
92
- }
93
- return TIGERBEETLE_VERSION_MAP[version] || version
94
- }
95
-
96
- getBinaryPath(version: string): string {
97
- const fullVersion = this.resolveFullVersion(version)
98
- const { platform: p, arch: a } = this.getPlatformInfo()
99
- return paths.getBinaryPath({
100
- engine: 'tigerbeetle',
101
- version: fullVersion,
102
- platform: p,
103
- arch: a,
104
- })
105
- }
106
-
107
- async verifyBinary(binPath: string): Promise<boolean> {
108
- const ext = platformService.getExecutableExtension()
109
- const serverPath = join(binPath, 'bin', `tigerbeetle${ext}`)
110
- return existsSync(serverPath)
111
- }
112
-
113
- async isBinaryInstalled(version: string): Promise<boolean> {
114
- const { platform, arch } = this.getPlatformInfo()
115
- return tigerbeetleBinaryManager.isInstalled(version, platform, arch)
116
- }
117
-
118
- async ensureBinaries(
119
- version: string,
120
- onProgress?: ProgressCallback,
121
- ): Promise<string> {
122
- const { platform, arch } = this.getPlatformInfo()
123
-
124
- const binPath = await tigerbeetleBinaryManager.ensureInstalled(
125
- version,
126
- platform,
127
- arch,
128
- onProgress,
129
- )
130
-
131
- // Register binary in config
132
- const ext = platformService.getExecutableExtension()
133
- const toolPath = join(binPath, 'bin', `tigerbeetle${ext}`)
134
- if (existsSync(toolPath)) {
135
- await configManager.setBinaryPath('tigerbeetle', toolPath, 'bundled')
136
- }
137
-
138
- return binPath
139
- }
140
-
141
- /**
142
- * Initialize a new TigerBeetle data directory.
143
- * Creates the directory and runs `tigerbeetle format` to initialize the data file.
144
- */
145
- async initDataDir(
146
- containerName: string,
147
- version: string,
148
- _options: Record<string, unknown> = {},
149
- ): Promise<string> {
150
- const dataDir = paths.getContainerDataPath(containerName, {
151
- engine: ENGINE,
152
- })
153
-
154
- // Create data directory if it doesn't exist
155
- if (!existsSync(dataDir)) {
156
- await mkdir(dataDir, { recursive: true })
157
- logDebug(`Created TigerBeetle data directory: ${dataDir}`)
158
- }
159
-
160
- const dataFile = join(dataDir, '0_0.tigerbeetle')
161
-
162
- // Skip format if data file already exists (e.g., restoring from backup)
163
- if (existsSync(dataFile)) {
164
- logDebug(`TigerBeetle data file already exists: ${dataFile}`)
165
- return dataDir
166
- }
167
-
168
- // Get binary path for format command
169
- const tigerbeetleBinary = await this.getTigerBeetlePath(version)
170
-
171
- // Run tigerbeetle format to initialize the data file
172
- logDebug(`Formatting TigerBeetle data file: ${dataFile}`)
173
-
174
- try {
175
- execFileSync(
176
- tigerbeetleBinary,
177
- [
178
- 'format',
179
- `--cluster=${DEFAULT_CLUSTER_ID}`,
180
- '--replica=0',
181
- '--replica-count=1',
182
- '--development',
183
- dataFile,
184
- ],
185
- {
186
- timeout: 30000,
187
- encoding: 'utf-8',
188
- stdio: ['ignore', 'pipe', 'pipe'],
189
- },
190
- )
191
- logDebug(`TigerBeetle data file formatted successfully: ${dataFile}`)
192
- } catch (error) {
193
- const msg = error instanceof Error ? error.message : String(error)
194
- if (msg.includes('PermissionDenied')) {
195
- throw new Error(
196
- "TigerBeetle requires io_uring syscalls which are blocked by Docker's default seccomp profile.\n" +
197
- 'Run your container with: docker run --security-opt seccomp=unconfined ...',
198
- )
199
- }
200
- throw new Error(`Failed to format TigerBeetle data file: ${msg}`)
201
- }
202
-
203
- return dataDir
204
- }
205
-
206
- // Get the path to tigerbeetle binary for a version
207
- async getTigerBeetlePath(version: string): Promise<string> {
208
- // Check config cache first
209
- const cached = await configManager.getBinaryPath('tigerbeetle')
210
- if (cached && existsSync(cached)) {
211
- return cached
212
- }
213
-
214
- const { platform, arch } = this.getPlatformInfo()
215
- const fullVersion = normalizeVersion(version)
216
- const ext = platformService.getExecutableExtension()
217
-
218
- const binPath = paths.getBinaryPath({
219
- engine: 'tigerbeetle',
220
- version: fullVersion,
221
- platform,
222
- arch,
223
- })
224
- const tigerbeetlePath = join(binPath, 'bin', `tigerbeetle${ext}`)
225
-
226
- if (existsSync(tigerbeetlePath)) {
227
- return tigerbeetlePath
228
- }
229
-
230
- throw new Error(
231
- `TigerBeetle ${version} is not installed. Run: spindb engines download tigerbeetle ${version}`,
232
- )
233
- }
234
-
235
- /**
236
- * Start TigerBeetle server
237
- */
238
- async start(
239
- container: ContainerConfig,
240
- onProgress?: ProgressCallback,
241
- ): Promise<{ port: number; connectionString: string }> {
242
- const { name, port, version, binaryPath } = container
243
-
244
- // Check if already running (idempotent behavior)
245
- const alreadyRunning = await processManager.isRunning(name, {
246
- engine: ENGINE,
247
- })
248
- if (alreadyRunning) {
249
- return {
250
- port,
251
- connectionString: this.getConnectionString(container),
252
- }
253
- }
254
-
255
- // Get TigerBeetle binary path
256
- let tigerbeetleBinary: string | null = null
257
- const ext = platformService.getExecutableExtension()
258
-
259
- if (binaryPath && existsSync(binaryPath)) {
260
- const serverPath = join(binaryPath, 'bin', `tigerbeetle${ext}`)
261
- if (existsSync(serverPath)) {
262
- tigerbeetleBinary = serverPath
263
- logDebug(`Using stored binary path: ${tigerbeetleBinary}`)
264
- }
265
- }
266
-
267
- if (!tigerbeetleBinary) {
268
- try {
269
- tigerbeetleBinary = await this.getTigerBeetlePath(version)
270
- } catch (error) {
271
- const originalMessage =
272
- error instanceof Error ? error.message : String(error)
273
- throw new Error(
274
- `TigerBeetle ${version} is not installed. Run: spindb engines download tigerbeetle ${version}\n` +
275
- ` Original error: ${originalMessage}`,
276
- )
277
- }
278
- }
279
-
280
- const containerDir = paths.getContainerPath(name, { engine: ENGINE })
281
- const dataDir = paths.getContainerDataPath(name, { engine: ENGINE })
282
- const logFile = paths.getContainerLogPath(name, { engine: ENGINE })
283
- const pidFile = join(containerDir, 'tigerbeetle.pid')
284
- const dataFile = join(dataDir, '0_0.tigerbeetle')
285
-
286
- if (!existsSync(dataFile)) {
287
- throw new Error(
288
- `TigerBeetle data file not found at ${dataFile}. Run: spindb create <name> --engine tigerbeetle`,
289
- )
290
- }
291
-
292
- onProgress?.({ stage: 'starting', message: 'Starting TigerBeetle...' })
293
-
294
- logDebug(`Starting TigerBeetle on port ${port}`)
295
-
296
- const args = [
297
- 'start',
298
- `--addresses=127.0.0.1:${port}`,
299
- '--development',
300
- dataFile,
301
- ]
302
-
303
- // Redirect stdout/stderr to log file via file descriptor
304
- const logFd = openSync(logFile, 'a')
305
-
306
- const spawnOpts: SpawnOptions = {
307
- cwd: containerDir,
308
- stdio: ['ignore', logFd, logFd],
309
- detached: true,
310
- }
311
-
312
- if (isWindows()) {
313
- spawnOpts.windowsHide = true
314
- }
315
-
316
- const proc = spawn(tigerbeetleBinary!, args, spawnOpts)
317
- proc.unref()
318
-
319
- // Close fd in parent — child inherited its own copy
320
- closeSync(logFd)
321
-
322
- if (!proc.pid) {
323
- throw new Error('TigerBeetle server process failed to start (no PID)')
324
- }
325
-
326
- try {
327
- await writeFile(pidFile, String(proc.pid))
328
- } catch {
329
- // Non-fatal
330
- }
331
-
332
- // Wait for TigerBeetle to be ready (TCP port check)
333
- const ready = await this.waitForReady(port)
334
-
335
- if (ready) {
336
- // On Windows, detached processes may have a different actual PID.
337
- // Find the real PID by port and update the PID file (same pattern as QuestDB).
338
- try {
339
- const pids = await platformService.findProcessByPort(port)
340
- if (pids.length > 0 && pids[0] !== proc.pid) {
341
- logDebug(
342
- `TigerBeetle actual PID ${pids[0]} differs from spawn PID ${proc.pid}, updating PID file`,
343
- )
344
- await writeFile(pidFile, String(pids[0]))
345
- }
346
- } catch {
347
- // Non-fatal - PID file already has proc.pid from earlier write
348
- }
349
-
350
- return {
351
- port,
352
- connectionString: this.getConnectionString(container),
353
- }
354
- }
355
-
356
- // Clean up the orphaned detached process before throwing
357
- if (platformService.isProcessRunning(proc.pid)) {
358
- try {
359
- await platformService.terminateProcess(proc.pid, true)
360
- } catch {
361
- // Ignore cleanup errors - best effort
362
- }
363
- }
364
-
365
- // Check log for errors
366
- let logError = ''
367
- try {
368
- const logContent = await readFile(logFile, 'utf-8')
369
- const recentLog = logContent.slice(-2000)
370
- if (recentLog.includes('PermissionDenied')) {
371
- throw new Error(
372
- "TigerBeetle requires io_uring syscalls which are blocked by Docker's default seccomp profile.\n" +
373
- 'Run your container with: docker run --security-opt seccomp=unconfined ...',
374
- )
375
- }
376
- if (
377
- recentLog.includes('Address already in use') ||
378
- recentLog.includes('address already in use')
379
- ) {
380
- logError = `Port ${port} is already in use`
381
- }
382
- } catch (logReadError) {
383
- // Re-throw io_uring error, ignore other log read failures
384
- if (
385
- logReadError instanceof Error &&
386
- logReadError.message.includes('io_uring')
387
- ) {
388
- throw logReadError
389
- }
390
- }
391
-
392
- const errorDetails = [
393
- logError || 'TigerBeetle failed to start within timeout.',
394
- `Binary: ${tigerbeetleBinary}`,
395
- `Log file: ${logFile}`,
396
- ]
397
- .filter(Boolean)
398
- .join('\n')
399
-
400
- throw new Error(errorDetails)
401
- }
402
-
403
- /**
404
- * Wait for TigerBeetle to be ready by checking if the port is listening.
405
- * TigerBeetle has no HTTP health endpoint, so we use TCP port check.
406
- */
407
- private async waitForReady(
408
- port: number,
409
- timeoutMs = 30000,
410
- ): Promise<boolean> {
411
- const startTime = Date.now()
412
- const checkInterval = 500
413
-
414
- while (Date.now() - startTime < timeoutMs) {
415
- // Check if the port is no longer available (something is listening)
416
- const available = await portManager.isPortAvailable(port)
417
- if (!available) {
418
- logDebug(`TigerBeetle ready on port ${port}`)
419
- return true
420
- }
421
- await new Promise((resolve) => setTimeout(resolve, checkInterval))
422
- }
423
-
424
- logDebug(`TigerBeetle did not become ready within ${timeoutMs}ms`)
425
- return false
426
- }
427
-
428
- /**
429
- * Stop TigerBeetle server.
430
- * SIGTERM is safe by design — TigerBeetle handles abrupt shutdown gracefully.
431
- */
432
- async stop(container: ContainerConfig): Promise<void> {
433
- const { name, port } = container
434
- const containerDir = paths.getContainerPath(name, { engine: ENGINE })
435
- const pidFile = join(containerDir, 'tigerbeetle.pid')
436
-
437
- logDebug(`Stopping TigerBeetle container "${name}" on port ${port}`)
438
-
439
- let pid: number | null = null
440
-
441
- // Read PID from file
442
- if (existsSync(pidFile)) {
443
- try {
444
- const content = await readFile(pidFile, 'utf8')
445
- pid = parseInt(content.trim(), 10)
446
- } catch {
447
- // Ignore
448
- }
449
- }
450
-
451
- // Fallback: find by port
452
- if (!pid || !platformService.isProcessRunning(pid)) {
453
- try {
454
- const pids = await platformService.findProcessByPort(port)
455
- if (pids.length > 0) {
456
- pid = pids[0]
457
- }
458
- } catch {
459
- // Ignore
460
- }
461
- }
462
-
463
- // Kill process if found
464
- if (pid && platformService.isProcessRunning(pid)) {
465
- logDebug(`Killing TigerBeetle process ${pid}`)
466
- try {
467
- if (isWindows()) {
468
- await platformService.terminateProcess(pid, true)
469
- } else {
470
- await platformService.terminateProcess(pid, false)
471
- await new Promise((resolve) => setTimeout(resolve, 2000))
472
-
473
- if (platformService.isProcessRunning(pid)) {
474
- logWarning(`Graceful termination failed, force killing ${pid}`)
475
- await platformService.terminateProcess(pid, true)
476
- }
477
- }
478
- } catch (error) {
479
- logDebug(`Process termination error: ${error}`)
480
- }
481
- }
482
-
483
- // Wait for termination
484
- const terminationWait = isWindows() ? 3000 : 1000
485
- await new Promise((resolve) => setTimeout(resolve, terminationWait))
486
-
487
- // Cleanup PID file
488
- if (existsSync(pidFile)) {
489
- try {
490
- await unlink(pidFile)
491
- } catch {
492
- // Ignore
493
- }
494
- }
495
-
496
- logDebug('TigerBeetle stopped')
497
- }
498
-
499
- /**
500
- * Get TigerBeetle server status.
501
- * Uses PID file + process check, with port-based fallback.
502
- * No HTTP health endpoint available.
503
- */
504
- async status(container: ContainerConfig): Promise<StatusResult> {
505
- const { name, port } = container
506
- const containerDir = paths.getContainerPath(name, { engine: ENGINE })
507
- const pidFile = join(containerDir, 'tigerbeetle.pid')
508
-
509
- // Check PID file first
510
- if (existsSync(pidFile)) {
511
- try {
512
- const content = await readFile(pidFile, 'utf8')
513
- const pid = parseInt(content.trim(), 10)
514
- if (!isNaN(pid) && pid > 0 && platformService.isProcessRunning(pid)) {
515
- return {
516
- running: true,
517
- message: `TigerBeetle is running (PID: ${pid})`,
518
- }
519
- }
520
- } catch {
521
- // Ignore
522
- }
523
- }
524
-
525
- // Fallback: check by port
526
- try {
527
- const pids = await platformService.findProcessByPort(port)
528
- if (pids.length > 0) {
529
- return {
530
- running: true,
531
- message: `TigerBeetle is running (PID: ${pids[0]})`,
532
- }
533
- }
534
- } catch {
535
- // Ignore
536
- }
537
-
538
- return { running: false, message: 'TigerBeetle is not running' }
539
- }
540
-
541
- async detectBackupFormat(filePath: string): Promise<BackupFormat> {
542
- return detectBackupFormatImpl(filePath)
543
- }
544
-
545
- /**
546
- * Restore a backup.
547
- * TigerBeetle must be stopped before restore.
548
- */
549
- async restore(
550
- container: ContainerConfig,
551
- backupPath: string,
552
- _options: { database?: string; flush?: boolean } = {},
553
- ): Promise<RestoreResult> {
554
- const { name } = container
555
-
556
- // Check if container is running
557
- const statusResult = await this.status(container)
558
- if (statusResult.running) {
559
- throw new Error(
560
- `TigerBeetle container "${name}" must be stopped before restore. ` +
561
- `Run: spindb stop ${name}`,
562
- )
563
- }
564
-
565
- const dataDir = paths.getContainerDataPath(name, { engine: ENGINE })
566
-
567
- return restoreBackup(backupPath, {
568
- containerName: name,
569
- dataDir,
570
- })
571
- }
572
-
573
- /**
574
- * Get connection string.
575
- * TigerBeetle uses custom binary protocol — no URI scheme.
576
- */
577
- getConnectionString(container: ContainerConfig, _database?: string): string {
578
- const { port } = container
579
- return `127.0.0.1:${port}`
580
- }
581
-
582
- /**
583
- * Open TigerBeetle REPL (interactive client).
584
- * Uses stdio: 'inherit' pattern from SurrealDB.
585
- */
586
- async connect(container: ContainerConfig, _database?: string): Promise<void> {
587
- const { port, version } = container
588
-
589
- const tigerbeetleBinary = await this.getTigerBeetlePath(version)
590
-
591
- const spawnOptions: SpawnOptions = {
592
- stdio: 'inherit',
593
- }
594
-
595
- return new Promise((resolve, reject) => {
596
- const proc = spawn(
597
- tigerbeetleBinary,
598
- [
599
- 'repl',
600
- `--cluster=${DEFAULT_CLUSTER_ID}`,
601
- `--addresses=127.0.0.1:${port}`,
602
- ],
603
- spawnOptions,
604
- )
605
-
606
- proc.on('error', reject)
607
- proc.on('close', () => resolve())
608
- })
609
- }
610
-
611
- /**
612
- * Create database — not supported.
613
- * TigerBeetle has no database concept.
614
- */
615
- async createDatabase(
616
- _container: ContainerConfig,
617
- _database: string,
618
- ): Promise<void> {
619
- throw new Error(
620
- 'TigerBeetle does not support multiple databases. ' +
621
- 'Each container is a single ledger instance.',
622
- )
623
- }
624
-
625
- /**
626
- * Drop database — not supported.
627
- */
628
- async dropDatabase(
629
- _container: ContainerConfig,
630
- _database: string,
631
- ): Promise<void> {
632
- throw new Error(
633
- 'TigerBeetle does not support multiple databases. ' +
634
- 'Use `spindb delete <container>` to remove the instance.',
635
- )
636
- }
637
-
638
- /**
639
- * Get database size from data file.
640
- */
641
- async getDatabaseSize(container: ContainerConfig): Promise<number | null> {
642
- const dataDir = paths.getContainerDataPath(container.name, {
643
- engine: ENGINE,
644
- })
645
- const dataFile = join(dataDir, '0_0.tigerbeetle')
646
-
647
- try {
648
- const stats = await stat(dataFile)
649
- return stats.size
650
- } catch {
651
- return null
652
- }
653
- }
654
-
655
- /**
656
- * Dump from connection string — not supported.
657
- * TigerBeetle uses a custom binary protocol that doesn't support remote dumps.
658
- */
659
- async dumpFromConnectionString(
660
- _connectionString: string,
661
- _outputPath: string,
662
- ): Promise<DumpResult> {
663
- throw new Error(
664
- 'TigerBeetle does not support remote dumps.\n' +
665
- 'TigerBeetle uses a custom binary protocol that requires direct file access.\n' +
666
- 'To backup a remote TigerBeetle instance, stop the server and copy the data file directly.',
667
- )
668
- }
669
-
670
- /**
671
- * Create a backup.
672
- * TigerBeetle requires the server to be stopped for backup.
673
- */
674
- async backup(
675
- container: ContainerConfig,
676
- outputPath: string,
677
- options: BackupOptions,
678
- ): Promise<BackupResult> {
679
- const { name } = container
680
- const dataDir = paths.getContainerDataPath(name, { engine: ENGINE })
681
-
682
- // Verify server is stopped
683
- const statusResult = await this.status(container)
684
- if (statusResult.running) {
685
- throw new Error(
686
- `TigerBeetle container "${name}" must be stopped before backup. ` +
687
- `Run: spindb stop ${name}`,
688
- )
689
- }
690
-
691
- return createBackup(dataDir, outputPath, options)
692
- }
693
-
694
- /**
695
- * Run script — not supported.
696
- * TigerBeetle uses a custom binary protocol, not SQL or REST.
697
- */
698
- async runScript(
699
- _container: ContainerConfig,
700
- _options: { file?: string; sql?: string; database?: string },
701
- ): Promise<void> {
702
- throw new Error(
703
- 'TigerBeetle does not support script execution.\n' +
704
- 'Use the TigerBeetle REPL for interactive operations: spindb connect <container>',
705
- )
706
- }
707
-
708
- /**
709
- * Execute query — not supported.
710
- * TigerBeetle uses a custom binary protocol.
711
- */
712
- async executeQuery(
713
- _container: ContainerConfig,
714
- _query: string,
715
- _options?: QueryOptions,
716
- ): Promise<QueryResult> {
717
- throw new Error(
718
- 'TigerBeetle does not support SQL or REST queries.\n' +
719
- 'Use the TigerBeetle REPL for interactive operations: spindb connect <container>\n' +
720
- 'Or use a TigerBeetle client library in your application.',
721
- )
722
- }
723
-
724
- /**
725
- * List databases — TigerBeetle has no database concept.
726
- */
727
- async listDatabases(container: ContainerConfig): Promise<string[]> {
728
- return [container.database]
729
- }
730
-
731
- /**
732
- * Create user — not supported.
733
- * TigerBeetle has no authentication.
734
- */
735
- async createUser(
736
- _container: ContainerConfig,
737
- _options: CreateUserOptions,
738
- ): Promise<UserCredentials> {
739
- throw new Error(
740
- 'TigerBeetle does not support user authentication.\n' +
741
- 'Access is controlled at the network level.',
742
- )
743
- }
744
- }
745
-
746
- export const tigerbeetleEngine = new TigerBeetleEngine()