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,1120 @@
1
+ import { existsSync } from 'fs';
2
+ import { readdir, lstat } from 'fs/promises';
3
+ import { join } from 'path';
4
+ import { execFile } from 'child_process';
5
+ import { promisify } from 'util';
6
+ import { paths } from '../config/paths.js';
7
+ import { platformService } from '../core/platform-service.js';
8
+ import { getEngineConfig } from '../config/engines-registry.js';
9
+ const execFileAsync = promisify(execFile);
10
+ export async function getEngineMetadata(engine) {
11
+ const config = await getEngineConfig(engine);
12
+ return {
13
+ queryLanguage: config.queryLanguage,
14
+ runtime: config.runtime,
15
+ connectionScheme: config.connectionScheme,
16
+ };
17
+ }
18
+ // Parse engine directory name into components
19
+ // Format: {engine}-{version}-{platform}-{arch}
20
+ // Handles versions with dashes (e.g., 17.0.0-rc1) by splitting from the end
21
+ function parseEngineDirectory(entryName, enginePrefix, binDir) {
22
+ const rest = entryName.slice(enginePrefix.length);
23
+ const parts = rest.split('-');
24
+ if (parts.length < 3)
25
+ return null;
26
+ const arch = parts.pop();
27
+ const platform = parts.pop();
28
+ const version = parts.join('-');
29
+ if (!version || !platform || !arch)
30
+ return null;
31
+ return {
32
+ version,
33
+ platform,
34
+ arch,
35
+ path: join(binDir, entryName),
36
+ };
37
+ }
38
+ // Calculate the total size of all files in a directory (recursive)
39
+ async function calculateDirectorySize(dirPath) {
40
+ let sizeBytes = 0;
41
+ try {
42
+ const files = await readdir(dirPath, { recursive: true });
43
+ for (const file of files) {
44
+ try {
45
+ const filePath = join(dirPath, file.toString());
46
+ const fileStat = await lstat(filePath);
47
+ if (fileStat.isFile()) {
48
+ sizeBytes += fileStat.size;
49
+ }
50
+ }
51
+ catch {
52
+ // Skip files we can't stat
53
+ }
54
+ }
55
+ }
56
+ catch {
57
+ // Skip directories we can't read
58
+ }
59
+ return sizeBytes;
60
+ }
61
+ async function getPostgresVersion(binPath) {
62
+ const ext = platformService.getExecutableExtension();
63
+ const postgresPath = join(binPath, 'bin', `postgres${ext}`);
64
+ if (!existsSync(postgresPath)) {
65
+ return null;
66
+ }
67
+ try {
68
+ const { stdout } = await execFileAsync(postgresPath, ['--version']);
69
+ const match = stdout.match(/\(PostgreSQL\)\s+([\d.]+)/);
70
+ return match ? match[1] : null;
71
+ }
72
+ catch {
73
+ return null;
74
+ }
75
+ }
76
+ export async function getInstalledPostgresEngines() {
77
+ const binDir = paths.bin;
78
+ if (!existsSync(binDir)) {
79
+ return [];
80
+ }
81
+ const entries = await readdir(binDir, { withFileTypes: true });
82
+ const engines = [];
83
+ for (const entry of entries) {
84
+ if (!entry.isDirectory())
85
+ continue;
86
+ if (!entry.name.startsWith('postgresql-'))
87
+ continue;
88
+ const parsed = parseEngineDirectory(entry.name, 'postgresql-', binDir);
89
+ if (!parsed)
90
+ continue;
91
+ const actualVersion = (await getPostgresVersion(parsed.path)) || parsed.version;
92
+ const sizeBytes = await calculateDirectorySize(parsed.path);
93
+ engines.push({
94
+ engine: 'postgresql',
95
+ version: actualVersion,
96
+ platform: parsed.platform,
97
+ arch: parsed.arch,
98
+ path: parsed.path,
99
+ sizeBytes,
100
+ source: 'downloaded',
101
+ });
102
+ }
103
+ engines.sort((a, b) => compareVersions(b.version, a.version));
104
+ return engines;
105
+ }
106
+ async function getMariadbVersion(binPath) {
107
+ const ext = platformService.getExecutableExtension();
108
+ // Try mariadbd first, then mysqld
109
+ let serverPath = join(binPath, 'bin', `mariadbd${ext}`);
110
+ if (!existsSync(serverPath)) {
111
+ serverPath = join(binPath, 'bin', `mysqld${ext}`);
112
+ }
113
+ if (!existsSync(serverPath)) {
114
+ return null;
115
+ }
116
+ try {
117
+ const { stdout } = await execFileAsync(serverPath, ['--version']);
118
+ // Parse output like "mariadbd Ver 11.8.5-MariaDB"
119
+ const match = stdout.match(/Ver\s+([\d.]+)/);
120
+ return match ? match[1] : null;
121
+ }
122
+ catch {
123
+ return null;
124
+ }
125
+ }
126
+ export async function getInstalledMariadbEngines() {
127
+ const binDir = paths.bin;
128
+ if (!existsSync(binDir)) {
129
+ return [];
130
+ }
131
+ const entries = await readdir(binDir, { withFileTypes: true });
132
+ const engines = [];
133
+ for (const entry of entries) {
134
+ if (!entry.isDirectory())
135
+ continue;
136
+ if (!entry.name.startsWith('mariadb-'))
137
+ continue;
138
+ const parsed = parseEngineDirectory(entry.name, 'mariadb-', binDir);
139
+ if (!parsed)
140
+ continue;
141
+ const actualVersion = (await getMariadbVersion(parsed.path)) || parsed.version;
142
+ const sizeBytes = await calculateDirectorySize(parsed.path);
143
+ engines.push({
144
+ engine: 'mariadb',
145
+ version: actualVersion,
146
+ platform: parsed.platform,
147
+ arch: parsed.arch,
148
+ path: parsed.path,
149
+ sizeBytes,
150
+ source: 'downloaded',
151
+ });
152
+ }
153
+ engines.sort((a, b) => compareVersions(b.version, a.version));
154
+ return engines;
155
+ }
156
+ async function getMysqlVersion(binPath) {
157
+ const ext = platformService.getExecutableExtension();
158
+ const serverPath = join(binPath, 'bin', `mysqld${ext}`);
159
+ if (!existsSync(serverPath)) {
160
+ return null;
161
+ }
162
+ try {
163
+ const { stdout } = await execFileAsync(serverPath, ['--version']);
164
+ // Parse output like "mysqld Ver 8.0.40 for Linux on x86_64"
165
+ const match = stdout.match(/Ver\s+([\d.]+)/);
166
+ return match ? match[1] : null;
167
+ }
168
+ catch {
169
+ return null;
170
+ }
171
+ }
172
+ // Get installed MySQL engines from downloaded binaries
173
+ async function getInstalledMysqlEngines() {
174
+ const binDir = paths.bin;
175
+ if (!existsSync(binDir)) {
176
+ return [];
177
+ }
178
+ const entries = await readdir(binDir, { withFileTypes: true });
179
+ const engines = [];
180
+ for (const entry of entries) {
181
+ if (!entry.isDirectory())
182
+ continue;
183
+ if (!entry.name.startsWith('mysql-'))
184
+ continue;
185
+ const parsed = parseEngineDirectory(entry.name, 'mysql-', binDir);
186
+ if (!parsed)
187
+ continue;
188
+ const actualVersion = (await getMysqlVersion(parsed.path)) || parsed.version;
189
+ const sizeBytes = await calculateDirectorySize(parsed.path);
190
+ engines.push({
191
+ engine: 'mysql',
192
+ version: actualVersion,
193
+ platform: parsed.platform,
194
+ arch: parsed.arch,
195
+ path: parsed.path,
196
+ sizeBytes,
197
+ source: 'downloaded',
198
+ });
199
+ }
200
+ engines.sort((a, b) => compareVersions(b.version, a.version));
201
+ return engines;
202
+ }
203
+ // Get SQLite version from binary path
204
+ async function getSqliteVersion(binPath) {
205
+ const ext = platformService.getExecutableExtension();
206
+ const sqlite3Path = join(binPath, 'bin', `sqlite3${ext}`);
207
+ if (!existsSync(sqlite3Path)) {
208
+ return null;
209
+ }
210
+ try {
211
+ const { stdout } = await execFileAsync(sqlite3Path, ['--version']);
212
+ // sqlite3 --version outputs: "3.51.2 2025-01-08 12:00:00 ..."
213
+ const match = stdout.match(/^(\d+\.\d+\.\d+)/);
214
+ return match ? match[1] : null;
215
+ }
216
+ catch {
217
+ return null;
218
+ }
219
+ }
220
+ // Get installed SQLite engines from downloaded binaries
221
+ async function getInstalledSqliteEngines() {
222
+ const binDir = paths.bin;
223
+ if (!existsSync(binDir)) {
224
+ return [];
225
+ }
226
+ const entries = await readdir(binDir, { withFileTypes: true });
227
+ const engines = [];
228
+ for (const entry of entries) {
229
+ if (!entry.isDirectory())
230
+ continue;
231
+ if (!entry.name.startsWith('sqlite-'))
232
+ continue;
233
+ const parsed = parseEngineDirectory(entry.name, 'sqlite-', binDir);
234
+ if (!parsed)
235
+ continue;
236
+ const actualVersion = (await getSqliteVersion(parsed.path)) || parsed.version;
237
+ const sizeBytes = await calculateDirectorySize(parsed.path);
238
+ engines.push({
239
+ engine: 'sqlite',
240
+ version: actualVersion,
241
+ platform: parsed.platform,
242
+ arch: parsed.arch,
243
+ path: parsed.path,
244
+ sizeBytes,
245
+ source: 'downloaded',
246
+ });
247
+ }
248
+ engines.sort((a, b) => compareVersions(b.version, a.version));
249
+ return engines;
250
+ }
251
+ // Get DuckDB version from binary path
252
+ async function getDuckDBVersion(binPath) {
253
+ const ext = platformService.getExecutableExtension();
254
+ const duckdbPath = join(binPath, 'bin', `duckdb${ext}`);
255
+ if (!existsSync(duckdbPath)) {
256
+ return null;
257
+ }
258
+ try {
259
+ const { stdout } = await execFileAsync(duckdbPath, ['--version']);
260
+ // duckdb --version outputs: "v1.4.3 abcdef123" or just "1.4.3"
261
+ const match = stdout.match(/v?(\d+\.\d+\.\d+)/);
262
+ return match ? match[1] : null;
263
+ }
264
+ catch {
265
+ return null;
266
+ }
267
+ }
268
+ // Get installed DuckDB engines from downloaded binaries
269
+ async function getInstalledDuckDBEngines() {
270
+ const binDir = paths.bin;
271
+ if (!existsSync(binDir)) {
272
+ return [];
273
+ }
274
+ const entries = await readdir(binDir, { withFileTypes: true });
275
+ const engines = [];
276
+ for (const entry of entries) {
277
+ if (!entry.isDirectory())
278
+ continue;
279
+ if (!entry.name.startsWith('duckdb-'))
280
+ continue;
281
+ const parsed = parseEngineDirectory(entry.name, 'duckdb-', binDir);
282
+ if (!parsed)
283
+ continue;
284
+ const actualVersion = (await getDuckDBVersion(parsed.path)) || parsed.version;
285
+ const sizeBytes = await calculateDirectorySize(parsed.path);
286
+ engines.push({
287
+ engine: 'duckdb',
288
+ version: actualVersion,
289
+ platform: parsed.platform,
290
+ arch: parsed.arch,
291
+ path: parsed.path,
292
+ sizeBytes,
293
+ source: 'downloaded',
294
+ });
295
+ }
296
+ engines.sort((a, b) => compareVersions(b.version, a.version));
297
+ return engines;
298
+ }
299
+ // Get MongoDB version from binary path
300
+ async function getMongodbVersion(binPath) {
301
+ const ext = platformService.getExecutableExtension();
302
+ const serverPath = join(binPath, 'bin', `mongod${ext}`);
303
+ if (!existsSync(serverPath)) {
304
+ return null;
305
+ }
306
+ try {
307
+ const { stdout } = await execFileAsync(serverPath, ['--version']);
308
+ // Parse output like "db version v7.0.28"
309
+ const match = stdout.match(/v([\d.]+)/);
310
+ return match ? match[1] : null;
311
+ }
312
+ catch {
313
+ return null;
314
+ }
315
+ }
316
+ // Get installed MongoDB engines from downloaded binaries
317
+ async function getInstalledMongodbEngines() {
318
+ const binDir = paths.bin;
319
+ if (!existsSync(binDir)) {
320
+ return [];
321
+ }
322
+ const entries = await readdir(binDir, { withFileTypes: true });
323
+ const engines = [];
324
+ for (const entry of entries) {
325
+ if (!entry.isDirectory())
326
+ continue;
327
+ if (!entry.name.startsWith('mongodb-'))
328
+ continue;
329
+ const parsed = parseEngineDirectory(entry.name, 'mongodb-', binDir);
330
+ if (!parsed)
331
+ continue;
332
+ const actualVersion = (await getMongodbVersion(parsed.path)) || parsed.version;
333
+ const sizeBytes = await calculateDirectorySize(parsed.path);
334
+ engines.push({
335
+ engine: 'mongodb',
336
+ version: actualVersion,
337
+ platform: parsed.platform,
338
+ arch: parsed.arch,
339
+ path: parsed.path,
340
+ sizeBytes,
341
+ source: 'downloaded',
342
+ });
343
+ }
344
+ engines.sort((a, b) => compareVersions(b.version, a.version));
345
+ return engines;
346
+ }
347
+ // Get Redis version from binary path
348
+ async function getRedisVersion(binPath) {
349
+ const ext = platformService.getExecutableExtension();
350
+ const serverPath = join(binPath, 'bin', `redis-server${ext}`);
351
+ if (!existsSync(serverPath)) {
352
+ return null;
353
+ }
354
+ try {
355
+ const { stdout } = await execFileAsync(serverPath, ['--version']);
356
+ // Parse output like "Redis server v=7.4.7 sha=00000000:0 malloc=jemalloc-5.3.0 bits=64 build=..."
357
+ const match = stdout.match(/v=([\d.]+)/);
358
+ return match ? match[1] : null;
359
+ }
360
+ catch {
361
+ return null;
362
+ }
363
+ }
364
+ // Get installed Redis engines from downloaded binaries
365
+ async function getInstalledRedisEngines() {
366
+ const binDir = paths.bin;
367
+ if (!existsSync(binDir)) {
368
+ return [];
369
+ }
370
+ const entries = await readdir(binDir, { withFileTypes: true });
371
+ const engines = [];
372
+ for (const entry of entries) {
373
+ if (!entry.isDirectory())
374
+ continue;
375
+ if (!entry.name.startsWith('redis-'))
376
+ continue;
377
+ const parsed = parseEngineDirectory(entry.name, 'redis-', binDir);
378
+ if (!parsed)
379
+ continue;
380
+ const actualVersion = (await getRedisVersion(parsed.path)) || parsed.version;
381
+ const sizeBytes = await calculateDirectorySize(parsed.path);
382
+ engines.push({
383
+ engine: 'redis',
384
+ version: actualVersion,
385
+ platform: parsed.platform,
386
+ arch: parsed.arch,
387
+ path: parsed.path,
388
+ sizeBytes,
389
+ source: 'downloaded',
390
+ });
391
+ }
392
+ engines.sort((a, b) => compareVersions(b.version, a.version));
393
+ return engines;
394
+ }
395
+ // Get Valkey version from binary path
396
+ async function getValkeyVersion(binPath) {
397
+ const ext = platformService.getExecutableExtension();
398
+ const serverPath = join(binPath, 'bin', `valkey-server${ext}`);
399
+ if (!existsSync(serverPath)) {
400
+ return null;
401
+ }
402
+ try {
403
+ const { stdout } = await execFileAsync(serverPath, ['--version']);
404
+ // Parse output like "Valkey server v=8.0.6 sha=00000000:0 malloc=jemalloc-5.3.0 bits=64 build=..."
405
+ const match = stdout.match(/v=([\d.]+)/);
406
+ return match ? match[1] : null;
407
+ }
408
+ catch {
409
+ return null;
410
+ }
411
+ }
412
+ // Get installed Valkey engines from downloaded binaries
413
+ async function getInstalledValkeyEngines() {
414
+ const binDir = paths.bin;
415
+ if (!existsSync(binDir)) {
416
+ return [];
417
+ }
418
+ const entries = await readdir(binDir, { withFileTypes: true });
419
+ const engines = [];
420
+ for (const entry of entries) {
421
+ if (!entry.isDirectory())
422
+ continue;
423
+ if (!entry.name.startsWith('valkey-'))
424
+ continue;
425
+ const parsed = parseEngineDirectory(entry.name, 'valkey-', binDir);
426
+ if (!parsed)
427
+ continue;
428
+ const actualVersion = (await getValkeyVersion(parsed.path)) || parsed.version;
429
+ const sizeBytes = await calculateDirectorySize(parsed.path);
430
+ engines.push({
431
+ engine: 'valkey',
432
+ version: actualVersion,
433
+ platform: parsed.platform,
434
+ arch: parsed.arch,
435
+ path: parsed.path,
436
+ sizeBytes,
437
+ source: 'downloaded',
438
+ });
439
+ }
440
+ engines.sort((a, b) => compareVersions(b.version, a.version));
441
+ return engines;
442
+ }
443
+ // Get ClickHouse version from binary path
444
+ async function getClickHouseVersion(binPath) {
445
+ const clickhousePath = join(binPath, 'bin', 'clickhouse');
446
+ if (!existsSync(clickhousePath)) {
447
+ return null;
448
+ }
449
+ try {
450
+ const { stdout } = await execFileAsync(clickhousePath, [
451
+ 'client',
452
+ '--version',
453
+ ]);
454
+ // Parse output like "ClickHouse client version 25.12.3.21 (official build)"
455
+ const match = stdout.match(/version\s+([\d.]+)/);
456
+ return match ? match[1] : null;
457
+ }
458
+ catch {
459
+ return null;
460
+ }
461
+ }
462
+ // Get installed ClickHouse engines from downloaded binaries
463
+ async function getInstalledClickHouseEngines() {
464
+ const binDir = paths.bin;
465
+ if (!existsSync(binDir)) {
466
+ return [];
467
+ }
468
+ const entries = await readdir(binDir, { withFileTypes: true });
469
+ const engines = [];
470
+ for (const entry of entries) {
471
+ if (!entry.isDirectory())
472
+ continue;
473
+ if (!entry.name.startsWith('clickhouse-'))
474
+ continue;
475
+ const parsed = parseEngineDirectory(entry.name, 'clickhouse-', binDir);
476
+ if (!parsed)
477
+ continue;
478
+ const actualVersion = (await getClickHouseVersion(parsed.path)) || parsed.version;
479
+ const sizeBytes = await calculateDirectorySize(parsed.path);
480
+ engines.push({
481
+ engine: 'clickhouse',
482
+ version: actualVersion,
483
+ platform: parsed.platform,
484
+ arch: parsed.arch,
485
+ path: parsed.path,
486
+ sizeBytes,
487
+ source: 'downloaded',
488
+ });
489
+ }
490
+ engines.sort((a, b) => compareVersions(b.version, a.version));
491
+ return engines;
492
+ }
493
+ // Get Qdrant version from binary path
494
+ async function getQdrantVersion(binPath) {
495
+ const ext = platformService.getExecutableExtension();
496
+ const qdrantPath = join(binPath, 'bin', `qdrant${ext}`);
497
+ if (!existsSync(qdrantPath)) {
498
+ return null;
499
+ }
500
+ try {
501
+ const { stdout } = await execFileAsync(qdrantPath, ['--version']);
502
+ // Parse output like "qdrant 1.16.3" or "v1.16.3"
503
+ const match = stdout.match(/(?:qdrant\s+)?v?(\d+\.\d+\.\d+)/);
504
+ return match ? match[1] : null;
505
+ }
506
+ catch {
507
+ return null;
508
+ }
509
+ }
510
+ // Get installed Qdrant engines from downloaded binaries
511
+ async function getInstalledQdrantEngines() {
512
+ const binDir = paths.bin;
513
+ if (!existsSync(binDir)) {
514
+ return [];
515
+ }
516
+ const entries = await readdir(binDir, { withFileTypes: true });
517
+ const engines = [];
518
+ for (const entry of entries) {
519
+ if (!entry.isDirectory())
520
+ continue;
521
+ if (!entry.name.startsWith('qdrant-'))
522
+ continue;
523
+ const parsed = parseEngineDirectory(entry.name, 'qdrant-', binDir);
524
+ if (!parsed)
525
+ continue;
526
+ const actualVersion = (await getQdrantVersion(parsed.path)) || parsed.version;
527
+ const sizeBytes = await calculateDirectorySize(parsed.path);
528
+ engines.push({
529
+ engine: 'qdrant',
530
+ version: actualVersion,
531
+ platform: parsed.platform,
532
+ arch: parsed.arch,
533
+ path: parsed.path,
534
+ sizeBytes,
535
+ source: 'downloaded',
536
+ });
537
+ }
538
+ engines.sort((a, b) => compareVersions(b.version, a.version));
539
+ return engines;
540
+ }
541
+ // Get Meilisearch version from binary path
542
+ async function getMeilisearchVersion(binPath) {
543
+ const ext = platformService.getExecutableExtension();
544
+ const meilisearchPath = join(binPath, 'bin', `meilisearch${ext}`);
545
+ if (!existsSync(meilisearchPath)) {
546
+ return null;
547
+ }
548
+ try {
549
+ const { stdout } = await execFileAsync(meilisearchPath, ['--version']);
550
+ // Parse output like "meilisearch 1.33.1" or "v1.33.1"
551
+ const match = stdout.match(/(?:meilisearch\s+)?v?(\d+\.\d+\.\d+)/);
552
+ return match ? match[1] : null;
553
+ }
554
+ catch {
555
+ return null;
556
+ }
557
+ }
558
+ // Get installed Meilisearch engines from downloaded binaries
559
+ async function getInstalledMeilisearchEngines() {
560
+ const binDir = paths.bin;
561
+ if (!existsSync(binDir)) {
562
+ return [];
563
+ }
564
+ const entries = await readdir(binDir, { withFileTypes: true });
565
+ const engines = [];
566
+ for (const entry of entries) {
567
+ if (!entry.isDirectory())
568
+ continue;
569
+ if (!entry.name.startsWith('meilisearch-'))
570
+ continue;
571
+ const parsed = parseEngineDirectory(entry.name, 'meilisearch-', binDir);
572
+ if (!parsed)
573
+ continue;
574
+ const actualVersion = (await getMeilisearchVersion(parsed.path)) || parsed.version;
575
+ const sizeBytes = await calculateDirectorySize(parsed.path);
576
+ engines.push({
577
+ engine: 'meilisearch',
578
+ version: actualVersion,
579
+ platform: parsed.platform,
580
+ arch: parsed.arch,
581
+ path: parsed.path,
582
+ sizeBytes,
583
+ source: 'downloaded',
584
+ });
585
+ }
586
+ engines.sort((a, b) => compareVersions(b.version, a.version));
587
+ return engines;
588
+ }
589
+ // Get CouchDB version from binary path
590
+ // Note: CouchDB doesn't support --version flag, so we just verify the binary exists
591
+ // and return null to use the version from the directory name
592
+ async function getCouchDBVersion(binPath) {
593
+ const ext = platformService.getExecutableExtension();
594
+ const couchdbPath = join(binPath, 'bin', `couchdb${ext}`);
595
+ if (!existsSync(couchdbPath)) {
596
+ return null;
597
+ }
598
+ // CouchDB is an Erlang app that tries to start when run with any args
599
+ // Just return null to use directory-parsed version
600
+ return null;
601
+ }
602
+ // Get installed CouchDB engines from downloaded binaries
603
+ async function getInstalledCouchDBEngines() {
604
+ const binDir = paths.bin;
605
+ if (!existsSync(binDir)) {
606
+ return [];
607
+ }
608
+ const entries = await readdir(binDir, { withFileTypes: true });
609
+ const engines = [];
610
+ for (const entry of entries) {
611
+ if (!entry.isDirectory())
612
+ continue;
613
+ if (!entry.name.startsWith('couchdb-'))
614
+ continue;
615
+ const parsed = parseEngineDirectory(entry.name, 'couchdb-', binDir);
616
+ if (!parsed)
617
+ continue;
618
+ const actualVersion = (await getCouchDBVersion(parsed.path)) || parsed.version;
619
+ const sizeBytes = await calculateDirectorySize(parsed.path);
620
+ engines.push({
621
+ engine: 'couchdb',
622
+ version: actualVersion,
623
+ platform: parsed.platform,
624
+ arch: parsed.arch,
625
+ path: parsed.path,
626
+ sizeBytes,
627
+ source: 'downloaded',
628
+ });
629
+ }
630
+ engines.sort((a, b) => compareVersions(b.version, a.version));
631
+ return engines;
632
+ }
633
+ // Get CockroachDB version from binary path
634
+ async function getCockroachDBVersion(binPath) {
635
+ const ext = platformService.getExecutableExtension();
636
+ const cockroachPath = join(binPath, 'bin', `cockroach${ext}`);
637
+ if (!existsSync(cockroachPath)) {
638
+ return null;
639
+ }
640
+ try {
641
+ const { stdout } = await execFileAsync(cockroachPath, ['version']);
642
+ // Parse output like "Build Tag: v25.4.2" or "CockroachDB CCL v25.4.2"
643
+ const match = stdout.match(/v?(\d+\.\d+\.\d+)/);
644
+ return match ? match[1] : null;
645
+ }
646
+ catch {
647
+ return null;
648
+ }
649
+ }
650
+ // Get installed CockroachDB engines from downloaded binaries
651
+ async function getInstalledCockroachDBEngines() {
652
+ const binDir = paths.bin;
653
+ if (!existsSync(binDir)) {
654
+ return [];
655
+ }
656
+ const entries = await readdir(binDir, { withFileTypes: true });
657
+ const engines = [];
658
+ for (const entry of entries) {
659
+ if (!entry.isDirectory())
660
+ continue;
661
+ if (!entry.name.startsWith('cockroachdb-'))
662
+ continue;
663
+ const parsed = parseEngineDirectory(entry.name, 'cockroachdb-', binDir);
664
+ if (!parsed)
665
+ continue;
666
+ const actualVersion = (await getCockroachDBVersion(parsed.path)) || parsed.version;
667
+ const sizeBytes = await calculateDirectorySize(parsed.path);
668
+ engines.push({
669
+ engine: 'cockroachdb',
670
+ version: actualVersion,
671
+ platform: parsed.platform,
672
+ arch: parsed.arch,
673
+ path: parsed.path,
674
+ sizeBytes,
675
+ source: 'downloaded',
676
+ });
677
+ }
678
+ engines.sort((a, b) => compareVersions(b.version, a.version));
679
+ return engines;
680
+ }
681
+ // Get SurrealDB version from binary path
682
+ async function getSurrealDBVersion(binPath) {
683
+ const ext = platformService.getExecutableExtension();
684
+ const surrealPath = join(binPath, 'bin', `surreal${ext}`);
685
+ if (!existsSync(surrealPath)) {
686
+ return null;
687
+ }
688
+ try {
689
+ const { stdout } = await execFileAsync(surrealPath, ['version']);
690
+ // Parse output like "surreal 2.3.2 for linux on x86_64" or "2.3.2"
691
+ const match = stdout.match(/(\d+\.\d+\.\d+)/);
692
+ return match ? match[1] : null;
693
+ }
694
+ catch {
695
+ return null;
696
+ }
697
+ }
698
+ // Get installed SurrealDB engines from downloaded binaries
699
+ async function getInstalledSurrealDBEngines() {
700
+ const binDir = paths.bin;
701
+ if (!existsSync(binDir)) {
702
+ return [];
703
+ }
704
+ const entries = await readdir(binDir, { withFileTypes: true });
705
+ const engines = [];
706
+ for (const entry of entries) {
707
+ if (!entry.isDirectory())
708
+ continue;
709
+ if (!entry.name.startsWith('surrealdb-'))
710
+ continue;
711
+ const parsed = parseEngineDirectory(entry.name, 'surrealdb-', binDir);
712
+ if (!parsed)
713
+ continue;
714
+ const actualVersion = (await getSurrealDBVersion(parsed.path)) || parsed.version;
715
+ const sizeBytes = await calculateDirectorySize(parsed.path);
716
+ engines.push({
717
+ engine: 'surrealdb',
718
+ version: actualVersion,
719
+ platform: parsed.platform,
720
+ arch: parsed.arch,
721
+ path: parsed.path,
722
+ sizeBytes,
723
+ source: 'downloaded',
724
+ });
725
+ }
726
+ engines.sort((a, b) => compareVersions(b.version, a.version));
727
+ return engines;
728
+ }
729
+ // Get QuestDB version from directory path
730
+ // QuestDB doesn't have a simple --version flag, extract from directory name
731
+ async function getQuestDBVersion(binPath) {
732
+ const platform = platformService.getPlatformInfo().platform;
733
+ // Check for questdb startup script
734
+ if (platform === 'win32') {
735
+ if (!existsSync(join(binPath, 'questdb.exe'))) {
736
+ return null;
737
+ }
738
+ }
739
+ else {
740
+ if (!existsSync(join(binPath, 'questdb.sh'))) {
741
+ return null;
742
+ }
743
+ }
744
+ // Version is embedded in directory name, return null to use directory-parsed version
745
+ return null;
746
+ }
747
+ // Get installed QuestDB engines from downloaded binaries
748
+ async function getInstalledQuestDBEngines() {
749
+ const binDir = paths.bin;
750
+ if (!existsSync(binDir)) {
751
+ return [];
752
+ }
753
+ const entries = await readdir(binDir, { withFileTypes: true });
754
+ const engines = [];
755
+ for (const entry of entries) {
756
+ if (!entry.isDirectory())
757
+ continue;
758
+ if (!entry.name.startsWith('questdb-'))
759
+ continue;
760
+ const parsed = parseEngineDirectory(entry.name, 'questdb-', binDir);
761
+ if (!parsed)
762
+ continue;
763
+ const actualVersion = (await getQuestDBVersion(parsed.path)) || parsed.version;
764
+ const sizeBytes = await calculateDirectorySize(parsed.path);
765
+ engines.push({
766
+ engine: 'questdb',
767
+ version: actualVersion,
768
+ platform: parsed.platform,
769
+ arch: parsed.arch,
770
+ path: parsed.path,
771
+ sizeBytes,
772
+ source: 'downloaded',
773
+ });
774
+ }
775
+ engines.sort((a, b) => compareVersions(b.version, a.version));
776
+ return engines;
777
+ }
778
+ // Get TypeDB version from binary path
779
+ // TypeDB is a Rust binary but uses a launcher script. Check for server binary existence.
780
+ async function getTypeDBVersion(binPath) {
781
+ const ext = platformService.getExecutableExtension();
782
+ const serverPath = join(binPath, 'bin', 'server', `typedb_server_bin${ext}`);
783
+ if (!existsSync(serverPath)) {
784
+ return null;
785
+ }
786
+ // TypeDB server binary doesn't have a simple --version flag
787
+ // Return null to use directory-parsed version
788
+ return null;
789
+ }
790
+ // Get installed TypeDB engines from downloaded binaries
791
+ async function getInstalledTypeDBEngines() {
792
+ const binDir = paths.bin;
793
+ if (!existsSync(binDir)) {
794
+ return [];
795
+ }
796
+ const entries = await readdir(binDir, { withFileTypes: true });
797
+ const engines = [];
798
+ for (const entry of entries) {
799
+ if (!entry.isDirectory())
800
+ continue;
801
+ if (!entry.name.startsWith('typedb-'))
802
+ continue;
803
+ const parsed = parseEngineDirectory(entry.name, 'typedb-', binDir);
804
+ if (!parsed)
805
+ continue;
806
+ const actualVersion = (await getTypeDBVersion(parsed.path)) || parsed.version;
807
+ const sizeBytes = await calculateDirectorySize(parsed.path);
808
+ engines.push({
809
+ engine: 'typedb',
810
+ version: actualVersion,
811
+ platform: parsed.platform,
812
+ arch: parsed.arch,
813
+ path: parsed.path,
814
+ sizeBytes,
815
+ source: 'downloaded',
816
+ });
817
+ }
818
+ engines.sort((a, b) => compareVersions(b.version, a.version));
819
+ return engines;
820
+ }
821
+ // Get InfluxDB version from binary path
822
+ async function getInfluxDBVersion(binPath) {
823
+ const ext = platformService.getExecutableExtension();
824
+ const influxdbPath = join(binPath, 'bin', `influxdb3${ext}`);
825
+ if (!existsSync(influxdbPath)) {
826
+ return null;
827
+ }
828
+ try {
829
+ const { stdout } = await execFileAsync(influxdbPath, ['--version']);
830
+ const match = stdout.match(/v?(\d+\.\d+\.\d+)/);
831
+ return match ? match[1] : null;
832
+ }
833
+ catch {
834
+ return null;
835
+ }
836
+ }
837
+ // Get installed InfluxDB engines from downloaded binaries
838
+ async function getInstalledInfluxDBEngines() {
839
+ const binDir = paths.bin;
840
+ if (!existsSync(binDir)) {
841
+ return [];
842
+ }
843
+ const entries = await readdir(binDir, { withFileTypes: true });
844
+ const engines = [];
845
+ for (const entry of entries) {
846
+ if (!entry.isDirectory())
847
+ continue;
848
+ if (!entry.name.startsWith('influxdb-'))
849
+ continue;
850
+ const parsed = parseEngineDirectory(entry.name, 'influxdb-', binDir);
851
+ if (!parsed)
852
+ continue;
853
+ const actualVersion = (await getInfluxDBVersion(parsed.path)) || parsed.version;
854
+ const sizeBytes = await calculateDirectorySize(parsed.path);
855
+ engines.push({
856
+ engine: 'influxdb',
857
+ version: actualVersion,
858
+ platform: parsed.platform,
859
+ arch: parsed.arch,
860
+ path: parsed.path,
861
+ sizeBytes,
862
+ source: 'downloaded',
863
+ });
864
+ }
865
+ engines.sort((a, b) => compareVersions(b.version, a.version));
866
+ return engines;
867
+ }
868
+ // Get FerretDB version from binary path
869
+ async function getFerretDBVersion(binPath) {
870
+ const ext = platformService.getExecutableExtension();
871
+ const ferretdbPath = join(binPath, 'bin', `ferretdb${ext}`);
872
+ if (!existsSync(ferretdbPath)) {
873
+ return null;
874
+ }
875
+ try {
876
+ const { stdout } = await execFileAsync(ferretdbPath, ['--version']);
877
+ // Parse output like "ferretdb version 2.7.0" or "v2.7.0"
878
+ const match = stdout.match(/(?:ferretdb\s+)?(?:version\s+)?v?(\d+\.\d+\.\d+)/);
879
+ return match ? match[1] : null;
880
+ }
881
+ catch {
882
+ return null;
883
+ }
884
+ }
885
+ // Get installed FerretDB engines from downloaded binaries
886
+ async function getInstalledFerretDBEngines() {
887
+ const binDir = paths.bin;
888
+ if (!existsSync(binDir)) {
889
+ return [];
890
+ }
891
+ const entries = await readdir(binDir, { withFileTypes: true });
892
+ const engines = [];
893
+ for (const entry of entries) {
894
+ if (!entry.isDirectory())
895
+ continue;
896
+ if (!entry.name.startsWith('ferretdb-'))
897
+ continue;
898
+ const parsed = parseEngineDirectory(entry.name, 'ferretdb-', binDir);
899
+ if (!parsed)
900
+ continue;
901
+ const actualVersion = (await getFerretDBVersion(parsed.path)) || parsed.version;
902
+ const sizeBytes = await calculateDirectorySize(parsed.path);
903
+ engines.push({
904
+ engine: 'ferretdb',
905
+ version: actualVersion,
906
+ platform: parsed.platform,
907
+ arch: parsed.arch,
908
+ path: parsed.path,
909
+ sizeBytes,
910
+ source: 'downloaded',
911
+ });
912
+ }
913
+ engines.sort((a, b) => compareVersions(b.version, a.version));
914
+ return engines;
915
+ }
916
+ // Get Weaviate version from binary path
917
+ async function getWeaviateVersion(binPath) {
918
+ const ext = platformService.getExecutableExtension();
919
+ const weaviatePath = join(binPath, 'bin', `weaviate${ext}`);
920
+ if (!existsSync(weaviatePath)) {
921
+ return null;
922
+ }
923
+ try {
924
+ const { stdout } = await execFileAsync(weaviatePath, ['--version']);
925
+ // Parse output like "weaviate v1.35.7" or "1.35.7"
926
+ const match = stdout.match(/(?:weaviate\s+)?v?(\d+\.\d+\.\d+)/);
927
+ return match ? match[1] : null;
928
+ }
929
+ catch {
930
+ return null;
931
+ }
932
+ }
933
+ // Get installed Weaviate engines from downloaded binaries
934
+ async function getInstalledWeaviateEngines() {
935
+ const binDir = paths.bin;
936
+ if (!existsSync(binDir)) {
937
+ return [];
938
+ }
939
+ const entries = await readdir(binDir, { withFileTypes: true });
940
+ const engines = [];
941
+ for (const entry of entries) {
942
+ if (!entry.isDirectory())
943
+ continue;
944
+ if (!entry.name.startsWith('weaviate-'))
945
+ continue;
946
+ const parsed = parseEngineDirectory(entry.name, 'weaviate-', binDir);
947
+ if (!parsed)
948
+ continue;
949
+ const actualVersion = (await getWeaviateVersion(parsed.path)) || parsed.version;
950
+ const sizeBytes = await calculateDirectorySize(parsed.path);
951
+ engines.push({
952
+ engine: 'weaviate',
953
+ version: actualVersion,
954
+ platform: parsed.platform,
955
+ arch: parsed.arch,
956
+ path: parsed.path,
957
+ sizeBytes,
958
+ source: 'downloaded',
959
+ });
960
+ }
961
+ engines.sort((a, b) => compareVersions(b.version, a.version));
962
+ return engines;
963
+ }
964
+ // Get TigerBeetle version from binary path
965
+ async function getTigerBeetleVersion(binPath) {
966
+ const ext = platformService.getExecutableExtension();
967
+ const tigerbeetlePath = join(binPath, 'bin', `tigerbeetle${ext}`);
968
+ if (!existsSync(tigerbeetlePath)) {
969
+ return null;
970
+ }
971
+ try {
972
+ const { stdout } = await execFileAsync(tigerbeetlePath, ['version']);
973
+ // Parse output like "TigerBeetle v0.16.70" or "0.16.70"
974
+ const match = stdout.match(/(?:TigerBeetle\s+)?v?(\d+\.\d+\.\d+)/);
975
+ return match ? match[1] : null;
976
+ }
977
+ catch {
978
+ return null;
979
+ }
980
+ }
981
+ // Get installed TigerBeetle engines from downloaded binaries
982
+ async function getInstalledTigerBeetleEngines() {
983
+ const binDir = paths.bin;
984
+ if (!existsSync(binDir)) {
985
+ return [];
986
+ }
987
+ const entries = await readdir(binDir, { withFileTypes: true });
988
+ const engines = [];
989
+ for (const entry of entries) {
990
+ if (!entry.isDirectory())
991
+ continue;
992
+ if (!entry.name.startsWith('tigerbeetle-'))
993
+ continue;
994
+ const parsed = parseEngineDirectory(entry.name, 'tigerbeetle-', binDir);
995
+ if (!parsed)
996
+ continue;
997
+ const actualVersion = (await getTigerBeetleVersion(parsed.path)) || parsed.version;
998
+ const sizeBytes = await calculateDirectorySize(parsed.path);
999
+ engines.push({
1000
+ engine: 'tigerbeetle',
1001
+ version: actualVersion,
1002
+ platform: parsed.platform,
1003
+ arch: parsed.arch,
1004
+ path: parsed.path,
1005
+ sizeBytes,
1006
+ source: 'downloaded',
1007
+ });
1008
+ }
1009
+ engines.sort((a, b) => compareVersions(b.version, a.version));
1010
+ return engines;
1011
+ }
1012
+ export function compareVersions(a, b) {
1013
+ const partsA = a.split('.').map((p) => parseInt(p, 10) || 0);
1014
+ const partsB = b.split('.').map((p) => parseInt(p, 10) || 0);
1015
+ for (let i = 0; i < Math.max(partsA.length, partsB.length); i++) {
1016
+ const numA = partsA[i] || 0;
1017
+ const numB = partsB[i] || 0;
1018
+ if (numA !== numB)
1019
+ return numA - numB;
1020
+ }
1021
+ return 0;
1022
+ }
1023
+ /**
1024
+ * Known engine directory prefixes in the bin directory.
1025
+ * Directory names follow the pattern: {engine}-{version}-{platform}-{arch}
1026
+ */
1027
+ const ENGINE_PREFIXES = [
1028
+ 'postgresql-',
1029
+ 'mysql-',
1030
+ 'mariadb-',
1031
+ 'sqlite-',
1032
+ 'duckdb-',
1033
+ 'mongodb-',
1034
+ 'ferretdb-',
1035
+ 'postgresql-documentdb-',
1036
+ 'redis-',
1037
+ 'valkey-',
1038
+ 'clickhouse-',
1039
+ 'qdrant-',
1040
+ 'meilisearch-',
1041
+ 'couchdb-',
1042
+ 'cockroachdb-',
1043
+ 'surrealdb-',
1044
+ 'questdb-',
1045
+ 'typedb-',
1046
+ 'influxdb-',
1047
+ 'weaviate-',
1048
+ 'tigerbeetle-',
1049
+ ];
1050
+ /**
1051
+ * Lightweight check to see if any engines are installed.
1052
+ * Only reads the bin directory - no subprocess spawning or size calculations.
1053
+ * Use this for UI decisions where you only need to know if engines exist.
1054
+ * Validates directory names against known engine prefixes to avoid false positives.
1055
+ */
1056
+ export async function hasAnyInstalledEngines() {
1057
+ const binDir = paths.bin;
1058
+ if (!existsSync(binDir)) {
1059
+ return false;
1060
+ }
1061
+ try {
1062
+ const entries = await readdir(binDir, { withFileTypes: true });
1063
+ return entries.some((entry) => entry.isDirectory() &&
1064
+ !entry.name.startsWith('.') &&
1065
+ ENGINE_PREFIXES.some((prefix) => entry.name.startsWith(prefix)));
1066
+ }
1067
+ catch {
1068
+ return false;
1069
+ }
1070
+ }
1071
+ export async function getInstalledEngines() {
1072
+ // Parallelize all engine checks for faster startup
1073
+ const [pgEngines, mariadbEngines, mysqlEngines, sqliteEngines, duckdbEngines, mongodbEngines, ferretdbEngines, redisEngines, valkeyEngines, clickhouseEngines, qdrantEngines, meilisearchEngines, couchdbEngines, cockroachdbEngines, surrealdbEngines, questdbEngines, typedbEngines, influxdbEngines, weaviateEngines, tigerbeetleEngines,] = await Promise.all([
1074
+ getInstalledPostgresEngines(),
1075
+ getInstalledMariadbEngines(),
1076
+ getInstalledMysqlEngines(),
1077
+ getInstalledSqliteEngines(),
1078
+ getInstalledDuckDBEngines(),
1079
+ getInstalledMongodbEngines(),
1080
+ getInstalledFerretDBEngines(),
1081
+ getInstalledRedisEngines(),
1082
+ getInstalledValkeyEngines(),
1083
+ getInstalledClickHouseEngines(),
1084
+ getInstalledQdrantEngines(),
1085
+ getInstalledMeilisearchEngines(),
1086
+ getInstalledCouchDBEngines(),
1087
+ getInstalledCockroachDBEngines(),
1088
+ getInstalledSurrealDBEngines(),
1089
+ getInstalledQuestDBEngines(),
1090
+ getInstalledTypeDBEngines(),
1091
+ getInstalledInfluxDBEngines(),
1092
+ getInstalledWeaviateEngines(),
1093
+ getInstalledTigerBeetleEngines(),
1094
+ ]);
1095
+ return [
1096
+ ...pgEngines,
1097
+ ...mariadbEngines,
1098
+ ...mysqlEngines,
1099
+ ...sqliteEngines,
1100
+ ...duckdbEngines,
1101
+ ...mongodbEngines,
1102
+ ...ferretdbEngines,
1103
+ ...redisEngines,
1104
+ ...valkeyEngines,
1105
+ ...clickhouseEngines,
1106
+ ...qdrantEngines,
1107
+ ...meilisearchEngines,
1108
+ ...couchdbEngines,
1109
+ ...cockroachdbEngines,
1110
+ ...surrealdbEngines,
1111
+ ...questdbEngines,
1112
+ ...typedbEngines,
1113
+ ...influxdbEngines,
1114
+ ...weaviateEngines,
1115
+ ...tigerbeetleEngines,
1116
+ ];
1117
+ }
1118
+ // Export individual engine detection functions for use in other modules
1119
+ export { getInstalledMysqlEngines, getInstalledSqliteEngines, getInstalledDuckDBEngines, getInstalledMongodbEngines, getInstalledFerretDBEngines, getInstalledRedisEngines, getInstalledValkeyEngines, getInstalledClickHouseEngines, getInstalledQdrantEngines, getInstalledMeilisearchEngines, getInstalledCouchDBEngines, getInstalledCockroachDBEngines, getInstalledSurrealDBEngines, getInstalledQuestDBEngines, getInstalledTypeDBEngines, getInstalledInfluxDBEngines, getInstalledWeaviateEngines, getInstalledTigerBeetleEngines, };
1120
+ //# sourceMappingURL=helpers.js.map