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.
- package/dist/cli/bin.js +9 -0
- package/dist/cli/bin.js.map +1 -0
- package/dist/cli/commands/attach.js +102 -0
- package/dist/cli/commands/attach.js.map +1 -0
- package/dist/cli/commands/backup.js +197 -0
- package/dist/cli/commands/backup.js.map +1 -0
- package/dist/cli/commands/backups.js +190 -0
- package/dist/cli/commands/backups.js.map +1 -0
- package/dist/cli/commands/clone.js +119 -0
- package/dist/cli/commands/clone.js.map +1 -0
- package/dist/cli/commands/config.js +276 -0
- package/dist/cli/commands/config.js.map +1 -0
- package/dist/cli/commands/connect.js +559 -0
- package/dist/cli/commands/connect.js.map +1 -0
- package/dist/cli/commands/create.js +952 -0
- package/dist/cli/commands/create.js.map +1 -0
- package/dist/cli/commands/databases.js +485 -0
- package/dist/cli/commands/databases.js.map +1 -0
- package/dist/cli/commands/delete.js +106 -0
- package/dist/cli/commands/delete.js.map +1 -0
- package/dist/cli/commands/deps.js +238 -0
- package/dist/cli/commands/deps.js.map +1 -0
- package/dist/cli/commands/detach.js +81 -0
- package/dist/cli/commands/detach.js.map +1 -0
- package/dist/cli/commands/doctor.js +567 -0
- package/dist/cli/commands/doctor.js.map +1 -0
- package/dist/cli/commands/duckdb.js +207 -0
- package/dist/cli/commands/duckdb.js.map +1 -0
- package/dist/cli/commands/edit.js +524 -0
- package/dist/cli/commands/edit.js.map +1 -0
- package/dist/cli/commands/engines.js +1414 -0
- package/dist/cli/commands/engines.js.map +1 -0
- package/dist/cli/commands/export.js +383 -0
- package/dist/cli/commands/export.js.map +1 -0
- package/dist/cli/commands/info.js +270 -0
- package/dist/cli/commands/info.js.map +1 -0
- package/dist/cli/commands/list.js +215 -0
- package/dist/cli/commands/list.js.map +1 -0
- package/dist/cli/commands/logs.js +81 -0
- package/dist/cli/commands/logs.js.map +1 -0
- package/dist/cli/commands/menu/backup-handlers.js +1202 -0
- package/dist/cli/commands/menu/backup-handlers.js.map +1 -0
- package/dist/cli/commands/menu/container-handlers.js +1788 -0
- package/dist/cli/commands/menu/container-handlers.js.map +1 -0
- package/dist/cli/commands/menu/engine-handlers.js +235 -0
- package/dist/cli/commands/menu/engine-handlers.js.map +1 -0
- package/dist/cli/commands/menu/index.js +266 -0
- package/dist/cli/commands/menu/index.js.map +1 -0
- package/dist/cli/commands/menu/settings-handlers.js +320 -0
- package/dist/cli/commands/menu/settings-handlers.js.map +1 -0
- package/dist/cli/commands/menu/shared.js +13 -0
- package/dist/cli/commands/menu/shared.js.map +1 -0
- package/dist/cli/commands/menu/shell-handlers.js +1573 -0
- package/dist/cli/commands/menu/shell-handlers.js.map +1 -0
- package/dist/cli/commands/menu/sql-handlers.js +185 -0
- package/dist/cli/commands/menu/sql-handlers.js.map +1 -0
- package/dist/cli/commands/menu/update-handlers.js +322 -0
- package/dist/cli/commands/menu/update-handlers.js.map +1 -0
- package/dist/cli/commands/menu/validators.js +9 -0
- package/dist/cli/commands/menu/validators.js.map +1 -0
- package/dist/cli/commands/ports.js +166 -0
- package/dist/cli/commands/ports.js.map +1 -0
- package/dist/cli/commands/pull.js +166 -0
- package/dist/cli/commands/pull.js.map +1 -0
- package/dist/cli/commands/query.js +180 -0
- package/dist/cli/commands/query.js.map +1 -0
- package/dist/cli/commands/restore.js +428 -0
- package/dist/cli/commands/restore.js.map +1 -0
- package/dist/cli/commands/run.js +115 -0
- package/dist/cli/commands/run.js.map +1 -0
- package/dist/cli/commands/self-update.js +99 -0
- package/dist/cli/commands/self-update.js.map +1 -0
- package/dist/cli/commands/sqlite.js +207 -0
- package/dist/cli/commands/sqlite.js.map +1 -0
- package/dist/cli/commands/start.js +196 -0
- package/dist/cli/commands/start.js.map +1 -0
- package/dist/cli/commands/stop.js +182 -0
- package/dist/cli/commands/stop.js.map +1 -0
- package/dist/cli/commands/url.js +88 -0
- package/dist/cli/commands/url.js.map +1 -0
- package/dist/cli/commands/users.js +189 -0
- package/dist/cli/commands/users.js.map +1 -0
- package/dist/cli/commands/version.js +52 -0
- package/dist/cli/commands/version.js.map +1 -0
- package/dist/cli/commands/which.js +258 -0
- package/dist/cli/commands/which.js.map +1 -0
- package/dist/cli/constants.js +212 -0
- package/dist/cli/constants.js.map +1 -0
- package/dist/cli/helpers.js +1120 -0
- package/dist/cli/helpers.js.map +1 -0
- package/dist/cli/index.js +146 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/ui/prompts.js +1002 -0
- package/dist/cli/ui/prompts.js.map +1 -0
- package/dist/cli/ui/spinner.js +74 -0
- package/dist/cli/ui/spinner.js.map +1 -0
- package/dist/cli/ui/theme.js +99 -0
- package/dist/cli/ui/theme.js.map +1 -0
- package/dist/cli/utils/file-follower.js +79 -0
- package/dist/cli/utils/file-follower.js.map +1 -0
- package/dist/config/backup-formats.js +363 -0
- package/dist/config/backup-formats.js.map +1 -0
- package/dist/config/defaults.js +25 -0
- package/dist/config/defaults.js.map +1 -0
- package/dist/config/engine-defaults.js +303 -0
- package/dist/config/engine-defaults.js.map +1 -0
- package/dist/config/engines-registry.js +103 -0
- package/dist/config/engines-registry.js.map +1 -0
- package/dist/config/os-dependencies.js +767 -0
- package/dist/config/os-dependencies.js.map +1 -0
- package/dist/config/paths.js +156 -0
- package/dist/config/paths.js.map +1 -0
- package/dist/config/version.js +3 -0
- package/dist/config/version.js.map +1 -0
- package/dist/core/backup-restore.js +219 -0
- package/dist/core/backup-restore.js.map +1 -0
- package/dist/core/base-binary-manager.js +403 -0
- package/dist/core/base-binary-manager.js.map +1 -0
- package/dist/core/base-document-binary-manager.js +364 -0
- package/dist/core/base-document-binary-manager.js.map +1 -0
- package/dist/core/base-embedded-binary-manager.js +364 -0
- package/dist/core/base-embedded-binary-manager.js.map +1 -0
- package/dist/core/base-server-binary-manager.js +368 -0
- package/dist/core/base-server-binary-manager.js.map +1 -0
- package/dist/core/config-manager.js +495 -0
- package/dist/core/config-manager.js.map +1 -0
- package/dist/core/container-manager.js +609 -0
- package/dist/core/container-manager.js.map +1 -0
- package/dist/core/credential-generator.js +67 -0
- package/dist/core/credential-generator.js.map +1 -0
- package/dist/core/credential-manager.js +211 -0
- package/dist/core/credential-manager.js.map +1 -0
- package/dist/core/dblab-utils.js +105 -0
- package/dist/core/dblab-utils.js.map +1 -0
- package/dist/core/dependency-manager.js +359 -0
- package/dist/core/dependency-manager.js.map +1 -0
- package/dist/core/docker-exporter.js +1077 -0
- package/dist/core/docker-exporter.js.map +1 -0
- package/dist/core/error-handler.js +295 -0
- package/dist/core/error-handler.js.map +1 -0
- package/dist/core/fs-error-utils.js +74 -0
- package/dist/core/fs-error-utils.js.map +1 -0
- package/dist/core/homebrew-version-manager.js +280 -0
- package/dist/core/homebrew-version-manager.js.map +1 -0
- package/dist/core/hostdb-client.js +252 -0
- package/dist/core/hostdb-client.js.map +1 -0
- package/dist/core/hostdb-metadata.js +243 -0
- package/dist/core/hostdb-metadata.js.map +1 -0
- package/dist/core/hostdb-releases-factory.js +161 -0
- package/dist/core/hostdb-releases-factory.js.map +1 -0
- package/dist/core/library-env.js +88 -0
- package/dist/core/library-env.js.map +1 -0
- package/dist/core/pgweb-utils.js +53 -0
- package/dist/core/pgweb-utils.js.map +1 -0
- package/dist/core/platform-service.js +632 -0
- package/dist/core/platform-service.js.map +1 -0
- package/dist/core/port-manager.js +136 -0
- package/dist/core/port-manager.js.map +1 -0
- package/dist/core/process-manager.js +445 -0
- package/dist/core/process-manager.js.map +1 -0
- package/dist/core/pull-manager.js +418 -0
- package/dist/core/pull-manager.js.map +1 -0
- package/dist/core/query-parser.js +449 -0
- package/dist/core/query-parser.js.map +1 -0
- package/dist/core/spawn-utils.js +90 -0
- package/dist/core/spawn-utils.js.map +1 -0
- package/dist/core/start-with-retry.js +90 -0
- package/dist/core/start-with-retry.js.map +1 -0
- package/dist/core/test-cleanup.js +85 -0
- package/dist/core/test-cleanup.js.map +1 -0
- package/dist/core/tls-generator.js +84 -0
- package/dist/core/tls-generator.js.map +1 -0
- package/dist/core/transaction-manager.js +139 -0
- package/dist/core/transaction-manager.js.map +1 -0
- package/dist/core/update-manager.js +241 -0
- package/dist/core/update-manager.js.map +1 -0
- package/dist/core/version-migration.js +260 -0
- package/dist/core/version-migration.js.map +1 -0
- package/dist/core/version-utils.js +91 -0
- package/dist/core/version-utils.js.map +1 -0
- package/dist/engines/base-engine.js +179 -0
- package/dist/engines/base-engine.js.map +1 -0
- package/dist/engines/clickhouse/backup.js +289 -0
- package/dist/engines/clickhouse/backup.js.map +1 -0
- package/dist/engines/clickhouse/binary-manager.js +145 -0
- package/dist/engines/clickhouse/binary-manager.js.map +1 -0
- package/dist/engines/clickhouse/binary-urls.js +100 -0
- package/dist/engines/clickhouse/binary-urls.js.map +1 -0
- package/dist/engines/clickhouse/cli-utils.js +143 -0
- package/dist/engines/clickhouse/cli-utils.js.map +1 -0
- package/dist/engines/clickhouse/hostdb-releases.js +24 -0
- package/dist/engines/clickhouse/hostdb-releases.js.map +1 -0
- package/dist/engines/clickhouse/index.js +1077 -0
- package/dist/engines/clickhouse/index.js.map +1 -0
- package/dist/engines/clickhouse/restore.js +335 -0
- package/dist/engines/clickhouse/restore.js.map +1 -0
- package/dist/engines/clickhouse/version-maps.js +83 -0
- package/dist/engines/clickhouse/version-maps.js.map +1 -0
- package/dist/engines/clickhouse/version-validator.js +133 -0
- package/dist/engines/clickhouse/version-validator.js.map +1 -0
- package/dist/engines/cockroachdb/backup.js +261 -0
- package/dist/engines/cockroachdb/backup.js.map +1 -0
- package/dist/engines/cockroachdb/binary-manager.js +33 -0
- package/dist/engines/cockroachdb/binary-manager.js.map +1 -0
- package/dist/engines/cockroachdb/binary-urls.js +33 -0
- package/dist/engines/cockroachdb/binary-urls.js.map +1 -0
- package/dist/engines/cockroachdb/cli-utils.js +338 -0
- package/dist/engines/cockroachdb/cli-utils.js.map +1 -0
- package/dist/engines/cockroachdb/hostdb-releases.js +21 -0
- package/dist/engines/cockroachdb/hostdb-releases.js.map +1 -0
- package/dist/engines/cockroachdb/index.js +1016 -0
- package/dist/engines/cockroachdb/index.js.map +1 -0
- package/dist/engines/cockroachdb/restore.js +323 -0
- package/dist/engines/cockroachdb/restore.js.map +1 -0
- package/dist/engines/cockroachdb/version-maps.js +37 -0
- package/dist/engines/cockroachdb/version-maps.js.map +1 -0
- package/dist/engines/couchdb/api-client.js +64 -0
- package/dist/engines/couchdb/api-client.js.map +1 -0
- package/dist/engines/couchdb/backup.js +90 -0
- package/dist/engines/couchdb/backup.js.map +1 -0
- package/dist/engines/couchdb/binary-manager.js +62 -0
- package/dist/engines/couchdb/binary-manager.js.map +1 -0
- package/dist/engines/couchdb/binary-urls.js +92 -0
- package/dist/engines/couchdb/binary-urls.js.map +1 -0
- package/dist/engines/couchdb/hostdb-releases.js +21 -0
- package/dist/engines/couchdb/hostdb-releases.js.map +1 -0
- package/dist/engines/couchdb/index.js +1043 -0
- package/dist/engines/couchdb/index.js.map +1 -0
- package/dist/engines/couchdb/restore.js +198 -0
- package/dist/engines/couchdb/restore.js.map +1 -0
- package/dist/engines/couchdb/version-maps.js +67 -0
- package/dist/engines/couchdb/version-maps.js.map +1 -0
- package/dist/engines/couchdb/version-validator.js +88 -0
- package/dist/engines/couchdb/version-validator.js.map +1 -0
- package/dist/engines/duckdb/binary-manager.js +33 -0
- package/dist/engines/duckdb/binary-manager.js.map +1 -0
- package/{engines/duckdb/binary-urls.ts → dist/engines/duckdb/binary-urls.js} +11 -16
- package/dist/engines/duckdb/binary-urls.js.map +1 -0
- package/dist/engines/duckdb/hostdb-releases.js +21 -0
- package/dist/engines/duckdb/hostdb-releases.js.map +1 -0
- package/dist/engines/duckdb/index.js +594 -0
- package/dist/engines/duckdb/index.js.map +1 -0
- package/dist/engines/duckdb/registry.js +265 -0
- package/dist/engines/duckdb/registry.js.map +1 -0
- package/dist/engines/duckdb/scanner.js +12 -0
- package/dist/engines/duckdb/scanner.js.map +1 -0
- package/dist/engines/duckdb/version-maps.js +67 -0
- package/dist/engines/duckdb/version-maps.js.map +1 -0
- package/dist/engines/duckdb/version-validator.js +62 -0
- package/dist/engines/duckdb/version-validator.js.map +1 -0
- package/dist/engines/ferretdb/backup.js +170 -0
- package/dist/engines/ferretdb/backup.js.map +1 -0
- package/dist/engines/ferretdb/binary-manager.js +765 -0
- package/dist/engines/ferretdb/binary-manager.js.map +1 -0
- package/dist/engines/ferretdb/binary-urls.js +135 -0
- package/dist/engines/ferretdb/binary-urls.js.map +1 -0
- package/dist/engines/ferretdb/index.js +1517 -0
- package/dist/engines/ferretdb/index.js.map +1 -0
- package/dist/engines/ferretdb/restore.js +310 -0
- package/dist/engines/ferretdb/restore.js.map +1 -0
- package/{engines/ferretdb/version-maps.ts → dist/engines/ferretdb/version-maps.js} +62 -79
- package/dist/engines/ferretdb/version-maps.js.map +1 -0
- package/dist/engines/file-based-utils.js +184 -0
- package/dist/engines/file-based-utils.js.map +1 -0
- package/dist/engines/index.js +124 -0
- package/dist/engines/index.js.map +1 -0
- package/dist/engines/influxdb/api-client.js +54 -0
- package/dist/engines/influxdb/api-client.js.map +1 -0
- package/dist/engines/influxdb/backup.js +119 -0
- package/dist/engines/influxdb/backup.js.map +1 -0
- package/dist/engines/influxdb/binary-manager.js +87 -0
- package/dist/engines/influxdb/binary-manager.js.map +1 -0
- package/dist/engines/influxdb/binary-urls.js +56 -0
- package/dist/engines/influxdb/binary-urls.js.map +1 -0
- package/dist/engines/influxdb/hostdb-releases.js +21 -0
- package/dist/engines/influxdb/hostdb-releases.js.map +1 -0
- package/dist/engines/influxdb/index.js +962 -0
- package/dist/engines/influxdb/index.js.map +1 -0
- package/dist/engines/influxdb/restore.js +329 -0
- package/dist/engines/influxdb/restore.js.map +1 -0
- package/dist/engines/influxdb/version-maps.js +64 -0
- package/dist/engines/influxdb/version-maps.js.map +1 -0
- package/dist/engines/influxdb/version-validator.js +109 -0
- package/dist/engines/influxdb/version-validator.js.map +1 -0
- package/dist/engines/mariadb/backup.js +178 -0
- package/dist/engines/mariadb/backup.js.map +1 -0
- package/dist/engines/mariadb/binary-manager.js +33 -0
- package/dist/engines/mariadb/binary-manager.js.map +1 -0
- package/{engines/mariadb/binary-urls.ts → dist/engines/mariadb/binary-urls.js} +38 -55
- package/dist/engines/mariadb/binary-urls.js.map +1 -0
- package/dist/engines/mariadb/hostdb-releases.js +21 -0
- package/dist/engines/mariadb/hostdb-releases.js.map +1 -0
- package/dist/engines/mariadb/index.js +1011 -0
- package/dist/engines/mariadb/index.js.map +1 -0
- package/dist/engines/mariadb/restore.js +322 -0
- package/dist/engines/mariadb/restore.js.map +1 -0
- package/dist/engines/mariadb/version-maps.js +63 -0
- package/dist/engines/mariadb/version-maps.js.map +1 -0
- package/dist/engines/mariadb/version-validator.js +143 -0
- package/dist/engines/mariadb/version-validator.js.map +1 -0
- package/dist/engines/meilisearch/api-client.js +50 -0
- package/dist/engines/meilisearch/api-client.js.map +1 -0
- package/dist/engines/meilisearch/backup.js +167 -0
- package/dist/engines/meilisearch/backup.js.map +1 -0
- package/dist/engines/meilisearch/binary-manager.js +31 -0
- package/dist/engines/meilisearch/binary-manager.js.map +1 -0
- package/dist/engines/meilisearch/binary-urls.js +56 -0
- package/dist/engines/meilisearch/binary-urls.js.map +1 -0
- package/dist/engines/meilisearch/hostdb-releases.js +21 -0
- package/dist/engines/meilisearch/hostdb-releases.js.map +1 -0
- package/dist/engines/meilisearch/index.js +992 -0
- package/dist/engines/meilisearch/index.js.map +1 -0
- package/dist/engines/meilisearch/restore.js +167 -0
- package/dist/engines/meilisearch/restore.js.map +1 -0
- package/dist/engines/meilisearch/version-maps.js +67 -0
- package/dist/engines/meilisearch/version-maps.js.map +1 -0
- package/dist/engines/meilisearch/version-validator.js +109 -0
- package/dist/engines/meilisearch/version-validator.js.map +1 -0
- package/dist/engines/mongodb/backup.js +109 -0
- package/dist/engines/mongodb/backup.js.map +1 -0
- package/dist/engines/mongodb/binary-manager.js +36 -0
- package/dist/engines/mongodb/binary-manager.js.map +1 -0
- package/dist/engines/mongodb/binary-urls.js +46 -0
- package/dist/engines/mongodb/binary-urls.js.map +1 -0
- package/dist/engines/mongodb/cli-utils.js +131 -0
- package/dist/engines/mongodb/cli-utils.js.map +1 -0
- package/dist/engines/mongodb/hostdb-releases.js +77 -0
- package/dist/engines/mongodb/hostdb-releases.js.map +1 -0
- package/dist/engines/mongodb/index.js +873 -0
- package/dist/engines/mongodb/index.js.map +1 -0
- package/dist/engines/mongodb/restore.js +276 -0
- package/dist/engines/mongodb/restore.js.map +1 -0
- package/dist/engines/mongodb/version-maps.js +79 -0
- package/dist/engines/mongodb/version-maps.js.map +1 -0
- package/dist/engines/mongodb/version-validator.js +133 -0
- package/dist/engines/mongodb/version-validator.js.map +1 -0
- package/dist/engines/mysql/backup.js +210 -0
- package/dist/engines/mysql/backup.js.map +1 -0
- package/dist/engines/mysql/binary-detection.js +325 -0
- package/dist/engines/mysql/binary-detection.js.map +1 -0
- package/dist/engines/mysql/binary-manager.js +30 -0
- package/dist/engines/mysql/binary-manager.js.map +1 -0
- package/dist/engines/mysql/binary-urls.js +87 -0
- package/dist/engines/mysql/binary-urls.js.map +1 -0
- package/{engines/mysql/hostdb-releases.ts → dist/engines/mysql/hostdb-releases.js} +20 -23
- package/dist/engines/mysql/hostdb-releases.js.map +1 -0
- package/dist/engines/mysql/index.js +1066 -0
- package/dist/engines/mysql/index.js.map +1 -0
- package/dist/engines/mysql/restore.js +361 -0
- package/dist/engines/mysql/restore.js.map +1 -0
- package/dist/engines/mysql/version-maps.js +79 -0
- package/dist/engines/mysql/version-maps.js.map +1 -0
- package/dist/engines/mysql/version-validator.js +266 -0
- package/dist/engines/mysql/version-validator.js.map +1 -0
- package/dist/engines/postgresql/backup.js +118 -0
- package/dist/engines/postgresql/backup.js.map +1 -0
- package/dist/engines/postgresql/binary-manager.js +85 -0
- package/dist/engines/postgresql/binary-manager.js.map +1 -0
- package/dist/engines/postgresql/binary-urls.js +80 -0
- package/dist/engines/postgresql/binary-urls.js.map +1 -0
- package/dist/engines/postgresql/hostdb-releases.js +21 -0
- package/dist/engines/postgresql/hostdb-releases.js.map +1 -0
- package/dist/engines/postgresql/index.js +852 -0
- package/dist/engines/postgresql/index.js.map +1 -0
- package/dist/engines/postgresql/remote-version.js +109 -0
- package/dist/engines/postgresql/remote-version.js.map +1 -0
- package/dist/engines/postgresql/restore.js +254 -0
- package/dist/engines/postgresql/restore.js.map +1 -0
- package/dist/engines/postgresql/version-maps.js +73 -0
- package/dist/engines/postgresql/version-maps.js.map +1 -0
- package/dist/engines/postgresql/version-validator.js +286 -0
- package/dist/engines/postgresql/version-validator.js.map +1 -0
- package/dist/engines/qdrant/api-client.js +50 -0
- package/dist/engines/qdrant/api-client.js.map +1 -0
- package/dist/engines/qdrant/backup.js +115 -0
- package/dist/engines/qdrant/backup.js.map +1 -0
- package/dist/engines/qdrant/binary-manager.js +31 -0
- package/dist/engines/qdrant/binary-manager.js.map +1 -0
- package/dist/engines/qdrant/binary-urls.js +92 -0
- package/dist/engines/qdrant/binary-urls.js.map +1 -0
- package/dist/engines/qdrant/cli-utils.js +39 -0
- package/dist/engines/qdrant/cli-utils.js.map +1 -0
- package/dist/engines/qdrant/hostdb-releases.js +21 -0
- package/dist/engines/qdrant/hostdb-releases.js.map +1 -0
- package/dist/engines/qdrant/index.js +1002 -0
- package/dist/engines/qdrant/index.js.map +1 -0
- package/dist/engines/qdrant/restore.js +154 -0
- package/dist/engines/qdrant/restore.js.map +1 -0
- package/dist/engines/qdrant/version-maps.js +67 -0
- package/dist/engines/qdrant/version-maps.js.map +1 -0
- package/dist/engines/qdrant/version-validator.js +109 -0
- package/dist/engines/qdrant/version-validator.js.map +1 -0
- package/dist/engines/questdb/backup.js +191 -0
- package/dist/engines/questdb/backup.js.map +1 -0
- package/dist/engines/questdb/binary-manager.js +247 -0
- package/dist/engines/questdb/binary-manager.js.map +1 -0
- package/dist/engines/questdb/binary-urls.js +27 -0
- package/dist/engines/questdb/binary-urls.js.map +1 -0
- package/dist/engines/questdb/hostdb-releases.js +21 -0
- package/dist/engines/questdb/hostdb-releases.js.map +1 -0
- package/dist/engines/questdb/index.js +814 -0
- package/dist/engines/questdb/index.js.map +1 -0
- package/dist/engines/questdb/restore.js +202 -0
- package/dist/engines/questdb/restore.js.map +1 -0
- package/dist/engines/questdb/version-maps.js +33 -0
- package/dist/engines/questdb/version-maps.js.map +1 -0
- package/dist/engines/questdb/version-validator.js +99 -0
- package/dist/engines/questdb/version-validator.js.map +1 -0
- package/dist/engines/redis/backup.js +292 -0
- package/dist/engines/redis/backup.js.map +1 -0
- package/dist/engines/redis/binary-manager.js +32 -0
- package/dist/engines/redis/binary-manager.js.map +1 -0
- package/dist/engines/redis/binary-urls.js +96 -0
- package/dist/engines/redis/binary-urls.js.map +1 -0
- package/dist/engines/redis/cli-utils.js +38 -0
- package/dist/engines/redis/cli-utils.js.map +1 -0
- package/dist/engines/redis/hostdb-releases.js +21 -0
- package/dist/engines/redis/hostdb-releases.js.map +1 -0
- package/dist/engines/redis/index.js +1263 -0
- package/dist/engines/redis/index.js.map +1 -0
- package/dist/engines/redis/restore.js +338 -0
- package/dist/engines/redis/restore.js.map +1 -0
- package/dist/engines/redis/version-maps.js +70 -0
- package/dist/engines/redis/version-maps.js.map +1 -0
- package/dist/engines/redis/version-validator.js +109 -0
- package/dist/engines/redis/version-validator.js.map +1 -0
- package/dist/engines/sqlite/binary-manager.js +39 -0
- package/dist/engines/sqlite/binary-manager.js.map +1 -0
- package/{engines/sqlite/binary-urls.ts → dist/engines/sqlite/binary-urls.js} +11 -16
- package/dist/engines/sqlite/binary-urls.js.map +1 -0
- package/dist/engines/sqlite/hostdb-releases.js +21 -0
- package/dist/engines/sqlite/hostdb-releases.js.map +1 -0
- package/dist/engines/sqlite/index.js +493 -0
- package/dist/engines/sqlite/index.js.map +1 -0
- package/dist/engines/sqlite/registry.js +163 -0
- package/dist/engines/sqlite/registry.js.map +1 -0
- package/dist/engines/sqlite/scanner.js +12 -0
- package/dist/engines/sqlite/scanner.js.map +1 -0
- package/dist/engines/sqlite/version-maps.js +57 -0
- package/dist/engines/sqlite/version-maps.js.map +1 -0
- package/dist/engines/surrealdb/backup.js +97 -0
- package/dist/engines/surrealdb/backup.js.map +1 -0
- package/dist/engines/surrealdb/binary-manager.js +33 -0
- package/dist/engines/surrealdb/binary-manager.js.map +1 -0
- package/dist/engines/surrealdb/binary-urls.js +33 -0
- package/dist/engines/surrealdb/binary-urls.js.map +1 -0
- package/dist/engines/surrealdb/cli-utils.js +147 -0
- package/dist/engines/surrealdb/cli-utils.js.map +1 -0
- package/dist/engines/surrealdb/hostdb-releases.js +21 -0
- package/dist/engines/surrealdb/hostdb-releases.js.map +1 -0
- package/dist/engines/surrealdb/index.js +1022 -0
- package/dist/engines/surrealdb/index.js.map +1 -0
- package/dist/engines/surrealdb/restore.js +224 -0
- package/dist/engines/surrealdb/restore.js.map +1 -0
- package/dist/engines/surrealdb/version-maps.js +36 -0
- package/dist/engines/surrealdb/version-maps.js.map +1 -0
- package/dist/engines/tigerbeetle/backup.js +36 -0
- package/dist/engines/tigerbeetle/backup.js.map +1 -0
- package/dist/engines/tigerbeetle/binary-manager.js +72 -0
- package/dist/engines/tigerbeetle/binary-manager.js.map +1 -0
- package/dist/engines/tigerbeetle/binary-urls.js +49 -0
- package/dist/engines/tigerbeetle/binary-urls.js.map +1 -0
- package/dist/engines/tigerbeetle/hostdb-releases.js +21 -0
- package/dist/engines/tigerbeetle/hostdb-releases.js.map +1 -0
- package/dist/engines/tigerbeetle/index.js +559 -0
- package/dist/engines/tigerbeetle/index.js.map +1 -0
- package/dist/engines/tigerbeetle/restore.js +91 -0
- package/dist/engines/tigerbeetle/restore.js.map +1 -0
- package/{engines/tigerbeetle/version-maps.ts → dist/engines/tigerbeetle/version-maps.js} +22 -31
- package/dist/engines/tigerbeetle/version-maps.js.map +1 -0
- package/dist/engines/tigerbeetle/version-validator.js +108 -0
- package/dist/engines/tigerbeetle/version-validator.js.map +1 -0
- package/dist/engines/typedb/backup.js +129 -0
- package/dist/engines/typedb/backup.js.map +1 -0
- package/dist/engines/typedb/binary-manager.js +151 -0
- package/dist/engines/typedb/binary-manager.js.map +1 -0
- package/dist/engines/typedb/binary-urls.js +33 -0
- package/dist/engines/typedb/binary-urls.js.map +1 -0
- package/dist/engines/typedb/cli-utils.js +163 -0
- package/dist/engines/typedb/cli-utils.js.map +1 -0
- package/dist/engines/typedb/hostdb-releases.js +21 -0
- package/dist/engines/typedb/hostdb-releases.js.map +1 -0
- package/dist/engines/typedb/index.js +1003 -0
- package/dist/engines/typedb/index.js.map +1 -0
- package/dist/engines/typedb/restore.js +279 -0
- package/dist/engines/typedb/restore.js.map +1 -0
- package/dist/engines/typedb/version-maps.js +40 -0
- package/dist/engines/typedb/version-maps.js.map +1 -0
- package/dist/engines/typedb/version-validator.js +103 -0
- package/dist/engines/typedb/version-validator.js.map +1 -0
- package/dist/engines/valkey/backup.js +292 -0
- package/dist/engines/valkey/backup.js.map +1 -0
- package/dist/engines/valkey/binary-manager.js +33 -0
- package/dist/engines/valkey/binary-manager.js.map +1 -0
- package/dist/engines/valkey/binary-urls.js +98 -0
- package/dist/engines/valkey/binary-urls.js.map +1 -0
- package/dist/engines/valkey/cli-utils.js +38 -0
- package/dist/engines/valkey/cli-utils.js.map +1 -0
- package/dist/engines/valkey/hostdb-releases.js +21 -0
- package/dist/engines/valkey/hostdb-releases.js.map +1 -0
- package/dist/engines/valkey/index.js +1257 -0
- package/dist/engines/valkey/index.js.map +1 -0
- package/dist/engines/valkey/restore.js +340 -0
- package/dist/engines/valkey/restore.js.map +1 -0
- package/dist/engines/valkey/version-maps.js +70 -0
- package/dist/engines/valkey/version-maps.js.map +1 -0
- package/dist/engines/valkey/version-validator.js +112 -0
- package/dist/engines/valkey/version-validator.js.map +1 -0
- package/dist/engines/weaviate/api-client.js +50 -0
- package/dist/engines/weaviate/api-client.js.map +1 -0
- package/dist/engines/weaviate/backup.js +95 -0
- package/dist/engines/weaviate/backup.js.map +1 -0
- package/dist/engines/weaviate/binary-manager.js +58 -0
- package/dist/engines/weaviate/binary-manager.js.map +1 -0
- package/dist/engines/weaviate/binary-urls.js +92 -0
- package/dist/engines/weaviate/binary-urls.js.map +1 -0
- package/dist/engines/weaviate/cli-utils.js +39 -0
- package/dist/engines/weaviate/cli-utils.js.map +1 -0
- package/dist/engines/weaviate/hostdb-releases.js +21 -0
- package/dist/engines/weaviate/hostdb-releases.js.map +1 -0
- package/dist/engines/weaviate/index.js +871 -0
- package/dist/engines/weaviate/index.js.map +1 -0
- package/dist/engines/weaviate/restore.js +185 -0
- package/dist/engines/weaviate/restore.js.map +1 -0
- package/dist/engines/weaviate/version-maps.js +67 -0
- package/dist/engines/weaviate/version-maps.js.map +1 -0
- package/dist/engines/weaviate/version-validator.js +109 -0
- package/dist/engines/weaviate/version-validator.js.map +1 -0
- package/dist/types/index.js +102 -0
- package/dist/types/index.js.map +1 -0
- package/package.json +12 -9
- package/bin/cli.js +0 -68
- package/cli/bin.ts +0 -10
- package/cli/commands/attach.ts +0 -139
- package/cli/commands/backup.ts +0 -290
- package/cli/commands/backups.ts +0 -247
- package/cli/commands/clone.ts +0 -159
- package/cli/commands/config.ts +0 -367
- package/cli/commands/connect.ts +0 -684
- package/cli/commands/create.ts +0 -1201
- package/cli/commands/databases.ts +0 -630
- package/cli/commands/delete.ts +0 -133
- package/cli/commands/deps.ts +0 -342
- package/cli/commands/detach.ts +0 -107
- package/cli/commands/doctor.ts +0 -689
- package/cli/commands/duckdb.ts +0 -273
- package/cli/commands/edit.ts +0 -683
- package/cli/commands/engines.ts +0 -1914
- package/cli/commands/export.ts +0 -544
- package/cli/commands/info.ts +0 -340
- package/cli/commands/list.ts +0 -284
- package/cli/commands/logs.ts +0 -102
- package/cli/commands/menu/backup-handlers.ts +0 -1571
- package/cli/commands/menu/container-handlers.ts +0 -2288
- package/cli/commands/menu/engine-handlers.ts +0 -355
- package/cli/commands/menu/index.ts +0 -342
- package/cli/commands/menu/settings-handlers.ts +0 -365
- package/cli/commands/menu/shared.ts +0 -23
- package/cli/commands/menu/shell-handlers.ts +0 -1811
- package/cli/commands/menu/sql-handlers.ts +0 -231
- package/cli/commands/menu/update-handlers.ts +0 -378
- package/cli/commands/menu/validators.ts +0 -8
- package/cli/commands/ports.ts +0 -211
- package/cli/commands/pull.ts +0 -223
- package/cli/commands/query.ts +0 -241
- package/cli/commands/restore.ts +0 -587
- package/cli/commands/run.ts +0 -178
- package/cli/commands/self-update.ts +0 -121
- package/cli/commands/sqlite.ts +0 -273
- package/cli/commands/start.ts +0 -218
- package/cli/commands/stop.ts +0 -241
- package/cli/commands/url.ts +0 -104
- package/cli/commands/users.ts +0 -264
- package/cli/commands/version.ts +0 -55
- package/cli/commands/which.ts +0 -290
- package/cli/constants.ts +0 -233
- package/cli/helpers.ts +0 -1593
- package/cli/index.ts +0 -162
- package/cli/ui/prompts.ts +0 -1525
- package/cli/ui/spinner.ts +0 -88
- package/cli/ui/theme.ts +0 -128
- package/cli/utils/file-follower.ts +0 -93
- package/config/backup-formats.ts +0 -446
- package/config/defaults.ts +0 -56
- package/config/engine-defaults.ts +0 -336
- package/config/engines-registry.ts +0 -150
- package/config/engines.schema.json +0 -135
- package/config/os-dependencies.ts +0 -888
- package/config/paths.ts +0 -200
- package/core/backup-restore.ts +0 -330
- package/core/base-binary-manager.ts +0 -562
- package/core/base-document-binary-manager.ts +0 -523
- package/core/base-embedded-binary-manager.ts +0 -547
- package/core/base-server-binary-manager.ts +0 -523
- package/core/config-manager.ts +0 -652
- package/core/container-manager.ts +0 -787
- package/core/credential-generator.ts +0 -93
- package/core/credential-manager.ts +0 -259
- package/core/dblab-utils.ts +0 -113
- package/core/dependency-manager.ts +0 -512
- package/core/docker-exporter.ts +0 -1345
- package/core/error-handler.ts +0 -419
- package/core/fs-error-utils.ts +0 -82
- package/core/homebrew-version-manager.ts +0 -352
- package/core/hostdb-client.ts +0 -344
- package/core/hostdb-metadata.ts +0 -350
- package/core/hostdb-releases-factory.ts +0 -237
- package/core/library-env.ts +0 -118
- package/core/pgweb-utils.ts +0 -62
- package/core/platform-service.ts +0 -829
- package/core/port-manager.ts +0 -165
- package/core/process-manager.ts +0 -576
- package/core/pull-manager.ts +0 -511
- package/core/query-parser.ts +0 -514
- package/core/spawn-utils.ts +0 -122
- package/core/start-with-retry.ts +0 -130
- package/core/test-cleanup.ts +0 -108
- package/core/tls-generator.ts +0 -116
- package/core/transaction-manager.ts +0 -158
- package/core/update-manager.ts +0 -308
- package/core/version-migration.ts +0 -346
- package/core/version-utils.ts +0 -104
- package/engines/base-engine.ts +0 -340
- package/engines/clickhouse/README.md +0 -231
- package/engines/clickhouse/backup.ts +0 -398
- package/engines/clickhouse/binary-manager.ts +0 -201
- package/engines/clickhouse/binary-urls.ts +0 -125
- package/engines/clickhouse/cli-utils.ts +0 -176
- package/engines/clickhouse/hostdb-releases.ts +0 -30
- package/engines/clickhouse/index.ts +0 -1345
- package/engines/clickhouse/restore.ts +0 -466
- package/engines/clickhouse/version-maps.ts +0 -95
- package/engines/clickhouse/version-validator.ts +0 -154
- package/engines/cockroachdb/README.md +0 -170
- package/engines/cockroachdb/backup.ts +0 -376
- package/engines/cockroachdb/binary-manager.ts +0 -45
- package/engines/cockroachdb/binary-urls.ts +0 -40
- package/engines/cockroachdb/cli-utils.ts +0 -384
- package/engines/cockroachdb/hostdb-releases.ts +0 -26
- package/engines/cockroachdb/index.ts +0 -1276
- package/engines/cockroachdb/restore.ts +0 -455
- package/engines/cockroachdb/version-maps.ts +0 -42
- package/engines/couchdb/README.md +0 -257
- package/engines/couchdb/api-client.ts +0 -81
- package/engines/couchdb/backup.ts +0 -137
- package/engines/couchdb/binary-manager.ts +0 -86
- package/engines/couchdb/binary-urls.ts +0 -115
- package/engines/couchdb/hostdb-releases.ts +0 -23
- package/engines/couchdb/index.ts +0 -1429
- package/engines/couchdb/restore.ts +0 -290
- package/engines/couchdb/version-maps.ts +0 -78
- package/engines/couchdb/version-validator.ts +0 -111
- package/engines/duckdb/README.md +0 -154
- package/engines/duckdb/binary-manager.ts +0 -45
- package/engines/duckdb/hostdb-releases.ts +0 -23
- package/engines/duckdb/index.ts +0 -749
- package/engines/duckdb/registry.ts +0 -303
- package/engines/duckdb/scanner.ts +0 -22
- package/engines/duckdb/version-maps.ts +0 -78
- package/engines/duckdb/version-validator.ts +0 -78
- package/engines/ferretdb/README.md +0 -262
- package/engines/ferretdb/backup.ts +0 -173
- package/engines/ferretdb/binary-manager.ts +0 -1095
- package/engines/ferretdb/binary-urls.ts +0 -183
- package/engines/ferretdb/index.ts +0 -1907
- package/engines/ferretdb/restore.ts +0 -357
- package/engines/file-based-utils.ts +0 -262
- package/engines/index.ts +0 -131
- package/engines/influxdb/README.md +0 -180
- package/engines/influxdb/api-client.ts +0 -64
- package/engines/influxdb/backup.ts +0 -160
- package/engines/influxdb/binary-manager.ts +0 -110
- package/engines/influxdb/binary-urls.ts +0 -69
- package/engines/influxdb/hostdb-releases.ts +0 -23
- package/engines/influxdb/index.ts +0 -1272
- package/engines/influxdb/restore.ts +0 -417
- package/engines/influxdb/version-maps.ts +0 -75
- package/engines/influxdb/version-validator.ts +0 -128
- package/engines/mariadb/README.md +0 -141
- package/engines/mariadb/backup.ts +0 -233
- package/engines/mariadb/binary-manager.ts +0 -45
- package/engines/mariadb/hostdb-releases.ts +0 -23
- package/engines/mariadb/index.ts +0 -1300
- package/engines/mariadb/restore.ts +0 -447
- package/engines/mariadb/version-maps.ts +0 -72
- package/engines/mariadb/version-validator.ts +0 -181
- package/engines/meilisearch/README.md +0 -255
- package/engines/meilisearch/api-client.ts +0 -61
- package/engines/meilisearch/backup.ts +0 -233
- package/engines/meilisearch/binary-manager.ts +0 -43
- package/engines/meilisearch/binary-urls.ts +0 -69
- package/engines/meilisearch/hostdb-releases.ts +0 -26
- package/engines/meilisearch/index.ts +0 -1292
- package/engines/meilisearch/restore.ts +0 -219
- package/engines/meilisearch/version-maps.ts +0 -78
- package/engines/meilisearch/version-validator.ts +0 -128
- package/engines/mongodb/README.md +0 -162
- package/engines/mongodb/backup.ts +0 -127
- package/engines/mongodb/binary-manager.ts +0 -48
- package/engines/mongodb/binary-urls.ts +0 -63
- package/engines/mongodb/cli-utils.ts +0 -171
- package/engines/mongodb/hostdb-releases.ts +0 -91
- package/engines/mongodb/index.ts +0 -1118
- package/engines/mongodb/restore.ts +0 -361
- package/engines/mongodb/version-maps.ts +0 -91
- package/engines/mongodb/version-validator.ts +0 -160
- package/engines/mysql/README.md +0 -142
- package/engines/mysql/backup.ts +0 -270
- package/engines/mysql/binary-detection.ts +0 -408
- package/engines/mysql/binary-manager.ts +0 -42
- package/engines/mysql/binary-urls.ts +0 -104
- package/engines/mysql/index.ts +0 -1361
- package/engines/mysql/restore.ts +0 -500
- package/engines/mysql/version-maps.ts +0 -91
- package/engines/mysql/version-validator.ts +0 -369
- package/engines/postgresql/README.md +0 -158
- package/engines/postgresql/backup.ts +0 -151
- package/engines/postgresql/binary-manager.ts +0 -114
- package/engines/postgresql/binary-urls.ts +0 -99
- package/engines/postgresql/hostdb-releases.ts +0 -26
- package/engines/postgresql/index.ts +0 -1143
- package/engines/postgresql/remote-version.ts +0 -161
- package/engines/postgresql/restore.ts +0 -342
- package/engines/postgresql/version-maps.ts +0 -83
- package/engines/postgresql/version-validator.ts +0 -413
- package/engines/qdrant/README.md +0 -222
- package/engines/qdrant/api-client.ts +0 -61
- package/engines/qdrant/backup.ts +0 -165
- package/engines/qdrant/binary-manager.ts +0 -43
- package/engines/qdrant/binary-urls.ts +0 -115
- package/engines/qdrant/cli-utils.ts +0 -43
- package/engines/qdrant/hostdb-releases.ts +0 -23
- package/engines/qdrant/index.ts +0 -1312
- package/engines/qdrant/restore.ts +0 -203
- package/engines/qdrant/version-maps.ts +0 -78
- package/engines/qdrant/version-validator.ts +0 -128
- package/engines/questdb/README.md +0 -334
- package/engines/questdb/backup.ts +0 -220
- package/engines/questdb/binary-manager.ts +0 -310
- package/engines/questdb/binary-urls.ts +0 -34
- package/engines/questdb/hostdb-releases.ts +0 -23
- package/engines/questdb/index.ts +0 -1023
- package/engines/questdb/restore.ts +0 -260
- package/engines/questdb/version-maps.ts +0 -37
- package/engines/questdb/version-validator.ts +0 -121
- package/engines/redis/README.md +0 -173
- package/engines/redis/backup.ts +0 -389
- package/engines/redis/binary-manager.ts +0 -44
- package/engines/redis/binary-urls.ts +0 -117
- package/engines/redis/cli-utils.ts +0 -42
- package/engines/redis/hostdb-releases.ts +0 -23
- package/engines/redis/index.ts +0 -1583
- package/engines/redis/restore.ts +0 -443
- package/engines/redis/version-maps.ts +0 -81
- package/engines/redis/version-validator.ts +0 -131
- package/engines/sqlite/README.md +0 -162
- package/engines/sqlite/binary-manager.ts +0 -52
- package/engines/sqlite/hostdb-releases.ts +0 -23
- package/engines/sqlite/index.ts +0 -641
- package/engines/sqlite/registry.ts +0 -198
- package/engines/sqlite/scanner.ts +0 -22
- package/engines/sqlite/version-maps.ts +0 -64
- package/engines/surrealdb/README.md +0 -218
- package/engines/surrealdb/backup.ts +0 -131
- package/engines/surrealdb/binary-manager.ts +0 -45
- package/engines/surrealdb/binary-urls.ts +0 -40
- package/engines/surrealdb/cli-utils.ts +0 -173
- package/engines/surrealdb/hostdb-releases.ts +0 -23
- package/engines/surrealdb/index.ts +0 -1246
- package/engines/surrealdb/restore.ts +0 -302
- package/engines/surrealdb/version-maps.ts +0 -41
- package/engines/tigerbeetle/README.md +0 -61
- package/engines/tigerbeetle/backup.ts +0 -49
- package/engines/tigerbeetle/binary-manager.ts +0 -95
- package/engines/tigerbeetle/binary-urls.ts +0 -62
- package/engines/tigerbeetle/hostdb-releases.ts +0 -26
- package/engines/tigerbeetle/index.ts +0 -746
- package/engines/tigerbeetle/restore.ts +0 -130
- package/engines/tigerbeetle/version-validator.ts +0 -126
- package/engines/typedb/backup.ts +0 -167
- package/engines/typedb/binary-manager.ts +0 -200
- package/engines/typedb/binary-urls.ts +0 -40
- package/engines/typedb/cli-utils.ts +0 -210
- package/engines/typedb/hostdb-releases.ts +0 -23
- package/engines/typedb/index.ts +0 -1275
- package/engines/typedb/restore.ts +0 -377
- package/engines/typedb/version-maps.ts +0 -48
- package/engines/typedb/version-validator.ts +0 -127
- package/engines/valkey/README.md +0 -219
- package/engines/valkey/backup.ts +0 -389
- package/engines/valkey/binary-manager.ts +0 -45
- package/engines/valkey/binary-urls.ts +0 -122
- package/engines/valkey/cli-utils.ts +0 -42
- package/engines/valkey/hostdb-releases.ts +0 -23
- package/engines/valkey/index.ts +0 -1585
- package/engines/valkey/restore.ts +0 -446
- package/engines/valkey/version-maps.ts +0 -81
- package/engines/valkey/version-validator.ts +0 -131
- package/engines/weaviate/README.md +0 -302
- package/engines/weaviate/api-client.ts +0 -61
- package/engines/weaviate/backup.ts +0 -145
- package/engines/weaviate/binary-manager.ts +0 -80
- package/engines/weaviate/binary-urls.ts +0 -115
- package/engines/weaviate/cli-utils.ts +0 -43
- package/engines/weaviate/hostdb-releases.ts +0 -23
- package/engines/weaviate/index.ts +0 -1139
- package/engines/weaviate/restore.ts +0 -235
- package/engines/weaviate/version-maps.ts +0 -78
- package/engines/weaviate/version-validator.ts +0 -128
- package/types/index.ts +0 -624
- /package/{config → dist/config}/engines.json +0 -0
|
@@ -1,161 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Remote PostgreSQL Version Detection
|
|
3
|
-
*
|
|
4
|
-
* Detects the PostgreSQL version of a remote database from a connection string.
|
|
5
|
-
* This is used to ensure we use compatible client tools for dump operations.
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
import { exec } from 'child_process'
|
|
9
|
-
import { promisify } from 'util'
|
|
10
|
-
import { configManager } from '../../core/config-manager'
|
|
11
|
-
import { logDebug } from '../../core/error-handler'
|
|
12
|
-
|
|
13
|
-
const execAsync = promisify(exec)
|
|
14
|
-
|
|
15
|
-
export type RemoteVersionResult = {
|
|
16
|
-
majorVersion: number
|
|
17
|
-
minorVersion: number
|
|
18
|
-
fullVersion: string
|
|
19
|
-
serverType: 'postgresql' | 'aurora' | 'rds' | 'supabase' | 'neon' | 'unknown'
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
/**
|
|
23
|
-
* Detect the PostgreSQL version of a remote database
|
|
24
|
-
*
|
|
25
|
-
* Uses psql to query the server's version information.
|
|
26
|
-
* This works with all PostgreSQL-compatible databases including Aurora, RDS, Supabase, etc.
|
|
27
|
-
*/
|
|
28
|
-
export async function detectRemotePostgresVersion(
|
|
29
|
-
connectionString: string,
|
|
30
|
-
): Promise<RemoteVersionResult> {
|
|
31
|
-
const psqlPath = await configManager.getBinaryPath('psql')
|
|
32
|
-
if (!psqlPath) {
|
|
33
|
-
throw new Error(
|
|
34
|
-
'psql not found - required for remote version detection.\n' +
|
|
35
|
-
'Install PostgreSQL client tools:\n' +
|
|
36
|
-
' macOS: brew install postgresql@17 && brew link --overwrite postgresql@17\n' +
|
|
37
|
-
' Ubuntu/Debian: apt install postgresql-client',
|
|
38
|
-
)
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
// Query remote server version using psql
|
|
42
|
-
// Use multiple settings to get comprehensive version info
|
|
43
|
-
const sql = "SELECT version(), current_setting('server_version')"
|
|
44
|
-
const cmd = `"${psqlPath}" "${connectionString}" -t -A -F "|||" -c "${sql}"`
|
|
45
|
-
|
|
46
|
-
try {
|
|
47
|
-
const { stdout } = await execAsync(cmd, { timeout: 30000 })
|
|
48
|
-
const parts = stdout.trim().split('|||')
|
|
49
|
-
|
|
50
|
-
if (parts.length < 2) {
|
|
51
|
-
throw new Error(`Unexpected version output format: ${stdout}`)
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
const [versionString, serverVersion] = parts
|
|
55
|
-
|
|
56
|
-
// Parse version from server_version (e.g., "16.1", "17.0")
|
|
57
|
-
const match = serverVersion.match(/(\d+)\.(\d+)(?:\.(\d+))?/)
|
|
58
|
-
if (!match) {
|
|
59
|
-
throw new Error(`Could not parse server version: ${serverVersion}`)
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
const majorVersion = parseInt(match[1], 10)
|
|
63
|
-
const minorVersion = parseInt(match[2], 10)
|
|
64
|
-
const fullVersion = match[0]
|
|
65
|
-
|
|
66
|
-
// Detect server type from version() output
|
|
67
|
-
const serverType = detectServerType(versionString)
|
|
68
|
-
|
|
69
|
-
logDebug('Remote PostgreSQL version detected', {
|
|
70
|
-
majorVersion,
|
|
71
|
-
minorVersion,
|
|
72
|
-
fullVersion,
|
|
73
|
-
serverType,
|
|
74
|
-
})
|
|
75
|
-
|
|
76
|
-
return { majorVersion, minorVersion, fullVersion, serverType }
|
|
77
|
-
} catch (error) {
|
|
78
|
-
const e = error as Error & { code?: string; killed?: boolean }
|
|
79
|
-
|
|
80
|
-
// Handle timeout
|
|
81
|
-
if (e.killed) {
|
|
82
|
-
throw new Error(
|
|
83
|
-
'Connection to remote database timed out after 30 seconds',
|
|
84
|
-
)
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
// Handle common connection errors with helpful messages
|
|
88
|
-
if (
|
|
89
|
-
e.message.includes('could not connect') ||
|
|
90
|
-
e.message.includes('Connection refused')
|
|
91
|
-
) {
|
|
92
|
-
throw new Error(
|
|
93
|
-
`Could not connect to remote database. Check your connection string and ensure the database is accessible.\n\nOriginal error: ${e.message}`,
|
|
94
|
-
)
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
if (
|
|
98
|
-
e.message.includes('password authentication failed') ||
|
|
99
|
-
e.message.includes('authentication failed')
|
|
100
|
-
) {
|
|
101
|
-
throw new Error(
|
|
102
|
-
`Authentication failed. Check your username and password in the connection string.\n\nOriginal error: ${e.message}`,
|
|
103
|
-
)
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
if (
|
|
107
|
-
e.message.includes('database') &&
|
|
108
|
-
e.message.includes('does not exist')
|
|
109
|
-
) {
|
|
110
|
-
throw new Error(
|
|
111
|
-
`Database does not exist. Check the database name in your connection string.\n\nOriginal error: ${e.message}`,
|
|
112
|
-
)
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
if (e.message.includes('SSL')) {
|
|
116
|
-
throw new Error(
|
|
117
|
-
`SSL connection error. You may need to add ?sslmode=require or ?sslmode=disable to your connection string.\n\nOriginal error: ${e.message}`,
|
|
118
|
-
)
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
// Re-throw with context
|
|
122
|
-
throw new Error(`Failed to detect remote PostgreSQL version: ${e.message}`)
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
// Detect the type of PostgreSQL server from version() output
|
|
127
|
-
function detectServerType(
|
|
128
|
-
versionString: string,
|
|
129
|
-
): RemoteVersionResult['serverType'] {
|
|
130
|
-
const lower = versionString.toLowerCase()
|
|
131
|
-
|
|
132
|
-
if (lower.includes('aurora')) {
|
|
133
|
-
return 'aurora'
|
|
134
|
-
}
|
|
135
|
-
if (lower.includes('rds') || lower.includes('amazon')) {
|
|
136
|
-
return 'rds'
|
|
137
|
-
}
|
|
138
|
-
if (lower.includes('supabase')) {
|
|
139
|
-
return 'supabase'
|
|
140
|
-
}
|
|
141
|
-
if (lower.includes('neon')) {
|
|
142
|
-
return 'neon'
|
|
143
|
-
}
|
|
144
|
-
if (lower.includes('postgresql')) {
|
|
145
|
-
return 'postgresql'
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
return 'unknown'
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
/**
|
|
152
|
-
* Check if a local pg_dump version is compatible with a remote database version
|
|
153
|
-
*
|
|
154
|
-
* PostgreSQL is forward-compatible: pg_dump version X can dump databases from version <= X
|
|
155
|
-
*/
|
|
156
|
-
export function isVersionCompatible(
|
|
157
|
-
localMajorVersion: number,
|
|
158
|
-
remoteMajorVersion: number,
|
|
159
|
-
): boolean {
|
|
160
|
-
return localMajorVersion >= remoteMajorVersion
|
|
161
|
-
}
|
|
@@ -1,342 +0,0 @@
|
|
|
1
|
-
import { open } from 'fs/promises'
|
|
2
|
-
import { existsSync } from 'fs'
|
|
3
|
-
import { exec } from 'child_process'
|
|
4
|
-
import { promisify } from 'util'
|
|
5
|
-
import { join } from 'path'
|
|
6
|
-
import { configManager } from '../../core/config-manager'
|
|
7
|
-
import { findBinary } from '../../core/dependency-manager'
|
|
8
|
-
import { platformService } from '../../core/platform-service'
|
|
9
|
-
import { paths } from '../../config/paths'
|
|
10
|
-
import { validateRestoreCompatibility } from './version-validator'
|
|
11
|
-
import { normalizeVersion } from './version-maps'
|
|
12
|
-
import { SpinDBError, ErrorCodes } from '../../core/error-handler'
|
|
13
|
-
import type { BackupFormat, RestoreResult } from '../../types'
|
|
14
|
-
|
|
15
|
-
const execAsync = promisify(exec)
|
|
16
|
-
|
|
17
|
-
/**
|
|
18
|
-
* Detect the format of a PostgreSQL backup file
|
|
19
|
-
*
|
|
20
|
-
* Also detects MySQL/MariaDB dumps to provide helpful error messages.
|
|
21
|
-
* Only reads the first 263 bytes needed for format detection.
|
|
22
|
-
*/
|
|
23
|
-
export async function detectBackupFormat(
|
|
24
|
-
filePath: string,
|
|
25
|
-
): Promise<BackupFormat> {
|
|
26
|
-
// Read only the bytes needed for format detection (up to offset 262 for tar magic)
|
|
27
|
-
const HEADER_SIZE = 263
|
|
28
|
-
const buffer = Buffer.alloc(HEADER_SIZE)
|
|
29
|
-
|
|
30
|
-
const fd = await open(filePath, 'r')
|
|
31
|
-
let bytesRead: number
|
|
32
|
-
try {
|
|
33
|
-
const result = await fd.read(buffer, 0, HEADER_SIZE, 0)
|
|
34
|
-
bytesRead = result.bytesRead
|
|
35
|
-
} finally {
|
|
36
|
-
await fd.close()
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
const header = buffer.toString('utf8', 0, Math.min(128, bytesRead))
|
|
40
|
-
|
|
41
|
-
// Check for MySQL/MariaDB dump markers (before PostgreSQL checks)
|
|
42
|
-
if (header.includes('-- MySQL dump') || header.includes('-- MariaDB dump')) {
|
|
43
|
-
return {
|
|
44
|
-
format: 'mysql_sql',
|
|
45
|
-
description: 'MySQL/MariaDB SQL dump (incompatible with PostgreSQL)',
|
|
46
|
-
restoreCommand: 'mysql',
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
// Check for PostgreSQL custom format magic number
|
|
51
|
-
// Custom format starts with "PGDMP"
|
|
52
|
-
if (buffer.toString('ascii', 0, 5) === 'PGDMP') {
|
|
53
|
-
return {
|
|
54
|
-
format: 'custom',
|
|
55
|
-
description: 'PostgreSQL custom format (pg_dump -Fc)',
|
|
56
|
-
restoreCommand: 'pg_restore',
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
// Check for tar format (directory dumps are usually tar)
|
|
61
|
-
// Tar files have "ustar" at offset 257
|
|
62
|
-
if (bytesRead > 262) {
|
|
63
|
-
const tarMagic = buffer.toString('ascii', 257, 262)
|
|
64
|
-
if (tarMagic === 'ustar') {
|
|
65
|
-
return {
|
|
66
|
-
format: 'tar',
|
|
67
|
-
description: 'PostgreSQL tar format (pg_dump -Ft)',
|
|
68
|
-
restoreCommand: 'pg_restore',
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
// Check for gzip compression
|
|
74
|
-
if (buffer[0] === 0x1f && buffer[1] === 0x8b) {
|
|
75
|
-
return {
|
|
76
|
-
format: 'compressed',
|
|
77
|
-
description: 'Gzip compressed (likely SQL or custom format)',
|
|
78
|
-
restoreCommand: 'auto',
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
// Check if it looks like SQL (starts with common SQL statements)
|
|
83
|
-
const textStart = buffer.toString('utf8', 0, 16).toLowerCase()
|
|
84
|
-
if (
|
|
85
|
-
textStart.startsWith('--') ||
|
|
86
|
-
textStart.startsWith('/*') ||
|
|
87
|
-
textStart.startsWith('set ') ||
|
|
88
|
-
textStart.startsWith('create') ||
|
|
89
|
-
textStart.startsWith('drop') ||
|
|
90
|
-
textStart.startsWith('begin') ||
|
|
91
|
-
textStart.startsWith('pg_dump')
|
|
92
|
-
) {
|
|
93
|
-
return {
|
|
94
|
-
format: 'sql',
|
|
95
|
-
description: 'Plain SQL format (pg_dump -Fp)',
|
|
96
|
-
restoreCommand: 'psql',
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
// Default to trying custom format
|
|
101
|
-
return {
|
|
102
|
-
format: 'unknown',
|
|
103
|
-
description: 'Unknown format - will attempt custom format restore',
|
|
104
|
-
restoreCommand: 'pg_restore',
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
// Check if the backup file is from the wrong engine and throw helpful error
|
|
109
|
-
export function assertCompatibleFormat(format: BackupFormat): void {
|
|
110
|
-
if (format.format === 'mysql_sql') {
|
|
111
|
-
throw new SpinDBError(
|
|
112
|
-
ErrorCodes.WRONG_ENGINE_DUMP,
|
|
113
|
-
`This appears to be a MySQL/MariaDB dump file, but you're trying to restore it to PostgreSQL.`,
|
|
114
|
-
'fatal',
|
|
115
|
-
`Create a MySQL container instead:\n spindb create mydb --engine mysql --from <dump-file>`,
|
|
116
|
-
{
|
|
117
|
-
detectedFormat: format.format,
|
|
118
|
-
expectedEngine: 'postgresql',
|
|
119
|
-
detectedEngine: 'mysql',
|
|
120
|
-
},
|
|
121
|
-
)
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
export type RestoreOptions = {
|
|
126
|
-
port: number
|
|
127
|
-
database: string
|
|
128
|
-
user?: string
|
|
129
|
-
format?: string
|
|
130
|
-
pgRestorePath?: string
|
|
131
|
-
containerVersion?: string
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
/**
|
|
135
|
-
* Get psql path for a specific PostgreSQL version.
|
|
136
|
-
*
|
|
137
|
-
* Prioritizes SpinDB-managed binaries that match the container's version,
|
|
138
|
-
* falling back to system psql only if no matching version is found.
|
|
139
|
-
*
|
|
140
|
-
* @param containerVersion - The container's PostgreSQL version (e.g., "18" or "18.1.0")
|
|
141
|
-
* @returns Path to the version-matched psql binary
|
|
142
|
-
*/
|
|
143
|
-
async function getPsqlPath(containerVersion?: string): Promise<string> {
|
|
144
|
-
if (containerVersion) {
|
|
145
|
-
// Normalize to full version (e.g., "18" -> "18.1.0")
|
|
146
|
-
const fullVersion = normalizeVersion(containerVersion)
|
|
147
|
-
|
|
148
|
-
// Get platform info for building the binary path
|
|
149
|
-
const platformInfo = platformService.getPlatformInfo()
|
|
150
|
-
const ext = platformInfo.platform === 'win32' ? '.exe' : ''
|
|
151
|
-
|
|
152
|
-
// Try to find SpinDB-managed psql for the matching version
|
|
153
|
-
const versionedBinPath = paths.getBinaryPath({
|
|
154
|
-
engine: 'postgresql',
|
|
155
|
-
version: fullVersion,
|
|
156
|
-
platform: platformInfo.platform,
|
|
157
|
-
arch: platformInfo.arch,
|
|
158
|
-
})
|
|
159
|
-
|
|
160
|
-
const versionedPsql = join(versionedBinPath, 'bin', `psql${ext}`)
|
|
161
|
-
|
|
162
|
-
if (existsSync(versionedPsql)) {
|
|
163
|
-
return versionedPsql
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
// Try to find any installed version for this major version
|
|
167
|
-
const majorVersion = containerVersion.split('.')[0]
|
|
168
|
-
const installed = paths.findInstalledBinaryForMajor(
|
|
169
|
-
'postgresql',
|
|
170
|
-
majorVersion,
|
|
171
|
-
platformInfo.platform,
|
|
172
|
-
platformInfo.arch,
|
|
173
|
-
)
|
|
174
|
-
|
|
175
|
-
if (installed) {
|
|
176
|
-
const installedPsql = join(installed.path, 'bin', `psql${ext}`)
|
|
177
|
-
if (existsSync(installedPsql)) {
|
|
178
|
-
return installedPsql
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
|
|
183
|
-
// Fall back to globally registered psql (system binary)
|
|
184
|
-
const systemPsql = await configManager.getBinaryPath('psql')
|
|
185
|
-
if (systemPsql) {
|
|
186
|
-
return systemPsql
|
|
187
|
-
}
|
|
188
|
-
|
|
189
|
-
throw new Error(
|
|
190
|
-
'psql not found. Install PostgreSQL client tools:\n' +
|
|
191
|
-
' macOS: brew install libpq && brew link --force libpq\n' +
|
|
192
|
-
' Ubuntu/Debian: apt install postgresql-client\n\n' +
|
|
193
|
-
'Or configure manually: spindb config set psql /path/to/psql',
|
|
194
|
-
)
|
|
195
|
-
}
|
|
196
|
-
|
|
197
|
-
/**
|
|
198
|
-
* Get pg_restore path for a specific PostgreSQL version.
|
|
199
|
-
*
|
|
200
|
-
* Prioritizes SpinDB-managed binaries that match the container's version,
|
|
201
|
-
* falling back to system pg_restore only if no matching version is found.
|
|
202
|
-
*
|
|
203
|
-
* @param containerVersion - The container's PostgreSQL version (e.g., "18" or "18.1.0")
|
|
204
|
-
* @returns Path to the version-matched pg_restore binary
|
|
205
|
-
*/
|
|
206
|
-
async function getPgRestorePath(containerVersion?: string): Promise<string> {
|
|
207
|
-
if (containerVersion) {
|
|
208
|
-
// Normalize to full version (e.g., "18" -> "18.1.0")
|
|
209
|
-
const fullVersion = normalizeVersion(containerVersion)
|
|
210
|
-
|
|
211
|
-
// Get platform info for building the binary path
|
|
212
|
-
const platformInfo = platformService.getPlatformInfo()
|
|
213
|
-
const ext = platformInfo.platform === 'win32' ? '.exe' : ''
|
|
214
|
-
|
|
215
|
-
// Try to find SpinDB-managed pg_restore for the matching version
|
|
216
|
-
const versionedBinPath = paths.getBinaryPath({
|
|
217
|
-
engine: 'postgresql',
|
|
218
|
-
version: fullVersion,
|
|
219
|
-
platform: platformInfo.platform,
|
|
220
|
-
arch: platformInfo.arch,
|
|
221
|
-
})
|
|
222
|
-
|
|
223
|
-
const versionedPgRestore = join(versionedBinPath, 'bin', `pg_restore${ext}`)
|
|
224
|
-
|
|
225
|
-
if (existsSync(versionedPgRestore)) {
|
|
226
|
-
return versionedPgRestore
|
|
227
|
-
}
|
|
228
|
-
|
|
229
|
-
// Try to find any installed version for this major version
|
|
230
|
-
const majorVersion = containerVersion.split('.')[0]
|
|
231
|
-
const installed = paths.findInstalledBinaryForMajor(
|
|
232
|
-
'postgresql',
|
|
233
|
-
majorVersion,
|
|
234
|
-
platformInfo.platform,
|
|
235
|
-
platformInfo.arch,
|
|
236
|
-
)
|
|
237
|
-
|
|
238
|
-
if (installed) {
|
|
239
|
-
const installedPgRestore = join(installed.path, 'bin', `pg_restore${ext}`)
|
|
240
|
-
if (existsSync(installedPgRestore)) {
|
|
241
|
-
return installedPgRestore
|
|
242
|
-
}
|
|
243
|
-
}
|
|
244
|
-
}
|
|
245
|
-
|
|
246
|
-
// Fall back to globally registered pg_restore (system binary)
|
|
247
|
-
const configPath = await configManager.getBinaryPath('pg_restore')
|
|
248
|
-
if (configPath) {
|
|
249
|
-
return configPath
|
|
250
|
-
}
|
|
251
|
-
|
|
252
|
-
// Fall back to finding it on the system PATH
|
|
253
|
-
const result = await findBinary('pg_restore')
|
|
254
|
-
if (!result) {
|
|
255
|
-
throw new Error(
|
|
256
|
-
'pg_restore not found. Download PostgreSQL binaries:\n' +
|
|
257
|
-
' spindb engines download postgresql\n\n' +
|
|
258
|
-
'Or configure manually: spindb config set pg_restore /path/to/pg_restore',
|
|
259
|
-
)
|
|
260
|
-
}
|
|
261
|
-
return result.path
|
|
262
|
-
}
|
|
263
|
-
|
|
264
|
-
// Restore a backup to a PostgreSQL database
|
|
265
|
-
export async function restoreBackup(
|
|
266
|
-
_binPath: string, // Not used - using config manager instead
|
|
267
|
-
backupPath: string,
|
|
268
|
-
options: RestoreOptions,
|
|
269
|
-
): Promise<RestoreResult> {
|
|
270
|
-
const {
|
|
271
|
-
port,
|
|
272
|
-
database,
|
|
273
|
-
user = 'postgres',
|
|
274
|
-
format,
|
|
275
|
-
pgRestorePath,
|
|
276
|
-
containerVersion,
|
|
277
|
-
} = options
|
|
278
|
-
|
|
279
|
-
// Detect format and check for wrong engine
|
|
280
|
-
const detectedBackupFormat = await detectBackupFormat(backupPath)
|
|
281
|
-
assertCompatibleFormat(detectedBackupFormat)
|
|
282
|
-
|
|
283
|
-
const detectedFormat = format || detectedBackupFormat.format
|
|
284
|
-
|
|
285
|
-
// For pg_restore formats, validate version compatibility
|
|
286
|
-
if (detectedFormat !== 'sql') {
|
|
287
|
-
const restorePath =
|
|
288
|
-
pgRestorePath || (await getPgRestorePath(containerVersion))
|
|
289
|
-
|
|
290
|
-
// This will throw SpinDBError if versions are incompatible
|
|
291
|
-
await validateRestoreCompatibility({
|
|
292
|
-
dumpPath: backupPath,
|
|
293
|
-
format: detectedFormat,
|
|
294
|
-
pgRestorePath: restorePath,
|
|
295
|
-
})
|
|
296
|
-
}
|
|
297
|
-
|
|
298
|
-
if (detectedFormat === 'sql') {
|
|
299
|
-
const psqlPath = await getPsqlPath(containerVersion)
|
|
300
|
-
|
|
301
|
-
const result = await execAsync(
|
|
302
|
-
`"${psqlPath}" -h 127.0.0.1 -p ${port} -U ${user} -d ${database} -f "${backupPath}"`,
|
|
303
|
-
{ maxBuffer: 50 * 1024 * 1024 }, // 50MB buffer for large dumps
|
|
304
|
-
)
|
|
305
|
-
|
|
306
|
-
return {
|
|
307
|
-
format: 'sql',
|
|
308
|
-
...result,
|
|
309
|
-
}
|
|
310
|
-
} else {
|
|
311
|
-
// Use custom path if provided, otherwise find version-matched binary
|
|
312
|
-
const restorePath =
|
|
313
|
-
pgRestorePath || (await getPgRestorePath(containerVersion))
|
|
314
|
-
|
|
315
|
-
try {
|
|
316
|
-
const formatFlag =
|
|
317
|
-
detectedFormat === 'custom'
|
|
318
|
-
? '-Fc'
|
|
319
|
-
: detectedFormat === 'tar'
|
|
320
|
-
? '-Ft'
|
|
321
|
-
: ''
|
|
322
|
-
const result = await execAsync(
|
|
323
|
-
`"${restorePath}" -h 127.0.0.1 -p ${port} -U ${user} -d ${database} --no-owner --no-privileges ${formatFlag} "${backupPath}"`,
|
|
324
|
-
{ maxBuffer: 50 * 1024 * 1024 },
|
|
325
|
-
)
|
|
326
|
-
|
|
327
|
-
return {
|
|
328
|
-
format: detectedFormat,
|
|
329
|
-
...result,
|
|
330
|
-
}
|
|
331
|
-
} catch (error) {
|
|
332
|
-
const e = error as Error & { stdout?: string; stderr?: string }
|
|
333
|
-
// pg_restore often returns non-zero even on partial success
|
|
334
|
-
return {
|
|
335
|
-
format: detectedFormat,
|
|
336
|
-
stdout: e.stdout || '',
|
|
337
|
-
stderr: e.stderr || e.message,
|
|
338
|
-
code: 1,
|
|
339
|
-
}
|
|
340
|
-
}
|
|
341
|
-
}
|
|
342
|
-
}
|
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* PostgreSQL Version Maps
|
|
3
|
-
*
|
|
4
|
-
* TEMPORARY: This version map will be replaced by the hostdb npm package once published.
|
|
5
|
-
* Until then, manually keep this in sync with robertjbass/hostdb releases.json:
|
|
6
|
-
* https://github.com/robertjbass/hostdb/blob/main/releases.json
|
|
7
|
-
*
|
|
8
|
-
* When updating versions:
|
|
9
|
-
* 1. Check hostdb releases.json for available versions
|
|
10
|
-
* 2. Update POSTGRESQL_VERSION_MAP to match
|
|
11
|
-
*/
|
|
12
|
-
|
|
13
|
-
/**
|
|
14
|
-
* Map of major PostgreSQL versions to their latest stable patch versions.
|
|
15
|
-
* Must match versions available in hostdb releases.json.
|
|
16
|
-
*/
|
|
17
|
-
export const POSTGRESQL_VERSION_MAP: Record<string, string> = {
|
|
18
|
-
// 1-part: major version → latest patch
|
|
19
|
-
'15': '15.15.0',
|
|
20
|
-
'16': '16.11.0',
|
|
21
|
-
'17': '17.7.0',
|
|
22
|
-
'18': '18.1.0',
|
|
23
|
-
// 2-part: major.minor → latest patch
|
|
24
|
-
'15.15': '15.15.0',
|
|
25
|
-
'16.11': '16.11.0',
|
|
26
|
-
'17.7': '17.7.0',
|
|
27
|
-
'18.1': '18.1.0',
|
|
28
|
-
// 3-part: exact version (identity mapping)
|
|
29
|
-
'15.15.0': '15.15.0',
|
|
30
|
-
'16.11.0': '16.11.0',
|
|
31
|
-
'17.7.0': '17.7.0',
|
|
32
|
-
'18.1.0': '18.1.0',
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
/**
|
|
36
|
-
* Supported major PostgreSQL versions (1-part format).
|
|
37
|
-
* Used for grouping and display purposes.
|
|
38
|
-
*/
|
|
39
|
-
export const SUPPORTED_MAJOR_VERSIONS = ['15', '16', '17', '18']
|
|
40
|
-
|
|
41
|
-
/**
|
|
42
|
-
* Get the full version string for a major version.
|
|
43
|
-
*
|
|
44
|
-
* @param majorVersion - Major version (e.g., '17')
|
|
45
|
-
* @returns Full version string (e.g., '17.7.0') or null if not supported
|
|
46
|
-
*/
|
|
47
|
-
export function getFullVersion(majorVersion: string): string | null {
|
|
48
|
-
return POSTGRESQL_VERSION_MAP[majorVersion] || null
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
/**
|
|
52
|
-
* Normalize a version string to X.Y.Z format.
|
|
53
|
-
*
|
|
54
|
-
* @param version - Version string (e.g., '17', '17.7', '17.7.0')
|
|
55
|
-
* @returns Normalized version (e.g., '17.7.0')
|
|
56
|
-
*/
|
|
57
|
-
export function normalizeVersion(version: string): string {
|
|
58
|
-
// If it's a major version key in the map, return the full version
|
|
59
|
-
const fullVersion = POSTGRESQL_VERSION_MAP[version]
|
|
60
|
-
if (fullVersion) {
|
|
61
|
-
return fullVersion
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
// If it's already a known full version (a value in the map), return as-is
|
|
65
|
-
const knownVersions = Object.values(POSTGRESQL_VERSION_MAP)
|
|
66
|
-
if (knownVersions.includes(version)) {
|
|
67
|
-
return version
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
// If it looks like a full version (X.Y.Z), return as-is but warn
|
|
71
|
-
if (/^\d+\.\d+\.\d+$/.test(version)) {
|
|
72
|
-
console.warn(
|
|
73
|
-
`PostgreSQL version '${version}' not in version map, may not be available in hostdb`,
|
|
74
|
-
)
|
|
75
|
-
return version
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
// Unknown version format - warn and return unchanged
|
|
79
|
-
console.warn(
|
|
80
|
-
`PostgreSQL version '${version}' not in version map, may not be available in hostdb`,
|
|
81
|
-
)
|
|
82
|
-
return version
|
|
83
|
-
}
|