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
@@ -0,0 +1,260 @@
1
+ /**
2
+ * Version migration utilities for detecting and updating outdated container versions
3
+ *
4
+ * Detects containers using versions that are no longer in the version maps
5
+ * (e.g., from the zonky.io era) and offers to migrate them to currently
6
+ * supported versions while preserving major version compatibility.
7
+ */
8
+ import { existsSync } from 'fs';
9
+ import { rm } from 'fs/promises';
10
+ import { paths } from '../config/paths.js';
11
+ import { containerManager } from './container-manager.js';
12
+ import { platformService } from './platform-service.js';
13
+ import { Engine, isFileBasedEngine } from '../types/index.js';
14
+ // Import version maps from all engines
15
+ import { POSTGRESQL_VERSION_MAP, SUPPORTED_MAJOR_VERSIONS as PG_MAJORS, } from '../engines/postgresql/version-maps.js';
16
+ import { MYSQL_VERSION_MAP, SUPPORTED_MAJOR_VERSIONS as MYSQL_MAJORS, } from '../engines/mysql/version-maps.js';
17
+ import { MARIADB_VERSION_MAP, SUPPORTED_MAJOR_VERSIONS as MARIADB_MAJORS, } from '../engines/mariadb/version-maps.js';
18
+ import { MONGODB_VERSION_MAP, SUPPORTED_MAJOR_VERSIONS as MONGODB_MAJORS, } from '../engines/mongodb/version-maps.js';
19
+ import { FERRETDB_VERSION_MAP, DOCUMENTDB_VERSION_MAP, SUPPORTED_MAJOR_VERSIONS as FERRET_MAJORS, } from '../engines/ferretdb/version-maps.js';
20
+ import { REDIS_VERSION_MAP, SUPPORTED_MAJOR_VERSIONS as REDIS_MAJORS, } from '../engines/redis/version-maps.js';
21
+ import { VALKEY_VERSION_MAP, SUPPORTED_MAJOR_VERSIONS as VALKEY_MAJORS, } from '../engines/valkey/version-maps.js';
22
+ import { CLICKHOUSE_VERSION_MAP, SUPPORTED_MAJOR_VERSIONS as CH_MAJORS, } from '../engines/clickhouse/version-maps.js';
23
+ import { QDRANT_VERSION_MAP, SUPPORTED_MAJOR_VERSIONS as QDRANT_MAJORS, } from '../engines/qdrant/version-maps.js';
24
+ import { MEILISEARCH_VERSION_MAP, SUPPORTED_MAJOR_VERSIONS as MEILI_MAJORS, } from '../engines/meilisearch/version-maps.js';
25
+ // Registry of version maps per engine
26
+ const VERSION_MAPS = {
27
+ [Engine.PostgreSQL]: {
28
+ versionMap: POSTGRESQL_VERSION_MAP,
29
+ majorVersions: PG_MAJORS,
30
+ },
31
+ [Engine.MySQL]: {
32
+ versionMap: MYSQL_VERSION_MAP,
33
+ majorVersions: MYSQL_MAJORS,
34
+ },
35
+ [Engine.MariaDB]: {
36
+ versionMap: MARIADB_VERSION_MAP,
37
+ majorVersions: MARIADB_MAJORS,
38
+ },
39
+ [Engine.MongoDB]: {
40
+ versionMap: MONGODB_VERSION_MAP,
41
+ majorVersions: MONGODB_MAJORS,
42
+ },
43
+ [Engine.FerretDB]: {
44
+ versionMap: FERRETDB_VERSION_MAP,
45
+ majorVersions: FERRET_MAJORS,
46
+ },
47
+ [Engine.Redis]: {
48
+ versionMap: REDIS_VERSION_MAP,
49
+ majorVersions: REDIS_MAJORS,
50
+ },
51
+ [Engine.Valkey]: {
52
+ versionMap: VALKEY_VERSION_MAP,
53
+ majorVersions: VALKEY_MAJORS,
54
+ },
55
+ [Engine.ClickHouse]: {
56
+ versionMap: CLICKHOUSE_VERSION_MAP,
57
+ majorVersions: CH_MAJORS,
58
+ },
59
+ [Engine.Qdrant]: {
60
+ versionMap: QDRANT_VERSION_MAP,
61
+ majorVersions: QDRANT_MAJORS,
62
+ },
63
+ [Engine.Meilisearch]: {
64
+ versionMap: MEILISEARCH_VERSION_MAP,
65
+ majorVersions: MEILI_MAJORS,
66
+ },
67
+ };
68
+ // Separate map for FerretDB backend (DocumentDB)
69
+ const DOCUMENTDB_INFO = {
70
+ versionMap: DOCUMENTDB_VERSION_MAP,
71
+ majorVersions: ['17'],
72
+ };
73
+ /**
74
+ * Find which major version a full version belongs to by checking prefixes
75
+ * against SUPPORTED_MAJOR_VERSIONS.
76
+ *
77
+ * Different engines use different major version formats:
78
+ * - PostgreSQL: Single digit (e.g., '17')
79
+ * - MySQL: Two-part (e.g., '8.4')
80
+ * - MariaDB: Two-part (e.g., '11.8')
81
+ * - MongoDB: Two-part (e.g., '8.0')
82
+ * - ClickHouse: Two-part YY.MM (e.g., '25.12')
83
+ * - Redis/Valkey: Single digit (e.g., '7', '8')
84
+ * - Qdrant/Meilisearch: Single digit (e.g., '1')
85
+ *
86
+ * @param engine - The database engine
87
+ * @param version - Full version string (e.g., '17.2.0')
88
+ * @returns Major version string or null if not found
89
+ */
90
+ export function getMajorVersion(engine, version) {
91
+ const info = VERSION_MAPS[engine];
92
+ if (!info)
93
+ return null;
94
+ // Sort by length descending so "8.4" matches before "8"
95
+ const sorted = [...info.majorVersions].sort((a, b) => b.length - a.length);
96
+ for (const major of sorted) {
97
+ if (version.startsWith(major + '.') || version === major) {
98
+ return major;
99
+ }
100
+ }
101
+ return null;
102
+ }
103
+ /**
104
+ * Get the major version for FerretDB backend (DocumentDB).
105
+ * Backend versions use format like "17-0.107.0" where "17" is the major.
106
+ */
107
+ export function getDocumentDBMajorVersion(version) {
108
+ // Format: "17-0.107.0" -> major is "17"
109
+ const dashIndex = version.indexOf('-');
110
+ if (dashIndex > 0) {
111
+ const major = version.substring(0, dashIndex);
112
+ if (DOCUMENTDB_INFO.majorVersions.includes(major)) {
113
+ return major;
114
+ }
115
+ }
116
+ return null;
117
+ }
118
+ /**
119
+ * Check if a version exists as a VALUE in the version map
120
+ * (not just a key).
121
+ *
122
+ * @param engine - The database engine
123
+ * @param version - Version string to check
124
+ * @returns True if the version is a supported full version
125
+ */
126
+ export function isVersionSupported(engine, version) {
127
+ const info = VERSION_MAPS[engine];
128
+ if (!info)
129
+ return false;
130
+ const supportedVersions = Object.values(info.versionMap);
131
+ return supportedVersions.includes(version);
132
+ }
133
+ /**
134
+ * Check if a DocumentDB backend version is supported.
135
+ */
136
+ export function isDocumentDBVersionSupported(version) {
137
+ const supportedVersions = Object.values(DOCUMENTDB_INFO.versionMap);
138
+ return supportedVersions.includes(version);
139
+ }
140
+ /**
141
+ * Get the current full version for a major version.
142
+ *
143
+ * @param engine - The database engine
144
+ * @param majorVersion - Major version (e.g., '17', '8.4')
145
+ * @returns Current full version or null if not found
146
+ */
147
+ export function getTargetVersion(engine, majorVersion) {
148
+ const info = VERSION_MAPS[engine];
149
+ if (!info)
150
+ return null;
151
+ return info.versionMap[majorVersion] || null;
152
+ }
153
+ /**
154
+ * Get the current full version for a DocumentDB major version.
155
+ */
156
+ export function getDocumentDBTargetVersion(majorVersion) {
157
+ return DOCUMENTDB_INFO.versionMap[majorVersion] || null;
158
+ }
159
+ /**
160
+ * Find all containers that have outdated versions.
161
+ * Returns containers whose versions are not in the current version maps.
162
+ *
163
+ * @returns Array of outdated container information
164
+ */
165
+ export async function findOutdatedContainers() {
166
+ const containers = await containerManager.list();
167
+ const outdated = [];
168
+ for (const container of containers) {
169
+ const engine = container.engine;
170
+ // Skip file-based engines - they use simplified major versions (e.g., "3", "1")
171
+ // that always resolve to current
172
+ if (isFileBasedEngine(engine)) {
173
+ continue;
174
+ }
175
+ // Check main version
176
+ if (!isVersionSupported(engine, container.version)) {
177
+ const majorVersion = getMajorVersion(engine, container.version);
178
+ if (majorVersion) {
179
+ const targetVersion = getTargetVersion(engine, majorVersion);
180
+ if (targetVersion && targetVersion !== container.version) {
181
+ outdated.push({
182
+ container,
183
+ currentVersion: container.version,
184
+ targetVersion,
185
+ majorVersion,
186
+ field: 'version',
187
+ });
188
+ }
189
+ }
190
+ }
191
+ // Check FerretDB backend version
192
+ if (engine === Engine.FerretDB && container.backendVersion) {
193
+ if (!isDocumentDBVersionSupported(container.backendVersion)) {
194
+ const majorVersion = getDocumentDBMajorVersion(container.backendVersion);
195
+ if (majorVersion) {
196
+ const targetVersion = getDocumentDBTargetVersion(majorVersion);
197
+ if (targetVersion && targetVersion !== container.backendVersion) {
198
+ outdated.push({
199
+ container,
200
+ currentVersion: container.backendVersion,
201
+ targetVersion,
202
+ majorVersion,
203
+ field: 'backendVersion',
204
+ });
205
+ }
206
+ }
207
+ }
208
+ }
209
+ }
210
+ return outdated;
211
+ }
212
+ /**
213
+ * Update a container's version in its config file.
214
+ *
215
+ * @param name - Container name
216
+ * @param targetVersion - New version to set
217
+ * @param field - Which field to update ('version' or 'backendVersion')
218
+ */
219
+ export async function migrateContainerVersion(name, targetVersion, field) {
220
+ await containerManager.updateConfig(name, { [field]: targetVersion });
221
+ }
222
+ /**
223
+ * Check if any containers are using a specific version.
224
+ *
225
+ * @param engine - The database engine
226
+ * @param version - The version to check
227
+ * @returns True if at least one container uses this version
228
+ */
229
+ export async function isVersionInUse(engine, version) {
230
+ const containers = await containerManager.list();
231
+ return containers.some((c) => c.engine === engine &&
232
+ (c.version === version || c.backendVersion === version));
233
+ }
234
+ /**
235
+ * Delete an old binary directory from ~/.spindb/bin/
236
+ * Only deletes if no other containers are using this version.
237
+ *
238
+ * @param engine - The database engine
239
+ * @param oldVersion - The old version to remove
240
+ * @returns True if the binary was deleted, false if still in use or not found
241
+ */
242
+ export async function deleteOldBinaryIfUnused(engine, oldVersion) {
243
+ // Check if any containers still use this version
244
+ if (await isVersionInUse(engine, oldVersion)) {
245
+ return false;
246
+ }
247
+ const platformInfo = platformService.getPlatformInfo();
248
+ const binaryPath = paths.getBinaryPath({
249
+ engine: engine,
250
+ version: oldVersion,
251
+ platform: platformInfo.platform,
252
+ arch: platformInfo.arch,
253
+ });
254
+ if (existsSync(binaryPath)) {
255
+ await rm(binaryPath, { recursive: true, force: true });
256
+ return true;
257
+ }
258
+ return false;
259
+ }
260
+ //# sourceMappingURL=version-migration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version-migration.js","sourceRoot":"","sources":["../../core/version-migration.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,91 @@
1
+ /**
2
+ * Shared version comparison utilities
3
+ *
4
+ * Provides robust version comparison that handles prerelease suffixes
5
+ * like "11.8.0-rc1" or "7.4.7-beta2".
6
+ */
7
+ /**
8
+ * Parse a version segment into numeric prefix and suffix
9
+ *
10
+ * Expected format: optional digits followed by optional suffix
11
+ * Examples:
12
+ * "7" -> { num: 7, suffix: "" }
13
+ * "7-rc1" -> { num: 7, suffix: "-rc1" }
14
+ * "0" -> { num: 0, suffix: "" }
15
+ *
16
+ * Non-numeric segments (no leading digits):
17
+ * "abc" -> { num: -1, suffix: "abc" }
18
+ * "" -> { num: -1, suffix: "" }
19
+ *
20
+ * Use num === -1 to detect non-numeric segments. When comparing versions,
21
+ * non-numeric segments sort before numeric ones (since -1 < 0).
22
+ *
23
+ * @param segment - A single version segment (part between dots)
24
+ * @returns Object with numeric prefix and remaining suffix
25
+ */
26
+ export function parseVersionSegment(segment) {
27
+ const match = segment.match(/^(\d+)(.*)$/);
28
+ if (!match) {
29
+ // Non-numeric segment: use -1 as sentinel so callers can distinguish
30
+ return { num: -1, suffix: segment };
31
+ }
32
+ return { num: parseInt(match[1], 10), suffix: match[2] };
33
+ }
34
+ /**
35
+ * Compare two version strings (e.g., "11.8.5" vs "11.8.4")
36
+ * Handles prerelease suffixes like "11.8.0-rc1" - empty suffix sorts after prerelease
37
+ * Returns positive if a > b, negative if a < b, 0 if equal
38
+ */
39
+ export function compareVersions(a, b) {
40
+ const partsA = a.split('.');
41
+ const partsB = b.split('.');
42
+ for (let i = 0; i < Math.max(partsA.length, partsB.length); i++) {
43
+ const segA = parseVersionSegment(partsA[i] || '0');
44
+ const segB = parseVersionSegment(partsB[i] || '0');
45
+ // Compare numeric parts first
46
+ if (segA.num !== segB.num) {
47
+ return segA.num - segB.num;
48
+ }
49
+ // If numeric parts equal, compare suffixes
50
+ // Empty suffix (release) > prerelease suffix (e.g., "-rc1")
51
+ if (segA.suffix !== segB.suffix) {
52
+ if (segA.suffix === '')
53
+ return 1; // a is release, b is prerelease
54
+ if (segB.suffix === '')
55
+ return -1; // b is release, a is prerelease
56
+ // NOTE: Lexicographic comparison means -rc10 < -rc2 (incorrect for numeric suffixes).
57
+ // This is acceptable for hostdb versions which use single-digit prereleases.
58
+ // If multi-digit prereleases are needed, parse numeric suffix separately.
59
+ return segA.suffix.localeCompare(segB.suffix);
60
+ }
61
+ }
62
+ return 0;
63
+ }
64
+ /**
65
+ * Check if versionA is newer than versionB
66
+ * Convenience wrapper around compareVersions
67
+ */
68
+ export function isNewerVersion(versionA, versionB) {
69
+ return compareVersions(versionA, versionB) > 0;
70
+ }
71
+ /**
72
+ * Regex pattern for validating semver-like version strings.
73
+ * Matches: X, X.Y, or X.Y.Z where each component is numeric.
74
+ * Examples: "8", "8.0", "8.0.40", "17", "17.7.0"
75
+ */
76
+ export const SEMVER_LIKE_PATTERN = /^\d+(\.\d+){0,2}$/;
77
+ /**
78
+ * Validate that a version string matches semver-like format (X, X.Y, or X.Y.Z).
79
+ * Used by engines that require strict version format validation (MySQL, PostgreSQL).
80
+ *
81
+ * @param version - Version string to validate
82
+ * @param engineName - Engine name for error message (e.g., 'MySQL', 'PostgreSQL')
83
+ * @throws TypeError if version format is invalid
84
+ */
85
+ export function validateSemverLikeVersion(version, engineName) {
86
+ if (!SEMVER_LIKE_PATTERN.test(version)) {
87
+ throw new TypeError(`Invalid ${engineName} version format: "${version}". ` +
88
+ `Expected format: X, X.Y, or X.Y.Z (e.g., "8", "8.0", "8.0.40")`);
89
+ }
90
+ }
91
+ //# sourceMappingURL=version-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version-utils.js","sourceRoot":"","sources":["../../core/version-utils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAAe;IAIjD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAA;IAC1C,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,qEAAqE;QACrE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAA;IACrC,CAAC;IACD,OAAO,EAAE,GAAG,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAA;AAC1D,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,CAAS,EAAE,CAAS;IAClD,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAC3B,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAE3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAChE,MAAM,IAAI,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAA;QAClD,MAAM,IAAI,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAA;QAElD,8BAA8B;QAC9B,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC;YAC1B,OAAO,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAA;QAC5B,CAAC;QAED,2CAA2C;QAC3C,4DAA4D;QAC5D,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;YAChC,IAAI,IAAI,CAAC,MAAM,KAAK,EAAE;gBAAE,OAAO,CAAC,CAAA,CAAC,gCAAgC;YACjE,IAAI,IAAI,CAAC,MAAM,KAAK,EAAE;gBAAE,OAAO,CAAC,CAAC,CAAA,CAAC,gCAAgC;YAClE,sFAAsF;YACtF,6EAA6E;YAC7E,0EAA0E;YAC1E,OAAO,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAC/C,CAAC;IACH,CAAC;IACD,OAAO,CAAC,CAAA;AACV,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,QAAgB,EAAE,QAAgB;IAC/D,OAAO,eAAe,CAAC,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAA;AAChD,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,mBAAmB,CAAA;AAEtD;;;;;;;GAOG;AACH,MAAM,UAAU,yBAAyB,CACvC,OAAe,EACf,UAAkB;IAElB,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACvC,MAAM,IAAI,SAAS,CACjB,WAAW,UAAU,qBAAqB,OAAO,KAAK;YACpD,gEAAgE,CACnE,CAAA;IACH,CAAC;AACH,CAAC"}
@@ -0,0 +1,179 @@
1
+ import { UnsupportedOperationError } from '../core/error-handler.js';
2
+ import { stopPgweb } from '../core/pgweb-utils.js';
3
+ /**
4
+ * Base class for database engines
5
+ * All engines (PostgreSQL, MySQL, SQLite) should extend this class
6
+ */
7
+ export class BaseEngine {
8
+ /**
9
+ * Get the path to the psql client if available
10
+ * Default implementation throws; engines that can provide a bundled or
11
+ * configured psql should override this method.
12
+ */
13
+ async getPsqlPath() {
14
+ throw new Error('psql not found');
15
+ }
16
+ /**
17
+ * Get the path to the mysql client if available
18
+ * Default implementation throws; engines that can provide a bundled or
19
+ * configured mysql should override this method.
20
+ */
21
+ async getMysqlClientPath() {
22
+ throw new Error('mysql client not found');
23
+ }
24
+ /**
25
+ * Get the path to the mariadb client if available
26
+ * Default implementation throws; MariaDB engine overrides this method.
27
+ */
28
+ async getMariadbClientPath() {
29
+ throw new Error('mariadb client not found');
30
+ }
31
+ /**
32
+ * Get the path to the mysqladmin client if available
33
+ * Default implementation throws; engines that can provide a bundled or
34
+ * configured mysqladmin should override this method.
35
+ */
36
+ async getMysqladminPath() {
37
+ throw new Error('mysqladmin not found');
38
+ }
39
+ /**
40
+ * Get the path to the mongosh client if available
41
+ * Default implementation throws; engines that can provide a bundled or
42
+ * configured mongosh should override this method.
43
+ */
44
+ async getMongoshPath() {
45
+ throw new Error('mongosh not found');
46
+ }
47
+ /**
48
+ * Get the path to the redis-cli client if available
49
+ * Default implementation throws; engines that can provide a bundled or
50
+ * configured redis-cli should override this method.
51
+ */
52
+ async getRedisCliPath() {
53
+ throw new Error('redis-cli not found');
54
+ }
55
+ /**
56
+ * Get the path to the valkey-cli client if available
57
+ * Default implementation throws; engines that can provide a bundled or
58
+ * configured valkey-cli should override this method.
59
+ */
60
+ async getValkeyCliPath() {
61
+ throw new Error('valkey-cli not found');
62
+ }
63
+ /**
64
+ * Get the path to the clickhouse client if available
65
+ * Default implementation throws; engines that can provide a bundled or
66
+ * configured clickhouse should override this method.
67
+ */
68
+ async getClickHouseClientPath() {
69
+ throw new Error('clickhouse client not found');
70
+ }
71
+ /**
72
+ * Get the path to the cockroach binary if available
73
+ * Default implementation throws; CockroachDB engine overrides this method.
74
+ */
75
+ async getCockroachPath(_version) {
76
+ throw new Error('cockroach not found');
77
+ }
78
+ /**
79
+ * Get the path to the surreal binary if available
80
+ * Default implementation throws; SurrealDB engine overrides this method.
81
+ */
82
+ async getSurrealPath(_version) {
83
+ throw new Error('surreal not found');
84
+ }
85
+ /**
86
+ * Get the path to the typedb console binary if available
87
+ * Default implementation throws; TypeDB engine overrides this method.
88
+ */
89
+ async getTypeDBConsolePath(_version) {
90
+ throw new Error('typedb_console_bin not found');
91
+ }
92
+ /**
93
+ * Get the path to the influxdb3 binary if available
94
+ * Default implementation throws; InfluxDB engine overrides this method.
95
+ */
96
+ async getInfluxDBPath(_version) {
97
+ throw new Error('influxdb3 not found');
98
+ }
99
+ /**
100
+ * Get the path to the tigerbeetle binary if available
101
+ * Default implementation throws; TigerBeetle engine overrides this method.
102
+ */
103
+ async getTigerBeetlePath(_version) {
104
+ throw new Error('tigerbeetle not found');
105
+ }
106
+ /**
107
+ * Get the path to the sqlite3 client if available
108
+ * Default implementation returns null; SQLite engine overrides this method.
109
+ */
110
+ async getSqlite3Path(_version) {
111
+ return null;
112
+ }
113
+ /**
114
+ * Get the path to the duckdb client if available
115
+ * Default implementation returns null; DuckDB engine overrides this method.
116
+ */
117
+ async getDuckDBPath(_version) {
118
+ return null;
119
+ }
120
+ /**
121
+ * Fetch all available versions from remote source (grouped by major version)
122
+ * Returns a map of major version -> array of full versions (sorted latest first)
123
+ * Falls back to hardcoded versions if network fails
124
+ */
125
+ async fetchAvailableVersions() {
126
+ // Default implementation returns supported versions as single-item arrays
127
+ const versions = {};
128
+ for (const v of this.supportedVersions) {
129
+ versions[v] = [v];
130
+ }
131
+ return versions;
132
+ }
133
+ /**
134
+ * Terminate all active connections to a database.
135
+ * Required before dropping a database that may have active connections.
136
+ * Default implementation is a no-op - engines that need it should override.
137
+ * @param container - The container configuration
138
+ * @param database - The database name to terminate connections for
139
+ */
140
+ async terminateConnections(_container, _database) {
141
+ // Default: no-op. Override in engines that support connection termination.
142
+ }
143
+ /**
144
+ * Stop pgweb if running for this container.
145
+ * Called from stop() in engines that support pgweb (PostgreSQL, CockroachDB, FerretDB).
146
+ */
147
+ async stopPgweb(containerName) {
148
+ await stopPgweb(containerName, this.name);
149
+ }
150
+ /**
151
+ * List all user databases on the server, excluding system databases.
152
+ * Used to sync the registry with actual databases on the server.
153
+ *
154
+ * System databases excluded by default:
155
+ * - PostgreSQL: template0, template1, postgres
156
+ * - MySQL/MariaDB: information_schema, mysql, performance_schema, sys
157
+ * - CockroachDB: defaultdb, postgres, system
158
+ *
159
+ * @param container - The container configuration
160
+ * @returns Array of database names (excluding system databases)
161
+ * @throws Error if the engine doesn't support multiple databases or listing
162
+ */
163
+ async listDatabases(_container) {
164
+ throw new UnsupportedOperationError('listDatabases', this.displayName);
165
+ }
166
+ /**
167
+ * Create a database user with the given credentials.
168
+ * Returns credentials including connection string.
169
+ *
170
+ * @param container - The container configuration
171
+ * @param options - Username, password, and optional target database
172
+ * @returns UserCredentials with connection info
173
+ * @throws UnsupportedOperationError for engines that don't support users (SQLite, DuckDB, QuestDB)
174
+ */
175
+ async createUser(_container, _options) {
176
+ throw new UnsupportedOperationError('createUser', this.displayName);
177
+ }
178
+ }
179
+ //# sourceMappingURL=base-engine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-engine.js","sourceRoot":"","sources":["../../engines/base-engine.ts"],"names":[],"mappings":"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"}