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,289 @@
1
+ /**
2
+ * ClickHouse backup module
3
+ * Supports SQL-based backups using clickhouse client
4
+ *
5
+ * ClickHouse backup formats:
6
+ * - SQL: DDL + INSERT statements (portable, human-readable)
7
+ * - Native: ClickHouse native format (faster, compact)
8
+ */
9
+ import { spawn } from 'child_process';
10
+ import { stat, mkdir, writeFile } from 'fs/promises';
11
+ import { existsSync, createWriteStream } from 'fs';
12
+ import { dirname } from 'path';
13
+ import { logDebug, logWarning } from '../../core/error-handler.js';
14
+ import { requireClickHousePath, validateClickHouseIdentifier, escapeClickHouseIdentifier, } from './cli-utils.js';
15
+ /**
16
+ * Execute a ClickHouse query and return the result
17
+ */
18
+ async function execClickHouseQuery(clickhousePath, port, database, query) {
19
+ return new Promise((resolve, reject) => {
20
+ const args = [
21
+ 'client',
22
+ '--host',
23
+ '127.0.0.1',
24
+ '--port',
25
+ String(port),
26
+ '--database',
27
+ database,
28
+ '--query',
29
+ query,
30
+ ];
31
+ const proc = spawn(clickhousePath, args, {
32
+ stdio: ['pipe', 'pipe', 'pipe'],
33
+ });
34
+ let stdout = '';
35
+ let stderr = '';
36
+ proc.stdout.on('data', (data) => {
37
+ stdout += data.toString();
38
+ });
39
+ proc.stderr.on('data', (data) => {
40
+ stderr += data.toString();
41
+ });
42
+ proc.on('error', reject);
43
+ proc.on('close', (code) => {
44
+ if (code === 0 || code === null) {
45
+ resolve(stdout);
46
+ }
47
+ else {
48
+ reject(new Error(stderr || `clickhouse client exited with code ${code}`));
49
+ }
50
+ });
51
+ });
52
+ }
53
+ /**
54
+ * Get list of tables in a database
55
+ */
56
+ async function getTables(clickhousePath, port, database) {
57
+ // Validate database identifier to prevent SQL injection
58
+ validateClickHouseIdentifier(database, 'database');
59
+ // Escape single quotes for use in string literal (WHERE clause)
60
+ const escapedDbLiteral = database.replace(/'/g, "''");
61
+ const result = await execClickHouseQuery(clickhousePath, port, database, `SELECT name FROM system.tables WHERE database = '${escapedDbLiteral}' ORDER BY name`);
62
+ return result
63
+ .trim()
64
+ .split('\n')
65
+ .filter((t) => t.trim());
66
+ }
67
+ /**
68
+ * Get CREATE TABLE statement for a table
69
+ * Returns portable SQL without database prefix for cross-database restore
70
+ */
71
+ async function getCreateTableStatement(clickhousePath, port, database, table) {
72
+ // Validate and escape identifiers to prevent SQL injection
73
+ validateClickHouseIdentifier(database, 'database');
74
+ validateClickHouseIdentifier(table, 'table');
75
+ const escapedDb = escapeClickHouseIdentifier(database);
76
+ const escapedTable = escapeClickHouseIdentifier(table);
77
+ // Use TSVRaw format to get unescaped output (newlines as actual newlines, not \n)
78
+ const result = await execClickHouseQuery(clickhousePath, port, database, `SHOW CREATE TABLE ${escapedDb}.${escapedTable} FORMAT TSVRaw`);
79
+ // Strip database prefix from CREATE TABLE statement to make it portable
80
+ // e.g., "CREATE TABLE testdb.test_user" → "CREATE TABLE test_user"
81
+ // e.g., "CREATE TABLE `testdb`.`test_user`" → "CREATE TABLE `test_user`"
82
+ // This allows the backup to be restored to any target database
83
+ const createStmt = result.trim();
84
+ // Escape regex metacharacters in database name for safe interpolation
85
+ const escapedDatabase = database.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
86
+ // Match both quoted and unquoted database names: db.table or `db`.table or `db`.`table`
87
+ const dbPrefixPattern = new RegExp(`(CREATE TABLE\\s+)\`?${escapedDatabase}\`?\\.`, 'i');
88
+ return createStmt.replace(dbPrefixPattern, '$1');
89
+ }
90
+ /**
91
+ * Create a SQL backup (DDL + INSERT statements)
92
+ */
93
+ async function createSqlBackup(container, outputPath, database) {
94
+ const { port, version } = container;
95
+ const clickhousePath = await requireClickHousePath(version);
96
+ const lines = [];
97
+ lines.push('-- ClickHouse backup generated by SpinDB');
98
+ lines.push(`-- Date: ${new Date().toISOString()}`);
99
+ lines.push(`-- Database: ${database}`);
100
+ lines.push('');
101
+ // Get list of tables
102
+ const tables = await getTables(clickhousePath, port, database);
103
+ logDebug(`Found ${tables.length} tables to backup`);
104
+ for (const table of tables) {
105
+ lines.push(`-- Table: ${table}`);
106
+ lines.push('');
107
+ // Get CREATE TABLE statement
108
+ try {
109
+ const createStmt = await getCreateTableStatement(clickhousePath, port, database, table);
110
+ lines.push(createStmt + ';');
111
+ lines.push('');
112
+ }
113
+ catch (error) {
114
+ logWarning(`Could not get CREATE TABLE for ${table}: ${error}`);
115
+ continue;
116
+ }
117
+ // Export data using INSERT format
118
+ try {
119
+ // Validate and escape identifiers for SQL injection protection
120
+ // Note: table names from getTables are already validated, but escape for query safety
121
+ validateClickHouseIdentifier(table, 'table');
122
+ const escapedDb = escapeClickHouseIdentifier(database);
123
+ const escapedTable = escapeClickHouseIdentifier(table);
124
+ const data = await execClickHouseQuery(clickhousePath, port, database, `SELECT * FROM ${escapedDb}.${escapedTable} FORMAT SQLInsert`);
125
+ if (data.trim()) {
126
+ // SQLInsert format uses literal "table" as placeholder, replace ALL occurrences with actual table name
127
+ // Use global flag to handle multi-statement output
128
+ const insertData = data
129
+ .trim()
130
+ .replace(/INSERT INTO table \(/gi, `INSERT INTO ${escapedTable} (`);
131
+ lines.push(insertData);
132
+ lines.push('');
133
+ }
134
+ }
135
+ catch (error) {
136
+ logWarning(`Could not export data for ${table}: ${error}`);
137
+ }
138
+ }
139
+ // Ensure output directory exists
140
+ const outputDir = dirname(outputPath);
141
+ if (!existsSync(outputDir)) {
142
+ await mkdir(outputDir, { recursive: true });
143
+ }
144
+ // Write to file
145
+ const content = lines.join('\n');
146
+ await writeFile(outputPath, content, 'utf-8');
147
+ const stats = await stat(outputPath);
148
+ return {
149
+ path: outputPath,
150
+ format: 'sql',
151
+ size: stats.size,
152
+ };
153
+ }
154
+ /**
155
+ * Create a native format backup (faster, more compact)
156
+ *
157
+ * TODO: Enable native backup format when restore support is implemented.
158
+ * Native format is ~10x faster and more compact than SQL, but requires
159
+ * parsing the binary format for restore. SQL format is currently preferred
160
+ * for portability and ease of restore via clickhouse client --multiquery.
161
+ *
162
+ * ARCHITECTURAL NOTE: The current implementation mixes text markers
163
+ * (-- TABLE:, -- CREATE:, -- DATA:) with binary Native format data in
164
+ * the same stream. Before enabling this feature, refactor to use a
165
+ * structured container format for deterministic parsing during restore:
166
+ * - Tar archive with separate files per table (schema.sql + data.native)
167
+ * - Or length-prefixed binary sections
168
+ * - Or separate metadata JSON file alongside pure binary data
169
+ *
170
+ * To enable: export this function, add 'native' to BACKUP_FORMATS in
171
+ * config/backup-formats.ts, and implement native restore in restore.ts.
172
+ *
173
+ * @internal Kept for future native backup support
174
+ */
175
+ async function _createNativeBackup(container, outputPath, database) {
176
+ const { port, version } = container;
177
+ const clickhousePath = await requireClickHousePath(version);
178
+ // Ensure output directory exists
179
+ const outputDir = dirname(outputPath);
180
+ if (!existsSync(outputDir)) {
181
+ await mkdir(outputDir, { recursive: true });
182
+ }
183
+ // Get list of tables
184
+ const tables = await getTables(clickhousePath, port, database);
185
+ logDebug(`Found ${tables.length} tables to backup`);
186
+ // Create a combined backup with all tables
187
+ const fileStream = createWriteStream(outputPath);
188
+ // Write header
189
+ const header = `-- ClickHouse native backup\n-- Database: ${database}\n-- Date: ${new Date().toISOString()}\n\n`;
190
+ fileStream.write(header);
191
+ for (const table of tables) {
192
+ // Write table marker
193
+ fileStream.write(`\n-- TABLE: ${table}\n`);
194
+ // Get CREATE TABLE
195
+ try {
196
+ const createStmt = await getCreateTableStatement(clickhousePath, port, database, table);
197
+ fileStream.write(`-- CREATE:\n${createStmt};\n`);
198
+ }
199
+ catch (error) {
200
+ logWarning(`Could not get CREATE TABLE for ${table}: ${error}`);
201
+ continue;
202
+ }
203
+ // Export data in Native format (binary, fast)
204
+ fileStream.write(`-- DATA (Native format):\n`);
205
+ // Validate and escape identifiers for SQL injection protection
206
+ validateClickHouseIdentifier(table, 'table');
207
+ const escapedDb = escapeClickHouseIdentifier(database);
208
+ const escapedTable = escapeClickHouseIdentifier(table);
209
+ await new Promise((resolve, reject) => {
210
+ const args = [
211
+ 'client',
212
+ '--host',
213
+ '127.0.0.1',
214
+ '--port',
215
+ String(port),
216
+ '--database',
217
+ database,
218
+ '--query',
219
+ `SELECT * FROM ${escapedDb}.${escapedTable} FORMAT Native`,
220
+ ];
221
+ const proc = spawn(clickhousePath, args, {
222
+ stdio: ['ignore', 'pipe', 'pipe'],
223
+ });
224
+ let stderr = '';
225
+ proc.stdout.pipe(fileStream, { end: false });
226
+ proc.stderr.on('data', (data) => {
227
+ stderr += data.toString();
228
+ });
229
+ proc.on('error', reject);
230
+ proc.on('close', (code) => {
231
+ if (code === 0 || code === null) {
232
+ resolve();
233
+ }
234
+ else {
235
+ reject(new Error(stderr || `clickhouse client exited with code ${code}`));
236
+ }
237
+ });
238
+ });
239
+ fileStream.write('\n-- END TABLE\n');
240
+ }
241
+ // Close file
242
+ await new Promise((resolve, reject) => {
243
+ fileStream.end((err) => {
244
+ if (err)
245
+ reject(err);
246
+ else
247
+ resolve();
248
+ });
249
+ });
250
+ const stats = await stat(outputPath);
251
+ return {
252
+ path: outputPath,
253
+ format: 'native',
254
+ size: stats.size,
255
+ };
256
+ }
257
+ /**
258
+ * Create a backup
259
+ *
260
+ * Currently only supports SQL format (DDL + INSERT statements).
261
+ * Native format support is planned but not yet implemented for restore.
262
+ * See _createNativeBackup for the future native implementation.
263
+ *
264
+ * @param container - Container configuration
265
+ * @param outputPath - Path to write backup file
266
+ * @param options - Backup options (BackupOptions type)
267
+ * @param options.format - Reserved for future use. Currently ignored; all backups
268
+ * use SQL format. When native format support is added, 'dump' will use
269
+ * _createNativeBackup for faster, more compact backups.
270
+ */
271
+ export async function createBackup(container, outputPath, options) {
272
+ const database = options.database || container.database || 'default';
273
+ // Log when a non-SQL format is requested but not yet supported
274
+ if (options.format && options.format !== 'sql') {
275
+ logDebug(`ClickHouse backup: format '${options.format}' requested but not yet supported. ` +
276
+ `Using SQL format instead. See _createNativeBackup for future native support.`);
277
+ }
278
+ // Currently only SQL format is supported
279
+ // Native format (_createNativeBackup) will be enabled when restore support is added
280
+ return createSqlBackup(container, outputPath, database);
281
+ }
282
+ /**
283
+ * Create a backup for cloning purposes
284
+ * Uses SQL format for reliability
285
+ */
286
+ export async function createCloneBackup(container, outputPath) {
287
+ return createSqlBackup(container, outputPath, container.database || 'default');
288
+ }
289
+ //# sourceMappingURL=backup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backup.js","sourceRoot":"","sources":["../../../engines/clickhouse/backup.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,145 @@
1
+ /**
2
+ * ClickHouse Binary Manager
3
+ *
4
+ * Handles downloading, extracting, and managing ClickHouse binaries from hostdb.
5
+ * ClickHouse uses a single unified binary that handles server, client, and local modes.
6
+ *
7
+ * Extends BaseServerBinaryManager with ClickHouse-specific overrides:
8
+ * - No Windows support (throws on Windows extraction)
9
+ * - YY.MM version matching in verify()
10
+ * - Flat archive handling (moves clickhouse binary to bin/)
11
+ */
12
+ import { existsSync } from 'fs';
13
+ import { mkdir, readdir } from 'fs/promises';
14
+ import { join } from 'path';
15
+ import { exec } from 'child_process';
16
+ import { promisify } from 'util';
17
+ import { paths } from '../../config/paths.js';
18
+ import { getBinaryUrl } from './binary-urls.js';
19
+ import { normalizeVersion } from './version-maps.js';
20
+ import { logDebug } from '../../core/error-handler.js';
21
+ import { moveEntry } from '../../core/fs-error-utils.js';
22
+ import { BaseServerBinaryManager, } from '../../core/base-server-binary-manager.js';
23
+ import { Engine, } from '../../types/index.js';
24
+ const execAsync = promisify(exec);
25
+ class ClickHouseBinaryManager extends BaseServerBinaryManager {
26
+ config = {
27
+ engine: Engine.ClickHouse,
28
+ engineName: 'clickhouse',
29
+ displayName: 'ClickHouse',
30
+ serverBinaryNames: ['clickhouse'],
31
+ };
32
+ getBinaryUrlFromModule(version, platform, arch) {
33
+ return getBinaryUrl(version, platform, arch);
34
+ }
35
+ normalizeVersionFromModule(version) {
36
+ return normalizeVersion(version);
37
+ }
38
+ parseVersionFromOutput(stdout) {
39
+ // Extract version from output like "ClickHouse client version 25.12.3.21"
40
+ const match = stdout.match(/(\d+\.\d+\.\d+\.\d+)/);
41
+ return match?.[1] ?? null;
42
+ }
43
+ /**
44
+ * ClickHouse does not have Windows binaries on hostdb.
45
+ * Override to throw a clear error.
46
+ */
47
+ async extractWindowsBinaries(_zipFile, _binPath, _tempDir, _onProgress) {
48
+ throw new Error('ClickHouse binaries are not available for Windows. ' +
49
+ 'ClickHouse is only supported on macOS and Linux.');
50
+ }
51
+ /**
52
+ * Override to handle ClickHouse's archive structure.
53
+ * ClickHouse archives may have a flat structure where the binary is at the root,
54
+ * not in a bin/ subdirectory. This moves the clickhouse binary to bin/.
55
+ */
56
+ async moveExtractedEntries(extractDir, binPath) {
57
+ const entries = await readdir(extractDir, { withFileTypes: true });
58
+ // Check for a clickhouse subdirectory
59
+ const clickhouseDir = entries.find((e) => e.isDirectory() &&
60
+ (e.name === 'clickhouse' || e.name.startsWith('clickhouse-')));
61
+ const sourceDir = clickhouseDir
62
+ ? join(extractDir, clickhouseDir.name)
63
+ : extractDir;
64
+ const sourceEntries = clickhouseDir
65
+ ? await readdir(sourceDir, { withFileTypes: true })
66
+ : entries;
67
+ // Check if source has a bin/ subdirectory
68
+ const hasBinDir = sourceEntries.some((e) => e.isDirectory() && e.name === 'bin');
69
+ if (hasBinDir) {
70
+ // Standard structure: move all entries as-is (preserves bin/ subdirectory)
71
+ for (const entry of sourceEntries) {
72
+ const sourcePath = join(sourceDir, entry.name);
73
+ const destPath = join(binPath, entry.name);
74
+ await moveEntry(sourcePath, destPath);
75
+ }
76
+ }
77
+ else {
78
+ // Flat structure: create bin/ and move binaries there
79
+ const destBinDir = join(binPath, 'bin');
80
+ await mkdir(destBinDir, { recursive: true });
81
+ for (const entry of sourceEntries) {
82
+ const sourcePath = join(sourceDir, entry.name);
83
+ // Check if it's an executable (no extension on Unix, starts with 'clickhouse')
84
+ const isExecutable = entry.isFile() &&
85
+ !entry.name.includes('.') &&
86
+ entry.name.startsWith('clickhouse');
87
+ const destPath = isExecutable
88
+ ? join(destBinDir, entry.name)
89
+ : join(binPath, entry.name);
90
+ await moveEntry(sourcePath, destPath);
91
+ }
92
+ }
93
+ }
94
+ /**
95
+ * Override verification for ClickHouse's YY.MM version format.
96
+ * ClickHouse uses `clickhouse client --version` and has 4-part versions (YY.MM.patch.build).
97
+ */
98
+ async verify(version, platform, arch) {
99
+ const fullVersion = this.getFullVersion(version);
100
+ const binPath = paths.getBinaryPath({
101
+ engine: this.config.engineName,
102
+ version: fullVersion,
103
+ platform,
104
+ arch,
105
+ });
106
+ const clickhousePath = join(binPath, 'bin', 'clickhouse');
107
+ if (!existsSync(clickhousePath)) {
108
+ throw new Error(`ClickHouse binary not found at ${binPath}/bin/`);
109
+ }
110
+ try {
111
+ const { stdout, stderr } = await execAsync(`"${clickhousePath}" client --version`);
112
+ // Log stderr if present (may contain benign warnings about config, etc.)
113
+ if (stderr && stderr.trim()) {
114
+ logDebug(`clickhouse client stderr during version check: ${stderr.trim()}`);
115
+ }
116
+ const reportedVersion = this.parseVersionFromOutput(stdout);
117
+ if (!reportedVersion) {
118
+ throw new Error(`Could not parse version from: ${stdout.trim()}`);
119
+ }
120
+ // Check if major versions match (YY.MM format)
121
+ const expectedMajor = version.split('.').slice(0, 2).join('.');
122
+ const reportedMajor = reportedVersion.split('.').slice(0, 2).join('.');
123
+ if (expectedMajor === reportedMajor) {
124
+ return true;
125
+ }
126
+ // Check if full versions match
127
+ if (reportedVersion === fullVersion) {
128
+ return true;
129
+ }
130
+ throw new Error(`Version mismatch: expected ${version}, got ${reportedVersion}`);
131
+ }
132
+ catch (error) {
133
+ const err = error;
134
+ // Include stderr and exit code in error message for better debugging
135
+ const details = [err.message];
136
+ if (err.stderr)
137
+ details.push(`stderr: ${err.stderr.trim()}`);
138
+ if (err.code !== undefined)
139
+ details.push(`exit code: ${err.code}`);
140
+ throw new Error(`Failed to verify ClickHouse binaries: ${details.join(', ')}`);
141
+ }
142
+ }
143
+ }
144
+ export const clickhouseBinaryManager = new ClickHouseBinaryManager();
145
+ //# sourceMappingURL=binary-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"binary-manager.js","sourceRoot":"","sources":["../../../engines/clickhouse/binary-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,100 @@
1
+ import { CLICKHOUSE_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 } from '../../types/index.js';
5
+ /**
6
+ * Supported platform identifiers for hostdb downloads.
7
+ * Note: ClickHouse on hostdb doesn't support Windows currently.
8
+ */
9
+ const SUPPORTED_PLATFORMS = new Set([
10
+ 'darwin-arm64',
11
+ 'darwin-x64',
12
+ 'linux-arm64',
13
+ 'linux-x64',
14
+ ]);
15
+ /**
16
+ * Get the hostdb platform identifier
17
+ *
18
+ * hostdb uses standard platform naming that matches Node.js identifiers directly.
19
+ * This function validates the platform/arch combination is supported.
20
+ *
21
+ * @param platform - Node.js platform (e.g., 'darwin', 'linux', 'win32')
22
+ * @param arch - Node.js architecture (e.g., 'arm64', 'x64')
23
+ * @returns hostdb platform identifier or null if unsupported
24
+ */
25
+ export function getHostdbPlatform(platform, arch) {
26
+ const key = `${platform}-${arch}`;
27
+ return SUPPORTED_PLATFORMS.has(key) ? key : null;
28
+ }
29
+ /**
30
+ * Build the download URL for ClickHouse binaries from hostdb
31
+ *
32
+ * Format: https://registry.layerbase.host/clickhouse-{version}/clickhouse-{version}-{platform}-{arch}.tar.gz
33
+ *
34
+ * @param version - ClickHouse version (e.g., '25.12', '25.12.3.21')
35
+ * @param platform - Platform identifier (e.g., 'darwin', 'linux')
36
+ * @param arch - Architecture identifier (e.g., 'arm64', 'x64')
37
+ * @returns Download URL for the binary
38
+ */
39
+ export function getBinaryUrl(version, platform, arch) {
40
+ const platformKey = `${platform}-${arch}`;
41
+ const hostdbPlatform = getHostdbPlatform(platform, arch);
42
+ if (!hostdbPlatform) {
43
+ const supported = Array.from(SUPPORTED_PLATFORMS).join(', ');
44
+ throw new Error(`Unsupported platform: ${platformKey}. Supported platforms: ${supported}`);
45
+ }
46
+ // Normalize version (handles major version lookup)
47
+ const fullVersion = normalizeVersion(version, CLICKHOUSE_VERSION_MAP);
48
+ // ClickHouse on hostdb uses tar.gz for all platforms (no Windows support)
49
+ return buildHostdbUrl(Engine.ClickHouse, {
50
+ version: fullVersion,
51
+ hostdbPlatform,
52
+ extension: 'tar.gz',
53
+ });
54
+ }
55
+ /**
56
+ * Normalize version string to full version format
57
+ *
58
+ * @param version - Version string (e.g., '25.12', '25.12.3', '25.12.3.21')
59
+ * @param versionMap - Optional version map for version lookup
60
+ * @returns Normalized version (e.g., '25.12.3.21')
61
+ */
62
+ function normalizeVersion(version, versionMap = CLICKHOUSE_VERSION_MAP) {
63
+ // Check if it's an exact key in the map
64
+ if (versionMap[version]) {
65
+ return versionMap[version];
66
+ }
67
+ const parts = version.split('.');
68
+ // If it's already a full version (4 parts), return as-is
69
+ if (parts.length === 4) {
70
+ return version;
71
+ }
72
+ // For partial versions, try to find a match
73
+ if (parts.length === 3) {
74
+ // Try YY.MM.X format
75
+ const threePart = `${parts[0]}.${parts[1]}.${parts[2]}`;
76
+ if (versionMap[threePart]) {
77
+ return versionMap[threePart];
78
+ }
79
+ }
80
+ if (parts.length === 2) {
81
+ // Try YY.MM format
82
+ const twoPart = `${parts[0]}.${parts[1]}`;
83
+ if (versionMap[twoPart]) {
84
+ return versionMap[twoPart];
85
+ }
86
+ }
87
+ // Unknown version format - log and return as-is
88
+ logDebug(`ClickHouse version '${version}' not in version map, may not be available in hostdb`);
89
+ return version;
90
+ }
91
+ /**
92
+ * Get the full version string for a version
93
+ *
94
+ * Supports partial version lookups (e.g., '25.12' -> '25.12.3.21')
95
+ * by delegating to normalizeVersion for consistent behavior.
96
+ *
97
+ * @param version - Version (e.g., '25.12', '25.12.3.21')
98
+ * @returns Full version string (e.g., '25.12.3.21') or null if not in version map
99
+ */
100
+ //# sourceMappingURL=binary-urls.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"binary-urls.js","sourceRoot":"","sources":["../../../engines/clickhouse/binary-urls.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAA;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AACnD,OAAO,EAAE,MAAM,EAA4B,MAAM,aAAa,CAAA;AAE9D;;;GAGG;AACH,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC;IAClC,cAAc;IACd,YAAY;IACZ,aAAa;IACb,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,mDAAmD;IACnD,MAAM,WAAW,GAAG,gBAAgB,CAAC,OAAO,EAAE,sBAAsB,CAAC,CAAA;IAErE,0EAA0E;IAC1E,OAAO,cAAc,CAAC,MAAM,CAAC,UAAU,EAAE;QACvC,OAAO,EAAE,WAAW;QACpB,cAAc;QACd,SAAS,EAAE,QAAQ;KACpB,CAAC,CAAA;AACJ,CAAC;AAED;;;;;;GAMG;AACH,SAAS,gBAAgB,CACvB,OAAe,EACf,aAAqC,sBAAsB;IAE3D,wCAAwC;IACxC,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,yDAAyD;IACzD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,OAAO,CAAA;IAChB,CAAC;IAED,4CAA4C;IAC5C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,qBAAqB;QACrB,MAAM,SAAS,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAA;QACvD,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC1B,OAAO,UAAU,CAAC,SAAS,CAAC,CAAA;QAC9B,CAAC;IACH,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,mBAAmB;QACnB,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;IACH,CAAC;IAED,gDAAgD;IAChD,QAAQ,CACN,uBAAuB,OAAO,sDAAsD,CACrF,CAAA;IACD,OAAO,OAAO,CAAA;AAChB,CAAC;AAED;;;;;;;;GAQG"}