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,255 +0,0 @@
|
|
|
1
|
-
# Meilisearch Engine Implementation
|
|
2
|
-
|
|
3
|
-
## Overview
|
|
4
|
-
|
|
5
|
-
Meilisearch is a fast full-text search engine with a REST API. Like Qdrant, it uses HTTP for all operations instead of a CLI shell.
|
|
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 | Backup/restore has issues (see below) |
|
|
16
|
-
|
|
17
|
-
### Windows Backup/Restore Limitation
|
|
18
|
-
|
|
19
|
-
Windows backup/restore **fails** due to an upstream Meilisearch bug:
|
|
20
|
-
- Snapshot creation fails with page size alignment error
|
|
21
|
-
- This is a Meilisearch issue, not SpinDB
|
|
22
|
-
|
|
23
|
-
Server operations (start, stop, indexing) work correctly on Windows.
|
|
24
|
-
|
|
25
|
-
## Binary Packaging
|
|
26
|
-
|
|
27
|
-
### Archive Format
|
|
28
|
-
- **Unix (macOS/Linux)**: `tar.gz`
|
|
29
|
-
- **Windows**: `zip`
|
|
30
|
-
|
|
31
|
-
### Archive Structure
|
|
32
|
-
```
|
|
33
|
-
meilisearch/
|
|
34
|
-
└── bin/
|
|
35
|
-
└── meilisearch # Server binary
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
### Version Map Sync
|
|
39
|
-
|
|
40
|
-
```typescript
|
|
41
|
-
export const MEILISEARCH_VERSION_MAP: Record<string, string> = {
|
|
42
|
-
'1': '1.33.1',
|
|
43
|
-
}
|
|
44
|
-
```
|
|
45
|
-
|
|
46
|
-
## Implementation Details
|
|
47
|
-
|
|
48
|
-
### Binary Manager
|
|
49
|
-
|
|
50
|
-
Meilisearch uses `BaseBinaryManager` with standard configuration.
|
|
51
|
-
|
|
52
|
-
### Version Parsing
|
|
53
|
-
|
|
54
|
-
- **Version output format**: `meilisearch 1.33.1` or `v1.33.1`
|
|
55
|
-
- **Parse pattern**: `/(?:meilisearch\s+)?v?(\d+\.\d+\.\d+)/`
|
|
56
|
-
|
|
57
|
-
### REST API Engine
|
|
58
|
-
|
|
59
|
-
Meilisearch is a **REST API engine**:
|
|
60
|
-
- `spindb run` is **NOT applicable**
|
|
61
|
-
- `spindb connect` opens the web dashboard in browser
|
|
62
|
-
- All operations use HTTP REST API
|
|
63
|
-
|
|
64
|
-
### Single Port
|
|
65
|
-
|
|
66
|
-
Unlike Qdrant (dual ports), Meilisearch only uses HTTP:
|
|
67
|
-
- **HTTP Port** (default 7700): REST API and dashboard
|
|
68
|
-
|
|
69
|
-
### Default Configuration
|
|
70
|
-
|
|
71
|
-
- **Default Port**: 7700 (auto-increments on conflict)
|
|
72
|
-
- **Health Endpoint**: `/health` (returns `{"status":"available"}`)
|
|
73
|
-
- **Dashboard**: `/` (root path, NOT `/dashboard`)
|
|
74
|
-
- **PID File**: `meilisearch.pid` in container directory
|
|
75
|
-
|
|
76
|
-
### Index Naming
|
|
77
|
-
|
|
78
|
-
Meilisearch uses "indexes" instead of "databases":
|
|
79
|
-
- Index UIDs only allow **alphanumeric characters and underscores**
|
|
80
|
-
- Container names with dashes are auto-converted: `my-app` -> index `my_app`
|
|
81
|
-
|
|
82
|
-
### Connection String Format
|
|
83
|
-
|
|
84
|
-
```
|
|
85
|
-
http://127.0.0.1:{port}
|
|
86
|
-
```
|
|
87
|
-
|
|
88
|
-
### Web Dashboard
|
|
89
|
-
|
|
90
|
-
Meilisearch dashboard is at the root path:
|
|
91
|
-
```
|
|
92
|
-
http://localhost:{port}/
|
|
93
|
-
```
|
|
94
|
-
|
|
95
|
-
(NOT `/dashboard` like Qdrant)
|
|
96
|
-
|
|
97
|
-
## Backup & Restore
|
|
98
|
-
|
|
99
|
-
### Backup Formats
|
|
100
|
-
|
|
101
|
-
| Format | Extension | Tool | Notes |
|
|
102
|
-
|--------|-----------|------|-------|
|
|
103
|
-
| snapshot | `.snapshot` | REST API | Meilisearch native snapshot |
|
|
104
|
-
|
|
105
|
-
### Snapshot Directory Placement - CRITICAL
|
|
106
|
-
|
|
107
|
-
**MUST be a sibling of data directory, NOT inside it.**
|
|
108
|
-
|
|
109
|
-
```
|
|
110
|
-
container/
|
|
111
|
-
├── data/ # Meilisearch data (--db-path)
|
|
112
|
-
└── snapshots/ # Snapshot directory (--snapshot-dir)
|
|
113
|
-
```
|
|
114
|
-
|
|
115
|
-
**NOT:**
|
|
116
|
-
```
|
|
117
|
-
container/
|
|
118
|
-
└── data/
|
|
119
|
-
└── snapshots/ # WRONG - causes "failed to infer version" error
|
|
120
|
-
```
|
|
121
|
-
|
|
122
|
-
If `--snapshot-dir` points inside `--db-path`, Meilisearch fails with:
|
|
123
|
-
> "failed to infer the version of the database"
|
|
124
|
-
|
|
125
|
-
### Windows Backup Failure
|
|
126
|
-
|
|
127
|
-
On Windows, snapshot creation fails with page size alignment errors. This is an upstream Meilisearch bug.
|
|
128
|
-
|
|
129
|
-
## Integration Test Notes
|
|
130
|
-
|
|
131
|
-
### REST API Testing
|
|
132
|
-
|
|
133
|
-
Integration tests use `fetch()` or `curl`.
|
|
134
|
-
|
|
135
|
-
### Test Fixtures
|
|
136
|
-
|
|
137
|
-
Located in `tests/fixtures/meilisearch/seeds/`:
|
|
138
|
-
- `README.md` documenting the API-based approach
|
|
139
|
-
|
|
140
|
-
## Docker E2E Test Notes
|
|
141
|
-
|
|
142
|
-
Meilisearch Docker E2E uses `curl`:
|
|
143
|
-
|
|
144
|
-
```bash
|
|
145
|
-
# Health check
|
|
146
|
-
curl http://localhost:7700/health
|
|
147
|
-
|
|
148
|
-
# Create index
|
|
149
|
-
curl -X POST http://localhost:7700/indexes \
|
|
150
|
-
-H 'Content-Type: application/json' \
|
|
151
|
-
-d '{"uid":"movies","primaryKey":"id"}'
|
|
152
|
-
|
|
153
|
-
# Add documents
|
|
154
|
-
curl -X POST http://localhost:7700/indexes/movies/documents \
|
|
155
|
-
-H 'Content-Type: application/json' \
|
|
156
|
-
-d '[{"id":1,"title":"Batman"}]'
|
|
157
|
-
```
|
|
158
|
-
|
|
159
|
-
### Backup/Restore Skipped in Docker E2E
|
|
160
|
-
|
|
161
|
-
Meilisearch backup/restore tests are skipped in Docker E2E (covered by integration tests).
|
|
162
|
-
|
|
163
|
-
## Known Issues & Gotchas
|
|
164
|
-
|
|
165
|
-
### 1. No CLI Shell
|
|
166
|
-
|
|
167
|
-
`spindb run` does nothing for Meilisearch. Use the REST API or web dashboard.
|
|
168
|
-
|
|
169
|
-
### 2. Dashboard at Root
|
|
170
|
-
|
|
171
|
-
The dashboard is at `/` (root), not `/dashboard`. Different from Qdrant.
|
|
172
|
-
|
|
173
|
-
### 3. Snapshot Directory Location
|
|
174
|
-
|
|
175
|
-
Snapshot directory **must be sibling** of data directory. This is the most common Meilisearch configuration issue.
|
|
176
|
-
|
|
177
|
-
### 4. Index UID Constraints
|
|
178
|
-
|
|
179
|
-
Index UIDs only allow `[a-zA-Z0-9_]`. Dashes cause API errors:
|
|
180
|
-
```
|
|
181
|
-
# Invalid: my-movies
|
|
182
|
-
# Valid: my_movies
|
|
183
|
-
```
|
|
184
|
-
|
|
185
|
-
### 5. Windows Backup Broken
|
|
186
|
-
|
|
187
|
-
Snapshot creation fails on Windows due to page size alignment bug. This is a Meilisearch upstream issue.
|
|
188
|
-
|
|
189
|
-
### 6. Health Endpoint
|
|
190
|
-
|
|
191
|
-
Use `/health` (not `/healthz` like Qdrant) for health checks.
|
|
192
|
-
|
|
193
|
-
## CI/CD Notes
|
|
194
|
-
|
|
195
|
-
### curl-Based Testing
|
|
196
|
-
|
|
197
|
-
CI tests use `curl` commands.
|
|
198
|
-
|
|
199
|
-
### Windows Backup Tests Skipped
|
|
200
|
-
|
|
201
|
-
Backup/restore tests are skipped on Windows due to upstream bug.
|
|
202
|
-
|
|
203
|
-
### GitHub Actions Cache Step
|
|
204
|
-
|
|
205
|
-
```yaml
|
|
206
|
-
- name: Cache Meilisearch binaries
|
|
207
|
-
uses: actions/cache@v4
|
|
208
|
-
with:
|
|
209
|
-
path: ~/.spindb/bin/meilisearch-*
|
|
210
|
-
key: meilisearch-${{ runner.os }}-${{ runner.arch }}-${{ hashFiles('engines/meilisearch/version-maps.ts') }}
|
|
211
|
-
```
|
|
212
|
-
|
|
213
|
-
## REST API Quick Reference
|
|
214
|
-
|
|
215
|
-
### Indexes
|
|
216
|
-
```bash
|
|
217
|
-
# List indexes
|
|
218
|
-
GET /indexes
|
|
219
|
-
|
|
220
|
-
# Create index
|
|
221
|
-
POST /indexes
|
|
222
|
-
{"uid": "movies", "primaryKey": "id"}
|
|
223
|
-
|
|
224
|
-
# Get index
|
|
225
|
-
GET /indexes/{uid}
|
|
226
|
-
|
|
227
|
-
# Delete index
|
|
228
|
-
DELETE /indexes/{uid}
|
|
229
|
-
```
|
|
230
|
-
|
|
231
|
-
### Documents
|
|
232
|
-
```bash
|
|
233
|
-
# Add documents
|
|
234
|
-
POST /indexes/{uid}/documents
|
|
235
|
-
|
|
236
|
-
# Get document
|
|
237
|
-
GET /indexes/{uid}/documents/{id}
|
|
238
|
-
|
|
239
|
-
# Search
|
|
240
|
-
POST /indexes/{uid}/search
|
|
241
|
-
{"q": "search query"}
|
|
242
|
-
```
|
|
243
|
-
|
|
244
|
-
### Snapshots
|
|
245
|
-
```bash
|
|
246
|
-
# Create snapshot
|
|
247
|
-
POST /snapshots
|
|
248
|
-
```
|
|
249
|
-
|
|
250
|
-
### Health
|
|
251
|
-
```bash
|
|
252
|
-
# Health check
|
|
253
|
-
GET /health
|
|
254
|
-
# Returns: {"status": "available"}
|
|
255
|
-
```
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Shared Meilisearch REST API client utilities
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Make an HTTP request to Meilisearch REST API
|
|
7
|
-
*
|
|
8
|
-
* @param port - The HTTP port Meilisearch is listening on
|
|
9
|
-
* @param method - HTTP method (GET, POST, PUT, DELETE)
|
|
10
|
-
* @param path - API path (e.g., '/indexes', '/health')
|
|
11
|
-
* @param body - Optional JSON body for POST/PUT requests
|
|
12
|
-
* @param timeoutMs - Request timeout in milliseconds (default: 30s)
|
|
13
|
-
*/
|
|
14
|
-
export async function meilisearchApiRequest(
|
|
15
|
-
port: number,
|
|
16
|
-
method: string,
|
|
17
|
-
path: string,
|
|
18
|
-
body?: Record<string, unknown>,
|
|
19
|
-
timeoutMs = 30000,
|
|
20
|
-
): Promise<{ status: number; data: unknown }> {
|
|
21
|
-
const url = `http://127.0.0.1:${port}${path}`
|
|
22
|
-
|
|
23
|
-
const controller = new AbortController()
|
|
24
|
-
const timeoutId = setTimeout(() => controller.abort(), timeoutMs)
|
|
25
|
-
|
|
26
|
-
const options: RequestInit = {
|
|
27
|
-
method,
|
|
28
|
-
headers: {
|
|
29
|
-
'Content-Type': 'application/json',
|
|
30
|
-
},
|
|
31
|
-
signal: controller.signal,
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
if (body) {
|
|
35
|
-
options.body = JSON.stringify(body)
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
try {
|
|
39
|
-
const response = await fetch(url, options)
|
|
40
|
-
|
|
41
|
-
// Try to parse as JSON, fall back to text for endpoints like /health
|
|
42
|
-
let data: unknown
|
|
43
|
-
const contentType = response.headers.get('content-type') || ''
|
|
44
|
-
if (contentType.includes('application/json')) {
|
|
45
|
-
data = await response.json()
|
|
46
|
-
} else {
|
|
47
|
-
data = await response.text()
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
return { status: response.status, data }
|
|
51
|
-
} catch (error) {
|
|
52
|
-
if (error instanceof Error && error.name === 'AbortError') {
|
|
53
|
-
throw new Error(
|
|
54
|
-
`Meilisearch API request timed out after ${timeoutMs / 1000}s: ${method} ${path}`,
|
|
55
|
-
)
|
|
56
|
-
}
|
|
57
|
-
throw error
|
|
58
|
-
} finally {
|
|
59
|
-
clearTimeout(timeoutId)
|
|
60
|
-
}
|
|
61
|
-
}
|
|
@@ -1,233 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Meilisearch backup module
|
|
3
|
-
* Supports snapshot-based backup using Meilisearch's REST API
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
import { mkdir, stat, copyFile, readdir } from 'fs/promises'
|
|
7
|
-
import { existsSync } from 'fs'
|
|
8
|
-
import { join, dirname } from 'path'
|
|
9
|
-
import { logDebug } from '../../core/error-handler'
|
|
10
|
-
import { paths } from '../../config/paths'
|
|
11
|
-
import { meilisearchApiRequest } from './api-client'
|
|
12
|
-
import type { ContainerConfig, BackupOptions, BackupResult } from '../../types'
|
|
13
|
-
|
|
14
|
-
// Backup operations may take longer than the default timeout
|
|
15
|
-
const BACKUP_TIMEOUT_MS = 600000 // 10 minutes
|
|
16
|
-
|
|
17
|
-
/**
|
|
18
|
-
* Create a snapshot backup using Meilisearch's REST API
|
|
19
|
-
* This creates a full snapshot of the entire Meilisearch instance
|
|
20
|
-
*/
|
|
21
|
-
export async function createBackup(
|
|
22
|
-
container: ContainerConfig,
|
|
23
|
-
outputPath: string,
|
|
24
|
-
_options: BackupOptions,
|
|
25
|
-
): Promise<BackupResult> {
|
|
26
|
-
const { port, name } = container
|
|
27
|
-
|
|
28
|
-
// Ensure output directory exists
|
|
29
|
-
const outputDir = dirname(outputPath)
|
|
30
|
-
if (!existsSync(outputDir)) {
|
|
31
|
-
await mkdir(outputDir, { recursive: true })
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
// Trigger snapshot creation via REST API
|
|
35
|
-
logDebug(`Creating Meilisearch snapshot via REST API on port ${port}`)
|
|
36
|
-
|
|
37
|
-
const response = await meilisearchApiRequest(
|
|
38
|
-
port,
|
|
39
|
-
'POST',
|
|
40
|
-
'/snapshots',
|
|
41
|
-
undefined,
|
|
42
|
-
BACKUP_TIMEOUT_MS,
|
|
43
|
-
)
|
|
44
|
-
|
|
45
|
-
// Meilisearch returns 202 Accepted for snapshot creation
|
|
46
|
-
if (response.status !== 202 && response.status !== 200) {
|
|
47
|
-
throw new Error(
|
|
48
|
-
`Failed to create Meilisearch snapshot: ${JSON.stringify(response.data)}`,
|
|
49
|
-
)
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
// Meilisearch creates snapshots asynchronously and returns a task
|
|
53
|
-
// We need to wait for the task to complete
|
|
54
|
-
const taskData = response.data as { taskUid?: number }
|
|
55
|
-
const taskUid = taskData?.taskUid
|
|
56
|
-
|
|
57
|
-
if (taskUid !== undefined) {
|
|
58
|
-
logDebug(`Meilisearch snapshot task created: ${taskUid}`)
|
|
59
|
-
// Wait for task to complete
|
|
60
|
-
await waitForTask(port, taskUid, BACKUP_TIMEOUT_MS)
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
// The snapshot is stored in the snapshots folder (sibling of data, not inside it)
|
|
64
|
-
// IMPORTANT: Meilisearch fails if --snapshot-dir is inside --db-path
|
|
65
|
-
const containerDir = paths.getContainerPath(name, { engine: 'meilisearch' })
|
|
66
|
-
const snapshotsDir = join(containerDir, 'snapshots')
|
|
67
|
-
|
|
68
|
-
// Wait for the snapshot file to appear
|
|
69
|
-
const maxWait = 60000 // 60 seconds
|
|
70
|
-
const startTime = Date.now()
|
|
71
|
-
let snapshotPath: string | null = null
|
|
72
|
-
|
|
73
|
-
while (Date.now() - startTime < maxWait) {
|
|
74
|
-
if (existsSync(snapshotsDir)) {
|
|
75
|
-
const files = await readdir(snapshotsDir)
|
|
76
|
-
const snapshotFiles = files.filter((f) => f.endsWith('.snapshot'))
|
|
77
|
-
if (snapshotFiles.length > 0) {
|
|
78
|
-
// Get the most recent snapshot by mtime (not lexicographic sort)
|
|
79
|
-
let newestFile: string | null = null
|
|
80
|
-
let newestMtime = 0
|
|
81
|
-
for (const file of snapshotFiles) {
|
|
82
|
-
const filePath = join(snapshotsDir, file)
|
|
83
|
-
try {
|
|
84
|
-
const fileStat = await stat(filePath)
|
|
85
|
-
if (fileStat.mtimeMs > newestMtime) {
|
|
86
|
-
newestMtime = fileStat.mtimeMs
|
|
87
|
-
newestFile = file
|
|
88
|
-
}
|
|
89
|
-
} catch {
|
|
90
|
-
// Skip files that can't be stat'd (may be deleted during iteration)
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
if (newestFile) {
|
|
94
|
-
snapshotPath = join(snapshotsDir, newestFile)
|
|
95
|
-
break
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
await new Promise((r) => setTimeout(r, 500))
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
if (!snapshotPath || !existsSync(snapshotPath)) {
|
|
103
|
-
throw new Error(
|
|
104
|
-
`Meilisearch snapshot file not found in ${snapshotsDir} after timeout`,
|
|
105
|
-
)
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
// Wait for file to be fully written (size stabilizes)
|
|
109
|
-
let lastSize = -1
|
|
110
|
-
let stabilized = false
|
|
111
|
-
const writeWaitStart = Date.now()
|
|
112
|
-
while (Date.now() - writeWaitStart < 30000) {
|
|
113
|
-
const currentStats = await stat(snapshotPath)
|
|
114
|
-
if (currentStats.size > 0 && currentStats.size === lastSize) {
|
|
115
|
-
stabilized = true
|
|
116
|
-
break
|
|
117
|
-
}
|
|
118
|
-
lastSize = currentStats.size
|
|
119
|
-
await new Promise((r) => setTimeout(r, 500))
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
if (!stabilized) {
|
|
123
|
-
throw new Error(
|
|
124
|
-
`Meilisearch snapshot did not stabilize within 30 seconds. ` +
|
|
125
|
-
`File may still be writing: ${snapshotPath}`,
|
|
126
|
-
)
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
// Copy snapshot to output path
|
|
130
|
-
await copyFile(snapshotPath, outputPath)
|
|
131
|
-
|
|
132
|
-
const stats = await stat(outputPath)
|
|
133
|
-
|
|
134
|
-
return {
|
|
135
|
-
path: outputPath,
|
|
136
|
-
format: 'snapshot',
|
|
137
|
-
size: stats.size,
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
/**
|
|
142
|
-
* Wait for a Meilisearch task to complete
|
|
143
|
-
*/
|
|
144
|
-
async function waitForTask(
|
|
145
|
-
port: number,
|
|
146
|
-
taskUid: number,
|
|
147
|
-
timeoutMs: number,
|
|
148
|
-
): Promise<void> {
|
|
149
|
-
const startTime = Date.now()
|
|
150
|
-
const checkInterval = 500
|
|
151
|
-
|
|
152
|
-
while (Date.now() - startTime < timeoutMs) {
|
|
153
|
-
const response = await meilisearchApiRequest(
|
|
154
|
-
port,
|
|
155
|
-
'GET',
|
|
156
|
-
`/tasks/${taskUid}`,
|
|
157
|
-
)
|
|
158
|
-
|
|
159
|
-
if (response.status === 200) {
|
|
160
|
-
const task = response.data as { status?: string }
|
|
161
|
-
if (task.status === 'succeeded') {
|
|
162
|
-
logDebug(`Meilisearch task ${taskUid} succeeded`)
|
|
163
|
-
return
|
|
164
|
-
}
|
|
165
|
-
if (task.status === 'failed') {
|
|
166
|
-
throw new Error(
|
|
167
|
-
`Meilisearch task ${taskUid} failed: ${JSON.stringify(task)}`,
|
|
168
|
-
)
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
await new Promise((r) => setTimeout(r, checkInterval))
|
|
173
|
-
}
|
|
174
|
-
|
|
175
|
-
throw new Error(`Meilisearch task ${taskUid} did not complete within timeout`)
|
|
176
|
-
}
|
|
177
|
-
|
|
178
|
-
/**
|
|
179
|
-
* Create a backup for cloning purposes
|
|
180
|
-
* Uses snapshot format for reliable data transfer
|
|
181
|
-
*/
|
|
182
|
-
export async function createCloneBackup(
|
|
183
|
-
container: ContainerConfig,
|
|
184
|
-
outputPath: string,
|
|
185
|
-
): Promise<BackupResult> {
|
|
186
|
-
return createBackup(container, outputPath, { database: 'default' })
|
|
187
|
-
}
|
|
188
|
-
|
|
189
|
-
/**
|
|
190
|
-
* List available snapshots for a container
|
|
191
|
-
*/
|
|
192
|
-
export async function listSnapshots(container: ContainerConfig): Promise<
|
|
193
|
-
Array<{
|
|
194
|
-
name: string
|
|
195
|
-
createdAt: string
|
|
196
|
-
size: number
|
|
197
|
-
}>
|
|
198
|
-
> {
|
|
199
|
-
const { name } = container
|
|
200
|
-
// Snapshots directory is sibling of data, not inside it
|
|
201
|
-
const containerDir = paths.getContainerPath(name, { engine: 'meilisearch' })
|
|
202
|
-
const snapshotsDir = join(containerDir, 'snapshots')
|
|
203
|
-
|
|
204
|
-
if (!existsSync(snapshotsDir)) {
|
|
205
|
-
return []
|
|
206
|
-
}
|
|
207
|
-
|
|
208
|
-
const files = await readdir(snapshotsDir)
|
|
209
|
-
const snapshotFiles = files.filter((file) => file.endsWith('.snapshot'))
|
|
210
|
-
|
|
211
|
-
// Stat all snapshot files in parallel for better performance
|
|
212
|
-
// Filter out any files that fail to stat (e.g., deleted during iteration)
|
|
213
|
-
const statsResults = await Promise.all(
|
|
214
|
-
snapshotFiles.map(async (file) => {
|
|
215
|
-
const filePath = join(snapshotsDir, file)
|
|
216
|
-
try {
|
|
217
|
-
const stats = await stat(filePath)
|
|
218
|
-
return {
|
|
219
|
-
name: file,
|
|
220
|
-
createdAt: stats.mtime.toISOString(),
|
|
221
|
-
size: stats.size,
|
|
222
|
-
}
|
|
223
|
-
} catch {
|
|
224
|
-
// File may have been deleted between readdir and stat
|
|
225
|
-
return null
|
|
226
|
-
}
|
|
227
|
-
}),
|
|
228
|
-
)
|
|
229
|
-
|
|
230
|
-
return statsResults.filter(
|
|
231
|
-
(result): result is NonNullable<typeof result> => result !== null,
|
|
232
|
-
)
|
|
233
|
-
}
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Meilisearch Binary Manager
|
|
3
|
-
*
|
|
4
|
-
* Handles downloading, extracting, and managing Meilisearch 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 MeilisearchBinaryManager extends BaseBinaryManager {
|
|
17
|
-
protected readonly config: BinaryManagerConfig = {
|
|
18
|
-
engine: Engine.Meilisearch,
|
|
19
|
-
engineName: 'meilisearch',
|
|
20
|
-
displayName: 'Meilisearch',
|
|
21
|
-
serverBinary: 'meilisearch',
|
|
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 "meilisearch 1.33.1" or "v1.33.1"
|
|
38
|
-
const match = stdout.match(/(?:meilisearch\s+)?v?(\d+\.\d+\.\d+)/)
|
|
39
|
-
return match?.[1] ?? null
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
export const meilisearchBinaryManager = new MeilisearchBinaryManager()
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
import { normalizeVersion } from './version-maps'
|
|
2
|
-
import { buildHostdbUrl } from '../../core/hostdb-client'
|
|
3
|
-
import { Engine, Platform, type Arch } from '../../types'
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Supported platform identifiers for hostdb downloads.
|
|
7
|
-
* hostdb uses standard Node.js platform naming - this set validates
|
|
8
|
-
* that a platform/arch combination is supported, not transforms it.
|
|
9
|
-
*/
|
|
10
|
-
const SUPPORTED_PLATFORMS = new Set([
|
|
11
|
-
'darwin-arm64',
|
|
12
|
-
'darwin-x64',
|
|
13
|
-
'linux-arm64',
|
|
14
|
-
'linux-x64',
|
|
15
|
-
'win32-x64',
|
|
16
|
-
])
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
* Get the hostdb platform identifier
|
|
20
|
-
*
|
|
21
|
-
* hostdb uses standard platform naming that matches Node.js identifiers directly.
|
|
22
|
-
* This function validates the platform/arch combination is supported.
|
|
23
|
-
*
|
|
24
|
-
* @param platform - Node.js platform (e.g., 'darwin', 'linux', 'win32')
|
|
25
|
-
* @param arch - Node.js architecture (e.g., 'arm64', 'x64')
|
|
26
|
-
* @returns hostdb platform identifier or null if unsupported
|
|
27
|
-
*/
|
|
28
|
-
export function getHostdbPlatform(
|
|
29
|
-
platform: Platform,
|
|
30
|
-
arch: Arch,
|
|
31
|
-
): string | null {
|
|
32
|
-
const key = `${platform}-${arch}`
|
|
33
|
-
return SUPPORTED_PLATFORMS.has(key) ? key : null
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
/**
|
|
37
|
-
* Build the download URL for Meilisearch binaries from hostdb
|
|
38
|
-
*
|
|
39
|
-
* Format: https://registry.layerbase.host/meilisearch-{version}/meilisearch-{version}-{platform}-{arch}.{ext}
|
|
40
|
-
*
|
|
41
|
-
* @param version - Meilisearch version (e.g., '1', '1.33.1')
|
|
42
|
-
* @param platform - Platform identifier (e.g., 'darwin', 'linux', 'win32')
|
|
43
|
-
* @param arch - Architecture identifier (e.g., 'arm64', 'x64')
|
|
44
|
-
* @returns Download URL for the binary
|
|
45
|
-
*/
|
|
46
|
-
export function getBinaryUrl(
|
|
47
|
-
version: string,
|
|
48
|
-
platform: Platform,
|
|
49
|
-
arch: Arch,
|
|
50
|
-
): string {
|
|
51
|
-
const platformKey = `${platform}-${arch}`
|
|
52
|
-
const hostdbPlatform = getHostdbPlatform(platform, arch)
|
|
53
|
-
if (!hostdbPlatform) {
|
|
54
|
-
const supported = Array.from(SUPPORTED_PLATFORMS).join(', ')
|
|
55
|
-
throw new Error(
|
|
56
|
-
`Unsupported platform: ${platformKey}. Supported platforms: ${supported}`,
|
|
57
|
-
)
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
// Normalize version (handles major version lookup and X.Y -> X.Y.Z conversion)
|
|
61
|
-
const fullVersion = normalizeVersion(version)
|
|
62
|
-
const ext = platform === Platform.Win32 ? 'zip' : 'tar.gz'
|
|
63
|
-
|
|
64
|
-
return buildHostdbUrl(Engine.Meilisearch, {
|
|
65
|
-
version: fullVersion,
|
|
66
|
-
hostdbPlatform,
|
|
67
|
-
extension: ext,
|
|
68
|
-
})
|
|
69
|
-
}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* hostdb Releases Module for Meilisearch
|
|
3
|
-
*
|
|
4
|
-
* Fetches Meilisearch binary information from the hostdb repository at
|
|
5
|
-
* https://github.com/robertjbass/hostdb
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
import { createHostdbReleases } from '../../core/hostdb-releases-factory'
|
|
9
|
-
import {
|
|
10
|
-
MEILISEARCH_VERSION_MAP,
|
|
11
|
-
SUPPORTED_MAJOR_VERSIONS,
|
|
12
|
-
} from './version-maps'
|
|
13
|
-
import { meilisearchBinaryManager } from './binary-manager'
|
|
14
|
-
import { Engine } from '../../types'
|
|
15
|
-
|
|
16
|
-
const hostdbReleases = createHostdbReleases({
|
|
17
|
-
engine: Engine.Meilisearch,
|
|
18
|
-
displayName: 'Meilisearch',
|
|
19
|
-
versionMap: MEILISEARCH_VERSION_MAP,
|
|
20
|
-
supportedMajorVersions: SUPPORTED_MAJOR_VERSIONS,
|
|
21
|
-
groupingStrategy: 'single-digit',
|
|
22
|
-
listInstalled: () => meilisearchBinaryManager.listInstalled(),
|
|
23
|
-
})
|
|
24
|
-
|
|
25
|
-
export const fetchAvailableVersions = hostdbReleases.fetchAvailableVersions
|
|
26
|
-
export const getLatestVersion = hostdbReleases.getLatestVersion
|