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,286 @@
1
+ /**
2
+ * PostgreSQL Version Validator
3
+ *
4
+ * Validates compatibility between pg_restore tool version and dump file version.
5
+ * PostgreSQL is backwards compatible - we only fail when dump_version > tool_version.
6
+ */
7
+ import { exec } from 'child_process';
8
+ import { promisify } from 'util';
9
+ import { createReadStream } from 'fs';
10
+ import { createInterface } from 'readline';
11
+ import { SpinDBError, ErrorCodes, logWarning, logDebug, } from '../../core/error-handler.js';
12
+ import { detectPackageManager } from '../../core/dependency-manager.js';
13
+ import { detectInstalledPostgres, getDirectBinaryPath, findCompatibleVersion, } from '../../core/homebrew-version-manager.js';
14
+ import { detectRemotePostgresVersion, } from './remote-version.js';
15
+ const execAsync = promisify(exec);
16
+ // =============================================================================
17
+ // Version Parsing
18
+ // =============================================================================
19
+ /**
20
+ * Parse version from pg_dump/pg_restore --version output
21
+ * Examples:
22
+ * "pg_restore (PostgreSQL) 16.1"
23
+ * "pg_restore (PostgreSQL) 14.9 (Homebrew)"
24
+ * "pg_dump (PostgreSQL) 17.0"
25
+ */
26
+ export function parseToolVersion(output) {
27
+ const match = output.match(/(\d+)\.(\d+)(?:\.(\d+))?/);
28
+ if (!match) {
29
+ throw new Error(`Cannot parse version from: ${output}`);
30
+ }
31
+ return {
32
+ major: parseInt(match[1], 10),
33
+ minor: parseInt(match[2], 10),
34
+ patch: parseInt(match[3] || '0', 10),
35
+ full: match[0],
36
+ };
37
+ }
38
+ async function readFirstLines(filePath, lineCount) {
39
+ return new Promise((resolve, reject) => {
40
+ const lines = [];
41
+ const stream = createReadStream(filePath, { encoding: 'utf8' });
42
+ const rl = createInterface({ input: stream });
43
+ rl.on('line', (line) => {
44
+ lines.push(line);
45
+ if (lines.length >= lineCount) {
46
+ rl.close();
47
+ stream.destroy();
48
+ }
49
+ });
50
+ rl.on('close', () => {
51
+ resolve(lines.join('\n'));
52
+ });
53
+ rl.on('error', reject);
54
+ stream.on('error', reject);
55
+ });
56
+ }
57
+ /**
58
+ * Parse version from dump file header
59
+ *
60
+ * Plain SQL format: "-- Dumped from database version 16.1"
61
+ * Archive format: Uses `pg_restore -l` to read TOC header
62
+ */
63
+ export async function parseDumpVersion(dumpPath, format, pgRestorePath) {
64
+ try {
65
+ if (format === 'custom' || format === 'directory') {
66
+ // Use pg_restore -l to get archive info
67
+ const restorePath = pgRestorePath || 'pg_restore';
68
+ const { stdout } = await execAsync(`"${restorePath}" -l "${dumpPath}" 2>&1 | head -20`);
69
+ // Look for: "; Dumped from database version 16.1"
70
+ const match = stdout.match(/Dumped from database version (\d+)\.(\d+)(?:\.(\d+))?/);
71
+ if (match) {
72
+ return {
73
+ major: parseInt(match[1], 10),
74
+ minor: parseInt(match[2], 10),
75
+ patch: parseInt(match[3] || '0', 10),
76
+ full: `${match[1]}.${match[2]}${match[3] ? `.${match[3]}` : ''}`,
77
+ };
78
+ }
79
+ }
80
+ else {
81
+ // Plain SQL format - read first 50 lines
82
+ const header = await readFirstLines(dumpPath, 50);
83
+ const match = header.match(/Dumped from database version (\d+)\.(\d+)(?:\.(\d+))?/);
84
+ if (match) {
85
+ return {
86
+ major: parseInt(match[1], 10),
87
+ minor: parseInt(match[2], 10),
88
+ patch: parseInt(match[3] || '0', 10),
89
+ full: `${match[1]}.${match[2]}${match[3] ? `.${match[3]}` : ''}`,
90
+ };
91
+ }
92
+ }
93
+ }
94
+ catch (error) {
95
+ logDebug('Failed to parse dump version', {
96
+ dumpPath,
97
+ format,
98
+ error: error instanceof Error ? error.message : String(error),
99
+ });
100
+ }
101
+ return null; // Version not found in dump
102
+ }
103
+ // Get the version of pg_restore
104
+ export async function getPgRestoreVersion(pgRestorePath) {
105
+ const { stdout } = await execAsync(`"${pgRestorePath}" --version`);
106
+ return parseToolVersion(stdout);
107
+ }
108
+ // =============================================================================
109
+ // Compatibility Checking
110
+ // =============================================================================
111
+ /**
112
+ * Check version compatibility - ONLY fails when dump is NEWER than tool
113
+ *
114
+ * | Scenario | Result |
115
+ * |----------|--------|
116
+ * | pg_restore v16 + dump from v14 | ✅ Works (backwards compatible) |
117
+ * | pg_restore v16 + dump from v16 | ✅ Works (same version) |
118
+ * | pg_restore v14 + dump from v16 | ❌ Fails (dump newer than tool) |
119
+ * | pg_restore v16 + dump from v10 | ⚠️ Works with warning (very old) |
120
+ */
121
+ export function checkVersionCompatibility(dumpVersion, toolVersion) {
122
+ // If we couldn't parse dump version, proceed with warning
123
+ if (!dumpVersion) {
124
+ return {
125
+ compatible: true,
126
+ dumpVersion: null,
127
+ toolVersion,
128
+ warning: 'Could not detect dump version. Proceeding anyway.',
129
+ };
130
+ }
131
+ // FAIL: Dump is newer than tool (e.g., pg_restore 14 + dump from 16)
132
+ if (dumpVersion.major > toolVersion.major) {
133
+ return {
134
+ compatible: false,
135
+ dumpVersion,
136
+ toolVersion,
137
+ error: `Backup was created with PostgreSQL ${dumpVersion.major}, ` +
138
+ `but your pg_restore is version ${toolVersion.major}. ` +
139
+ `Install PostgreSQL ${dumpVersion.major} client tools to restore this backup.`,
140
+ };
141
+ }
142
+ // WARN: Dump is very old (3+ major versions behind)
143
+ if (dumpVersion.major < toolVersion.major - 2) {
144
+ return {
145
+ compatible: true,
146
+ dumpVersion,
147
+ toolVersion,
148
+ warning: `Backup was created with PostgreSQL ${dumpVersion.major}. ` +
149
+ `Some features may not restore correctly.`,
150
+ };
151
+ }
152
+ // OK: Same version or dump is older (backwards compatible)
153
+ return { compatible: true, dumpVersion, toolVersion };
154
+ }
155
+ // =============================================================================
156
+ // Main Validation Function
157
+ // =============================================================================
158
+ /**
159
+ * Validate that a dump file can be restored with the available pg_restore
160
+ *
161
+ * @throws SpinDBError if versions are incompatible
162
+ */
163
+ export async function validateRestoreCompatibility(options) {
164
+ const { dumpPath, format, pgRestorePath } = options;
165
+ // Get tool version
166
+ const toolVersion = await getPgRestoreVersion(pgRestorePath);
167
+ logDebug('pg_restore version detected', { version: toolVersion.full });
168
+ // Get dump version
169
+ const dumpVersion = await parseDumpVersion(dumpPath, format, pgRestorePath);
170
+ if (dumpVersion) {
171
+ logDebug('Dump version detected', { version: dumpVersion.full });
172
+ }
173
+ else {
174
+ logDebug('Could not detect dump version');
175
+ }
176
+ // Check compatibility
177
+ const result = checkVersionCompatibility(dumpVersion, toolVersion);
178
+ if (!result.compatible) {
179
+ throw new SpinDBError(ErrorCodes.VERSION_MISMATCH, result.error, 'fatal', `Install PostgreSQL ${dumpVersion.major} client tools: brew install postgresql@${dumpVersion.major}`, { dumpVersion, toolVersion });
180
+ }
181
+ if (result.warning) {
182
+ logWarning(result.warning);
183
+ }
184
+ return { dumpVersion, toolVersion };
185
+ }
186
+ export async function getPgDumpVersion(pgDumpPath) {
187
+ const { stdout } = await execAsync(`"${pgDumpPath}" --version`);
188
+ return parseToolVersion(stdout);
189
+ }
190
+ /**
191
+ * Validate that a remote database can be dumped with the current pg_dump
192
+ *
193
+ * This checks BEFORE dumping to avoid creating incompatible dump files.
194
+ * Returns the recommended action if the current pg_dump is incompatible.
195
+ */
196
+ export async function validateDumpCompatibility(options) {
197
+ const { connectionString, pgDumpPath } = options;
198
+ // Get local pg_dump version
199
+ const localVersion = await getPgDumpVersion(pgDumpPath);
200
+ logDebug('Local pg_dump version', { version: localVersion.full });
201
+ // Detect remote database version
202
+ const remoteVersion = await detectRemotePostgresVersion(connectionString);
203
+ logDebug('Remote database version', {
204
+ version: remoteVersion.fullVersion,
205
+ serverType: remoteVersion.serverType,
206
+ });
207
+ // Check compatibility: local tool must be >= remote version
208
+ if (localVersion.major >= remoteVersion.majorVersion) {
209
+ return {
210
+ compatible: true,
211
+ localToolVersion: localVersion,
212
+ remoteDbVersion: remoteVersion,
213
+ requiredAction: 'none',
214
+ };
215
+ }
216
+ // Version mismatch - check if we can use a direct path
217
+ const targetMajor = String(remoteVersion.majorVersion);
218
+ const directPath = await getDirectBinaryPath('pg_dump', targetMajor);
219
+ if (directPath) {
220
+ // Have a direct path to the correct version
221
+ return {
222
+ compatible: false,
223
+ localToolVersion: localVersion,
224
+ remoteDbVersion: remoteVersion,
225
+ requiredAction: 'use_direct_path',
226
+ alternativePath: directPath,
227
+ switchTarget: targetMajor,
228
+ };
229
+ }
230
+ // Check if any compatible version is installed via Homebrew
231
+ const compatibleVersion = await findCompatibleVersion(remoteVersion.majorVersion);
232
+ if (compatibleVersion) {
233
+ const altPath = await getDirectBinaryPath('pg_dump', compatibleVersion.majorVersion);
234
+ return {
235
+ compatible: false,
236
+ localToolVersion: localVersion,
237
+ remoteDbVersion: remoteVersion,
238
+ requiredAction: 'use_direct_path',
239
+ alternativePath: altPath || undefined,
240
+ switchTarget: compatibleVersion.majorVersion,
241
+ };
242
+ }
243
+ // Check if we could switch Homebrew (version is installed but not as direct path)
244
+ const installed = await detectInstalledPostgres();
245
+ const hasTarget = installed.some((v) => parseInt(v.majorVersion, 10) >= remoteVersion.majorVersion);
246
+ if (hasTarget) {
247
+ const best = installed
248
+ .filter((v) => parseInt(v.majorVersion, 10) >= remoteVersion.majorVersion)
249
+ .sort((a, b) => parseInt(a.majorVersion, 10) - parseInt(b.majorVersion, 10))[0];
250
+ return {
251
+ compatible: false,
252
+ localToolVersion: localVersion,
253
+ remoteDbVersion: remoteVersion,
254
+ requiredAction: 'switch_homebrew',
255
+ switchTarget: best.majorVersion,
256
+ };
257
+ }
258
+ // Need to install - provide platform-specific instructions
259
+ const installCmd = await getInstallCommand(targetMajor);
260
+ return {
261
+ compatible: false,
262
+ localToolVersion: localVersion,
263
+ remoteDbVersion: remoteVersion,
264
+ requiredAction: 'install',
265
+ switchTarget: targetMajor,
266
+ error: `Your pg_dump version (${localVersion.major}) cannot dump from PostgreSQL ${remoteVersion.majorVersion}. ` +
267
+ `Install PostgreSQL ${targetMajor} client tools: ${installCmd}`,
268
+ };
269
+ }
270
+ export async function getInstallCommand(majorVersion) {
271
+ const pm = await detectPackageManager();
272
+ if (!pm) {
273
+ return `Install PostgreSQL ${majorVersion} client tools for your platform`;
274
+ }
275
+ // Versioned package names per package manager
276
+ const packages = {
277
+ brew: `postgresql@${majorVersion}`,
278
+ apt: `postgresql-client-${majorVersion}`,
279
+ yum: `postgresql${majorVersion}`,
280
+ dnf: `postgresql${majorVersion}`,
281
+ pacman: 'postgresql-libs', // Arch doesn't version packages the same way
282
+ };
283
+ const pkg = packages[pm.id] || `postgresql-${majorVersion}`;
284
+ return pm.config.installTemplate.replace('{package}', pkg);
285
+ }
286
+ //# sourceMappingURL=version-validator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version-validator.js","sourceRoot":"","sources":["../../../engines/postgresql/version-validator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ /**
2
+ * Shared Qdrant REST API client utilities
3
+ */
4
+ /**
5
+ * Make an HTTP request to Qdrant REST API
6
+ *
7
+ * @param port - The HTTP port Qdrant is listening on
8
+ * @param method - HTTP method (GET, POST, PUT, DELETE)
9
+ * @param path - API path (e.g., '/collections', '/snapshots')
10
+ * @param body - Optional JSON body for POST/PUT requests
11
+ * @param timeoutMs - Request timeout in milliseconds (default: 30s)
12
+ */
13
+ export async function qdrantApiRequest(port, method, path, body, timeoutMs = 30000) {
14
+ const url = `http://127.0.0.1:${port}${path}`;
15
+ const controller = new AbortController();
16
+ const timeoutId = setTimeout(() => controller.abort(), timeoutMs);
17
+ const options = {
18
+ method,
19
+ headers: {
20
+ 'Content-Type': 'application/json',
21
+ },
22
+ signal: controller.signal,
23
+ };
24
+ if (body) {
25
+ options.body = JSON.stringify(body);
26
+ }
27
+ try {
28
+ const response = await fetch(url, options);
29
+ // Try to parse as JSON, fall back to text for endpoints like /healthz
30
+ let data;
31
+ const contentType = response.headers.get('content-type') || '';
32
+ if (contentType.includes('application/json')) {
33
+ data = await response.json();
34
+ }
35
+ else {
36
+ data = await response.text();
37
+ }
38
+ return { status: response.status, data };
39
+ }
40
+ catch (error) {
41
+ if (error instanceof Error && error.name === 'AbortError') {
42
+ throw new Error(`Qdrant API request timed out after ${timeoutMs / 1000}s: ${method} ${path}`);
43
+ }
44
+ throw error;
45
+ }
46
+ finally {
47
+ clearTimeout(timeoutId);
48
+ }
49
+ }
50
+ //# sourceMappingURL=api-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-client.js","sourceRoot":"","sources":["../../../engines/qdrant/api-client.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,IAAY,EACZ,MAAc,EACd,IAAY,EACZ,IAA8B,EAC9B,SAAS,GAAG,KAAK;IAEjB,MAAM,GAAG,GAAG,oBAAoB,IAAI,GAAG,IAAI,EAAE,CAAA;IAE7C,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAA;IACxC,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,SAAS,CAAC,CAAA;IAEjE,MAAM,OAAO,GAAgB;QAC3B,MAAM;QACN,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;SACnC;QACD,MAAM,EAAE,UAAU,CAAC,MAAM;KAC1B,CAAA;IAED,IAAI,IAAI,EAAE,CAAC;QACT,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;IACrC,CAAC;IAED,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;QAE1C,sEAAsE;QACtE,IAAI,IAAa,CAAA;QACjB,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,CAAA;QAC9D,IAAI,WAAW,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;YAC7C,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;QAC9B,CAAC;aAAM,CAAC;YACN,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;QAC9B,CAAC;QAED,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,CAAA;IAC1C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YAC1D,MAAM,IAAI,KAAK,CACb,sCAAsC,SAAS,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,EAAE,CAC7E,CAAA;QACH,CAAC;QACD,MAAM,KAAK,CAAA;IACb,CAAC;YAAS,CAAC;QACT,YAAY,CAAC,SAAS,CAAC,CAAA;IACzB,CAAC;AACH,CAAC"}
@@ -0,0 +1,115 @@
1
+ /**
2
+ * Qdrant backup module
3
+ * Supports snapshot-based backup using Qdrant's REST API
4
+ */
5
+ import { mkdir, stat, copyFile, readdir } from 'fs/promises';
6
+ import { existsSync } from 'fs';
7
+ import { join, dirname } from 'path';
8
+ import { logDebug } from '../../core/error-handler.js';
9
+ import { paths } from '../../config/paths.js';
10
+ import { qdrantApiRequest } from './api-client.js';
11
+ // Backup operations may take longer than the default timeout
12
+ const BACKUP_TIMEOUT_MS = 600000; // 10 minutes
13
+ /**
14
+ * Create a snapshot backup using Qdrant's REST API
15
+ * This creates a full snapshot of the entire Qdrant instance
16
+ */
17
+ export async function createBackup(container, outputPath, _options) {
18
+ const { port, name } = container;
19
+ // Ensure output directory exists
20
+ const outputDir = dirname(outputPath);
21
+ if (!existsSync(outputDir)) {
22
+ await mkdir(outputDir, { recursive: true });
23
+ }
24
+ // Trigger snapshot creation via REST API
25
+ logDebug(`Creating Qdrant snapshot via REST API on port ${port}`);
26
+ const response = await qdrantApiRequest(port, 'POST', '/snapshots', undefined, BACKUP_TIMEOUT_MS);
27
+ if (response.status !== 200) {
28
+ throw new Error(`Failed to create Qdrant snapshot: ${JSON.stringify(response.data)}`);
29
+ }
30
+ const snapshotData = response.data;
31
+ const snapshotName = snapshotData?.result?.name;
32
+ if (!snapshotName) {
33
+ throw new Error(`Qdrant snapshot creation failed: no snapshot name returned`);
34
+ }
35
+ logDebug(`Qdrant snapshot created: ${snapshotName}`);
36
+ // The snapshot is stored in the data directory's snapshots folder
37
+ const dataDir = paths.getContainerDataPath(name, { engine: 'qdrant' });
38
+ const snapshotsDir = join(dataDir, 'snapshots');
39
+ const snapshotPath = join(snapshotsDir, snapshotName);
40
+ // Wait for the snapshot file to be ready and fully written
41
+ // Qdrant writes snapshots asynchronously, so we need to wait for both:
42
+ // 1. The file to exist
43
+ // 2. The file size to stabilize (no longer being written)
44
+ const maxWait = 60000; // 60 seconds
45
+ const startTime = Date.now();
46
+ let lastSize = -1;
47
+ while (Date.now() - startTime < maxWait) {
48
+ if (existsSync(snapshotPath)) {
49
+ try {
50
+ const currentStats = await stat(snapshotPath);
51
+ if (currentStats.size > 0 && currentStats.size === lastSize) {
52
+ // Size hasn't changed, file is likely complete
53
+ break;
54
+ }
55
+ lastSize = currentStats.size;
56
+ }
57
+ catch {
58
+ // File may have been deleted or inaccessible between existsSync and stat
59
+ // Reset lastSize and continue polling
60
+ lastSize = -1;
61
+ }
62
+ }
63
+ await new Promise((r) => setTimeout(r, 500));
64
+ }
65
+ if (!existsSync(snapshotPath)) {
66
+ throw new Error(`Qdrant snapshot file not found at ${snapshotPath} after timeout`);
67
+ }
68
+ // Copy snapshot to output path
69
+ await copyFile(snapshotPath, outputPath);
70
+ const stats = await stat(outputPath);
71
+ return {
72
+ path: outputPath,
73
+ format: 'snapshot',
74
+ size: stats.size,
75
+ };
76
+ }
77
+ /**
78
+ * Create a backup for cloning purposes
79
+ * Uses snapshot format for reliable data transfer
80
+ */
81
+ export async function createCloneBackup(container, outputPath) {
82
+ return createBackup(container, outputPath, { database: 'default' });
83
+ }
84
+ /**
85
+ * List available snapshots for a container
86
+ */
87
+ export async function listSnapshots(container) {
88
+ const { name } = container;
89
+ const dataDir = paths.getContainerDataPath(name, { engine: 'qdrant' });
90
+ const snapshotsDir = join(dataDir, 'snapshots');
91
+ if (!existsSync(snapshotsDir)) {
92
+ return [];
93
+ }
94
+ const files = await readdir(snapshotsDir);
95
+ const snapshotFiles = files.filter((file) => file.endsWith('.snapshot'));
96
+ // Stat all snapshot files in parallel for better performance
97
+ // Filter out any files that fail to stat (e.g., deleted during iteration)
98
+ const statsResults = await Promise.all(snapshotFiles.map(async (file) => {
99
+ const filePath = join(snapshotsDir, file);
100
+ try {
101
+ const stats = await stat(filePath);
102
+ return {
103
+ name: file,
104
+ createdAt: stats.mtime.toISOString(),
105
+ size: stats.size,
106
+ };
107
+ }
108
+ catch {
109
+ // File may have been deleted between readdir and stat
110
+ return null;
111
+ }
112
+ }));
113
+ return statsResults.filter((result) => result !== null);
114
+ }
115
+ //# sourceMappingURL=backup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backup.js","sourceRoot":"","sources":["../../../engines/qdrant/backup.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Qdrant Binary Manager
3
+ *
4
+ * Handles downloading, extracting, and managing Qdrant binaries from hostdb.
5
+ * Extends BaseBinaryManager for shared download/extraction logic.
6
+ */
7
+ import { BaseBinaryManager, } from '../../core/base-binary-manager.js';
8
+ import { getBinaryUrl } from './binary-urls.js';
9
+ import { normalizeVersion } from './version-maps.js';
10
+ import { Engine } from '../../types/index.js';
11
+ class QdrantBinaryManager extends BaseBinaryManager {
12
+ config = {
13
+ engine: Engine.Qdrant,
14
+ engineName: 'qdrant',
15
+ displayName: 'Qdrant',
16
+ serverBinary: 'qdrant',
17
+ };
18
+ getBinaryUrlFromModule(version, platform, arch) {
19
+ return getBinaryUrl(version, platform, arch);
20
+ }
21
+ normalizeVersionFromModule(version) {
22
+ return normalizeVersion(version);
23
+ }
24
+ parseVersionFromOutput(stdout) {
25
+ // Extract version from output like "qdrant 1.16.3" or "v1.16.3"
26
+ const match = stdout.match(/(?:qdrant\s+)?v?(\d+\.\d+\.\d+)/);
27
+ return match?.[1] ?? null;
28
+ }
29
+ }
30
+ export const qdrantBinaryManager = new QdrantBinaryManager();
31
+ //# sourceMappingURL=binary-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"binary-manager.js","sourceRoot":"","sources":["../../../engines/qdrant/binary-manager.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,iBAAiB,GAElB,MAAM,gCAAgC,CAAA;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AACjD,OAAO,EAAE,MAAM,EAA4B,MAAM,aAAa,CAAA;AAE9D,MAAM,mBAAoB,SAAQ,iBAAiB;IAC9B,MAAM,GAAwB;QAC/C,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,UAAU,EAAE,QAAQ;QACpB,WAAW,EAAE,QAAQ;QACrB,YAAY,EAAE,QAAQ;KACvB,CAAA;IAES,sBAAsB,CAC9B,OAAe,EACf,QAAkB,EAClB,IAAU;QAEV,OAAO,YAAY,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAA;IAC9C,CAAC;IAES,0BAA0B,CAAC,OAAe;QAClD,OAAO,gBAAgB,CAAC,OAAO,CAAC,CAAA;IAClC,CAAC;IAES,sBAAsB,CAAC,MAAc;QAC7C,gEAAgE;QAChE,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAA;QAC7D,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAA;IAC3B,CAAC;CACF;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,mBAAmB,EAAE,CAAA"}
@@ -0,0 +1,92 @@
1
+ import { QDRANT_VERSION_MAP } from './version-maps.js';
2
+ import { buildHostdbUrl } from '../../core/hostdb-client.js';
3
+ import { logDebug } from '../../core/error-handler.js';
4
+ import { Engine, Platform } from '../../types/index.js';
5
+ /**
6
+ * Supported platform identifiers for hostdb downloads.
7
+ * hostdb uses standard Node.js platform naming - this set validates
8
+ * that a platform/arch combination is supported, not transforms it.
9
+ */
10
+ const SUPPORTED_PLATFORMS = new Set([
11
+ 'darwin-arm64',
12
+ 'darwin-x64',
13
+ 'linux-arm64',
14
+ 'linux-x64',
15
+ 'win32-x64',
16
+ ]);
17
+ /**
18
+ * Get the hostdb platform identifier
19
+ *
20
+ * hostdb uses standard platform naming that matches Node.js identifiers directly.
21
+ * This function validates the platform/arch combination is supported.
22
+ *
23
+ * @param platform - Node.js platform (e.g., 'darwin', 'linux', 'win32')
24
+ * @param arch - Node.js architecture (e.g., 'arm64', 'x64')
25
+ * @returns hostdb platform identifier or null if unsupported
26
+ */
27
+ export function getHostdbPlatform(platform, arch) {
28
+ const key = `${platform}-${arch}`;
29
+ return SUPPORTED_PLATFORMS.has(key) ? key : null;
30
+ }
31
+ /**
32
+ * Build the download URL for Qdrant binaries from hostdb
33
+ *
34
+ * Format: https://registry.layerbase.host/qdrant-{version}/qdrant-{version}-{platform}-{arch}.{ext}
35
+ *
36
+ * @param version - Qdrant version (e.g., '1', '1.16.3')
37
+ * @param platform - Platform identifier (e.g., 'darwin', 'linux', 'win32')
38
+ * @param arch - Architecture identifier (e.g., 'arm64', 'x64')
39
+ * @returns Download URL for the binary
40
+ */
41
+ export function getBinaryUrl(version, platform, arch) {
42
+ const platformKey = `${platform}-${arch}`;
43
+ const hostdbPlatform = getHostdbPlatform(platform, arch);
44
+ if (!hostdbPlatform) {
45
+ const supported = Array.from(SUPPORTED_PLATFORMS).join(', ');
46
+ throw new Error(`Unsupported platform: ${platformKey}. Supported platforms: ${supported}`);
47
+ }
48
+ // Normalize version (handles major version lookup and X.Y -> X.Y.Z conversion)
49
+ const fullVersion = normalizeVersion(version, QDRANT_VERSION_MAP);
50
+ const ext = platform === Platform.Win32 ? 'zip' : 'tar.gz';
51
+ return buildHostdbUrl(Engine.Qdrant, {
52
+ version: fullVersion,
53
+ hostdbPlatform,
54
+ extension: ext,
55
+ });
56
+ }
57
+ /**
58
+ * Normalize version string to X.Y.Z format
59
+ *
60
+ * @param version - Version string (e.g., '1', '1.16', '1.16.3')
61
+ * @param versionMap - Optional version map for major version lookup
62
+ * @returns Normalized version (e.g., '1.16.3')
63
+ */
64
+ function normalizeVersion(version, versionMap = QDRANT_VERSION_MAP) {
65
+ // Check if it's an exact key in the map (handles "1", "1.16", etc.)
66
+ if (versionMap[version]) {
67
+ return versionMap[version];
68
+ }
69
+ const parts = version.split('.');
70
+ // If it's already a full version (X.Y.Z), return as-is
71
+ if (parts.length === 3) {
72
+ return version;
73
+ }
74
+ // For two-part versions (e.g., "1.16"), first try exact two-part key, then fall back to major
75
+ if (parts.length === 2) {
76
+ const twoPart = `${parts[0]}.${parts[1]}`;
77
+ if (versionMap[twoPart]) {
78
+ return versionMap[twoPart];
79
+ }
80
+ // Fall back to major version for latest patch
81
+ const major = parts[0];
82
+ const mapped = versionMap[major];
83
+ if (mapped) {
84
+ return mapped;
85
+ }
86
+ }
87
+ // Unknown version format - log and return as-is
88
+ // This may cause download failures if the version doesn't exist in hostdb
89
+ logDebug(`Qdrant version '${version}' not in version map, may not be available in hostdb`);
90
+ return version;
91
+ }
92
+ //# sourceMappingURL=binary-urls.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"binary-urls.js","sourceRoot":"","sources":["../../../engines/qdrant/binary-urls.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AACnD,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAa,MAAM,aAAa,CAAA;AAEzD;;;;GAIG;AACH,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC;IAClC,cAAc;IACd,YAAY;IACZ,aAAa;IACb,WAAW;IACX,WAAW;CACZ,CAAC,CAAA;AAEF;;;;;;;;;GASG;AACH,MAAM,UAAU,iBAAiB,CAC/B,QAAkB,EAClB,IAAU;IAEV,MAAM,GAAG,GAAG,GAAG,QAAQ,IAAI,IAAI,EAAE,CAAA;IACjC,OAAO,mBAAmB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAA;AAClD,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,YAAY,CAC1B,OAAe,EACf,QAAkB,EAClB,IAAU;IAEV,MAAM,WAAW,GAAG,GAAG,QAAQ,IAAI,IAAI,EAAE,CAAA;IACzC,MAAM,cAAc,GAAG,iBAAiB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;IACxD,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC5D,MAAM,IAAI,KAAK,CACb,yBAAyB,WAAW,0BAA0B,SAAS,EAAE,CAC1E,CAAA;IACH,CAAC;IAED,+EAA+E;IAC/E,MAAM,WAAW,GAAG,gBAAgB,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAA;IACjE,MAAM,GAAG,GAAG,QAAQ,KAAK,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAA;IAE1D,OAAO,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE;QACnC,OAAO,EAAE,WAAW;QACpB,cAAc;QACd,SAAS,EAAE,GAAG;KACf,CAAC,CAAA;AACJ,CAAC;AAED;;;;;;GAMG;AACH,SAAS,gBAAgB,CACvB,OAAe,EACf,aAAqC,kBAAkB;IAEvD,oEAAoE;IACpE,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACxB,OAAO,UAAU,CAAC,OAAO,CAAC,CAAA;IAC5B,CAAC;IAED,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAEhC,uDAAuD;IACvD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,OAAO,CAAA;IAChB,CAAC;IAED,8FAA8F;IAC9F,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,OAAO,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAA;QACzC,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YACxB,OAAO,UAAU,CAAC,OAAO,CAAC,CAAA;QAC5B,CAAC;QACD,8CAA8C;QAC9C,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;QACtB,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,CAAA;QAChC,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,MAAM,CAAA;QACf,CAAC;IACH,CAAC;IAED,gDAAgD;IAChD,0EAA0E;IAC1E,QAAQ,CACN,mBAAmB,OAAO,sDAAsD,CACjF,CAAA;IACD,OAAO,OAAO,CAAA;AAChB,CAAC"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Shared Qdrant CLI utilities
3
+ *
4
+ * Provides common functions for locating Qdrant binaries,
5
+ * used by both backup.ts and restore.ts to avoid duplication.
6
+ */
7
+ import { existsSync } from 'fs';
8
+ import { configManager } from '../../core/config-manager.js';
9
+ import { platformService } from '../../core/platform-service.js';
10
+ /**
11
+ * Get the path to qdrant binary
12
+ *
13
+ * Lookup order:
14
+ * 1. configManager cache (bundled/downloaded binaries from hostdb)
15
+ * 2. System PATH (fallback for system-installed qdrant)
16
+ *
17
+ * @returns Path to qdrant or null if not found
18
+ */
19
+ export async function getQdrantPath() {
20
+ // Check if we have a cached/bundled qdrant from hostdb
21
+ const cachedPath = await configManager.getBinaryPath('qdrant');
22
+ if (cachedPath && existsSync(cachedPath)) {
23
+ return cachedPath;
24
+ }
25
+ // Fallback to system PATH
26
+ return platformService.findToolPath('qdrant');
27
+ }
28
+ /**
29
+ * Error message for missing qdrant binary
30
+ * Directs users to download via hostdb (preferred) or system package manager (fallback)
31
+ */
32
+ export const QDRANT_NOT_FOUND_ERROR = 'qdrant not found. Download Qdrant binaries:\n' +
33
+ ' spindb engines download qdrant\n' +
34
+ '\n' +
35
+ 'Or run via Docker:\n' +
36
+ ' docker run -p 6333:6333 qdrant/qdrant\n' +
37
+ '\n' +
38
+ 'See: https://qdrant.tech/documentation/guides/installation/';
39
+ //# sourceMappingURL=cli-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-utils.js","sourceRoot":"","sources":["../../../engines/qdrant/cli-utils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAA;AAC/B,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAA;AAE7D;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa;IACjC,uDAAuD;IACvD,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA;IAC9D,IAAI,UAAU,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QACzC,OAAO,UAAU,CAAA;IACnB,CAAC;IAED,0BAA0B;IAC1B,OAAO,eAAe,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAA;AAC/C,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,sBAAsB,GACjC,+CAA+C;IAC/C,oCAAoC;IACpC,IAAI;IACJ,sBAAsB;IACtB,2CAA2C;IAC3C,IAAI;IACJ,6DAA6D,CAAA"}