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,266 @@
1
+ /**
2
+ * MySQL/MariaDB Version Validator
3
+ *
4
+ * Validates compatibility between mysql client version and dump file version.
5
+ * MySQL is generally more lenient than PostgreSQL, but we still warn about:
6
+ * - MariaDB dumps being restored to MySQL (and vice versa)
7
+ * - Newer dumps being restored to older clients
8
+ */
9
+ import { exec } from 'child_process';
10
+ import { promisify } from 'util';
11
+ import { createReadStream } from 'fs';
12
+ import { createInterface } from 'readline';
13
+ import { SpinDBError, ErrorCodes, logWarning, logDebug, } from '../../core/error-handler.js';
14
+ import { getMysqlClientPath } from './binary-detection.js';
15
+ const execAsync = promisify(exec);
16
+ // =============================================================================
17
+ // Version Parsing
18
+ // =============================================================================
19
+ /**
20
+ * Parse version from mysql --version output
21
+ * Examples:
22
+ * "mysql Ver 8.0.35 for macos14.0 on arm64 (Homebrew)"
23
+ * "mysql Ver 14.14 Distrib 5.7.44, for Linux (x86_64)" (MySQL 5.7)
24
+ * "mysql Ver 15.1 Distrib 10.11.6-MariaDB, for osx10.19 (arm64)"
25
+ * "mysql from 11.4.3-MariaDB, client 15.2 for osx10.20 (arm64)"
26
+ */
27
+ export function parseToolVersion(output) {
28
+ // Check for MariaDB - must explicitly contain "mariadb" in the string
29
+ // Note: Both MySQL 5.7 and MariaDB use "Distrib", but only MariaDB includes "-MariaDB"
30
+ const isMariaDB = output.toLowerCase().includes('mariadb');
31
+ let match = null;
32
+ if (isMariaDB) {
33
+ // MariaDB: "Distrib 10.11.6-MariaDB" or "from 11.4.3-MariaDB"
34
+ match = output.match(/(?:Distrib|from)\s+(\d+)\.(\d+)\.(\d+)/);
35
+ }
36
+ if (!match) {
37
+ // MySQL with Distrib: "Distrib 5.7.44" (MySQL 5.7 style)
38
+ match = output.match(/Distrib\s+(\d+)\.(\d+)\.(\d+)/);
39
+ }
40
+ if (!match) {
41
+ // MySQL: "Ver 8.0.35"
42
+ match = output.match(/Ver\s+(\d+)\.(\d+)(?:\.(\d+))?/);
43
+ }
44
+ if (!match) {
45
+ // Generic fallback
46
+ match = output.match(/(\d+)\.(\d+)(?:\.(\d+))?/);
47
+ }
48
+ if (!match) {
49
+ throw new Error(`Cannot parse version from: ${output}`);
50
+ }
51
+ return {
52
+ version: {
53
+ major: parseInt(match[1], 10),
54
+ minor: parseInt(match[2], 10),
55
+ patch: parseInt(match[3] || '0', 10),
56
+ full: match[0].replace(/^(Ver|Distrib|from)\s+/, ''),
57
+ },
58
+ variant: isMariaDB ? 'mariadb' : 'mysql',
59
+ };
60
+ }
61
+ // Read the first N lines of a file
62
+ async function readFirstLines(filePath, lineCount) {
63
+ return new Promise((resolve, reject) => {
64
+ const lines = [];
65
+ const stream = createReadStream(filePath, { encoding: 'utf8' });
66
+ const rl = createInterface({ input: stream });
67
+ rl.on('line', (line) => {
68
+ lines.push(line);
69
+ if (lines.length >= lineCount) {
70
+ rl.close();
71
+ stream.destroy();
72
+ }
73
+ });
74
+ rl.on('close', () => {
75
+ resolve(lines.join('\n'));
76
+ });
77
+ rl.on('error', reject);
78
+ stream.on('error', reject);
79
+ });
80
+ }
81
+ /**
82
+ * Parse version from dump file header
83
+ *
84
+ * MySQL dump header:
85
+ * -- MySQL dump 10.13 Distrib 8.0.35, for macos14.0 (arm64)
86
+ * -- Server version 8.0.35
87
+ *
88
+ * MariaDB dump header:
89
+ * -- MariaDB dump 10.19-11.4.3-MariaDB, for osx10.20 (arm64)
90
+ * -- Server version 11.4.3-MariaDB
91
+ */
92
+ export async function parseDumpVersion(dumpPath) {
93
+ try {
94
+ const header = await readFirstLines(dumpPath, 30);
95
+ // Detect variant
96
+ let variant = 'unknown';
97
+ if (header.includes('MariaDB dump') || header.includes('-MariaDB')) {
98
+ variant = 'mariadb';
99
+ }
100
+ else if (header.includes('MySQL dump')) {
101
+ variant = 'mysql';
102
+ }
103
+ // Try to get server version (more accurate than dump tool version)
104
+ // "-- Server version 8.0.35" or "-- Server version 11.4.3-MariaDB"
105
+ const serverMatch = header.match(/--\s*Server version\s+(\d+)\.(\d+)(?:\.(\d+))?/);
106
+ if (serverMatch) {
107
+ return {
108
+ version: {
109
+ major: parseInt(serverMatch[1], 10),
110
+ minor: parseInt(serverMatch[2], 10),
111
+ patch: parseInt(serverMatch[3] || '0', 10),
112
+ full: `${serverMatch[1]}.${serverMatch[2]}${serverMatch[3] ? `.${serverMatch[3]}` : ''}`,
113
+ },
114
+ variant,
115
+ serverVersion: header.match(/--\s*Server version\s+([^\n]+)/)?.[1],
116
+ };
117
+ }
118
+ // Fall back to Distrib version in header
119
+ // "Distrib 8.0.35" or "10.19-11.4.3-MariaDB"
120
+ let distribMatch = header.match(/Distrib\s+(\d+)\.(\d+)(?:\.(\d+))?/);
121
+ if (!distribMatch && variant === 'mariadb') {
122
+ // MariaDB format: "dump 10.19-11.4.3-MariaDB"
123
+ distribMatch = header.match(/dump\s+[\d.]+-(\d+)\.(\d+)\.(\d+)/);
124
+ }
125
+ if (distribMatch) {
126
+ return {
127
+ version: {
128
+ major: parseInt(distribMatch[1], 10),
129
+ minor: parseInt(distribMatch[2], 10),
130
+ patch: parseInt(distribMatch[3] || '0', 10),
131
+ full: `${distribMatch[1]}.${distribMatch[2]}${distribMatch[3] ? `.${distribMatch[3]}` : ''}`,
132
+ },
133
+ variant,
134
+ };
135
+ }
136
+ return { version: null, variant };
137
+ }
138
+ catch (error) {
139
+ logDebug('Failed to parse dump version', {
140
+ dumpPath,
141
+ error: error instanceof Error ? error.message : String(error),
142
+ });
143
+ return { version: null, variant: 'unknown' };
144
+ }
145
+ }
146
+ // Get the version of the mysql client
147
+ export async function getMysqlClientVersion() {
148
+ const mysqlPath = await getMysqlClientPath();
149
+ if (!mysqlPath) {
150
+ throw new Error('mysql client not found');
151
+ }
152
+ const { stdout } = await execAsync(`"${mysqlPath}" --version`);
153
+ return parseToolVersion(stdout);
154
+ }
155
+ // =============================================================================
156
+ // Compatibility Checking
157
+ // =============================================================================
158
+ /**
159
+ * Check version compatibility
160
+ *
161
+ * MySQL/MariaDB compatibility matrix:
162
+ * | Scenario | Result |
163
+ * |----------|--------|
164
+ * | MySQL 8 client + MySQL 8 dump | ✅ Works |
165
+ * | MySQL 8 client + MySQL 5.7 dump | ✅ Works (backwards compatible) |
166
+ * | MySQL 5.7 client + MySQL 8 dump | ⚠️ May have issues |
167
+ * | MariaDB client + MySQL dump | ⚠️ Warning (mostly compatible) |
168
+ * | MySQL client + MariaDB dump | ⚠️ Warning (mostly compatible) |
169
+ */
170
+ export function checkVersionCompatibility(dumpInfo, toolVersion, toolVariant) {
171
+ const result = {
172
+ compatible: true,
173
+ dumpInfo,
174
+ toolVersion,
175
+ toolVariant,
176
+ };
177
+ // If we couldn't parse dump version, proceed with warning
178
+ if (!dumpInfo.version) {
179
+ result.warning = 'Could not detect dump version. Proceeding anyway.';
180
+ return result;
181
+ }
182
+ // Check for variant mismatch (MySQL vs MariaDB)
183
+ if (dumpInfo.variant !== 'unknown' &&
184
+ toolVariant !== 'unknown' &&
185
+ dumpInfo.variant !== toolVariant) {
186
+ result.warning =
187
+ `Dump was created with ${dumpInfo.variant === 'mariadb' ? 'MariaDB' : 'MySQL'}, ` +
188
+ `but restoring with ${toolVariant === 'mariadb' ? 'MariaDB' : 'MySQL'}. ` +
189
+ `This usually works, but some features may not be compatible.`;
190
+ return result;
191
+ }
192
+ // MySQL 8 introduced significant changes
193
+ // Restoring MySQL 8+ dump with MySQL 5.x client may fail
194
+ if (dumpInfo.version.major >= 8 && toolVersion.major < 8) {
195
+ result.compatible = false;
196
+ result.error =
197
+ `Dump was created with MySQL ${dumpInfo.version.major}, ` +
198
+ `but your mysql client is version ${toolVersion.major}. ` +
199
+ `MySQL 8 dumps may contain syntax not supported by older clients.`;
200
+ return result;
201
+ }
202
+ // MariaDB 10.x to MySQL may have issues with specific features
203
+ if (dumpInfo.variant === 'mariadb' &&
204
+ toolVariant === 'mysql' &&
205
+ dumpInfo.version.major >= 10) {
206
+ result.warning =
207
+ `Dump was created with MariaDB ${dumpInfo.version.full}. ` +
208
+ `Some MariaDB-specific features may not restore correctly to MySQL.`;
209
+ return result;
210
+ }
211
+ // Warn if dump is newer than tool (any variant)
212
+ if (dumpInfo.version.major > toolVersion.major) {
213
+ result.warning =
214
+ `Dump was created with version ${dumpInfo.version.full}, ` +
215
+ `but your client is version ${toolVersion.full}. ` +
216
+ `Some features may not restore correctly.`;
217
+ return result;
218
+ }
219
+ // Warn if dump is very old (5+ years)
220
+ if (dumpInfo.version.major < 5 ||
221
+ (dumpInfo.version.major === 5 && dumpInfo.version.minor < 7)) {
222
+ result.warning =
223
+ `Dump was created with MySQL ${dumpInfo.version.full}. ` +
224
+ `This is a very old version; some data types may not import correctly.`;
225
+ return result;
226
+ }
227
+ return result;
228
+ }
229
+ // =============================================================================
230
+ // Main Validation Function
231
+ // =============================================================================
232
+ /**
233
+ * Validate that a dump file can be restored with the available mysql client
234
+ *
235
+ * @throws SpinDBError if versions are incompatible
236
+ */
237
+ export async function validateRestoreCompatibility(options) {
238
+ const { dumpPath } = options;
239
+ // Get tool version
240
+ const { version: toolVersion, variant: toolVariant } = await getMysqlClientVersion();
241
+ logDebug('mysql client version detected', {
242
+ version: toolVersion.full,
243
+ variant: toolVariant,
244
+ });
245
+ // Get dump version
246
+ const dumpInfo = await parseDumpVersion(dumpPath);
247
+ if (dumpInfo.version) {
248
+ logDebug('Dump version detected', {
249
+ version: dumpInfo.version.full,
250
+ variant: dumpInfo.variant,
251
+ });
252
+ }
253
+ else {
254
+ logDebug('Could not detect dump version');
255
+ }
256
+ // Check compatibility
257
+ const result = checkVersionCompatibility(dumpInfo, toolVersion, toolVariant);
258
+ if (!result.compatible) {
259
+ throw new SpinDBError(ErrorCodes.VERSION_MISMATCH, result.error, 'fatal', 'Install a newer version of MySQL client tools', { dumpInfo, toolVersion, toolVariant });
260
+ }
261
+ if (result.warning) {
262
+ logWarning(result.warning);
263
+ }
264
+ return { dumpInfo, toolVersion, toolVariant };
265
+ }
266
+ //# sourceMappingURL=version-validator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version-validator.js","sourceRoot":"","sources":["../../../engines/mysql/version-validator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,118 @@
1
+ /**
2
+ * PostgreSQL Backup
3
+ *
4
+ * Creates database backups in SQL or custom (.dump) format using pg_dump.
5
+ */
6
+ import { spawn } from 'child_process';
7
+ import { stat } from 'fs/promises';
8
+ import { existsSync } from 'fs';
9
+ import { join } from 'path';
10
+ import { configManager } from '../../core/config-manager.js';
11
+ import { getWindowsSpawnOptions, platformService, } from '../../core/platform-service.js';
12
+ import { defaults } from '../../config/defaults.js';
13
+ import { paths } from '../../config/paths.js';
14
+ import { normalizeVersion } from './version-maps.js';
15
+ /**
16
+ * Get pg_dump path for a specific PostgreSQL version.
17
+ *
18
+ * Prioritizes SpinDB-managed binaries that match the container's version,
19
+ * falling back to system pg_dump only if no matching version is found.
20
+ *
21
+ * @param containerVersion - The container's PostgreSQL version (e.g., "18" or "18.1.0")
22
+ * @returns Path to the version-matched pg_dump binary
23
+ */
24
+ async function getPgDumpPath(containerVersion) {
25
+ // Normalize to full version (e.g., "18" -> "18.1.0")
26
+ const fullVersion = normalizeVersion(containerVersion);
27
+ // Get platform info for building the binary path
28
+ const platformInfo = platformService.getPlatformInfo();
29
+ const ext = platformInfo.platform === 'win32' ? '.exe' : '';
30
+ // Try to find SpinDB-managed pg_dump for the matching version
31
+ const versionedBinPath = paths.getBinaryPath({
32
+ engine: 'postgresql',
33
+ version: fullVersion,
34
+ platform: platformInfo.platform,
35
+ arch: platformInfo.arch,
36
+ });
37
+ const versionedPgDump = join(versionedBinPath, 'bin', `pg_dump${ext}`);
38
+ if (existsSync(versionedPgDump)) {
39
+ return versionedPgDump;
40
+ }
41
+ // Try to find any installed version for this major version
42
+ const majorVersion = containerVersion.split('.')[0];
43
+ const installed = paths.findInstalledBinaryForMajor('postgresql', majorVersion, platformInfo.platform, platformInfo.arch);
44
+ if (installed) {
45
+ const installedPgDump = join(installed.path, 'bin', `pg_dump${ext}`);
46
+ if (existsSync(installedPgDump)) {
47
+ return installedPgDump;
48
+ }
49
+ }
50
+ // Fall back to globally registered pg_dump (system binary)
51
+ const systemPgDump = await configManager.getBinaryPath('pg_dump');
52
+ if (systemPgDump) {
53
+ return systemPgDump;
54
+ }
55
+ throw new Error(`pg_dump not found for PostgreSQL ${containerVersion}. ` +
56
+ `Either download PostgreSQL binaries with 'spindb create --engine postgresql --version ${majorVersion}' ` +
57
+ 'or install PostgreSQL client tools:\n' +
58
+ ' macOS: brew install libpq && brew link --force libpq\n' +
59
+ ' Ubuntu/Debian: apt install postgresql-client\n\n' +
60
+ 'Or configure manually: spindb config set pg_dump /path/to/pg_dump');
61
+ }
62
+ /**
63
+ * Create a backup of a PostgreSQL database
64
+ *
65
+ * CLI equivalent:
66
+ * - SQL format: pg_dump -Fp -h 127.0.0.1 -p {port} -U postgres -d {database} -f {outputPath}
67
+ * - Dump format: pg_dump -Fc -h 127.0.0.1 -p {port} -U postgres -d {database} -f {outputPath}
68
+ */
69
+ export async function createBackup(container, outputPath, options) {
70
+ const { port, version } = container;
71
+ const { database, format } = options;
72
+ const pgDumpPath = await getPgDumpPath(version);
73
+ // -Fp = plain SQL format, -Fc = custom format
74
+ const formatFlag = format === 'sql' ? '-Fp' : '-Fc';
75
+ return new Promise((resolve, reject) => {
76
+ const args = [
77
+ '-h',
78
+ '127.0.0.1',
79
+ '-p',
80
+ String(port),
81
+ '-U',
82
+ defaults.superuser,
83
+ '-d',
84
+ database,
85
+ formatFlag,
86
+ '-f',
87
+ outputPath,
88
+ ];
89
+ const spawnOptions = {
90
+ stdio: ['pipe', 'pipe', 'pipe'],
91
+ ...getWindowsSpawnOptions(),
92
+ };
93
+ const proc = spawn(pgDumpPath, args, spawnOptions);
94
+ let stderr = '';
95
+ proc.stderr?.on('data', (data) => {
96
+ stderr += data.toString();
97
+ });
98
+ proc.on('error', (err) => {
99
+ reject(err);
100
+ });
101
+ proc.on('close', async (code) => {
102
+ if (code === 0) {
103
+ // Get file size
104
+ const stats = await stat(outputPath);
105
+ resolve({
106
+ path: outputPath,
107
+ format: format === 'sql' ? 'sql' : 'custom',
108
+ size: stats.size,
109
+ });
110
+ }
111
+ else {
112
+ const errorMessage = stderr || `pg_dump exited with code ${code}`;
113
+ reject(new Error(errorMessage));
114
+ }
115
+ });
116
+ });
117
+ }
118
+ //# sourceMappingURL=backup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backup.js","sourceRoot":"","sources":["../../../engines/postgresql/backup.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,85 @@
1
+ /**
2
+ * PostgreSQL Binary Manager
3
+ *
4
+ * Handles downloading, extracting, and managing PostgreSQL binaries from hostdb.
5
+ * PostgreSQL binaries include both server (postgres, pg_ctl, initdb) and client
6
+ * tools (psql, pg_dump, pg_restore, pg_basebackup).
7
+ *
8
+ * All platforms (macOS, Linux, Windows) download from hostdb - Windows uses
9
+ * EDB binaries that are uploaded to hostdb for consistency.
10
+ */
11
+ import { BaseServerBinaryManager, } from '../../core/base-server-binary-manager.js';
12
+ import { paths } from '../../config/paths.js';
13
+ import { spawnAsync } from '../../core/spawn-utils.js';
14
+ import { getBinaryUrl } from './binary-urls.js';
15
+ import { normalizeVersion } from './version-maps.js';
16
+ import { Engine, Platform } from '../../types/index.js';
17
+ class PostgreSQLBinaryManager extends BaseServerBinaryManager {
18
+ config = {
19
+ engine: Engine.PostgreSQL,
20
+ engineName: 'postgresql',
21
+ displayName: 'PostgreSQL',
22
+ serverBinaryNames: ['postgres'],
23
+ };
24
+ getBinaryUrlFromModule(version, platform, arch) {
25
+ return getBinaryUrl(version, platform, arch);
26
+ }
27
+ normalizeVersionFromModule(version) {
28
+ return normalizeVersion(version);
29
+ }
30
+ parseVersionFromOutput(stdout) {
31
+ // Extract version from output like "postgres (PostgreSQL) 18.1"
32
+ const match = stdout.match(/postgres \(PostgreSQL\) ([\d.]+)/);
33
+ return match?.[1] ?? null;
34
+ }
35
+ /**
36
+ * Verify that PostgreSQL binaries are working
37
+ *
38
+ * PostgreSQL outputs version in format: "postgres (PostgreSQL) X.Y" or
39
+ * "postgres (PostgreSQL) X.Y - Percona Server for PostgreSQL X.Y.Z"
40
+ * This differs from MySQL/MariaDB's "Ver X.Y.Z" format.
41
+ */
42
+ async verify(version, platform, arch) {
43
+ const fullVersion = this.getFullVersion(version);
44
+ const binPath = paths.getBinaryPath({
45
+ engine: this.config.engineName,
46
+ version: fullVersion,
47
+ platform,
48
+ arch,
49
+ });
50
+ const ext = platform === Platform.Win32 ? '.exe' : '';
51
+ const serverPath = this.findServerBinaryPath(binPath, ext);
52
+ if (!serverPath) {
53
+ throw new Error(`${this.config.displayName} binary not found at ${binPath}/bin/`);
54
+ }
55
+ let stdout;
56
+ try {
57
+ const result = await spawnAsync(serverPath, ['--version']);
58
+ stdout = result.stdout;
59
+ }
60
+ catch (error) {
61
+ // Only wrap spawn/OS errors, not our validation errors
62
+ const err = error;
63
+ throw new Error(`Failed to verify ${this.config.displayName} binaries: ${err.message}`);
64
+ }
65
+ const reportedVersion = this.parseVersionFromOutput(stdout);
66
+ if (!reportedVersion) {
67
+ throw new Error(`Could not parse version from: ${stdout.trim()}`);
68
+ }
69
+ const expectedNormalized = this.stripTrailingZero(fullVersion);
70
+ const reportedNormalized = this.stripTrailingZero(reportedVersion);
71
+ // Check if versions match (e.g., "18.1.0" vs "18.1")
72
+ if (reportedNormalized === expectedNormalized) {
73
+ return true;
74
+ }
75
+ // Also accept if major.minor matches (e.g., expected "18.1.0", got "18.1")
76
+ const expectedMajorMinor = fullVersion.split('.').slice(0, 2).join('.');
77
+ const reportedMajorMinor = reportedVersion.split('.').slice(0, 2).join('.');
78
+ if (expectedMajorMinor === reportedMajorMinor) {
79
+ return true;
80
+ }
81
+ throw new Error(`Version mismatch: expected ${fullVersion}, got ${reportedVersion}`);
82
+ }
83
+ }
84
+ export const postgresqlBinaryManager = new PostgreSQLBinaryManager();
85
+ //# sourceMappingURL=binary-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"binary-manager.js","sourceRoot":"","sources":["../../../engines/postgresql/binary-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,80 @@
1
+ import { POSTGRESQL_VERSION_MAP } from './version-maps.js';
2
+ import { buildHostdbUrl } from '../../core/hostdb-client.js';
3
+ import { validateSemverLikeVersion } from '../../core/version-utils.js';
4
+ import { Engine, Platform } from '../../types/index.js';
5
+ // Supported platform/arch combinations for PostgreSQL hostdb binaries
6
+ const SUPPORTED_PLATFORM_KEYS = new Set([
7
+ 'darwin-arm64',
8
+ 'darwin-x64',
9
+ 'linux-arm64',
10
+ 'linux-x64',
11
+ 'win32-x64',
12
+ ]);
13
+ /**
14
+ * Get the hostdb platform identifier
15
+ *
16
+ * hostdb uses standard platform naming (e.g., 'darwin-arm64', 'linux-x64')
17
+ * which matches Node.js platform identifiers directly.
18
+ *
19
+ * @param platform - Node.js platform (e.g., 'darwin', 'linux', 'win32')
20
+ * @param arch - Node.js architecture (e.g., 'arm64', 'x64')
21
+ * @returns hostdb platform identifier or null if unsupported
22
+ */
23
+ export function getHostdbPlatform(platform, arch) {
24
+ const key = `${platform}-${arch}`;
25
+ return SUPPORTED_PLATFORM_KEYS.has(key) ? key : null;
26
+ }
27
+ /**
28
+ * Build the download URL for PostgreSQL binaries from hostdb
29
+ *
30
+ * Format: https://registry.layerbase.host/postgresql-{version}/postgresql-{version}-{platform}-{arch}.tar.gz
31
+ *
32
+ * @param version - PostgreSQL version (e.g., '17', '17.7.0')
33
+ * @param platform - Platform identifier (e.g., 'darwin', 'linux')
34
+ * @param arch - Architecture identifier (e.g., 'arm64', 'x64')
35
+ * @returns Download URL for the binary
36
+ */
37
+ export function getBinaryUrl(version, platform, arch) {
38
+ const platformKey = `${platform}-${arch}`;
39
+ const hostdbPlatform = getHostdbPlatform(platform, arch);
40
+ if (!hostdbPlatform) {
41
+ throw new Error(`Unsupported platform: ${platformKey}`);
42
+ }
43
+ // Normalize version (handles major version lookup and X.Y -> X.Y.0 conversion)
44
+ const fullVersion = normalizeVersion(version, POSTGRESQL_VERSION_MAP);
45
+ const ext = platform === Platform.Win32 ? 'zip' : 'tar.gz';
46
+ return buildHostdbUrl(Engine.PostgreSQL, {
47
+ version: fullVersion,
48
+ hostdbPlatform,
49
+ extension: ext,
50
+ });
51
+ }
52
+ /**
53
+ * Normalize version string to X.Y.Z format
54
+ *
55
+ * @param version - Version string (e.g., '17', '17.7', '17.7.0')
56
+ * @param versionMap - Optional version map for major version lookup
57
+ * @returns Normalized version (e.g., '17.7.0')
58
+ * @throws TypeError if version string is malformed
59
+ */
60
+ function normalizeVersion(version, versionMap = POSTGRESQL_VERSION_MAP) {
61
+ // Check if it's a major version in the map
62
+ if (versionMap[version]) {
63
+ return versionMap[version];
64
+ }
65
+ // Validate version format: must be numeric semver-like (X, X.Y, or X.Y.Z)
66
+ validateSemverLikeVersion(version, 'PostgreSQL');
67
+ // Normalize to X.Y.Z format
68
+ const parts = version.split('.');
69
+ if (parts.length === 2) {
70
+ return `${version}.0`;
71
+ }
72
+ return version;
73
+ }
74
+ /**
75
+ * Get the full version string for a major version
76
+ *
77
+ * @param majorVersion - Major version (e.g., '17')
78
+ * @returns Full version string (e.g., '17.7.0') or null if not supported
79
+ */
80
+ //# sourceMappingURL=binary-urls.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"binary-urls.js","sourceRoot":"","sources":["../../../engines/postgresql/binary-urls.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAA;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AACzD,OAAO,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAA;AACpE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAa,MAAM,aAAa,CAAA;AAEzD,sEAAsE;AACtE,MAAM,uBAAuB,GAAG,IAAI,GAAG,CAAC;IACtC,cAAc;IACd,YAAY;IACZ,aAAa;IACb,WAAW;IACX,WAAW;CACZ,CAAC,CAAA;AAEF;;;;;;;;;GASG;AAEH,MAAM,UAAU,iBAAiB,CAC/B,QAAkB,EAClB,IAAU;IAEV,MAAM,GAAG,GAAG,GAAG,QAAQ,IAAI,IAAI,EAAE,CAAA;IACjC,OAAO,uBAAuB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAA;AACtD,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,IAAI,KAAK,CAAC,yBAAyB,WAAW,EAAE,CAAC,CAAA;IACzD,CAAC;IAED,+EAA+E;IAC/E,MAAM,WAAW,GAAG,gBAAgB,CAAC,OAAO,EAAE,sBAAsB,CAAC,CAAA;IACrE,MAAM,GAAG,GAAG,QAAQ,KAAK,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAA;IAE1D,OAAO,cAAc,CAAC,MAAM,CAAC,UAAU,EAAE;QACvC,OAAO,EAAE,WAAW;QACpB,cAAc;QACd,SAAS,EAAE,GAAG;KACf,CAAC,CAAA;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,gBAAgB,CACvB,OAAe,EACf,aAAqC,sBAAsB;IAE3D,2CAA2C;IAC3C,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACxB,OAAO,UAAU,CAAC,OAAO,CAAC,CAAA;IAC5B,CAAC;IAED,0EAA0E;IAC1E,yBAAyB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAA;IAEhD,4BAA4B;IAC5B,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAChC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,GAAG,OAAO,IAAI,CAAA;IACvB,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC;AAED;;;;;GAKG"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * hostdb Releases Module for PostgreSQL
3
+ *
4
+ * Fetches PostgreSQL binary information from the hostdb repository at
5
+ * https://github.com/robertjbass/hostdb
6
+ */
7
+ import { createHostdbReleases } from '../../core/hostdb-releases-factory.js';
8
+ import { POSTGRESQL_VERSION_MAP, SUPPORTED_MAJOR_VERSIONS, } from './version-maps.js';
9
+ import { postgresqlBinaryManager } from './binary-manager.js';
10
+ import { Engine } from '../../types/index.js';
11
+ const hostdbReleases = createHostdbReleases({
12
+ engine: Engine.PostgreSQL,
13
+ displayName: 'PostgreSQL',
14
+ versionMap: POSTGRESQL_VERSION_MAP,
15
+ supportedMajorVersions: SUPPORTED_MAJOR_VERSIONS,
16
+ groupingStrategy: 'single-digit',
17
+ listInstalled: () => postgresqlBinaryManager.listInstalled(),
18
+ });
19
+ export const fetchAvailableVersions = hostdbReleases.fetchAvailableVersions;
20
+ export const getLatestVersion = hostdbReleases.getLatestVersion;
21
+ //# sourceMappingURL=hostdb-releases.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hostdb-releases.js","sourceRoot":"","sources":["../../../engines/postgresql/hostdb-releases.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAA;AACzE,OAAO,EACL,sBAAsB,EACtB,wBAAwB,GACzB,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAA;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEpC,MAAM,cAAc,GAAG,oBAAoB,CAAC;IAC1C,MAAM,EAAE,MAAM,CAAC,UAAU;IACzB,WAAW,EAAE,YAAY;IACzB,UAAU,EAAE,sBAAsB;IAClC,sBAAsB,EAAE,wBAAwB;IAChD,gBAAgB,EAAE,cAAc;IAChC,aAAa,EAAE,GAAG,EAAE,CAAC,uBAAuB,CAAC,aAAa,EAAE;CAC7D,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG,cAAc,CAAC,sBAAsB,CAAA;AAC3E,MAAM,CAAC,MAAM,gBAAgB,GAAG,cAAc,CAAC,gBAAgB,CAAA"}