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,184 @@
1
+ /**
2
+ * Centralized utilities for file-based engines (SQLite, DuckDB)
3
+ *
4
+ * This module is the single source of truth for:
5
+ * - Extension → engine mapping
6
+ * - Engine → valid extensions
7
+ * - Engine → registry
8
+ * - Container name derivation from filenames
9
+ * - Scanning for unregistered files
10
+ *
11
+ * All file-based engine behavior should go through this module
12
+ * so that adding a new file-based engine only requires changes here.
13
+ */
14
+ import { readdir } from 'fs/promises';
15
+ import { existsSync } from 'fs';
16
+ import { resolve, extname } from 'path';
17
+ import { Engine, isFileBasedEngine } from '../types/index.js';
18
+ import { sqliteRegistry } from './sqlite/registry.js';
19
+ import { duckdbRegistry } from './duckdb/registry.js';
20
+ // ============================================================
21
+ // Extension Mapping
22
+ // ============================================================
23
+ /**
24
+ * Map of file extensions to their corresponding file-based engine.
25
+ * This is the single source of truth for extension → engine detection.
26
+ */
27
+ const EXTENSION_TO_ENGINE = {
28
+ '.sqlite': Engine.SQLite,
29
+ '.sqlite3': Engine.SQLite,
30
+ '.db': Engine.SQLite,
31
+ '.duckdb': Engine.DuckDB,
32
+ '.ddb': Engine.DuckDB,
33
+ };
34
+ /**
35
+ * Valid extensions per engine, derived from the extension map.
36
+ * Used for validation (e.g., ensuring a SQLite container only relocates to a SQLite extension).
37
+ */
38
+ const ENGINE_EXTENSIONS = {
39
+ [Engine.SQLite]: ['.sqlite', '.sqlite3', '.db'],
40
+ [Engine.DuckDB]: ['.duckdb', '.ddb'],
41
+ };
42
+ /**
43
+ * Extension regex per engine (for stripping extensions from filenames).
44
+ */
45
+ const ENGINE_EXTENSION_REGEX = {
46
+ [Engine.SQLite]: /\.(sqlite3?|db)$/i,
47
+ [Engine.DuckDB]: /\.(duckdb|ddb)$/i,
48
+ };
49
+ /**
50
+ * Combined regex matching any file-based engine extension.
51
+ */
52
+ export const FILE_BASED_EXTENSION_REGEX = /\.(sqlite3?|db|duckdb|ddb)$/i;
53
+ /**
54
+ * Detect which file-based engine a file belongs to based on its extension.
55
+ * Returns null if the extension is not recognized as a file-based database.
56
+ */
57
+ export function detectEngineFromPath(filePath) {
58
+ const ext = extname(filePath).toLowerCase();
59
+ return EXTENSION_TO_ENGINE[ext] ?? null;
60
+ }
61
+ /**
62
+ * Get the valid file extensions for a file-based engine.
63
+ */
64
+ export function getExtensionsForEngine(engine) {
65
+ return ENGINE_EXTENSIONS[engine];
66
+ }
67
+ /**
68
+ * Get all valid file-based database extensions.
69
+ */
70
+ export function getAllFileBasedExtensions() {
71
+ return Object.keys(EXTENSION_TO_ENGINE);
72
+ }
73
+ /**
74
+ * Check if a file path has a valid extension for the given engine.
75
+ */
76
+ export function isValidExtensionForEngine(filePath, engine) {
77
+ const ext = extname(filePath).toLowerCase();
78
+ return ENGINE_EXTENSIONS[engine].includes(ext);
79
+ }
80
+ /**
81
+ * Human-readable string of valid extensions for a file-based engine.
82
+ */
83
+ export function formatExtensionsForEngine(engine) {
84
+ return ENGINE_EXTENSIONS[engine].join(', ');
85
+ }
86
+ /**
87
+ * Human-readable string of all valid file-based extensions.
88
+ */
89
+ export function formatAllExtensions() {
90
+ return Object.keys(EXTENSION_TO_ENGINE).join(', ');
91
+ }
92
+ /**
93
+ * Get the registry for a file-based engine.
94
+ * Throws if the engine is not file-based.
95
+ */
96
+ export function getRegistryForEngine(engine) {
97
+ switch (engine) {
98
+ case Engine.SQLite:
99
+ return sqliteRegistry;
100
+ case Engine.DuckDB:
101
+ return duckdbRegistry;
102
+ default:
103
+ if (isFileBasedEngine(engine)) {
104
+ throw new Error(`File-based engine "${engine}" has no registry configured in getRegistryForEngine()`);
105
+ }
106
+ throw new Error(`"${engine}" is not a file-based engine`);
107
+ }
108
+ }
109
+ // ============================================================
110
+ // Container Name Derivation
111
+ // ============================================================
112
+ /**
113
+ * Derive a valid container name from a database filename.
114
+ * Removes the engine-specific extension and sanitizes for use as a container name.
115
+ *
116
+ * - Must start with a letter
117
+ * - Can contain letters, numbers, hyphens, underscores
118
+ * - Falls back to engine-specific default if result is empty
119
+ */
120
+ export function deriveContainerName(fileName, engine) {
121
+ const extensionRegex = ENGINE_EXTENSION_REGEX[engine];
122
+ const fallback = engine === Engine.SQLite ? 'sqlite-db' : 'duckdb-db';
123
+ // Remove extension
124
+ const base = fileName.replace(extensionRegex, '');
125
+ // If nothing remains after extension removal, return engine-specific fallback
126
+ const sanitizedBase = base
127
+ .replace(/[^a-zA-Z0-9_-]/g, '-')
128
+ .replace(/^-+|-+$/g, '');
129
+ if (!sanitizedBase) {
130
+ return fallback;
131
+ }
132
+ // Convert to valid container name (alphanumeric, hyphens, underscores)
133
+ let name = base.replace(/[^a-zA-Z0-9_-]/g, '-');
134
+ // Ensure starts with letter
135
+ if (!/^[a-zA-Z]/.test(name)) {
136
+ name = 'db-' + name;
137
+ }
138
+ // Remove consecutive hyphens
139
+ name = name.replace(/-+/g, '-');
140
+ // Trim leading/trailing hyphens
141
+ name = name.replace(/^-+|-+$/g, '');
142
+ return name || fallback;
143
+ }
144
+ /**
145
+ * Scan a directory for unregistered file-based database files.
146
+ *
147
+ * @param engine The file-based engine to scan for
148
+ * @param directory Directory to scan (defaults to CWD)
149
+ * @returns Array of unregistered files
150
+ */
151
+ export async function scanForUnregisteredFiles(engine, directory = process.cwd()) {
152
+ const absoluteDir = resolve(directory);
153
+ const registry = getRegistryForEngine(engine);
154
+ const extensionRegex = ENGINE_EXTENSION_REGEX[engine];
155
+ // Check if folder is ignored
156
+ if (await registry.isFolderIgnored(absoluteDir)) {
157
+ return [];
158
+ }
159
+ // Check if directory exists
160
+ if (!existsSync(absoluteDir)) {
161
+ return [];
162
+ }
163
+ try {
164
+ const entries = await readdir(absoluteDir, { withFileTypes: true });
165
+ const matchingFiles = entries
166
+ .filter((e) => e.isFile())
167
+ .filter((e) => extensionRegex.test(e.name))
168
+ .map((e) => ({
169
+ fileName: e.name,
170
+ absolutePath: resolve(absoluteDir, e.name),
171
+ }));
172
+ const unregistered = [];
173
+ for (const file of matchingFiles) {
174
+ if (!(await registry.isPathRegistered(file.absolutePath))) {
175
+ unregistered.push(file);
176
+ }
177
+ }
178
+ return unregistered;
179
+ }
180
+ catch {
181
+ return [];
182
+ }
183
+ }
184
+ //# sourceMappingURL=file-based-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-based-utils.js","sourceRoot":"","sources":["../../engines/file-based-utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,124 @@
1
+ import { postgresqlEngine } from './postgresql/index.js';
2
+ import { mysqlEngine } from './mysql/index.js';
3
+ import { mariadbEngine } from './mariadb/index.js';
4
+ import { sqliteEngine } from './sqlite/index.js';
5
+ import { duckdbEngine } from './duckdb/index.js';
6
+ import { mongodbEngine } from './mongodb/index.js';
7
+ import { ferretdbEngine } from './ferretdb/index.js';
8
+ import { redisEngine } from './redis/index.js';
9
+ import { valkeyEngine } from './valkey/index.js';
10
+ import { clickhouseEngine } from './clickhouse/index.js';
11
+ import { qdrantEngine } from './qdrant/index.js';
12
+ import { meilisearchEngine } from './meilisearch/index.js';
13
+ import { couchdbEngine } from './couchdb/index.js';
14
+ import { cockroachdbEngine } from './cockroachdb/index.js';
15
+ import { surrealdbEngine } from './surrealdb/index.js';
16
+ import { questdbEngine } from './questdb/index.js';
17
+ import { typedbEngine } from './typedb/index.js';
18
+ import { influxdbEngine } from './influxdb/index.js';
19
+ import { weaviateEngine } from './weaviate/index.js';
20
+ import { tigerbeetleEngine } from './tigerbeetle/index.js';
21
+ import { platformService } from '../core/platform-service.js';
22
+ import { Engine, Platform } from '../types/index.js';
23
+ // Engines not supported on Windows
24
+ // These engines either don't have Windows binaries or have issues running on Windows
25
+ // Note: FerretDB v1 supports Windows (v2 does not), so it's not blanket-blocked here.
26
+ // Version-specific platform checks are handled by the engine itself.
27
+ const WINDOWS_UNSUPPORTED_ENGINES = new Set([Engine.ClickHouse]);
28
+ // Registry of available database engines
29
+ export const engines = {
30
+ // PostgreSQL and aliases
31
+ [Engine.PostgreSQL]: postgresqlEngine,
32
+ postgres: postgresqlEngine,
33
+ pg: postgresqlEngine,
34
+ // MySQL and aliases
35
+ [Engine.MySQL]: mysqlEngine,
36
+ // MariaDB (standalone engine with downloadable binaries)
37
+ [Engine.MariaDB]: mariadbEngine,
38
+ maria: mariadbEngine,
39
+ // SQLite and aliases
40
+ [Engine.SQLite]: sqliteEngine,
41
+ lite: sqliteEngine,
42
+ // DuckDB and aliases
43
+ [Engine.DuckDB]: duckdbEngine,
44
+ duck: duckdbEngine,
45
+ // MongoDB and aliases
46
+ [Engine.MongoDB]: mongodbEngine,
47
+ mongo: mongodbEngine,
48
+ // FerretDB and aliases
49
+ [Engine.FerretDB]: ferretdbEngine,
50
+ ferret: ferretdbEngine,
51
+ fdb: ferretdbEngine,
52
+ // Redis and aliases
53
+ [Engine.Redis]: redisEngine,
54
+ // Valkey and aliases
55
+ [Engine.Valkey]: valkeyEngine,
56
+ // ClickHouse and aliases
57
+ [Engine.ClickHouse]: clickhouseEngine,
58
+ ch: clickhouseEngine,
59
+ // Qdrant and aliases
60
+ [Engine.Qdrant]: qdrantEngine,
61
+ qd: qdrantEngine,
62
+ // Meilisearch and aliases
63
+ [Engine.Meilisearch]: meilisearchEngine,
64
+ meili: meilisearchEngine,
65
+ ms: meilisearchEngine,
66
+ // CouchDB and aliases
67
+ [Engine.CouchDB]: couchdbEngine,
68
+ couch: couchdbEngine,
69
+ // CockroachDB and aliases
70
+ [Engine.CockroachDB]: cockroachdbEngine,
71
+ crdb: cockroachdbEngine,
72
+ // SurrealDB and aliases
73
+ [Engine.SurrealDB]: surrealdbEngine,
74
+ surreal: surrealdbEngine,
75
+ // QuestDB and aliases
76
+ [Engine.QuestDB]: questdbEngine,
77
+ quest: questdbEngine,
78
+ // TypeDB and aliases
79
+ [Engine.TypeDB]: typedbEngine,
80
+ tdb: typedbEngine,
81
+ // InfluxDB and aliases
82
+ [Engine.InfluxDB]: influxdbEngine,
83
+ influx: influxdbEngine,
84
+ // Weaviate and aliases
85
+ [Engine.Weaviate]: weaviateEngine,
86
+ wv: weaviateEngine,
87
+ // TigerBeetle and aliases
88
+ [Engine.TigerBeetle]: tigerbeetleEngine,
89
+ tb: tigerbeetleEngine,
90
+ };
91
+ // Get an engine by name
92
+ export function getEngine(name) {
93
+ const engine = engines[name.toLowerCase()];
94
+ if (!engine) {
95
+ const available = [...new Set(Object.values(engines))].map((e) => e.name);
96
+ throw new Error(`Unknown engine "${name}". Available: ${available.join(', ')}`);
97
+ }
98
+ return engine;
99
+ }
100
+ // List all available engines (filtered by platform support)
101
+ export function listEngines() {
102
+ const { platform } = platformService.getPlatformInfo();
103
+ const isWindows = platform === Platform.Win32;
104
+ const seen = new Set();
105
+ return Object.entries(engines)
106
+ .filter(([, engine]) => {
107
+ if (seen.has(engine))
108
+ return false;
109
+ seen.add(engine);
110
+ // Filter out unsupported engines on Windows
111
+ if (isWindows && WINDOWS_UNSUPPORTED_ENGINES.has(engine.name)) {
112
+ return false;
113
+ }
114
+ return true;
115
+ })
116
+ .map(([, engine]) => ({
117
+ name: engine.name,
118
+ displayName: engine.displayName,
119
+ defaultPort: engine.defaultPort,
120
+ supportedVersions: engine.supportedVersions,
121
+ }))
122
+ .sort((a, b) => a.displayName.localeCompare(b.displayName));
123
+ }
124
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../engines/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,54 @@
1
+ /**
2
+ * Shared InfluxDB REST API client utilities
3
+ */
4
+ /**
5
+ * Make an HTTP request to InfluxDB REST API
6
+ *
7
+ * @param port - The HTTP port InfluxDB is listening on
8
+ * @param method - HTTP method (GET, POST, PUT, DELETE)
9
+ * @param path - API path (e.g., '/health', '/api/v3/query_sql')
10
+ * @param body - Optional body: object for JSON, string for text/plain (line protocol)
11
+ * @param timeoutMs - Request timeout in milliseconds (default: 30s)
12
+ */
13
+ export async function influxdbApiRequest(port, method, path, body, timeoutMs = 30000) {
14
+ const url = `http://127.0.0.1:${port}${path}`;
15
+ const controller = new AbortController();
16
+ const timeoutId = setTimeout(() => controller.abort(), timeoutMs);
17
+ const options = {
18
+ method,
19
+ signal: controller.signal,
20
+ };
21
+ if (body !== undefined) {
22
+ if (typeof body === 'string') {
23
+ options.headers = { 'Content-Type': 'text/plain' };
24
+ options.body = body;
25
+ }
26
+ else {
27
+ options.headers = { 'Content-Type': 'application/json' };
28
+ options.body = JSON.stringify(body);
29
+ }
30
+ }
31
+ try {
32
+ const response = await fetch(url, options);
33
+ // Try to parse as JSON, fall back to text for endpoints like /health
34
+ let data;
35
+ const contentType = response.headers.get('content-type') || '';
36
+ if (contentType.includes('application/json')) {
37
+ data = await response.json();
38
+ }
39
+ else {
40
+ data = await response.text();
41
+ }
42
+ return { status: response.status, data };
43
+ }
44
+ catch (error) {
45
+ if (error instanceof Error && error.name === 'AbortError') {
46
+ throw new Error(`InfluxDB API request timed out after ${timeoutMs / 1000}s: ${method} ${path}`);
47
+ }
48
+ throw error;
49
+ }
50
+ finally {
51
+ clearTimeout(timeoutId);
52
+ }
53
+ }
54
+ //# sourceMappingURL=api-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-client.js","sourceRoot":"","sources":["../../../engines/influxdb/api-client.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,IAAY,EACZ,MAAc,EACd,IAAY,EACZ,IAAuC,EACvC,SAAS,GAAG,KAAK;IAEjB,MAAM,GAAG,GAAG,oBAAoB,IAAI,GAAG,IAAI,EAAE,CAAA;IAE7C,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAA;IACxC,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,SAAS,CAAC,CAAA;IAEjE,MAAM,OAAO,GAAgB;QAC3B,MAAM;QACN,MAAM,EAAE,UAAU,CAAC,MAAM;KAC1B,CAAA;IAED,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,OAAO,CAAC,OAAO,GAAG,EAAE,cAAc,EAAE,YAAY,EAAE,CAAA;YAClD,OAAO,CAAC,IAAI,GAAG,IAAI,CAAA;QACrB,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,OAAO,GAAG,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAA;YACxD,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;QACrC,CAAC;IACH,CAAC;IAED,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;QAE1C,qEAAqE;QACrE,IAAI,IAAa,CAAA;QACjB,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,CAAA;QAC9D,IAAI,WAAW,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;YAC7C,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;QAC9B,CAAC;aAAM,CAAC;YACN,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;QAC9B,CAAC;QAED,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,CAAA;IAC1C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YAC1D,MAAM,IAAI,KAAK,CACb,wCAAwC,SAAS,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,EAAE,CAC/E,CAAA;QACH,CAAC;QACD,MAAM,KAAK,CAAA;IACb,CAAC;YAAS,CAAC;QACT,YAAY,CAAC,SAAS,CAAC,CAAA;IACzB,CAAC;AACH,CAAC"}
@@ -0,0 +1,119 @@
1
+ /**
2
+ * InfluxDB backup module
3
+ * Supports SQL-based backup using InfluxDB's REST API to export data
4
+ */
5
+ import { mkdir, stat, writeFile } from 'fs/promises';
6
+ import { existsSync } from 'fs';
7
+ import { dirname } from 'path';
8
+ import { logDebug } from '../../core/error-handler.js';
9
+ import { influxdbApiRequest } from './api-client.js';
10
+ /**
11
+ * Create an SQL backup using InfluxDB's REST API
12
+ * Queries all tables and exports data as SQL INSERT statements
13
+ */
14
+ export async function createBackup(container, outputPath, options) {
15
+ const { port } = container;
16
+ const database = options.database || container.database;
17
+ // Ensure output directory exists
18
+ const outputDir = dirname(outputPath);
19
+ if (!existsSync(outputDir)) {
20
+ await mkdir(outputDir, { recursive: true });
21
+ }
22
+ logDebug(`Creating InfluxDB SQL backup via REST API on port ${port} for database "${database}"`);
23
+ // Get list of tables in the database
24
+ const tablesResponse = await influxdbApiRequest(port, 'POST', '/api/v3/query_sql', {
25
+ db: database,
26
+ q: 'SHOW TABLES',
27
+ format: 'json',
28
+ });
29
+ if (tablesResponse.status !== 200) {
30
+ throw new Error(`Failed to list tables: ${JSON.stringify(tablesResponse.data)}`);
31
+ }
32
+ const tablesData = tablesResponse.data;
33
+ const tables = [];
34
+ // Extract user table names: include rows with 'iox' schema or no schema field,
35
+ // skip system schemas (information_schema, system, etc.)
36
+ if (Array.isArray(tablesData)) {
37
+ for (const row of tablesData) {
38
+ const schema = row.table_schema;
39
+ if (schema && schema !== 'iox')
40
+ continue;
41
+ const tableName = row.table_name ||
42
+ row.name ||
43
+ Object.values(row)[0];
44
+ if (tableName) {
45
+ tables.push(tableName);
46
+ }
47
+ }
48
+ }
49
+ logDebug(`Found ${tables.length} tables: ${tables.join(', ')}`);
50
+ // Build SQL dump
51
+ let sqlContent = `-- InfluxDB SQL Backup\n`;
52
+ sqlContent += `-- Database: ${database}\n`;
53
+ sqlContent += `-- Created: ${new Date().toISOString()}\n\n`;
54
+ for (const table of tables) {
55
+ logDebug(`Exporting table: ${table}`);
56
+ // Query column metadata to identify tag columns
57
+ // Tags use Dictionary(Int32, Utf8) type in InfluxDB 3.x
58
+ const tagColumns = [];
59
+ try {
60
+ const colResponse = await influxdbApiRequest(port, 'POST', '/api/v3/query_sql', {
61
+ db: database,
62
+ q: `SELECT column_name, data_type FROM information_schema.columns WHERE table_name = '${table.replace(/'/g, "''")}'`,
63
+ format: 'json',
64
+ });
65
+ if (colResponse.status === 200 && Array.isArray(colResponse.data)) {
66
+ for (const col of colResponse.data) {
67
+ const dataType = String(col.data_type || '');
68
+ if (dataType.includes('Dictionary')) {
69
+ tagColumns.push(String(col.column_name));
70
+ }
71
+ }
72
+ }
73
+ }
74
+ catch {
75
+ logDebug(`Warning: Could not query column metadata for ${table}`);
76
+ }
77
+ // Query all data from the table
78
+ const dataResponse = await influxdbApiRequest(port, 'POST', '/api/v3/query_sql', {
79
+ db: database,
80
+ q: `SELECT * FROM "${table.replace(/"/g, '""')}"`,
81
+ format: 'json',
82
+ });
83
+ if (dataResponse.status !== 200) {
84
+ logDebug(`Warning: Failed to export table ${table}: ${JSON.stringify(dataResponse.data)}`);
85
+ continue;
86
+ }
87
+ const rows = dataResponse.data;
88
+ if (Array.isArray(rows) && rows.length > 0) {
89
+ sqlContent += `-- Table: ${table}\n`;
90
+ if (tagColumns.length > 0) {
91
+ sqlContent += `-- Tags: ${tagColumns.join(', ')}\n`;
92
+ }
93
+ for (const row of rows) {
94
+ const columns = Object.keys(row);
95
+ const values = columns.map((col) => {
96
+ const val = row[col];
97
+ if (val === null || val === undefined)
98
+ return 'NULL';
99
+ if (typeof val === 'number')
100
+ return String(val);
101
+ if (typeof val === 'boolean')
102
+ return val ? 'true' : 'false';
103
+ return `'${String(val).replace(/'/g, "''")}'`;
104
+ });
105
+ sqlContent += `INSERT INTO "${table.replace(/"/g, '""')}" (${columns.map((c) => `"${c.replace(/"/g, '""')}"`).join(', ')}) VALUES (${values.join(', ')});\n`;
106
+ }
107
+ sqlContent += '\n';
108
+ }
109
+ }
110
+ // Write SQL content to file
111
+ await writeFile(outputPath, sqlContent, 'utf-8');
112
+ const stats = await stat(outputPath);
113
+ return {
114
+ path: outputPath,
115
+ format: 'sql',
116
+ size: stats.size,
117
+ };
118
+ }
119
+ //# sourceMappingURL=backup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backup.js","sourceRoot":"","sources":["../../../engines/influxdb/backup.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,87 @@
1
+ /**
2
+ * InfluxDB Binary Manager
3
+ *
4
+ * Handles downloading, extracting, and managing InfluxDB binaries from hostdb.
5
+ * Extends BaseBinaryManager for shared download/extraction logic.
6
+ *
7
+ * InfluxDB 3.x archives extract to a flat `influxdb/` directory:
8
+ * influxdb/
9
+ * ├── influxdb3 (server binary)
10
+ * ├── python/ (bundled Python runtime)
11
+ * │ └── lib/
12
+ * │ └── libpython3.13.dylib
13
+ * ├── LICENSE-APACHE
14
+ * └── LICENSE-MIT
15
+ *
16
+ * The binary uses @executable_path/python/lib/libpython3.13.dylib, so python/
17
+ * must be in the same directory as the binary. We reorganize to:
18
+ * bin/
19
+ * ├── influxdb3
20
+ * └── python/ (co-located for @executable_path resolution)
21
+ */
22
+ import { mkdir, readdir } from 'fs/promises';
23
+ import { join } from 'path';
24
+ import { BaseBinaryManager, } from '../../core/base-binary-manager.js';
25
+ import { moveEntry } from '../../core/fs-error-utils.js';
26
+ import { logDebug } from '../../core/error-handler.js';
27
+ import { getBinaryUrl } from './binary-urls.js';
28
+ import { normalizeVersion } from './version-maps.js';
29
+ import { Engine } from '../../types/index.js';
30
+ class InfluxDBBinaryManager extends BaseBinaryManager {
31
+ config = {
32
+ engine: Engine.InfluxDB,
33
+ engineName: 'influxdb',
34
+ displayName: 'InfluxDB',
35
+ serverBinary: 'influxdb3',
36
+ };
37
+ getBinaryUrlFromModule(version, platform, arch) {
38
+ return getBinaryUrl(version, platform, arch);
39
+ }
40
+ normalizeVersionFromModule(version) {
41
+ return normalizeVersion(version);
42
+ }
43
+ parseVersionFromOutput(stdout) {
44
+ // Extract version from output like "influxdb3 3.8.0" or "InfluxDB 3 Edge v3.8.0"
45
+ const match = stdout.match(/v?(\d+\.\d+\.\d+)/);
46
+ return match?.[1] ?? null;
47
+ }
48
+ /**
49
+ * Override moveExtractedEntries to co-locate python/ with the binary.
50
+ *
51
+ * The influxdb3 binary references @executable_path/python/lib/libpython3.13.dylib,
52
+ * so the python/ directory must be inside bin/ alongside the binary.
53
+ * The default flat-structure handler would put python/ at binPath/python/ instead
54
+ * of binPath/bin/python/, causing a dylib load failure.
55
+ */
56
+ async moveExtractedEntries(extractDir, binPath) {
57
+ const entries = await readdir(extractDir, { withFileTypes: true });
58
+ // Find the influxdb directory (e.g., "influxdb" or "influxdb-3.8.0")
59
+ const influxDir = entries.find((e) => e.isDirectory() &&
60
+ (e.name === 'influxdb' || e.name.startsWith('influxdb-')));
61
+ const sourceDir = influxDir ? join(extractDir, influxDir.name) : extractDir;
62
+ const sourceEntries = influxDir
63
+ ? await readdir(sourceDir, { withFileTypes: true })
64
+ : entries;
65
+ // Create bin/ directory
66
+ const destBinDir = join(binPath, 'bin');
67
+ await mkdir(destBinDir, { recursive: true });
68
+ for (const entry of sourceEntries) {
69
+ const sourcePath = join(sourceDir, entry.name);
70
+ if (entry.name === 'influxdb3' || entry.name === 'influxdb3.exe') {
71
+ // Server binary → bin/
72
+ await moveEntry(sourcePath, join(destBinDir, entry.name));
73
+ }
74
+ else if (entry.name === 'python') {
75
+ // Python runtime → bin/python/ (must be co-located with binary for @executable_path)
76
+ await moveEntry(sourcePath, join(destBinDir, 'python'));
77
+ }
78
+ else {
79
+ // Licenses, metadata, etc. → binPath root
80
+ await moveEntry(sourcePath, join(binPath, entry.name));
81
+ }
82
+ }
83
+ logDebug('InfluxDB binaries reorganized with python/ co-located in bin/');
84
+ }
85
+ }
86
+ export const influxdbBinaryManager = new InfluxDBBinaryManager();
87
+ //# sourceMappingURL=binary-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"binary-manager.js","sourceRoot":"","sources":["../../../engines/influxdb/binary-manager.ts"],"names":[],"mappings":"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"}