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,198 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* SQLite Registry Manager
|
|
3
|
-
*
|
|
4
|
-
* Unlike PostgreSQL/MySQL which store containers in ~/.spindb/containers/,
|
|
5
|
-
* SQLite databases are stored in user project directories. This registry
|
|
6
|
-
* tracks the file paths of all SQLite databases managed by SpinDB.
|
|
7
|
-
*
|
|
8
|
-
* The registry is now stored in ~/.spindb/config.json under registry.sqlite
|
|
9
|
-
*/
|
|
10
|
-
|
|
11
|
-
import { existsSync } from 'fs'
|
|
12
|
-
import { configManager } from '../../core/config-manager'
|
|
13
|
-
import type { SQLiteEngineRegistry, SQLiteRegistryEntry } from '../../types'
|
|
14
|
-
|
|
15
|
-
/**
|
|
16
|
-
* SQLite Registry Manager
|
|
17
|
-
* Manages the registry that tracks external SQLite database files
|
|
18
|
-
* Data is stored in config.json under registry.sqlite
|
|
19
|
-
*/
|
|
20
|
-
class SQLiteRegistryManager {
|
|
21
|
-
/**
|
|
22
|
-
* Load the registry from config.json
|
|
23
|
-
* Returns an empty registry if none exists
|
|
24
|
-
*/
|
|
25
|
-
async load(): Promise<SQLiteEngineRegistry> {
|
|
26
|
-
return configManager.getSqliteRegistry()
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
// Save the registry to config.json
|
|
30
|
-
async save(registry: SQLiteEngineRegistry): Promise<void> {
|
|
31
|
-
await configManager.saveSqliteRegistry(registry)
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
/**
|
|
35
|
-
* Add a new entry to the registry
|
|
36
|
-
* @throws Error if a container with the same name or file path already exists
|
|
37
|
-
*/
|
|
38
|
-
async add(entry: SQLiteRegistryEntry): Promise<void> {
|
|
39
|
-
const registry = await this.load()
|
|
40
|
-
|
|
41
|
-
// Check for duplicate name
|
|
42
|
-
if (registry.entries.some((e) => e.name === entry.name)) {
|
|
43
|
-
throw new Error(`SQLite container "${entry.name}" already exists`)
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
// Check for duplicate file path
|
|
47
|
-
if (registry.entries.some((e) => e.filePath === entry.filePath)) {
|
|
48
|
-
throw new Error(
|
|
49
|
-
`SQLite container for path "${entry.filePath}" already exists`,
|
|
50
|
-
)
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
registry.entries.push(entry)
|
|
54
|
-
await this.save(registry)
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
/**
|
|
58
|
-
* Get an entry by name
|
|
59
|
-
* Returns null if not found
|
|
60
|
-
*/
|
|
61
|
-
async get(name: string): Promise<SQLiteRegistryEntry | null> {
|
|
62
|
-
const registry = await this.load()
|
|
63
|
-
return registry.entries.find((e) => e.name === name) || null
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
/**
|
|
67
|
-
* Remove an entry by name
|
|
68
|
-
* Returns true if the entry was found and removed, false otherwise
|
|
69
|
-
*/
|
|
70
|
-
async remove(name: string): Promise<boolean> {
|
|
71
|
-
const registry = await this.load()
|
|
72
|
-
const index = registry.entries.findIndex((e) => e.name === name)
|
|
73
|
-
|
|
74
|
-
if (index === -1) {
|
|
75
|
-
return false
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
registry.entries.splice(index, 1)
|
|
79
|
-
await this.save(registry)
|
|
80
|
-
return true
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
/**
|
|
84
|
-
* Update an existing entry
|
|
85
|
-
* Returns true if the entry was found and updated, false otherwise
|
|
86
|
-
*/
|
|
87
|
-
async update(
|
|
88
|
-
name: string,
|
|
89
|
-
updates: Partial<Omit<SQLiteRegistryEntry, 'name'>>,
|
|
90
|
-
): Promise<boolean> {
|
|
91
|
-
const registry = await this.load()
|
|
92
|
-
const entry = registry.entries.find((e) => e.name === name)
|
|
93
|
-
|
|
94
|
-
if (!entry) {
|
|
95
|
-
return false
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
Object.assign(entry, updates)
|
|
99
|
-
await this.save(registry)
|
|
100
|
-
return true
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
// List all entries in the registry
|
|
104
|
-
async list(): Promise<SQLiteRegistryEntry[]> {
|
|
105
|
-
const registry = await this.load()
|
|
106
|
-
return registry.entries
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
// Check if a container with the given name exists
|
|
110
|
-
async exists(name: string): Promise<boolean> {
|
|
111
|
-
const entry = await this.get(name)
|
|
112
|
-
return entry !== null
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
// Find orphaned entries (where the file no longer exists)
|
|
116
|
-
async findOrphans(): Promise<SQLiteRegistryEntry[]> {
|
|
117
|
-
const registry = await this.load()
|
|
118
|
-
return registry.entries.filter((e) => !existsSync(e.filePath))
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
/**
|
|
122
|
-
* Remove all orphaned entries from the registry
|
|
123
|
-
* Returns the number of entries removed
|
|
124
|
-
*/
|
|
125
|
-
async removeOrphans(): Promise<number> {
|
|
126
|
-
const registry = await this.load()
|
|
127
|
-
const originalCount = registry.entries.length
|
|
128
|
-
|
|
129
|
-
registry.entries = registry.entries.filter((e) => existsSync(e.filePath))
|
|
130
|
-
|
|
131
|
-
const removedCount = originalCount - registry.entries.length
|
|
132
|
-
if (removedCount > 0) {
|
|
133
|
-
await this.save(registry)
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
return removedCount
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
// Update the lastVerified timestamp for an entry
|
|
140
|
-
async updateVerified(name: string): Promise<void> {
|
|
141
|
-
await this.update(name, { lastVerified: new Date().toISOString() })
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
// Check if a file path is already registered (by any container)
|
|
145
|
-
async isPathRegistered(filePath: string): Promise<boolean> {
|
|
146
|
-
const registry = await this.load()
|
|
147
|
-
return registry.entries.some((e) => e.filePath === filePath)
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
/**
|
|
151
|
-
* Get the container name for a given file path
|
|
152
|
-
* Returns null if not found
|
|
153
|
-
*/
|
|
154
|
-
async getByPath(filePath: string): Promise<SQLiteRegistryEntry | null> {
|
|
155
|
-
const registry = await this.load()
|
|
156
|
-
return registry.entries.find((e) => e.filePath === filePath) || null
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
// ============================================================
|
|
160
|
-
// Folder Ignore Methods
|
|
161
|
-
// ============================================================
|
|
162
|
-
|
|
163
|
-
// Check if a folder is in the ignore list
|
|
164
|
-
async isFolderIgnored(folderPath: string): Promise<boolean> {
|
|
165
|
-
const registry = await this.load()
|
|
166
|
-
return folderPath in registry.ignoreFolders
|
|
167
|
-
}
|
|
168
|
-
|
|
169
|
-
// Add a folder to the ignore list
|
|
170
|
-
async addIgnoreFolder(folderPath: string): Promise<void> {
|
|
171
|
-
const registry = await this.load()
|
|
172
|
-
registry.ignoreFolders[folderPath] = true
|
|
173
|
-
await this.save(registry)
|
|
174
|
-
}
|
|
175
|
-
|
|
176
|
-
/**
|
|
177
|
-
* Remove a folder from the ignore list
|
|
178
|
-
* Returns true if the folder was in the list and removed, false otherwise
|
|
179
|
-
*/
|
|
180
|
-
async removeIgnoreFolder(folderPath: string): Promise<boolean> {
|
|
181
|
-
const registry = await this.load()
|
|
182
|
-
if (folderPath in registry.ignoreFolders) {
|
|
183
|
-
delete registry.ignoreFolders[folderPath]
|
|
184
|
-
await this.save(registry)
|
|
185
|
-
return true
|
|
186
|
-
}
|
|
187
|
-
return false
|
|
188
|
-
}
|
|
189
|
-
|
|
190
|
-
// List all ignored folders
|
|
191
|
-
async listIgnoredFolders(): Promise<string[]> {
|
|
192
|
-
const registry = await this.load()
|
|
193
|
-
return Object.keys(registry.ignoreFolders)
|
|
194
|
-
}
|
|
195
|
-
}
|
|
196
|
-
|
|
197
|
-
// Export singleton instance
|
|
198
|
-
export const sqliteRegistry = new SQLiteRegistryManager()
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* SQLite Scanner — thin wrapper around shared file-based-utils
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
import { Engine } from '../../types'
|
|
6
|
-
import {
|
|
7
|
-
scanForUnregisteredFiles,
|
|
8
|
-
deriveContainerName as sharedDeriveContainerName,
|
|
9
|
-
type UnregisteredFile,
|
|
10
|
-
} from '../file-based-utils'
|
|
11
|
-
|
|
12
|
-
export type { UnregisteredFile }
|
|
13
|
-
|
|
14
|
-
export async function scanForUnregisteredSqliteFiles(
|
|
15
|
-
directory?: string,
|
|
16
|
-
): Promise<UnregisteredFile[]> {
|
|
17
|
-
return scanForUnregisteredFiles(Engine.SQLite, directory)
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
export function deriveContainerName(fileName: string): string {
|
|
21
|
-
return sharedDeriveContainerName(fileName, Engine.SQLite)
|
|
22
|
-
}
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* SQLite 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 SQLITE_VERSION_MAP to match
|
|
11
|
-
*/
|
|
12
|
-
|
|
13
|
-
import { logDebug } from '../../core/error-handler'
|
|
14
|
-
|
|
15
|
-
/**
|
|
16
|
-
* Map of major SQLite versions to their latest stable patch versions.
|
|
17
|
-
* Must match versions available in hostdb releases.json.
|
|
18
|
-
*/
|
|
19
|
-
export const SQLITE_VERSION_MAP: Record<string, string> = {
|
|
20
|
-
// 1-part: major version → latest
|
|
21
|
-
'3': '3.51.2',
|
|
22
|
-
// 2-part: major.minor → latest patch
|
|
23
|
-
'3.51': '3.51.2',
|
|
24
|
-
// 3-part: exact version (identity mapping)
|
|
25
|
-
'3.51.2': '3.51.2',
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
/**
|
|
29
|
-
* Supported major SQLite versions (1-part format).
|
|
30
|
-
* Used for grouping and display purposes.
|
|
31
|
-
*/
|
|
32
|
-
export const SUPPORTED_MAJOR_VERSIONS = ['3']
|
|
33
|
-
|
|
34
|
-
/**
|
|
35
|
-
* Get the full version string for a major version.
|
|
36
|
-
*
|
|
37
|
-
* @param majorVersion - Major version (e.g., '3')
|
|
38
|
-
* @returns Full version string (e.g., '3.51.2') or null if not supported
|
|
39
|
-
*/
|
|
40
|
-
export function getFullVersion(majorVersion: string): string | null {
|
|
41
|
-
return SQLITE_VERSION_MAP[majorVersion] || null
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
/**
|
|
45
|
-
* Normalize a version string to X.Y.Z format.
|
|
46
|
-
*
|
|
47
|
-
* @param version - Version string (e.g., '3', '3.51', '3.51.2')
|
|
48
|
-
* @returns Normalized version (e.g., '3.51.2')
|
|
49
|
-
*/
|
|
50
|
-
export function normalizeVersion(version: string): string {
|
|
51
|
-
// If it's a version key in the map (major, major.minor, or full), return the mapped version
|
|
52
|
-
// Identity mappings for 3-part versions (e.g., '3.51.2' -> '3.51.2') are already in the map
|
|
53
|
-
const fullVersion = SQLITE_VERSION_MAP[version]
|
|
54
|
-
if (fullVersion) {
|
|
55
|
-
return fullVersion
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
// Unknown version - log at debug level and return as-is
|
|
59
|
-
// This may cause download failures if the version doesn't exist in hostdb
|
|
60
|
-
logDebug(
|
|
61
|
-
`SQLite version '${version}' not in version map, may not be available in hostdb`,
|
|
62
|
-
)
|
|
63
|
-
return version
|
|
64
|
-
}
|
|
@@ -1,218 +0,0 @@
|
|
|
1
|
-
# SurrealDB Engine Implementation
|
|
2
|
-
|
|
3
|
-
## Overview
|
|
4
|
-
|
|
5
|
-
SurrealDB is a multi-model database supporting document, graph, and relational paradigms. It uses SurrealQL (SQL-like with graph traversal) for queries.
|
|
6
|
-
|
|
7
|
-
## Platform Support
|
|
8
|
-
|
|
9
|
-
| Platform | Architecture | Status | Notes |
|
|
10
|
-
|----------|--------------|--------|-------|
|
|
11
|
-
| darwin | x64 | Supported | Uses hostdb binaries |
|
|
12
|
-
| darwin | arm64 | Supported | Uses hostdb binaries (Apple Silicon) |
|
|
13
|
-
| linux | x64 | Supported | Uses hostdb binaries |
|
|
14
|
-
| linux | arm64 | Supported | Uses hostdb binaries |
|
|
15
|
-
| win32 | x64 | Supported | Uses hostdb binaries |
|
|
16
|
-
|
|
17
|
-
## Binary Packaging
|
|
18
|
-
|
|
19
|
-
### Archive Format
|
|
20
|
-
- **Unix (macOS/Linux)**: `tar.gz`
|
|
21
|
-
- **Windows**: `zip`
|
|
22
|
-
|
|
23
|
-
### Archive Structure
|
|
24
|
-
```
|
|
25
|
-
surrealdb/
|
|
26
|
-
└── bin/
|
|
27
|
-
└── surreal # Unified binary
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
### Version Map Sync
|
|
31
|
-
|
|
32
|
-
```typescript
|
|
33
|
-
export const SURREALDB_VERSION_MAP: Record<string, string> = {
|
|
34
|
-
'2': '2.3.2',
|
|
35
|
-
}
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
## Implementation Details
|
|
39
|
-
|
|
40
|
-
### Binary Manager
|
|
41
|
-
|
|
42
|
-
SurrealDB uses `BaseBinaryManager` with standard configuration.
|
|
43
|
-
|
|
44
|
-
### Version Parsing
|
|
45
|
-
|
|
46
|
-
- **Version output format**: `surreal 2.3.2 for linux on x86_64` or just `2.3.2`
|
|
47
|
-
- **Parse pattern**: `/(\d+\.\d+\.\d+)/`
|
|
48
|
-
|
|
49
|
-
### Default Configuration
|
|
50
|
-
|
|
51
|
-
- **Default Port**: 8000 (auto-increments on conflict)
|
|
52
|
-
- **Default Credentials**: `root` / `root`
|
|
53
|
-
- **Storage Backend**: SurrealKV (`surrealkv://path`)
|
|
54
|
-
- **Hierarchy**: Root > Namespace > Database
|
|
55
|
-
- **PID File**: `surrealdb.pid` in container directory
|
|
56
|
-
|
|
57
|
-
### Namespace Derivation
|
|
58
|
-
|
|
59
|
-
Namespace is derived from container name:
|
|
60
|
-
- `my-app` -> namespace `my_app` (dashes replaced with underscores)
|
|
61
|
-
- Default database: `test`
|
|
62
|
-
|
|
63
|
-
### Connection Schemes
|
|
64
|
-
|
|
65
|
-
- **WebSocket**: `ws://127.0.0.1:{port}` (for real-time queries)
|
|
66
|
-
- **HTTP**: `http://127.0.0.1:{port}` (REST API)
|
|
67
|
-
|
|
68
|
-
### Critical: Background Process Stdio
|
|
69
|
-
|
|
70
|
-
Like CockroachDB, **MUST use `stdio: ['ignore', 'ignore', 'ignore']`**:
|
|
71
|
-
|
|
72
|
-
```typescript
|
|
73
|
-
const proc = spawn(surrealBinary, args, {
|
|
74
|
-
stdio: ['ignore', 'ignore', 'ignore'], // NOT 'pipe'
|
|
75
|
-
detached: true,
|
|
76
|
-
cwd: containerDir, // For history file
|
|
77
|
-
windowsHide: true,
|
|
78
|
-
})
|
|
79
|
-
proc.unref()
|
|
80
|
-
```
|
|
81
|
-
|
|
82
|
-
Using `'pipe'` causes hangs in Docker/CI environments.
|
|
83
|
-
|
|
84
|
-
### History File Handling
|
|
85
|
-
|
|
86
|
-
SurrealDB writes `history.txt` to CWD. The engine sets `cwd` to container directory so history is stored in `~/.spindb/containers/surrealdb/<name>/history.txt` rather than polluting user's working directory.
|
|
87
|
-
|
|
88
|
-
### Startup Command
|
|
89
|
-
|
|
90
|
-
```bash
|
|
91
|
-
surreal start \
|
|
92
|
-
--bind 127.0.0.1:{port} \
|
|
93
|
-
--user root \
|
|
94
|
-
--pass root \
|
|
95
|
-
surrealkv://{dataDir}
|
|
96
|
-
```
|
|
97
|
-
|
|
98
|
-
### Health Check
|
|
99
|
-
|
|
100
|
-
```bash
|
|
101
|
-
surreal isready --endpoint http://127.0.0.1:{port}
|
|
102
|
-
```
|
|
103
|
-
|
|
104
|
-
### CLI Shell
|
|
105
|
-
|
|
106
|
-
```bash
|
|
107
|
-
surreal sql --endpoint ws://127.0.0.1:{port}
|
|
108
|
-
```
|
|
109
|
-
|
|
110
|
-
### Scripting Flag
|
|
111
|
-
|
|
112
|
-
Use `--hide-welcome` with `surreal sql` to suppress the welcome banner for scriptable/parseable output. The engine uses this automatically for non-interactive commands.
|
|
113
|
-
|
|
114
|
-
## Backup & Restore
|
|
115
|
-
|
|
116
|
-
### Backup Method
|
|
117
|
-
|
|
118
|
-
Uses SurrealDB's native export/import:
|
|
119
|
-
- `surreal export` - Creates SurrealQL script
|
|
120
|
-
- `surreal import` - Restores from SurrealQL script
|
|
121
|
-
|
|
122
|
-
## Integration Test Notes
|
|
123
|
-
|
|
124
|
-
### Test Fixtures
|
|
125
|
-
|
|
126
|
-
Located in `tests/fixtures/surrealdb/seeds/`:
|
|
127
|
-
- SurrealQL scripts for testing
|
|
128
|
-
|
|
129
|
-
## Docker E2E Test Notes
|
|
130
|
-
|
|
131
|
-
SurrealDB Docker E2E tests verify:
|
|
132
|
-
- Server lifecycle
|
|
133
|
-
- SurrealQL operations
|
|
134
|
-
- Multi-model features (if tested)
|
|
135
|
-
- Export/import
|
|
136
|
-
|
|
137
|
-
## Known Issues & Gotchas
|
|
138
|
-
|
|
139
|
-
### 1. stdio Must Be 'ignore'
|
|
140
|
-
|
|
141
|
-
**Critical**: Same as CockroachDB - using `stdio: 'pipe'` causes hangs. Always use `['ignore', 'ignore', 'ignore']`.
|
|
142
|
-
|
|
143
|
-
### 2. History File Pollution
|
|
144
|
-
|
|
145
|
-
Without setting `cwd`, SurrealDB writes `history.txt` to user's working directory. The engine sets `cwd` to container directory.
|
|
146
|
-
|
|
147
|
-
### 3. Namespace/Database Hierarchy
|
|
148
|
-
|
|
149
|
-
SurrealDB has a three-level hierarchy:
|
|
150
|
-
- Root (authentication level)
|
|
151
|
-
- Namespace (derived from container name)
|
|
152
|
-
- Database (default: `test`)
|
|
153
|
-
|
|
154
|
-
This differs from most other databases.
|
|
155
|
-
|
|
156
|
-
### 4. WebSocket vs HTTP
|
|
157
|
-
|
|
158
|
-
SurrealDB supports both WebSocket (`ws://`) and HTTP (`http://`) connections:
|
|
159
|
-
- WebSocket: For real-time subscriptions
|
|
160
|
-
- HTTP: For REST-style requests
|
|
161
|
-
|
|
162
|
-
### 5. Multi-Model Complexity
|
|
163
|
-
|
|
164
|
-
SurrealDB supports document, graph, and relational models. Queries can combine paradigms, which can be confusing for new users.
|
|
165
|
-
|
|
166
|
-
### 6. --hide-welcome Flag
|
|
167
|
-
|
|
168
|
-
For scripting, always use `--hide-welcome` to suppress the interactive welcome banner.
|
|
169
|
-
|
|
170
|
-
## CI/CD Notes
|
|
171
|
-
|
|
172
|
-
### GitHub Actions Cache Step
|
|
173
|
-
|
|
174
|
-
```yaml
|
|
175
|
-
- name: Cache SurrealDB binaries
|
|
176
|
-
uses: actions/cache@v4
|
|
177
|
-
with:
|
|
178
|
-
path: ~/.spindb/bin/surrealdb-*
|
|
179
|
-
key: surrealdb-${{ runner.os }}-${{ runner.arch }}-${{ hashFiles('engines/surrealdb/version-maps.ts') }}
|
|
180
|
-
```
|
|
181
|
-
|
|
182
|
-
## SurrealQL Quick Reference
|
|
183
|
-
|
|
184
|
-
### Namespace & Database
|
|
185
|
-
```sql
|
|
186
|
-
USE NS my_namespace DB my_database;
|
|
187
|
-
```
|
|
188
|
-
|
|
189
|
-
### Records
|
|
190
|
-
```sql
|
|
191
|
-
-- Create
|
|
192
|
-
CREATE user:john SET name = 'John', age = 30;
|
|
193
|
-
|
|
194
|
-
-- Select
|
|
195
|
-
SELECT * FROM user;
|
|
196
|
-
|
|
197
|
-
-- Update
|
|
198
|
-
UPDATE user:john SET age = 31;
|
|
199
|
-
|
|
200
|
-
-- Delete
|
|
201
|
-
DELETE user:john;
|
|
202
|
-
```
|
|
203
|
-
|
|
204
|
-
### Graph Traversal
|
|
205
|
-
```sql
|
|
206
|
-
-- Create relation
|
|
207
|
-
RELATE user:john->knows->user:jane;
|
|
208
|
-
|
|
209
|
-
-- Traverse
|
|
210
|
-
SELECT ->knows->user FROM user:john;
|
|
211
|
-
```
|
|
212
|
-
|
|
213
|
-
### Schema
|
|
214
|
-
```sql
|
|
215
|
-
DEFINE TABLE user SCHEMAFULL;
|
|
216
|
-
DEFINE FIELD name ON user TYPE string;
|
|
217
|
-
DEFINE FIELD age ON user TYPE int;
|
|
218
|
-
```
|
|
@@ -1,131 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* SurrealDB backup module
|
|
3
|
-
* Supports SurrealQL-based backups using surreal export
|
|
4
|
-
*
|
|
5
|
-
* SurrealDB backup formats:
|
|
6
|
-
* - SurrealQL: Schema + data as SurrealQL statements (portable, human-readable)
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
import { spawn } from 'child_process'
|
|
10
|
-
import { stat, mkdir } from 'fs/promises'
|
|
11
|
-
import { existsSync } from 'fs'
|
|
12
|
-
import { dirname } from 'path'
|
|
13
|
-
import { logDebug } from '../../core/error-handler'
|
|
14
|
-
import { requireSurrealPath } from './cli-utils'
|
|
15
|
-
import type { ContainerConfig, BackupOptions, BackupResult } from '../../types'
|
|
16
|
-
|
|
17
|
-
/**
|
|
18
|
-
* Create a SurrealQL backup using surreal export
|
|
19
|
-
*/
|
|
20
|
-
async function createSurqlBackup(
|
|
21
|
-
container: ContainerConfig,
|
|
22
|
-
outputPath: string,
|
|
23
|
-
database: string,
|
|
24
|
-
): Promise<BackupResult> {
|
|
25
|
-
const { port, version } = container
|
|
26
|
-
// SurrealDB uses namespace/database hierarchy - use container name as namespace
|
|
27
|
-
const namespace = container.name.replace(/-/g, '_')
|
|
28
|
-
|
|
29
|
-
const surrealPath = await requireSurrealPath(version)
|
|
30
|
-
|
|
31
|
-
// Ensure output directory exists
|
|
32
|
-
const outputDir = dirname(outputPath)
|
|
33
|
-
if (!existsSync(outputDir)) {
|
|
34
|
-
await mkdir(outputDir, { recursive: true })
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
return new Promise<BackupResult>((resolve, reject) => {
|
|
38
|
-
// surreal export command
|
|
39
|
-
const args = [
|
|
40
|
-
'export',
|
|
41
|
-
'--endpoint',
|
|
42
|
-
`http://127.0.0.1:${port}`,
|
|
43
|
-
'--user',
|
|
44
|
-
'root',
|
|
45
|
-
'--pass',
|
|
46
|
-
'root',
|
|
47
|
-
'--ns',
|
|
48
|
-
namespace,
|
|
49
|
-
'--db',
|
|
50
|
-
database,
|
|
51
|
-
outputPath,
|
|
52
|
-
]
|
|
53
|
-
|
|
54
|
-
logDebug(`Running: surreal ${args.join(' ')}`)
|
|
55
|
-
|
|
56
|
-
const proc = spawn(surrealPath, args, {
|
|
57
|
-
stdio: ['ignore', 'pipe', 'pipe'],
|
|
58
|
-
})
|
|
59
|
-
|
|
60
|
-
let _stdout = ''
|
|
61
|
-
let stderr = ''
|
|
62
|
-
|
|
63
|
-
proc.stdout.on('data', (data: Buffer) => {
|
|
64
|
-
_stdout += data.toString()
|
|
65
|
-
})
|
|
66
|
-
proc.stderr.on('data', (data: Buffer) => {
|
|
67
|
-
stderr += data.toString()
|
|
68
|
-
})
|
|
69
|
-
|
|
70
|
-
proc.on('error', reject)
|
|
71
|
-
|
|
72
|
-
proc.on('close', async (code) => {
|
|
73
|
-
if (code === 0) {
|
|
74
|
-
try {
|
|
75
|
-
const stats = await stat(outputPath)
|
|
76
|
-
resolve({
|
|
77
|
-
path: outputPath,
|
|
78
|
-
format: 'surql',
|
|
79
|
-
size: stats.size,
|
|
80
|
-
})
|
|
81
|
-
} catch (error) {
|
|
82
|
-
reject(new Error(`Backup file not created: ${error}`))
|
|
83
|
-
}
|
|
84
|
-
} else if (code === null) {
|
|
85
|
-
reject(
|
|
86
|
-
new Error(
|
|
87
|
-
`surreal export was terminated by signal${stderr ? `: ${stderr}` : ''}`,
|
|
88
|
-
),
|
|
89
|
-
)
|
|
90
|
-
} else {
|
|
91
|
-
reject(
|
|
92
|
-
new Error(
|
|
93
|
-
`surreal export exited with code ${code}${stderr ? `: ${stderr}` : ''}`,
|
|
94
|
-
),
|
|
95
|
-
)
|
|
96
|
-
}
|
|
97
|
-
})
|
|
98
|
-
})
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
/**
|
|
102
|
-
* Create a backup
|
|
103
|
-
*
|
|
104
|
-
* @param container - Container configuration
|
|
105
|
-
* @param outputPath - Path to write backup file
|
|
106
|
-
* @param options - Backup options
|
|
107
|
-
*/
|
|
108
|
-
export async function createBackup(
|
|
109
|
-
container: ContainerConfig,
|
|
110
|
-
outputPath: string,
|
|
111
|
-
options: BackupOptions,
|
|
112
|
-
): Promise<BackupResult> {
|
|
113
|
-
const database = options.database || container.database || 'default'
|
|
114
|
-
|
|
115
|
-
return createSurqlBackup(container, outputPath, database)
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
/**
|
|
119
|
-
* Create a backup for cloning purposes
|
|
120
|
-
* Uses SurrealQL format for reliability
|
|
121
|
-
*/
|
|
122
|
-
export async function createCloneBackup(
|
|
123
|
-
container: ContainerConfig,
|
|
124
|
-
outputPath: string,
|
|
125
|
-
): Promise<BackupResult> {
|
|
126
|
-
return createSurqlBackup(
|
|
127
|
-
container,
|
|
128
|
-
outputPath,
|
|
129
|
-
container.database || 'default',
|
|
130
|
-
)
|
|
131
|
-
}
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* SurrealDB Binary Manager
|
|
3
|
-
*
|
|
4
|
-
* Handles downloading, extracting, and managing SurrealDB binaries from hostdb.
|
|
5
|
-
* Extends BaseBinaryManager for shared download/extraction logic.
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
import {
|
|
9
|
-
BaseBinaryManager,
|
|
10
|
-
type BinaryManagerConfig,
|
|
11
|
-
} from '../../core/base-binary-manager'
|
|
12
|
-
import { getBinaryUrl } from './binary-urls'
|
|
13
|
-
import { normalizeVersion } from './version-maps'
|
|
14
|
-
import { Engine, type Platform, type Arch } from '../../types'
|
|
15
|
-
|
|
16
|
-
class SurrealDBBinaryManager extends BaseBinaryManager {
|
|
17
|
-
protected readonly config: BinaryManagerConfig = {
|
|
18
|
-
engine: Engine.SurrealDB,
|
|
19
|
-
engineName: 'surrealdb',
|
|
20
|
-
displayName: 'SurrealDB',
|
|
21
|
-
serverBinary: 'surreal',
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
protected getBinaryUrlFromModule(
|
|
25
|
-
version: string,
|
|
26
|
-
platform: Platform,
|
|
27
|
-
arch: Arch,
|
|
28
|
-
): string {
|
|
29
|
-
return getBinaryUrl(version, platform, arch)
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
protected normalizeVersionFromModule(version: string): string {
|
|
33
|
-
return normalizeVersion(version)
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
protected parseVersionFromOutput(stdout: string): string | null {
|
|
37
|
-
// Extract version from output like:
|
|
38
|
-
// "surreal 2.3.2 for linux on x86_64"
|
|
39
|
-
// or just "2.3.2"
|
|
40
|
-
const match = stdout.match(/(\d+\.\d+\.\d+)/)
|
|
41
|
-
return match?.[1] ?? null
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
export const surrealdbBinaryManager = new SurrealDBBinaryManager()
|