@vibesdotdev/storage 0.0.2 → 1.0.0-rc.4
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/LICENSE +18 -0
- package/README.md +78 -1
- package/dist/adapters/cloud-api/cloud-api.adapter.descriptor.d.ts +10 -0
- package/dist/adapters/cloud-api/cloud-api.adapter.descriptor.d.ts.map +1 -0
- package/dist/adapters/cloud-api/cloud-api.adapter.descriptor.js +40 -0
- package/dist/adapters/cloud-api/cloud-api.adapter.descriptor.js.map +1 -0
- package/dist/adapters/cloud-api/cloud-api.adapter.impl.d.ts +93 -0
- package/dist/adapters/cloud-api/cloud-api.adapter.impl.d.ts.map +1 -0
- package/dist/adapters/cloud-api/cloud-api.adapter.impl.js +448 -0
- package/dist/adapters/cloud-api/cloud-api.adapter.impl.js.map +1 -0
- package/dist/adapters/cloud-api/cloud-api.fetch-client.d.ts +66 -0
- package/dist/adapters/cloud-api/cloud-api.fetch-client.d.ts.map +1 -0
- package/dist/adapters/cloud-api/cloud-api.fetch-client.js +376 -0
- package/dist/adapters/cloud-api/cloud-api.fetch-client.js.map +1 -0
- package/dist/adapters/cloud-api/cloud-api.record.d.ts +85 -0
- package/dist/adapters/cloud-api/cloud-api.record.d.ts.map +1 -0
- package/dist/adapters/cloud-api/cloud-api.record.helpers.d.ts +71 -0
- package/dist/adapters/cloud-api/cloud-api.record.helpers.d.ts.map +1 -0
- package/dist/adapters/cloud-api/cloud-api.record.helpers.js +270 -0
- package/dist/adapters/cloud-api/cloud-api.record.helpers.js.map +1 -0
- package/dist/adapters/cloud-api/cloud-api.record.js +351 -0
- package/dist/adapters/cloud-api/cloud-api.record.js.map +1 -0
- package/dist/adapters/cloud-api/cloud-api.test-utils.d.ts +38 -0
- package/dist/adapters/cloud-api/cloud-api.test-utils.d.ts.map +1 -0
- package/dist/adapters/cloud-api/cloud-api.test-utils.js +147 -0
- package/dist/adapters/cloud-api/cloud-api.test-utils.js.map +1 -0
- package/dist/adapters/cloud-api/index.d.ts +10 -0
- package/dist/adapters/cloud-api/index.d.ts.map +1 -0
- package/dist/adapters/cloud-api/index.js +10 -0
- package/dist/adapters/cloud-api/index.js.map +1 -0
- package/dist/adapters/cloud-api/storage-adapter-cloud-api.plugin.d.ts +9 -0
- package/dist/adapters/cloud-api/storage-adapter-cloud-api.plugin.d.ts.map +1 -0
- package/dist/adapters/cloud-api/storage-adapter-cloud-api.plugin.js +21 -0
- package/dist/adapters/cloud-api/storage-adapter-cloud-api.plugin.js.map +1 -0
- package/dist/adapters/drizzle/batch-type-proof.d.ts +21 -0
- package/dist/adapters/drizzle/batch-type-proof.d.ts.map +1 -0
- package/dist/adapters/drizzle/batch-type-proof.js +2 -0
- package/dist/adapters/drizzle/batch-type-proof.js.map +1 -0
- package/dist/adapters/drizzle/canonical.adapter.descriptor.d.ts +4 -0
- package/dist/adapters/drizzle/canonical.adapter.descriptor.d.ts.map +1 -0
- package/dist/adapters/drizzle/canonical.adapter.descriptor.js +35 -0
- package/dist/adapters/drizzle/canonical.adapter.descriptor.js.map +1 -0
- package/dist/adapters/drizzle/contracts.d.ts +24 -0
- package/dist/adapters/drizzle/contracts.d.ts.map +1 -0
- package/dist/adapters/drizzle/contracts.js +5 -0
- package/dist/adapters/drizzle/contracts.js.map +1 -0
- package/dist/adapters/drizzle/docs/storage.adapters.drizzle.docs.descriptor.d.ts +4 -0
- package/dist/adapters/drizzle/docs/storage.adapters.drizzle.docs.descriptor.d.ts.map +1 -0
- package/dist/adapters/drizzle/docs/storage.adapters.drizzle.docs.descriptor.js +187 -0
- package/dist/adapters/drizzle/docs/storage.adapters.drizzle.docs.descriptor.js.map +1 -0
- package/dist/adapters/drizzle/drizzle-journal.migration-format.impl.d.ts +15 -0
- package/dist/adapters/drizzle/drizzle-journal.migration-format.impl.d.ts.map +1 -0
- package/dist/adapters/drizzle/drizzle-journal.migration-format.impl.js +59 -0
- package/dist/adapters/drizzle/drizzle-journal.migration-format.impl.js.map +1 -0
- package/dist/adapters/drizzle/drizzle-journal.migration-format.plugin.d.ts +5 -0
- package/dist/adapters/drizzle/drizzle-journal.migration-format.plugin.d.ts.map +1 -0
- package/dist/adapters/drizzle/drizzle-journal.migration-format.plugin.js +27 -0
- package/dist/adapters/drizzle/drizzle-journal.migration-format.plugin.js.map +1 -0
- package/dist/adapters/drizzle/drizzle.adapter.descriptor.d.ts +2 -0
- package/dist/adapters/drizzle/drizzle.adapter.descriptor.d.ts.map +1 -0
- package/dist/adapters/drizzle/drizzle.adapter.descriptor.js +3 -0
- package/dist/adapters/drizzle/drizzle.adapter.descriptor.js.map +1 -0
- package/dist/adapters/drizzle/drizzle.adapter.impl.d.ts +37 -0
- package/dist/adapters/drizzle/drizzle.adapter.impl.d.ts.map +1 -0
- package/dist/adapters/drizzle/drizzle.adapter.impl.js +1163 -0
- package/dist/adapters/drizzle/drizzle.adapter.impl.js.map +1 -0
- package/dist/adapters/drizzle/extensions.d.ts +5 -0
- package/dist/adapters/drizzle/extensions.d.ts.map +1 -0
- package/dist/adapters/drizzle/extensions.js +30 -0
- package/dist/adapters/drizzle/extensions.js.map +1 -0
- package/dist/adapters/drizzle/index.d.ts +12 -0
- package/dist/adapters/drizzle/index.d.ts.map +1 -0
- package/dist/adapters/drizzle/index.js +12 -0
- package/dist/adapters/drizzle/index.js.map +1 -0
- package/dist/adapters/drizzle/libsql-migrator.d.ts +23 -0
- package/dist/adapters/drizzle/libsql-migrator.d.ts.map +1 -0
- package/dist/adapters/drizzle/libsql-migrator.js +67 -0
- package/dist/adapters/drizzle/libsql-migrator.js.map +1 -0
- package/dist/adapters/drizzle/libsql.d.ts +15 -0
- package/dist/adapters/drizzle/libsql.d.ts.map +1 -0
- package/dist/adapters/drizzle/libsql.js +19 -0
- package/dist/adapters/drizzle/libsql.js.map +1 -0
- package/dist/adapters/drizzle/migration-files.d.ts +15 -0
- package/dist/adapters/drizzle/migration-files.d.ts.map +1 -0
- package/dist/adapters/drizzle/migration-files.js +54 -0
- package/dist/adapters/drizzle/migration-files.js.map +1 -0
- package/dist/adapters/drizzle/migration-statements.d.ts +7 -0
- package/dist/adapters/drizzle/migration-statements.d.ts.map +1 -0
- package/dist/adapters/drizzle/migration-statements.js +14 -0
- package/dist/adapters/drizzle/migration-statements.js.map +1 -0
- package/dist/adapters/drizzle/persistence-errors.d.ts +33 -0
- package/dist/adapters/drizzle/persistence-errors.d.ts.map +1 -0
- package/dist/adapters/drizzle/persistence-errors.js +75 -0
- package/dist/adapters/drizzle/persistence-errors.js.map +1 -0
- package/dist/adapters/drizzle/persistence-factory.d.ts +100 -0
- package/dist/adapters/drizzle/persistence-factory.d.ts.map +1 -0
- package/dist/adapters/drizzle/persistence-factory.js +391 -0
- package/dist/adapters/drizzle/persistence-factory.js.map +1 -0
- package/dist/adapters/drizzle/persistence.client.d.ts +73 -0
- package/dist/adapters/drizzle/persistence.client.d.ts.map +1 -0
- package/dist/adapters/drizzle/persistence.client.js +238 -0
- package/dist/adapters/drizzle/persistence.client.js.map +1 -0
- package/dist/adapters/drizzle/providers.d.ts +19 -0
- package/dist/adapters/drizzle/providers.d.ts.map +1 -0
- package/dist/adapters/drizzle/providers.js +62 -0
- package/dist/adapters/drizzle/providers.js.map +1 -0
- package/dist/adapters/drizzle/record-ddl.d.ts +13 -0
- package/dist/adapters/drizzle/record-ddl.d.ts.map +1 -0
- package/dist/adapters/drizzle/record-ddl.js +70 -0
- package/dist/adapters/drizzle/record-ddl.js.map +1 -0
- package/dist/adapters/drizzle/record-table.d.ts +59 -0
- package/dist/adapters/drizzle/record-table.d.ts.map +1 -0
- package/dist/adapters/drizzle/record-table.js +87 -0
- package/dist/adapters/drizzle/record-table.js.map +1 -0
- package/dist/adapters/drizzle/schemas/record-migration.d.ts +30 -0
- package/dist/adapters/drizzle/schemas/record-migration.d.ts.map +1 -0
- package/dist/adapters/drizzle/schemas/record-migration.js +12 -0
- package/dist/adapters/drizzle/schemas/record-migration.js.map +1 -0
- package/dist/adapters/drizzle/storage-adapter-drizzle.plugin.d.ts +26 -0
- package/dist/adapters/drizzle/storage-adapter-drizzle.plugin.d.ts.map +1 -0
- package/dist/adapters/drizzle/storage-adapter-drizzle.plugin.js +90 -0
- package/dist/adapters/drizzle/storage-adapter-drizzle.plugin.js.map +1 -0
- package/dist/adapters/drizzle/storage-drizzle-db.context.d.ts +53 -0
- package/dist/adapters/drizzle/storage-drizzle-db.context.d.ts.map +1 -0
- package/dist/adapters/drizzle/storage-drizzle-db.context.js +8 -0
- package/dist/adapters/drizzle/storage-drizzle-db.context.js.map +1 -0
- package/dist/adapters/drizzle/test.d.ts +60 -0
- package/dist/adapters/drizzle/test.d.ts.map +1 -0
- package/dist/adapters/drizzle/test.js +49 -0
- package/dist/adapters/drizzle/test.js.map +1 -0
- package/dist/adapters/drizzle/transforms.d.ts +42 -0
- package/dist/adapters/drizzle/transforms.d.ts.map +1 -0
- package/dist/adapters/drizzle/transforms.js +147 -0
- package/dist/adapters/drizzle/transforms.js.map +1 -0
- package/dist/adapters/filesystem/filesystem.adapter.descriptor.d.ts +13 -0
- package/dist/adapters/filesystem/filesystem.adapter.descriptor.d.ts.map +1 -0
- package/dist/adapters/filesystem/filesystem.adapter.descriptor.js +34 -0
- package/dist/adapters/filesystem/filesystem.adapter.descriptor.js.map +1 -0
- package/dist/adapters/filesystem/filesystem.adapter.impl.d.ts +57 -0
- package/dist/adapters/filesystem/filesystem.adapter.impl.d.ts.map +1 -0
- package/dist/adapters/filesystem/filesystem.adapter.impl.js +257 -0
- package/dist/adapters/filesystem/filesystem.adapter.impl.js.map +1 -0
- package/dist/adapters/filesystem/index.d.ts +10 -0
- package/dist/adapters/filesystem/index.d.ts.map +1 -0
- package/dist/adapters/filesystem/index.js +10 -0
- package/dist/adapters/filesystem/index.js.map +1 -0
- package/dist/adapters/filesystem/storage-adapter-filesystem.plugin.d.ts +11 -0
- package/dist/adapters/filesystem/storage-adapter-filesystem.plugin.d.ts.map +1 -0
- package/dist/adapters/filesystem/storage-adapter-filesystem.plugin.js +25 -0
- package/dist/adapters/filesystem/storage-adapter-filesystem.plugin.js.map +1 -0
- package/dist/adapters/fixture/fixture.adapter.descriptor.d.ts +14 -0
- package/dist/adapters/fixture/fixture.adapter.descriptor.d.ts.map +1 -0
- package/dist/adapters/fixture/fixture.adapter.descriptor.js +35 -0
- package/dist/adapters/fixture/fixture.adapter.descriptor.js.map +1 -0
- package/dist/adapters/fixture/fixture.adapter.impl.d.ts +41 -0
- package/dist/adapters/fixture/fixture.adapter.impl.d.ts.map +1 -0
- package/dist/adapters/fixture/fixture.adapter.impl.js +162 -0
- package/dist/adapters/fixture/fixture.adapter.impl.js.map +1 -0
- package/dist/adapters/fixture/index.d.ts +9 -0
- package/dist/adapters/fixture/index.d.ts.map +1 -0
- package/dist/adapters/fixture/index.js +9 -0
- package/dist/adapters/fixture/index.js.map +1 -0
- package/dist/adapters/fixture/storage-adapter-fixture.plugin.d.ts +10 -0
- package/dist/adapters/fixture/storage-adapter-fixture.plugin.d.ts.map +1 -0
- package/dist/adapters/fixture/storage-adapter-fixture.plugin.js +21 -0
- package/dist/adapters/fixture/storage-adapter-fixture.plugin.js.map +1 -0
- package/dist/adapters/idb/idb-backend.d.ts +33 -0
- package/dist/adapters/idb/idb-backend.d.ts.map +1 -0
- package/dist/adapters/idb/idb-backend.js +217 -0
- package/dist/adapters/idb/idb-backend.js.map +1 -0
- package/dist/adapters/idb/idb.adapter.descriptor.d.ts +14 -0
- package/dist/adapters/idb/idb.adapter.descriptor.d.ts.map +1 -0
- package/dist/adapters/idb/idb.adapter.descriptor.js +35 -0
- package/dist/adapters/idb/idb.adapter.descriptor.js.map +1 -0
- package/dist/adapters/idb/idb.adapter.impl.d.ts +56 -0
- package/dist/adapters/idb/idb.adapter.impl.d.ts.map +1 -0
- package/dist/adapters/idb/idb.adapter.impl.js +227 -0
- package/dist/adapters/idb/idb.adapter.impl.js.map +1 -0
- package/dist/adapters/idb/index.d.ts +10 -0
- package/dist/adapters/idb/index.d.ts.map +1 -0
- package/dist/adapters/idb/index.js +10 -0
- package/dist/adapters/idb/index.js.map +1 -0
- package/dist/adapters/idb/storage-adapter-idb.plugin.d.ts +11 -0
- package/dist/adapters/idb/storage-adapter-idb.plugin.d.ts.map +1 -0
- package/dist/adapters/idb/storage-adapter-idb.plugin.js +22 -0
- package/dist/adapters/idb/storage-adapter-idb.plugin.js.map +1 -0
- package/dist/adapters/json/filesystem-binding.d.ts +14 -0
- package/dist/adapters/json/filesystem-binding.d.ts.map +1 -0
- package/dist/adapters/json/filesystem-binding.js +7 -0
- package/dist/adapters/json/filesystem-binding.js.map +1 -0
- package/dist/adapters/json/index.d.ts +10 -0
- package/dist/adapters/json/index.d.ts.map +1 -0
- package/dist/adapters/json/index.js +10 -0
- package/dist/adapters/json/index.js.map +1 -0
- package/dist/adapters/json/json.adapter.descriptor.d.ts +10 -0
- package/dist/adapters/json/json.adapter.descriptor.d.ts.map +1 -0
- package/dist/adapters/json/json.adapter.descriptor.js +38 -0
- package/dist/adapters/json/json.adapter.descriptor.js.map +1 -0
- package/dist/adapters/json/json.adapter.impl.d.ts +59 -0
- package/dist/adapters/json/json.adapter.impl.d.ts.map +1 -0
- package/dist/adapters/json/json.adapter.impl.js +395 -0
- package/dist/adapters/json/json.adapter.impl.js.map +1 -0
- package/dist/adapters/json/storage-adapter-json.plugin.d.ts +9 -0
- package/dist/adapters/json/storage-adapter-json.plugin.d.ts.map +1 -0
- package/dist/adapters/json/storage-adapter-json.plugin.js +21 -0
- package/dist/adapters/json/storage-adapter-json.plugin.js.map +1 -0
- package/dist/adapters/localdb/index.d.ts +9 -0
- package/dist/adapters/localdb/index.d.ts.map +1 -0
- package/dist/adapters/localdb/index.js +9 -0
- package/dist/adapters/localdb/index.js.map +1 -0
- package/dist/adapters/localdb/localdb.adapter.descriptor.d.ts +10 -0
- package/dist/adapters/localdb/localdb.adapter.descriptor.d.ts.map +1 -0
- package/dist/adapters/localdb/localdb.adapter.descriptor.js +37 -0
- package/dist/adapters/localdb/localdb.adapter.descriptor.js.map +1 -0
- package/dist/adapters/localdb/localdb.adapter.impl.d.ts +237 -0
- package/dist/adapters/localdb/localdb.adapter.impl.d.ts.map +1 -0
- package/dist/adapters/localdb/localdb.adapter.impl.js +1370 -0
- package/dist/adapters/localdb/localdb.adapter.impl.js.map +1 -0
- package/dist/adapters/localdb/localdb.adapter.loader.consumer.d.ts +2 -0
- package/dist/adapters/localdb/localdb.adapter.loader.consumer.d.ts.map +1 -0
- package/dist/adapters/localdb/localdb.adapter.loader.consumer.js +2 -0
- package/dist/adapters/localdb/localdb.adapter.loader.consumer.js.map +1 -0
- package/dist/adapters/localdb/localdb.inputs.d.ts +3 -0
- package/dist/adapters/localdb/localdb.inputs.d.ts.map +1 -0
- package/dist/adapters/localdb/localdb.inputs.js +3 -0
- package/dist/adapters/localdb/localdb.inputs.js.map +1 -0
- package/dist/adapters/localdb/migration-failure.d.ts +3 -0
- package/dist/adapters/localdb/migration-failure.d.ts.map +1 -0
- package/dist/adapters/localdb/migration-failure.js +16 -0
- package/dist/adapters/localdb/migration-failure.js.map +1 -0
- package/dist/adapters/localdb/outcome.d.ts +13 -0
- package/dist/adapters/localdb/outcome.d.ts.map +1 -0
- package/dist/adapters/localdb/outcome.js +12 -0
- package/dist/adapters/localdb/outcome.js.map +1 -0
- package/dist/adapters/localdb/repository-query.d.ts +19 -0
- package/dist/adapters/localdb/repository-query.d.ts.map +1 -0
- package/dist/adapters/localdb/repository-query.js +127 -0
- package/dist/adapters/localdb/repository-query.js.map +1 -0
- package/dist/adapters/localdb/storage-adapter-localdb.plugin.d.ts +14 -0
- package/dist/adapters/localdb/storage-adapter-localdb.plugin.d.ts.map +1 -0
- package/dist/adapters/localdb/storage-adapter-localdb.plugin.js +30 -0
- package/dist/adapters/localdb/storage-adapter-localdb.plugin.js.map +1 -0
- package/dist/adapters/memory/index.d.ts +9 -0
- package/dist/adapters/memory/index.d.ts.map +1 -0
- package/dist/adapters/memory/index.js +9 -0
- package/dist/adapters/memory/index.js.map +1 -0
- package/dist/adapters/memory/memory-root-store.d.ts +20 -0
- package/dist/adapters/memory/memory-root-store.d.ts.map +1 -0
- package/dist/adapters/memory/memory-root-store.js +49 -0
- package/dist/adapters/memory/memory-root-store.js.map +1 -0
- package/dist/adapters/memory/memory.adapter.impl.d.ts +61 -0
- package/dist/adapters/memory/memory.adapter.impl.d.ts.map +1 -0
- package/dist/adapters/memory/memory.adapter.impl.js +718 -0
- package/dist/adapters/memory/memory.adapter.impl.js.map +1 -0
- package/dist/adapters/memory/memory.adapter.storage-adapter-memory.descriptor.d.ts +10 -0
- package/dist/adapters/memory/memory.adapter.storage-adapter-memory.descriptor.d.ts.map +1 -0
- package/dist/adapters/memory/memory.adapter.storage-adapter-memory.descriptor.js +37 -0
- package/dist/adapters/memory/memory.adapter.storage-adapter-memory.descriptor.js.map +1 -0
- package/dist/adapters/memory/storage-adapter-memory.plugin.d.ts +9 -0
- package/dist/adapters/memory/storage-adapter-memory.plugin.d.ts.map +1 -0
- package/dist/adapters/memory/storage-adapter-memory.plugin.js +44 -0
- package/dist/adapters/memory/storage-adapter-memory.plugin.js.map +1 -0
- package/dist/adapters/parse-adapter-input.d.ts +22 -0
- package/dist/adapters/parse-adapter-input.d.ts.map +1 -0
- package/dist/adapters/parse-adapter-input.js +36 -0
- package/dist/adapters/parse-adapter-input.js.map +1 -0
- package/dist/adapters/select-adapter.d.ts +36 -0
- package/dist/adapters/select-adapter.d.ts.map +1 -0
- package/dist/adapters/select-adapter.js +88 -0
- package/dist/adapters/select-adapter.js.map +1 -0
- package/dist/adapters/validate-for-persist.d.ts +21 -0
- package/dist/adapters/validate-for-persist.d.ts.map +1 -0
- package/dist/adapters/validate-for-persist.js +36 -0
- package/dist/adapters/validate-for-persist.js.map +1 -0
- package/dist/backup/backup.plugin.d.ts +276 -0
- package/dist/backup/backup.plugin.d.ts.map +1 -0
- package/dist/backup/backup.plugin.js +72 -0
- package/dist/backup/backup.plugin.js.map +1 -0
- package/dist/backup/channels/backup.channel.d.ts +21 -0
- package/dist/backup/channels/backup.channel.d.ts.map +1 -0
- package/dist/backup/channels/backup.channel.js +89 -0
- package/dist/backup/channels/backup.channel.js.map +1 -0
- package/dist/backup/config/storage.backup.config.descriptor.d.ts +57 -0
- package/dist/backup/config/storage.backup.config.descriptor.d.ts.map +1 -0
- package/dist/backup/config/storage.backup.config.descriptor.js +53 -0
- package/dist/backup/config/storage.backup.config.descriptor.js.map +1 -0
- package/dist/backup/core/hash.d.ts +8 -0
- package/dist/backup/core/hash.d.ts.map +1 -0
- package/dist/backup/core/hash.js +10 -0
- package/dist/backup/core/hash.js.map +1 -0
- package/dist/backup/core/homes.d.ts +13 -0
- package/dist/backup/core/homes.d.ts.map +1 -0
- package/dist/backup/core/homes.js +54 -0
- package/dist/backup/core/homes.js.map +1 -0
- package/dist/backup/core/index.d.ts +17 -0
- package/dist/backup/core/index.d.ts.map +1 -0
- package/dist/backup/core/index.js +12 -0
- package/dist/backup/core/index.js.map +1 -0
- package/dist/backup/core/io.d.ts +76 -0
- package/dist/backup/core/io.d.ts.map +1 -0
- package/dist/backup/core/io.js +177 -0
- package/dist/backup/core/io.js.map +1 -0
- package/dist/backup/core/paths.d.ts +50 -0
- package/dist/backup/core/paths.d.ts.map +1 -0
- package/dist/backup/core/paths.js +75 -0
- package/dist/backup/core/paths.js.map +1 -0
- package/dist/backup/core/readiness.d.ts +9 -0
- package/dist/backup/core/readiness.d.ts.map +1 -0
- package/dist/backup/core/readiness.js +104 -0
- package/dist/backup/core/readiness.js.map +1 -0
- package/dist/backup/core/recovery.d.ts +11 -0
- package/dist/backup/core/recovery.d.ts.map +1 -0
- package/dist/backup/core/recovery.js +75 -0
- package/dist/backup/core/recovery.js.map +1 -0
- package/dist/backup/core/registry.d.ts +13 -0
- package/dist/backup/core/registry.d.ts.map +1 -0
- package/dist/backup/core/registry.js +18 -0
- package/dist/backup/core/registry.js.map +1 -0
- package/dist/backup/core/restore.d.ts +36 -0
- package/dist/backup/core/restore.d.ts.map +1 -0
- package/dist/backup/core/restore.js +280 -0
- package/dist/backup/core/restore.js.map +1 -0
- package/dist/backup/core/rotate.d.ts +19 -0
- package/dist/backup/core/rotate.d.ts.map +1 -0
- package/dist/backup/core/rotate.js +153 -0
- package/dist/backup/core/rotate.js.map +1 -0
- package/dist/backup/core/rotation.d.ts +19 -0
- package/dist/backup/core/rotation.d.ts.map +1 -0
- package/dist/backup/core/rotation.js +100 -0
- package/dist/backup/core/rotation.js.map +1 -0
- package/dist/backup/core/snapshot.d.ts +45 -0
- package/dist/backup/core/snapshot.d.ts.map +1 -0
- package/dist/backup/core/snapshot.js +217 -0
- package/dist/backup/core/snapshot.js.map +1 -0
- package/dist/backup/docs/backup.disaster-recovery.docs.descriptor.d.ts +19 -0
- package/dist/backup/docs/backup.disaster-recovery.docs.descriptor.d.ts.map +1 -0
- package/dist/backup/docs/backup.disaster-recovery.docs.descriptor.js +42 -0
- package/dist/backup/docs/backup.disaster-recovery.docs.descriptor.js.map +1 -0
- package/dist/backup/index.d.ts +19 -0
- package/dist/backup/index.d.ts.map +1 -0
- package/dist/backup/index.js +16 -0
- package/dist/backup/index.js.map +1 -0
- package/dist/backup/jobs/backup.snapshot.descriptor.d.ts +95 -0
- package/dist/backup/jobs/backup.snapshot.descriptor.d.ts.map +1 -0
- package/dist/backup/jobs/backup.snapshot.descriptor.js +33 -0
- package/dist/backup/jobs/backup.snapshot.descriptor.js.map +1 -0
- package/dist/backup/jobs/backup.snapshot.impl.d.ts +59 -0
- package/dist/backup/jobs/backup.snapshot.impl.d.ts.map +1 -0
- package/dist/backup/jobs/backup.snapshot.impl.js +393 -0
- package/dist/backup/jobs/backup.snapshot.impl.js.map +1 -0
- package/dist/backup/jobs/backup.snapshot.schema.d.ts +3 -0
- package/dist/backup/jobs/backup.snapshot.schema.d.ts.map +1 -0
- package/dist/backup/jobs/backup.snapshot.schema.js +3 -0
- package/dist/backup/jobs/backup.snapshot.schema.js.map +1 -0
- package/dist/backup/kinds/backup-preflight.kind.d.ts +16 -0
- package/dist/backup/kinds/backup-preflight.kind.d.ts.map +1 -0
- package/dist/backup/kinds/backup-preflight.kind.js +27 -0
- package/dist/backup/kinds/backup-preflight.kind.js.map +1 -0
- package/dist/backup/kinds/backup-recovery-plan.kind.d.ts +11 -0
- package/dist/backup/kinds/backup-recovery-plan.kind.d.ts.map +1 -0
- package/dist/backup/kinds/backup-recovery-plan.kind.js +16 -0
- package/dist/backup/kinds/backup-recovery-plan.kind.js.map +1 -0
- package/dist/backup/kinds/backup-target.kind.d.ts +16 -0
- package/dist/backup/kinds/backup-target.kind.d.ts.map +1 -0
- package/dist/backup/kinds/backup-target.kind.js +21 -0
- package/dist/backup/kinds/backup-target.kind.js.map +1 -0
- package/dist/backup/schemas/core.d.ts +169 -0
- package/dist/backup/schemas/core.d.ts.map +1 -0
- package/dist/backup/schemas/core.js +117 -0
- package/dist/backup/schemas/core.js.map +1 -0
- package/dist/backup/schemas/disaster-recovery.d.ts +512 -0
- package/dist/backup/schemas/disaster-recovery.d.ts.map +1 -0
- package/dist/backup/schemas/disaster-recovery.js +410 -0
- package/dist/backup/schemas/disaster-recovery.js.map +1 -0
- package/dist/backup/schemas/index.d.ts +10 -0
- package/dist/backup/schemas/index.d.ts.map +1 -0
- package/dist/backup/schemas/index.js +10 -0
- package/dist/backup/schemas/index.js.map +1 -0
- package/dist/backup/schemas/job.d.ts +102 -0
- package/dist/backup/schemas/job.d.ts.map +1 -0
- package/dist/backup/schemas/job.js +47 -0
- package/dist/backup/schemas/job.js.map +1 -0
- package/dist/backup/schemas/preflight.d.ts +38 -0
- package/dist/backup/schemas/preflight.d.ts.map +1 -0
- package/dist/backup/schemas/preflight.js +21 -0
- package/dist/backup/schemas/preflight.js.map +1 -0
- package/dist/backup/schemas/snapshot.d.ts +110 -0
- package/dist/backup/schemas/snapshot.d.ts.map +1 -0
- package/dist/backup/schemas/snapshot.js +84 -0
- package/dist/backup/schemas/snapshot.js.map +1 -0
- package/dist/backup/schemas/target.d.ts +95 -0
- package/dist/backup/schemas/target.d.ts.map +1 -0
- package/dist/backup/schemas/target.js +105 -0
- package/dist/backup/schemas/target.js.map +1 -0
- package/dist/backup/storage/snapshot.record.descriptor.d.ts +10 -0
- package/dist/backup/storage/snapshot.record.descriptor.d.ts.map +1 -0
- package/dist/backup/storage/snapshot.record.descriptor.js +41 -0
- package/dist/backup/storage/snapshot.record.descriptor.js.map +1 -0
- package/dist/backup/targets/awareness-bus.target.descriptor.d.ts +10 -0
- package/dist/backup/targets/awareness-bus.target.descriptor.d.ts.map +1 -0
- package/dist/backup/targets/awareness-bus.target.descriptor.js +32 -0
- package/dist/backup/targets/awareness-bus.target.descriptor.js.map +1 -0
- package/dist/backup/targets/presence-identity.target.descriptor.d.ts +10 -0
- package/dist/backup/targets/presence-identity.target.descriptor.d.ts.map +1 -0
- package/dist/backup/targets/presence-identity.target.descriptor.js +40 -0
- package/dist/backup/targets/presence-identity.target.descriptor.js.map +1 -0
- package/dist/backup/targets/presence-inner.target.descriptor.d.ts +10 -0
- package/dist/backup/targets/presence-inner.target.descriptor.d.ts.map +1 -0
- package/dist/backup/targets/presence-inner.target.descriptor.js +36 -0
- package/dist/backup/targets/presence-inner.target.descriptor.js.map +1 -0
- package/dist/backup/targets/storage-records.target.descriptor.d.ts +16 -0
- package/dist/backup/targets/storage-records.target.descriptor.d.ts.map +1 -0
- package/dist/backup/targets/storage-records.target.descriptor.js +38 -0
- package/dist/backup/targets/storage-records.target.descriptor.js.map +1 -0
- package/dist/bridge/index.d.ts +2 -2
- package/dist/bridge/index.d.ts.map +1 -1
- package/dist/bridge/index.js +1 -1
- package/dist/bridge/index.js.map +1 -1
- package/dist/bridge/storage-kind-bridge.d.ts +13 -2
- package/dist/bridge/storage-kind-bridge.d.ts.map +1 -1
- package/dist/bridge/storage-kind-bridge.js +72 -69
- package/dist/bridge/storage-kind-bridge.js.map +1 -1
- package/dist/bridge/types.d.ts +4 -3
- package/dist/bridge/types.d.ts.map +1 -1
- package/dist/cli/backup/backup.cli-group.descriptor.d.ts +9 -0
- package/dist/cli/backup/backup.cli-group.descriptor.d.ts.map +1 -0
- package/dist/cli/backup/backup.cli-group.descriptor.js +16 -0
- package/dist/cli/backup/backup.cli-group.descriptor.js.map +1 -0
- package/dist/cli/backup/commands/backup.now.cli-command.descriptor.d.ts +4 -0
- package/dist/cli/backup/commands/backup.now.cli-command.descriptor.d.ts.map +1 -0
- package/dist/cli/backup/commands/backup.now.cli-command.descriptor.js +24 -0
- package/dist/cli/backup/commands/backup.now.cli-command.descriptor.js.map +1 -0
- package/dist/cli/backup/commands/backup.now.cli-command.impl.d.ts +26 -0
- package/dist/cli/backup/commands/backup.now.cli-command.impl.d.ts.map +1 -0
- package/dist/cli/backup/commands/backup.now.cli-command.impl.js +61 -0
- package/dist/cli/backup/commands/backup.now.cli-command.impl.js.map +1 -0
- package/dist/cli/backup/commands/backup.restore.cli-command.descriptor.d.ts +4 -0
- package/dist/cli/backup/commands/backup.restore.cli-command.descriptor.d.ts.map +1 -0
- package/dist/cli/backup/commands/backup.restore.cli-command.descriptor.js +24 -0
- package/dist/cli/backup/commands/backup.restore.cli-command.descriptor.js.map +1 -0
- package/dist/cli/backup/commands/backup.restore.cli-command.impl.d.ts +23 -0
- package/dist/cli/backup/commands/backup.restore.cli-command.impl.d.ts.map +1 -0
- package/dist/cli/backup/commands/backup.restore.cli-command.impl.js +50 -0
- package/dist/cli/backup/commands/backup.restore.cli-command.impl.js.map +1 -0
- package/dist/cli/backup/commands/backup.status.cli-command.descriptor.d.ts +4 -0
- package/dist/cli/backup/commands/backup.status.cli-command.descriptor.d.ts.map +1 -0
- package/dist/cli/backup/commands/backup.status.cli-command.descriptor.js +19 -0
- package/dist/cli/backup/commands/backup.status.cli-command.descriptor.js.map +1 -0
- package/dist/cli/backup/commands/backup.status.cli-command.impl.d.ts +21 -0
- package/dist/cli/backup/commands/backup.status.cli-command.impl.d.ts.map +1 -0
- package/dist/cli/backup/commands/backup.status.cli-command.impl.js +76 -0
- package/dist/cli/backup/commands/backup.status.cli-command.impl.js.map +1 -0
- package/dist/cli/backup/commands/backup.verify.cli-command.descriptor.d.ts +4 -0
- package/dist/cli/backup/commands/backup.verify.cli-command.descriptor.d.ts.map +1 -0
- package/dist/cli/backup/commands/backup.verify.cli-command.descriptor.js +20 -0
- package/dist/cli/backup/commands/backup.verify.cli-command.descriptor.js.map +1 -0
- package/dist/cli/backup/commands/backup.verify.cli-command.impl.d.ts +20 -0
- package/dist/cli/backup/commands/backup.verify.cli-command.impl.d.ts.map +1 -0
- package/dist/cli/backup/commands/backup.verify.cli-command.impl.js +48 -0
- package/dist/cli/backup/commands/backup.verify.cli-command.impl.js.map +1 -0
- package/dist/cli/backup/plugin.d.ts +5 -0
- package/dist/cli/backup/plugin.d.ts.map +1 -0
- package/dist/cli/backup/plugin.js +30 -0
- package/dist/cli/backup/plugin.js.map +1 -0
- package/dist/cli/commands/list/storage.list.cli-command.descriptor.d.ts +1 -1
- package/dist/cli/commands/list/storage.list.cli-command.descriptor.d.ts.map +1 -1
- package/dist/cli/commands/list/storage.list.cli-command.impl.d.ts +8 -1
- package/dist/cli/commands/list/storage.list.cli-command.impl.d.ts.map +1 -1
- package/dist/cli/commands/list/storage.list.cli-command.impl.js +17 -8
- package/dist/cli/commands/list/storage.list.cli-command.impl.js.map +1 -1
- package/dist/cli/commands/sync/pull/storage.sync.pull.cli-command.descriptor.d.ts +1 -1
- package/dist/cli/commands/sync/pull/storage.sync.pull.cli-command.descriptor.d.ts.map +1 -1
- package/dist/cli/commands/sync/pull/storage.sync.pull.cli-command.impl.d.ts +9 -1
- package/dist/cli/commands/sync/pull/storage.sync.pull.cli-command.impl.d.ts.map +1 -1
- package/dist/cli/commands/sync/pull/storage.sync.pull.cli-command.impl.js +110 -76
- package/dist/cli/commands/sync/pull/storage.sync.pull.cli-command.impl.js.map +1 -1
- package/dist/cli/commands/sync/push/storage.sync.push.cli-command.descriptor.d.ts +1 -1
- package/dist/cli/commands/sync/push/storage.sync.push.cli-command.descriptor.d.ts.map +1 -1
- package/dist/cli/commands/sync/push/storage.sync.push.cli-command.impl.d.ts +9 -1
- package/dist/cli/commands/sync/push/storage.sync.push.cli-command.impl.d.ts.map +1 -1
- package/dist/cli/commands/sync/push/storage.sync.push.cli-command.impl.js +131 -108
- package/dist/cli/commands/sync/push/storage.sync.push.cli-command.impl.js.map +1 -1
- package/dist/cli/commands/sync/resolve/storage.sync.resolve.cli-command.descriptor.d.ts +1 -1
- package/dist/cli/commands/sync/resolve/storage.sync.resolve.cli-command.descriptor.d.ts.map +1 -1
- package/dist/cli/commands/sync/resolve/storage.sync.resolve.cli-command.impl.d.ts +12 -1
- package/dist/cli/commands/sync/resolve/storage.sync.resolve.cli-command.impl.d.ts.map +1 -1
- package/dist/cli/commands/sync/resolve/storage.sync.resolve.cli-command.impl.js +34 -26
- package/dist/cli/commands/sync/resolve/storage.sync.resolve.cli-command.impl.js.map +1 -1
- package/dist/cli/commands/sync/status/storage.sync.status.cli-command.descriptor.d.ts +1 -1
- package/dist/cli/commands/sync/status/storage.sync.status.cli-command.descriptor.d.ts.map +1 -1
- package/dist/cli/commands/sync/status/storage.sync.status.cli-command.impl.d.ts +11 -1
- package/dist/cli/commands/sync/status/storage.sync.status.cli-command.impl.d.ts.map +1 -1
- package/dist/cli/commands/sync/status/storage.sync.status.cli-command.impl.js +89 -42
- package/dist/cli/commands/sync/status/storage.sync.status.cli-command.impl.js.map +1 -1
- package/dist/cli/commands/sync/sync-command-input.d.ts +20 -0
- package/dist/cli/commands/sync/sync-command-input.d.ts.map +1 -0
- package/dist/cli/commands/sync/sync-command-input.js +20 -0
- package/dist/cli/commands/sync/sync-command-input.js.map +1 -0
- package/dist/cli/gc/commands/gc.run.cli-command.descriptor.d.ts +4 -0
- package/dist/cli/gc/commands/gc.run.cli-command.descriptor.d.ts.map +1 -0
- package/dist/cli/gc/commands/gc.run.cli-command.descriptor.js +20 -0
- package/dist/cli/gc/commands/gc.run.cli-command.descriptor.js.map +1 -0
- package/dist/cli/gc/commands/gc.run.cli-command.impl.d.ts +24 -0
- package/dist/cli/gc/commands/gc.run.cli-command.impl.d.ts.map +1 -0
- package/dist/cli/gc/commands/gc.run.cli-command.impl.js +104 -0
- package/dist/cli/gc/commands/gc.run.cli-command.impl.js.map +1 -0
- package/dist/cli/gc/commands/gc.status.cli-command.descriptor.d.ts +4 -0
- package/dist/cli/gc/commands/gc.status.cli-command.descriptor.d.ts.map +1 -0
- package/dist/cli/gc/commands/gc.status.cli-command.descriptor.js +19 -0
- package/dist/cli/gc/commands/gc.status.cli-command.descriptor.js.map +1 -0
- package/dist/cli/gc/commands/gc.status.cli-command.impl.d.ts +21 -0
- package/dist/cli/gc/commands/gc.status.cli-command.impl.d.ts.map +1 -0
- package/dist/cli/gc/commands/gc.status.cli-command.impl.js +74 -0
- package/dist/cli/gc/commands/gc.status.cli-command.impl.js.map +1 -0
- package/dist/cli/gc/gc.cli-group.descriptor.d.ts +4 -0
- package/dist/cli/gc/gc.cli-group.descriptor.d.ts.map +1 -0
- package/dist/cli/gc/gc.cli-group.descriptor.js +11 -0
- package/dist/cli/gc/gc.cli-group.descriptor.js.map +1 -0
- package/dist/cli/gc/plugin.d.ts +5 -0
- package/dist/cli/gc/plugin.d.ts.map +1 -0
- package/dist/cli/gc/plugin.js +28 -0
- package/dist/cli/gc/plugin.js.map +1 -0
- package/dist/cli/plugin.d.ts +17 -0
- package/dist/cli/plugin.d.ts.map +1 -0
- package/dist/cli/plugin.js +51 -0
- package/dist/cli/plugin.js.map +1 -0
- package/dist/cli/storage.cli-group.descriptor.d.ts +1 -1
- package/dist/cli/storage.cli-group.descriptor.d.ts.map +1 -1
- package/dist/cli/storage.sync.cli-group.descriptor.d.ts +1 -1
- package/dist/cli/storage.sync.cli-group.descriptor.d.ts.map +1 -1
- package/dist/cli/types.d.ts +4 -20
- package/dist/cli/types.d.ts.map +1 -1
- package/dist/cli/types.js +3 -4
- package/dist/cli/types.js.map +1 -1
- package/dist/client/browse-adapter.d.ts +49 -0
- package/dist/client/browse-adapter.d.ts.map +1 -0
- package/dist/client/browse-adapter.js +99 -0
- package/dist/client/browse-adapter.js.map +1 -0
- package/dist/client/diagnose-adapter.d.ts +9 -0
- package/dist/client/diagnose-adapter.d.ts.map +1 -0
- package/dist/client/diagnose-adapter.js +9 -0
- package/dist/client/diagnose-adapter.js.map +1 -0
- package/dist/client/index.d.ts +7 -1
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +5 -1
- package/dist/client/index.js.map +1 -1
- package/dist/client/list-browsable-adapters.d.ts +4 -3
- package/dist/client/list-browsable-adapters.d.ts.map +1 -1
- package/dist/client/list-browsable-adapters.js +3 -8
- package/dist/client/list-browsable-adapters.js.map +1 -1
- package/dist/client/object-adapter.d.ts +33 -0
- package/dist/client/object-adapter.d.ts.map +1 -0
- package/dist/client/object-adapter.js +45 -0
- package/dist/client/object-adapter.js.map +1 -0
- package/dist/client/storage-explorer-capability.d.ts +81 -0
- package/dist/client/storage-explorer-capability.d.ts.map +1 -0
- package/dist/client/storage-explorer-capability.impl.worker.d.ts +23 -0
- package/dist/client/storage-explorer-capability.impl.worker.d.ts.map +1 -0
- package/dist/client/storage-explorer-capability.impl.worker.js +124 -0
- package/dist/client/storage-explorer-capability.impl.worker.js.map +1 -0
- package/dist/client/storage-explorer-capability.js +125 -0
- package/dist/client/storage-explorer-capability.js.map +1 -0
- package/dist/client/storage-failure.d.ts +43 -0
- package/dist/client/storage-failure.d.ts.map +1 -0
- package/dist/client/storage-failure.js +100 -0
- package/dist/client/storage-failure.js.map +1 -0
- package/dist/daemon/commands/browse.d.ts +29 -0
- package/dist/daemon/commands/browse.d.ts.map +1 -0
- package/dist/daemon/commands/browse.js +91 -0
- package/dist/daemon/commands/browse.js.map +1 -0
- package/dist/daemon/commands/sync.d.ts +1 -1
- package/dist/daemon/commands/sync.d.ts.map +1 -1
- package/dist/daemon/commands/sync.js +60 -52
- package/dist/daemon/commands/sync.js.map +1 -1
- package/dist/docs/records.docs.descriptor.d.ts +1 -1
- package/dist/docs/records.docs.descriptor.d.ts.map +1 -1
- package/dist/docs/records.docs.descriptor.js +136 -151
- package/dist/docs/records.docs.descriptor.js.map +1 -1
- package/dist/docs/storage.adapters.docs.descriptor.d.ts +4 -0
- package/dist/docs/storage.adapters.docs.descriptor.d.ts.map +1 -0
- package/dist/docs/storage.adapters.docs.descriptor.js +175 -0
- package/dist/docs/storage.adapters.docs.descriptor.js.map +1 -0
- package/dist/docs/storage.browse.docs.descriptor.d.ts +4 -0
- package/dist/docs/storage.browse.docs.descriptor.d.ts.map +1 -0
- package/dist/docs/storage.browse.docs.descriptor.js +74 -0
- package/dist/docs/storage.browse.docs.descriptor.js.map +1 -0
- package/dist/docs/storage.docs.descriptor.d.ts +4 -0
- package/dist/docs/storage.docs.descriptor.d.ts.map +1 -0
- package/dist/docs/storage.docs.descriptor.js +51 -0
- package/dist/docs/storage.docs.descriptor.js.map +1 -0
- package/dist/docs/storage.manifests.docs.descriptor.d.ts +4 -0
- package/dist/docs/storage.manifests.docs.descriptor.d.ts.map +1 -0
- package/dist/docs/{manifests.docs.descriptor.js → storage.manifests.docs.descriptor.js} +69 -34
- package/dist/docs/storage.manifests.docs.descriptor.js.map +1 -0
- package/dist/docs/sync.docs.descriptor.d.ts +1 -1
- package/dist/docs/sync.docs.descriptor.d.ts.map +1 -1
- package/dist/docs/sync.docs.descriptor.js +140 -150
- package/dist/docs/sync.docs.descriptor.js.map +1 -1
- package/dist/docs/transform.docs.descriptor.d.ts +4 -0
- package/dist/docs/transform.docs.descriptor.d.ts.map +1 -0
- package/dist/docs/transform.docs.descriptor.js +134 -0
- package/dist/docs/transform.docs.descriptor.js.map +1 -0
- package/dist/host-files.d.ts +35 -0
- package/dist/host-files.d.ts.map +1 -0
- package/dist/host-files.js +60 -0
- package/dist/host-files.js.map +1 -0
- package/dist/index.d.ts +15 -13
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -10
- package/dist/index.js.map +1 -1
- package/dist/interfaces/adapter.d.ts +168 -47
- package/dist/interfaces/adapter.d.ts.map +1 -1
- package/dist/interfaces/document-store.d.ts +50 -1
- package/dist/interfaces/document-store.d.ts.map +1 -1
- package/dist/interfaces/index.d.ts +8 -7
- package/dist/interfaces/index.d.ts.map +1 -1
- package/dist/interfaces/index.js +9 -7
- package/dist/interfaces/index.js.map +1 -1
- package/dist/interfaces/object-store.d.ts +54 -0
- package/dist/interfaces/object-store.d.ts.map +1 -0
- package/dist/interfaces/object-store.js +13 -0
- package/dist/interfaces/object-store.js.map +1 -0
- package/dist/interfaces/query-builder.d.ts +2 -30
- package/dist/interfaces/query-builder.d.ts.map +1 -1
- package/dist/interfaces/query-builder.js +0 -9
- package/dist/interfaces/query-builder.js.map +1 -1
- package/dist/interfaces/record/index.d.ts +1 -1
- package/dist/interfaces/record/index.d.ts.map +1 -1
- package/dist/interfaces/record/index.js +1 -1
- package/dist/interfaces/record/index.js.map +1 -1
- package/dist/interfaces/record/interface.d.ts +30 -9
- package/dist/interfaces/record/interface.d.ts.map +1 -1
- package/dist/interfaces/schema/index.d.ts +2 -2
- package/dist/interfaces/schema/index.d.ts.map +1 -1
- package/dist/interfaces/schema/index.js +2 -2
- package/dist/interfaces/schema/index.js.map +1 -1
- package/dist/interfaces/schema/schema-interface.d.ts +9 -8
- package/dist/interfaces/schema/schema-interface.d.ts.map +1 -1
- package/dist/interfaces/schema/table-interface.d.ts +4 -3
- package/dist/interfaces/schema/table-interface.d.ts.map +1 -1
- package/dist/interfaces/storage-consumer-fs.d.ts +25 -27
- package/dist/interfaces/storage-consumer-fs.d.ts.map +1 -1
- package/dist/interfaces/storage-consumer-fs.js +29 -30
- package/dist/interfaces/storage-consumer-fs.js.map +1 -1
- package/dist/manifest/base.d.ts +104 -22
- package/dist/manifest/base.d.ts.map +1 -1
- package/dist/manifest/base.js +393 -151
- package/dist/manifest/base.js.map +1 -1
- package/dist/manifest/cloud-sync.browser.d.ts +3 -0
- package/dist/manifest/cloud-sync.browser.d.ts.map +1 -0
- package/dist/manifest/cloud-sync.browser.js +3 -0
- package/dist/manifest/cloud-sync.browser.js.map +1 -0
- package/dist/manifest/cloud-sync.consumer.d.ts +2 -6
- package/dist/manifest/cloud-sync.consumer.d.ts.map +1 -1
- package/dist/manifest/cloud-sync.consumer.js +2 -81
- package/dist/manifest/cloud-sync.consumer.js.map +1 -1
- package/dist/manifest/cloud-sync.core.d.ts +30 -0
- package/dist/manifest/cloud-sync.core.d.ts.map +1 -0
- package/dist/manifest/cloud-sync.core.js +91 -0
- package/dist/manifest/cloud-sync.core.js.map +1 -0
- package/dist/manifest/cloud-sync.d.ts +3 -0
- package/dist/manifest/cloud-sync.d.ts.map +1 -0
- package/dist/manifest/cloud-sync.js +8 -0
- package/dist/manifest/cloud-sync.js.map +1 -0
- package/dist/manifest/index.d.ts +1 -1
- package/dist/manifest/index.d.ts.map +1 -1
- package/dist/manifest/index.js +1 -1
- package/dist/manifest/index.js.map +1 -1
- package/dist/manifest/source-policy.d.ts +21 -4
- package/dist/manifest/source-policy.d.ts.map +1 -1
- package/dist/manifest/source-policy.js +48 -50
- package/dist/manifest/source-policy.js.map +1 -1
- package/dist/migration-format/index.d.ts +3 -0
- package/dist/migration-format/index.d.ts.map +1 -0
- package/dist/migration-format/index.js +3 -0
- package/dist/migration-format/index.js.map +1 -0
- package/dist/migration-format/migration-format.kind.d.ts +5 -0
- package/dist/migration-format/migration-format.kind.d.ts.map +1 -0
- package/dist/migration-format/migration-format.kind.js +18 -0
- package/dist/migration-format/migration-format.kind.js.map +1 -0
- package/dist/path-format.d.ts +4 -0
- package/dist/path-format.d.ts.map +1 -0
- package/dist/path-format.js +71 -0
- package/dist/path-format.js.map +1 -0
- package/dist/path-policy.d.ts +28 -0
- package/dist/path-policy.d.ts.map +1 -0
- package/dist/path-policy.js +123 -0
- package/dist/path-policy.js.map +1 -0
- package/dist/paths.d.ts +14 -5
- package/dist/paths.d.ts.map +1 -1
- package/dist/paths.js +17 -150
- package/dist/paths.js.map +1 -1
- package/dist/policy/context.d.ts +3 -2
- package/dist/policy/context.d.ts.map +1 -1
- package/dist/policy/context.js +13 -16
- package/dist/policy/context.js.map +1 -1
- package/dist/policy/index.d.ts +3 -3
- package/dist/policy/index.d.ts.map +1 -1
- package/dist/policy/index.js +3 -3
- package/dist/policy/index.js.map +1 -1
- package/dist/policy/overrides.d.ts +5 -39
- package/dist/policy/overrides.d.ts.map +1 -1
- package/dist/policy/overrides.js +19 -24
- package/dist/policy/overrides.js.map +1 -1
- package/dist/policy/persistence.d.ts +2 -35
- package/dist/policy/persistence.d.ts.map +1 -1
- package/dist/policy/persistence.js +2 -12
- package/dist/policy/persistence.js.map +1 -1
- package/dist/policy/types.d.ts +5 -5
- package/dist/policy/types.d.ts.map +1 -1
- package/dist/record/array-fields.d.ts +15 -0
- package/dist/record/array-fields.d.ts.map +1 -0
- package/dist/record/array-fields.js +80 -0
- package/dist/record/array-fields.js.map +1 -0
- package/dist/record/atomic.d.ts +5 -0
- package/dist/record/atomic.d.ts.map +1 -0
- package/dist/record/atomic.js +10 -0
- package/dist/record/atomic.js.map +1 -0
- package/dist/record/base.d.ts +177 -39
- package/dist/record/base.d.ts.map +1 -1
- package/dist/record/base.js +1708 -525
- package/dist/record/base.js.map +1 -1
- package/dist/record/columns.d.ts +23 -0
- package/dist/record/columns.d.ts.map +1 -0
- package/dist/record/columns.js +161 -0
- package/dist/record/columns.js.map +1 -0
- package/dist/record/delivery.d.ts +57 -0
- package/dist/record/delivery.d.ts.map +1 -0
- package/dist/record/delivery.js +262 -0
- package/dist/record/delivery.js.map +1 -0
- package/dist/record/events.js +1 -1
- package/dist/record/events.js.map +1 -1
- package/dist/record/extensions.d.ts +17 -14
- package/dist/record/extensions.d.ts.map +1 -1
- package/dist/record/extensions.js +79 -53
- package/dist/record/extensions.js.map +1 -1
- package/dist/record/failure-condition.d.ts +14 -0
- package/dist/record/failure-condition.d.ts.map +1 -0
- package/dist/record/failure-condition.js +17 -0
- package/dist/record/failure-condition.js.map +1 -0
- package/dist/record/index.d.ts +5 -1
- package/dist/record/index.d.ts.map +1 -1
- package/dist/record/index.js +5 -1
- package/dist/record/index.js.map +1 -1
- package/dist/record/merge.d.ts +21 -0
- package/dist/record/merge.d.ts.map +1 -0
- package/dist/record/merge.js +147 -0
- package/dist/record/merge.js.map +1 -0
- package/dist/record/relations.d.ts +23 -0
- package/dist/record/relations.d.ts.map +1 -0
- package/dist/record/relations.js +164 -0
- package/dist/record/relations.js.map +1 -0
- package/dist/record/revision.d.ts +5 -0
- package/dist/record/revision.d.ts.map +1 -0
- package/dist/record/revision.js +11 -0
- package/dist/record/revision.js.map +1 -0
- package/dist/record/schema-coordination.client.d.ts +16 -0
- package/dist/record/schema-coordination.client.d.ts.map +1 -0
- package/dist/record/schema-coordination.client.js +59 -0
- package/dist/record/schema-coordination.client.js.map +1 -0
- package/dist/record/storage.record-delivery.reconcile.descriptor.d.ts +74 -0
- package/dist/record/storage.record-delivery.reconcile.descriptor.d.ts.map +1 -0
- package/dist/record/storage.record-delivery.reconcile.descriptor.js +54 -0
- package/dist/record/storage.record-delivery.reconcile.descriptor.js.map +1 -0
- package/dist/record/storage.record-delivery.reconcile.impl.d.ts +22 -0
- package/dist/record/storage.record-delivery.reconcile.impl.d.ts.map +1 -0
- package/dist/record/storage.record-delivery.reconcile.impl.js +52 -0
- package/dist/record/storage.record-delivery.reconcile.impl.js.map +1 -0
- package/dist/resolver/storage-backed-resolver.d.ts +12 -5
- package/dist/resolver/storage-backed-resolver.d.ts.map +1 -1
- package/dist/resolver/storage-backed-resolver.js +129 -48
- package/dist/resolver/storage-backed-resolver.js.map +1 -1
- package/dist/retention/capacity.d.ts +37 -0
- package/dist/retention/capacity.d.ts.map +1 -0
- package/dist/retention/capacity.js +71 -0
- package/dist/retention/capacity.js.map +1 -0
- package/dist/retention/catalog-chunks.d.ts +11 -0
- package/dist/retention/catalog-chunks.d.ts.map +1 -0
- package/dist/retention/catalog-chunks.js +62 -0
- package/dist/retention/catalog-chunks.js.map +1 -0
- package/dist/retention/reclaim.d.ts +59 -0
- package/dist/retention/reclaim.d.ts.map +1 -0
- package/dist/retention/reclaim.js +259 -0
- package/dist/retention/reclaim.js.map +1 -0
- package/dist/retention/roots.d.ts +141 -0
- package/dist/retention/roots.d.ts.map +1 -0
- package/dist/retention/roots.js +223 -0
- package/dist/retention/roots.js.map +1 -0
- package/dist/retention/scratch-custody.d.ts +40 -0
- package/dist/retention/scratch-custody.d.ts.map +1 -0
- package/dist/retention/scratch-custody.js +15 -0
- package/dist/retention/scratch-custody.js.map +1 -0
- package/dist/retention/startup-sweep.d.ts +57 -0
- package/dist/retention/startup-sweep.d.ts.map +1 -0
- package/dist/retention/startup-sweep.js +137 -0
- package/dist/retention/startup-sweep.js.map +1 -0
- package/dist/retention/storage.retention-sweep.descriptor.d.ts +82 -0
- package/dist/retention/storage.retention-sweep.descriptor.d.ts.map +1 -0
- package/dist/retention/storage.retention-sweep.descriptor.js +42 -0
- package/dist/retention/storage.retention-sweep.descriptor.js.map +1 -0
- package/dist/retention/storage.retention-sweep.impl.d.ts +22 -0
- package/dist/retention/storage.retention-sweep.impl.d.ts.map +1 -0
- package/dist/retention/storage.retention-sweep.impl.js +78 -0
- package/dist/retention/storage.retention-sweep.impl.js.map +1 -0
- package/dist/retention/storage.retention-sweep.schema.d.ts +3 -0
- package/dist/retention/storage.retention-sweep.schema.d.ts.map +1 -0
- package/dist/retention/storage.retention-sweep.schema.js +3 -0
- package/dist/retention/storage.retention-sweep.schema.js.map +1 -0
- package/dist/retention/sweep.d.ts +31 -0
- package/dist/retention/sweep.d.ts.map +1 -0
- package/dist/retention/sweep.js +190 -0
- package/dist/retention/sweep.js.map +1 -0
- package/dist/retention/tmp-scratch.d.ts +35 -0
- package/dist/retention/tmp-scratch.d.ts.map +1 -0
- package/dist/retention/tmp-scratch.js +149 -0
- package/dist/retention/tmp-scratch.js.map +1 -0
- package/dist/schemas/adapter-config.d.ts +42 -0
- package/dist/schemas/adapter-config.d.ts.map +1 -0
- package/dist/schemas/adapter-config.js +21 -0
- package/dist/schemas/adapter-config.js.map +1 -0
- package/dist/schemas/adapter-configuration-diagnostic.d.ts +35 -0
- package/dist/schemas/adapter-configuration-diagnostic.d.ts.map +1 -0
- package/dist/schemas/adapter-configuration-diagnostic.js +30 -0
- package/dist/schemas/adapter-configuration-diagnostic.js.map +1 -0
- package/dist/schemas/adapter-descriptor.d.ts +215 -5
- package/dist/schemas/adapter-descriptor.d.ts.map +1 -1
- package/dist/schemas/adapter-descriptor.js +158 -4
- package/dist/schemas/adapter-descriptor.js.map +1 -1
- package/dist/schemas/cloud-api.d.ts +99 -0
- package/dist/schemas/cloud-api.d.ts.map +1 -0
- package/dist/schemas/cloud-api.js +55 -0
- package/dist/schemas/cloud-api.js.map +1 -0
- package/dist/schemas/cloud-endpoints.d.ts +25 -0
- package/dist/schemas/cloud-endpoints.d.ts.map +1 -0
- package/dist/schemas/cloud-endpoints.js +38 -0
- package/dist/schemas/cloud-endpoints.js.map +1 -0
- package/dist/schemas/document-identity.d.ts +40 -0
- package/dist/schemas/document-identity.d.ts.map +1 -0
- package/dist/schemas/document-identity.js +21 -0
- package/dist/schemas/document-identity.js.map +1 -0
- package/dist/schemas/document-revision.d.ts +37 -0
- package/dist/schemas/document-revision.d.ts.map +1 -0
- package/dist/schemas/document-revision.js +14 -0
- package/dist/schemas/document-revision.js.map +1 -0
- package/dist/schemas/drizzle/config.d.ts +83 -0
- package/dist/schemas/drizzle/config.d.ts.map +1 -0
- package/dist/schemas/drizzle/config.js +55 -0
- package/dist/schemas/drizzle/config.js.map +1 -0
- package/dist/schemas/drizzle/connection.d.ts +41 -0
- package/dist/schemas/drizzle/connection.d.ts.map +1 -0
- package/dist/schemas/drizzle/connection.js +23 -0
- package/dist/schemas/drizzle/connection.js.map +1 -0
- package/dist/schemas/drizzle/journal-read.d.ts +11 -0
- package/dist/schemas/drizzle/journal-read.d.ts.map +1 -0
- package/dist/schemas/drizzle/journal-read.js +2 -0
- package/dist/schemas/drizzle/journal-read.js.map +1 -0
- package/dist/schemas/drizzle/persistence-config.d.ts +39 -0
- package/dist/schemas/drizzle/persistence-config.d.ts.map +1 -0
- package/dist/schemas/drizzle/persistence-config.js +71 -0
- package/dist/schemas/drizzle/persistence-config.js.map +1 -0
- package/dist/schemas/drizzle/persistence.d.ts +102 -0
- package/dist/schemas/drizzle/persistence.d.ts.map +1 -0
- package/dist/schemas/drizzle/persistence.js +28 -0
- package/dist/schemas/drizzle/persistence.js.map +1 -0
- package/dist/schemas/drizzle/ports.d.ts +39 -0
- package/dist/schemas/drizzle/ports.d.ts.map +1 -0
- package/dist/schemas/drizzle/ports.js +2 -0
- package/dist/schemas/drizzle/ports.js.map +1 -0
- package/dist/schemas/drizzle/providers.d.ts +64 -0
- package/dist/schemas/drizzle/providers.d.ts.map +1 -0
- package/dist/schemas/drizzle/providers.js +19 -0
- package/dist/schemas/drizzle/providers.js.map +1 -0
- package/dist/schemas/drizzle/raw-sql.d.ts +33 -0
- package/dist/schemas/drizzle/raw-sql.d.ts.map +1 -0
- package/dist/schemas/drizzle/raw-sql.js +34 -0
- package/dist/schemas/drizzle/raw-sql.js.map +1 -0
- package/dist/schemas/explorer/capability.d.ts +41 -0
- package/dist/schemas/explorer/capability.d.ts.map +1 -0
- package/dist/schemas/explorer/capability.js +14 -0
- package/dist/schemas/explorer/capability.js.map +1 -0
- package/dist/schemas/explorer/overview.d.ts +41 -0
- package/dist/schemas/explorer/overview.d.ts.map +1 -0
- package/dist/schemas/explorer/overview.js +45 -0
- package/dist/schemas/explorer/overview.js.map +1 -0
- package/dist/schemas/explorer/refs.d.ts +38 -0
- package/dist/schemas/explorer/refs.d.ts.map +1 -0
- package/dist/schemas/explorer/refs.js +21 -0
- package/dist/schemas/explorer/refs.js.map +1 -0
- package/dist/schemas/explorer/rpc.d.ts +211 -0
- package/dist/schemas/explorer/rpc.d.ts.map +1 -0
- package/dist/schemas/explorer/rpc.js +103 -0
- package/dist/schemas/explorer/rpc.js.map +1 -0
- package/dist/schemas/explorer/views.d.ts +99 -0
- package/dist/schemas/explorer/views.d.ts.map +1 -0
- package/dist/schemas/explorer/views.js +84 -0
- package/dist/schemas/explorer/views.js.map +1 -0
- package/dist/schemas/index.d.ts +16 -8
- package/dist/schemas/index.d.ts.map +1 -1
- package/dist/schemas/index.js +12 -4
- package/dist/schemas/index.js.map +1 -1
- package/dist/schemas/localdb/inputs.d.ts +80 -0
- package/dist/schemas/localdb/inputs.d.ts.map +1 -0
- package/dist/schemas/localdb/inputs.js +99 -0
- package/dist/schemas/localdb/inputs.js.map +1 -0
- package/dist/schemas/localdb/query.d.ts +28 -0
- package/dist/schemas/localdb/query.d.ts.map +1 -0
- package/dist/schemas/localdb/query.js +27 -0
- package/dist/schemas/localdb/query.js.map +1 -0
- package/dist/schemas/manifest-descriptor.d.ts +15 -5
- package/dist/schemas/manifest-descriptor.d.ts.map +1 -1
- package/dist/schemas/manifest-descriptor.js +2 -2
- package/dist/schemas/manifest-descriptor.js.map +1 -1
- package/dist/schemas/memory-store.d.ts +8 -0
- package/dist/schemas/memory-store.d.ts.map +1 -0
- package/dist/schemas/memory-store.js +7 -0
- package/dist/schemas/memory-store.js.map +1 -0
- package/dist/schemas/migration-format.d.ts +50 -0
- package/dist/schemas/migration-format.d.ts.map +1 -0
- package/dist/schemas/migration-format.js +17 -0
- package/dist/schemas/migration-format.js.map +1 -0
- package/dist/schemas/policy/overrides.d.ts +41 -0
- package/dist/schemas/policy/overrides.d.ts.map +1 -0
- package/dist/schemas/policy/overrides.js +14 -0
- package/dist/schemas/policy/overrides.js.map +1 -0
- package/dist/schemas/policy/persistence.d.ts +62 -0
- package/dist/schemas/policy/persistence.d.ts.map +1 -0
- package/dist/schemas/policy/persistence.js +24 -0
- package/dist/schemas/policy/persistence.js.map +1 -0
- package/dist/schemas/record/atomic.d.ts +41 -0
- package/dist/schemas/record/atomic.d.ts.map +1 -0
- package/dist/schemas/record/atomic.js +12 -0
- package/dist/schemas/record/atomic.js.map +1 -0
- package/dist/schemas/record/batch.d.ts +53 -0
- package/dist/schemas/record/batch.d.ts.map +1 -0
- package/dist/schemas/record/batch.js +36 -0
- package/dist/schemas/record/batch.js.map +1 -0
- package/dist/schemas/record/columns.d.ts +44 -0
- package/dist/schemas/record/columns.d.ts.map +1 -0
- package/dist/schemas/record/columns.js +25 -0
- package/dist/schemas/record/columns.js.map +1 -0
- package/dist/schemas/record/delivery.d.ts +54 -0
- package/dist/schemas/record/delivery.d.ts.map +1 -0
- package/dist/schemas/record/delivery.js +23 -0
- package/dist/schemas/record/delivery.js.map +1 -0
- package/dist/schemas/record/descriptor.d.ts +153 -51
- package/dist/schemas/record/descriptor.d.ts.map +1 -1
- package/dist/schemas/record/descriptor.js +61 -11
- package/dist/schemas/record/descriptor.js.map +1 -1
- package/dist/schemas/record/index.d.ts +8 -2
- package/dist/schemas/record/index.d.ts.map +1 -1
- package/dist/schemas/record/index.js +5 -1
- package/dist/schemas/record/index.js.map +1 -1
- package/dist/schemas/record/query-values.d.ts +62 -0
- package/dist/schemas/record/query-values.d.ts.map +1 -0
- package/dist/schemas/record/query-values.js +33 -0
- package/dist/schemas/record/query-values.js.map +1 -0
- package/dist/schemas/record/relation.d.ts +1 -1
- package/dist/schemas/record/relation.d.ts.map +1 -1
- package/dist/schemas/record/relation.js +8 -4
- package/dist/schemas/record/relation.js.map +1 -1
- package/dist/schemas/record/revision.d.ts +92 -0
- package/dist/schemas/record/revision.d.ts.map +1 -0
- package/dist/schemas/record/revision.js +39 -0
- package/dist/schemas/record/revision.js.map +1 -0
- package/dist/schemas/retention/jobs.d.ts +103 -0
- package/dist/schemas/retention/jobs.d.ts.map +1 -0
- package/dist/schemas/retention/jobs.js +72 -0
- package/dist/schemas/retention/jobs.js.map +1 -0
- package/dist/schemas/retention/results.d.ts +153 -0
- package/dist/schemas/retention/results.d.ts.map +1 -0
- package/dist/schemas/retention/results.js +84 -0
- package/dist/schemas/retention/results.js.map +1 -0
- package/dist/schemas/schema/descriptor.d.ts +14 -4
- package/dist/schemas/schema/descriptor.d.ts.map +1 -1
- package/dist/schemas/schema/descriptor.js +3 -3
- package/dist/schemas/schema/descriptor.js.map +1 -1
- package/dist/schemas/schema/index.d.ts +1 -1
- package/dist/schemas/schema/index.d.ts.map +1 -1
- package/dist/schemas/schema/index.js +1 -1
- package/dist/schemas/schema/index.js.map +1 -1
- package/dist/schemas/storage-provider.d.ts +79 -0
- package/dist/schemas/storage-provider.d.ts.map +1 -0
- package/dist/schemas/storage-provider.js +54 -0
- package/dist/schemas/storage-provider.js.map +1 -0
- package/dist/schemas/storage-ref.d.ts +39 -0
- package/dist/schemas/storage-ref.d.ts.map +1 -0
- package/dist/schemas/storage-ref.js +64 -0
- package/dist/schemas/storage-ref.js.map +1 -0
- package/dist/schemas/sync/command.d.ts +15 -0
- package/dist/schemas/sync/command.d.ts.map +1 -0
- package/dist/schemas/sync/command.js +10 -0
- package/dist/schemas/sync/command.js.map +1 -0
- package/dist/schemas/sync/crud.d.ts +26 -0
- package/dist/schemas/sync/crud.d.ts.map +1 -0
- package/dist/schemas/sync/crud.js +16 -0
- package/dist/schemas/sync/crud.js.map +1 -0
- package/dist/schemas/sync/document.d.ts +4 -0
- package/dist/schemas/sync/document.d.ts.map +1 -0
- package/dist/schemas/sync/document.js +4 -0
- package/dist/schemas/sync/document.js.map +1 -0
- package/dist/schemas/sync/local-first.d.ts +26 -0
- package/dist/schemas/sync/local-first.d.ts.map +1 -0
- package/dist/schemas/sync/local-first.js +14 -0
- package/dist/schemas/sync/local-first.js.map +1 -0
- package/dist/schemas/sync/results.d.ts +61 -0
- package/dist/schemas/sync/results.d.ts.map +1 -0
- package/dist/schemas/sync/results.js +47 -0
- package/dist/schemas/sync/results.js.map +1 -0
- package/dist/schemas/sync-bridge-descriptor.d.ts +34 -15
- package/dist/schemas/sync-bridge-descriptor.d.ts.map +1 -1
- package/dist/schemas/sync-bridge-descriptor.js +9 -2
- package/dist/schemas/sync-bridge-descriptor.js.map +1 -1
- package/dist/schemas/sync-memory.d.ts +7 -0
- package/dist/schemas/sync-memory.d.ts.map +1 -0
- package/dist/schemas/sync-memory.js +4 -0
- package/dist/schemas/sync-memory.js.map +1 -0
- package/dist/schemas/tools/views.d.ts +83 -0
- package/dist/schemas/tools/views.d.ts.map +1 -0
- package/dist/schemas/tools/views.js +57 -0
- package/dist/schemas/tools/views.js.map +1 -0
- package/dist/schemas/tools/widgets.d.ts +41 -0
- package/dist/schemas/tools/widgets.d.ts.map +1 -0
- package/dist/schemas/tools/widgets.js +13 -0
- package/dist/schemas/tools/widgets.js.map +1 -0
- package/dist/schemas/transform.d.ts +32 -0
- package/dist/schemas/transform.d.ts.map +1 -0
- package/dist/schemas/transform.js +18 -0
- package/dist/schemas/transform.js.map +1 -0
- package/dist/schemas/zod-schema-value.d.ts +8 -0
- package/dist/schemas/zod-schema-value.d.ts.map +1 -0
- package/dist/schemas/zod-schema-value.js +8 -0
- package/dist/schemas/zod-schema-value.js.map +1 -0
- package/dist/server/manifest-route.d.ts +18 -10
- package/dist/server/manifest-route.d.ts.map +1 -1
- package/dist/server/manifest-route.js +88 -90
- package/dist/server/manifest-route.js.map +1 -1
- package/dist/storage-explorer.consumer.plugin.d.ts +10 -0
- package/dist/storage-explorer.consumer.plugin.d.ts.map +1 -0
- package/dist/storage-explorer.consumer.plugin.js +24 -0
- package/dist/storage-explorer.consumer.plugin.js.map +1 -0
- package/dist/storage-policy.context.descriptor.js +1 -1
- package/dist/storage-policy.context.descriptor.js.map +1 -1
- package/dist/storage-policy.context.server.d.ts +7 -9
- package/dist/storage-policy.context.server.d.ts.map +1 -1
- package/dist/storage-policy.context.server.js +7 -20
- package/dist/storage-policy.context.server.js.map +1 -1
- package/dist/storage.consumer.plugin.d.ts +3 -0
- package/dist/storage.consumer.plugin.d.ts.map +1 -0
- package/dist/storage.consumer.plugin.js +15 -0
- package/dist/storage.consumer.plugin.js.map +1 -0
- package/dist/storage.node.plugin.d.ts +3 -0
- package/dist/storage.node.plugin.d.ts.map +1 -0
- package/dist/storage.node.plugin.js +12 -0
- package/dist/storage.node.plugin.js.map +1 -0
- package/dist/storage.plugin.d.ts +10 -16
- package/dist/storage.plugin.d.ts.map +1 -1
- package/dist/storage.plugin.js +150 -91
- package/dist/storage.plugin.js.map +1 -1
- package/dist/svelte/components/ConnectStorageProviderDialog.svelte +345 -0
- package/dist/svelte/components/ConnectStorageProviderDialog.svelte.d.ts +17 -0
- package/dist/svelte/components/ConnectStorageProviderDialog.svelte.d.ts.map +1 -0
- package/dist/svelte/components/PlatformStorageExplorer.svelte +57 -0
- package/dist/svelte/components/PlatformStorageExplorer.svelte.d.ts +23 -0
- package/dist/svelte/components/PlatformStorageExplorer.svelte.d.ts.map +1 -0
- package/dist/svelte/components/StorageBrowser.svelte +436 -0
- package/dist/svelte/components/StorageBrowser.svelte.d.ts +51 -0
- package/dist/svelte/components/StorageBrowser.svelte.d.ts.map +1 -0
- package/dist/svelte/components/StorageBrowserPage.svelte +71 -0
- package/dist/svelte/components/StorageBrowserPage.svelte.d.ts +23 -0
- package/dist/svelte/components/StorageBrowserPage.svelte.d.ts.map +1 -0
- package/dist/svelte/components/StorageCollectionManager.svelte +193 -0
- package/dist/svelte/components/StorageCollectionManager.svelte.d.ts +14 -0
- package/dist/svelte/components/StorageCollectionManager.svelte.d.ts.map +1 -0
- package/dist/svelte/components/StorageDetailsPane.svelte +160 -0
- package/dist/svelte/components/StorageDetailsPane.svelte.d.ts +11 -0
- package/dist/svelte/components/StorageDetailsPane.svelte.d.ts.map +1 -0
- package/dist/svelte/components/StorageDropzone.svelte +76 -0
- package/dist/svelte/components/StorageDropzone.svelte.d.ts +9 -0
- package/dist/svelte/components/StorageDropzone.svelte.d.ts.map +1 -0
- package/dist/svelte/components/StorageExplorer.svelte +954 -0
- package/dist/svelte/components/StorageExplorer.svelte.d.ts +48 -0
- package/dist/svelte/components/StorageExplorer.svelte.d.ts.map +1 -0
- package/dist/svelte/components/StorageFileBrowser.svelte +201 -0
- package/dist/svelte/components/StorageFileBrowser.svelte.d.ts +18 -0
- package/dist/svelte/components/StorageFileBrowser.svelte.d.ts.map +1 -0
- package/dist/svelte/components/StorageFileCard.svelte +162 -0
- package/dist/svelte/components/StorageFileCard.svelte.d.ts +10 -0
- package/dist/svelte/components/StorageFileCard.svelte.d.ts.map +1 -0
- package/dist/svelte/components/StoragePathBar.svelte +104 -0
- package/dist/svelte/components/StoragePathBar.svelte.d.ts +19 -0
- package/dist/svelte/components/StoragePathBar.svelte.d.ts.map +1 -0
- package/dist/svelte/components/StorageProviderSelect.svelte +163 -0
- package/dist/svelte/components/StorageProviderSelect.svelte.d.ts +20 -0
- package/dist/svelte/components/StorageProviderSelect.svelte.d.ts.map +1 -0
- package/dist/svelte/components/StorageProviderSidebar.svelte +187 -0
- package/dist/svelte/components/StorageProviderSidebar.svelte.d.ts +30 -0
- package/dist/svelte/components/StorageProviderSidebar.svelte.d.ts.map +1 -0
- package/dist/svelte/components/StorageReadinessNotice.svelte +181 -0
- package/dist/svelte/components/StorageReadinessNotice.svelte.d.ts +32 -0
- package/dist/svelte/components/StorageReadinessNotice.svelte.d.ts.map +1 -0
- package/dist/svelte/components/StorageSearchBox.svelte +106 -0
- package/dist/svelte/components/StorageSearchBox.svelte.d.ts +19 -0
- package/dist/svelte/components/StorageSearchBox.svelte.d.ts.map +1 -0
- package/dist/svelte/components/StorageToolbar.svelte +160 -0
- package/dist/svelte/components/StorageToolbar.svelte.d.ts +26 -0
- package/dist/svelte/components/StorageToolbar.svelte.d.ts.map +1 -0
- package/dist/svelte/components/StorageUploadChip.svelte +116 -0
- package/dist/svelte/components/StorageUploadChip.svelte.d.ts +13 -0
- package/dist/svelte/components/StorageUploadChip.svelte.d.ts.map +1 -0
- package/dist/svelte/components/index.d.ts +14 -0
- package/dist/svelte/components/index.d.ts.map +1 -0
- package/dist/svelte/components/index.js +12 -0
- package/dist/svelte/components/storage-media.d.ts +14 -0
- package/dist/svelte/components/storage-media.d.ts.map +1 -0
- package/dist/svelte/components/storage-media.js +13 -0
- package/dist/svelte/index.d.ts +14 -0
- package/dist/svelte/index.d.ts.map +1 -0
- package/dist/svelte/index.js +13 -0
- package/dist/svelte/note-store-failure.d.ts +15 -0
- package/dist/svelte/note-store-failure.d.ts.map +1 -0
- package/dist/svelte/note-store-failure.js +21 -0
- package/dist/svelte/platform-storage-port.d.ts +86 -0
- package/dist/svelte/platform-storage-port.d.ts.map +1 -0
- package/dist/svelte/platform-storage-port.js +71 -0
- package/dist/svelte/storage-browse-runtime.d.ts +65 -0
- package/dist/svelte/storage-browse-runtime.d.ts.map +1 -0
- package/dist/svelte/storage-browse-runtime.js +68 -0
- package/dist/svelte/storage-connection.d.ts +23 -0
- package/dist/svelte/storage-connection.d.ts.map +1 -0
- package/dist/svelte/storage-connection.js +40 -0
- package/dist/svelte/storage-display.d.ts +6 -0
- package/dist/svelte/storage-display.d.ts.map +1 -0
- package/dist/svelte/storage-display.js +58 -0
- package/dist/svelte/storage-explorer-runtime.d.ts +120 -0
- package/dist/svelte/storage-explorer-runtime.d.ts.map +1 -0
- package/dist/svelte/storage-explorer-runtime.js +251 -0
- package/dist/svelte/storage-explorer.load.d.ts +22 -0
- package/dist/svelte/storage-explorer.load.d.ts.map +1 -0
- package/dist/svelte/storage-explorer.load.js +37 -0
- package/dist/svelte/storage-refs-runtime.d.ts +36 -0
- package/dist/svelte/storage-refs-runtime.d.ts.map +1 -0
- package/dist/svelte/storage-refs-runtime.js +47 -0
- package/dist/svelte/storage-runtime.d.ts +30 -0
- package/dist/svelte/storage-runtime.d.ts.map +1 -0
- package/dist/svelte/storage-runtime.js +39 -0
- package/dist/svelte/storage-svelte.plugin.d.ts +40 -0
- package/dist/svelte/storage-svelte.plugin.d.ts.map +1 -0
- package/dist/svelte/storage-svelte.plugin.js +50 -0
- package/dist/svelte/storage-upload-runtime.d.ts +8 -0
- package/dist/svelte/storage-upload-runtime.d.ts.map +1 -0
- package/dist/svelte/storage-upload-runtime.js +12 -0
- package/dist/svelte/stores/index.d.ts +4 -0
- package/dist/svelte/stores/index.d.ts.map +1 -0
- package/dist/svelte/stores/index.js +3 -0
- package/dist/svelte/stores/storage-browse.svelte.d.ts +70 -0
- package/dist/svelte/stores/storage-browse.svelte.d.ts.map +1 -0
- package/dist/svelte/stores/storage-browse.svelte.js +133 -0
- package/dist/svelte/stores/storage-providers.svelte.d.ts +32 -0
- package/dist/svelte/stores/storage-providers.svelte.d.ts.map +1 -0
- package/dist/svelte/stores/storage-providers.svelte.js +73 -0
- package/dist/svelte/stores/storage-refs.svelte.d.ts +57 -0
- package/dist/svelte/stores/storage-refs.svelte.d.ts.map +1 -0
- package/dist/svelte/stores/storage-refs.svelte.js +90 -0
- package/dist/svelte/styles.css +14 -0
- package/dist/svelte/test-assets.d.ts +8 -0
- package/dist/svelte/tool-widgets/StorageBrowseToolCard.svelte +109 -0
- package/dist/svelte/tool-widgets/StorageBrowseToolCard.svelte.d.ts +9 -0
- package/dist/svelte/tool-widgets/StorageBrowseToolCard.svelte.d.ts.map +1 -0
- package/dist/svelte/tool-widgets/StorageCopyToolCard.svelte +87 -0
- package/dist/svelte/tool-widgets/StorageCopyToolCard.svelte.d.ts +9 -0
- package/dist/svelte/tool-widgets/StorageCopyToolCard.svelte.d.ts.map +1 -0
- package/dist/svelte/tool-widgets/StorageSearchToolCard.svelte +94 -0
- package/dist/svelte/tool-widgets/StorageSearchToolCard.svelte.d.ts +9 -0
- package/dist/svelte/tool-widgets/StorageSearchToolCard.svelte.d.ts.map +1 -0
- package/dist/svelte/tool-widgets/format.d.ts +15 -0
- package/dist/svelte/tool-widgets/format.d.ts.map +1 -0
- package/dist/svelte/tool-widgets/format.js +32 -0
- package/dist/svelte/tool-widgets/index.d.ts +2 -0
- package/dist/svelte/tool-widgets/index.d.ts.map +1 -0
- package/dist/svelte/tool-widgets/index.js +12 -0
- package/dist/svelte/tool-widgets/runtime.d.ts +9 -0
- package/dist/svelte/tool-widgets/runtime.d.ts.map +1 -0
- package/dist/svelte/tool-widgets/runtime.js +42 -0
- package/dist/sync/cloud-document.d.ts +24 -0
- package/dist/sync/cloud-document.d.ts.map +1 -0
- package/dist/sync/cloud-document.js +47 -0
- package/dist/sync/cloud-document.js.map +1 -0
- package/dist/sync/cloud-pull.d.ts +9 -3
- package/dist/sync/cloud-pull.d.ts.map +1 -1
- package/dist/sync/cloud-pull.js +85 -86
- package/dist/sync/cloud-pull.js.map +1 -1
- package/dist/sync/cloud-record-crud-config.d.ts +7 -17
- package/dist/sync/cloud-record-crud-config.d.ts.map +1 -1
- package/dist/sync/cloud-record-crud-config.js +17 -9
- package/dist/sync/cloud-record-crud-config.js.map +1 -1
- package/dist/sync/local-first.d.ts +61 -0
- package/dist/sync/local-first.d.ts.map +1 -0
- package/dist/sync/local-first.js +121 -0
- package/dist/sync/local-first.js.map +1 -0
- package/dist/sync/record-sync-bridge.d.ts +35 -3
- package/dist/sync/record-sync-bridge.d.ts.map +1 -1
- package/dist/sync/record-sync-bridge.js +50 -46
- package/dist/sync/record-sync-bridge.js.map +1 -1
- package/dist/sync/resolve-sync-target.d.ts +16 -17
- package/dist/sync/resolve-sync-target.d.ts.map +1 -1
- package/dist/sync/resolve-sync-target.js +18 -43
- package/dist/sync/resolve-sync-target.js.map +1 -1
- package/dist/sync/runtime-sync-state.d.ts +18 -0
- package/dist/sync/runtime-sync-state.d.ts.map +1 -0
- package/dist/sync/runtime-sync-state.js +12 -0
- package/dist/sync/runtime-sync-state.js.map +1 -0
- package/dist/sync/schemas/cloud-pull.d.ts +9 -5
- package/dist/sync/schemas/cloud-pull.d.ts.map +1 -1
- package/dist/sync/schemas/index.d.ts +3 -3
- package/dist/sync/schemas/index.d.ts.map +1 -1
- package/dist/sync/schemas/index.js +3 -3
- package/dist/sync/schemas/index.js.map +1 -1
- package/dist/sync/schemas/sync-helpers.d.ts +4 -2
- package/dist/sync/schemas/sync-helpers.d.ts.map +1 -1
- package/dist/sync/schemas/sync-state.d.ts +9 -5
- package/dist/sync/schemas/sync-state.d.ts.map +1 -1
- package/dist/sync/schemas/sync-state.js +4 -1
- package/dist/sync/schemas/sync-state.js.map +1 -1
- package/dist/sync/sync-bridge.d.ts +39 -31
- package/dist/sync/sync-bridge.d.ts.map +1 -1
- package/dist/sync/sync-bridge.js +427 -196
- package/dist/sync/sync-bridge.js.map +1 -1
- package/dist/sync/sync-manifest.d.ts +7 -19
- package/dist/sync/sync-manifest.d.ts.map +1 -1
- package/dist/sync/sync-manifest.js +125 -84
- package/dist/sync/sync-manifest.js.map +1 -1
- package/dist/sync/sync-state.browser.d.ts +37 -0
- package/dist/sync/sync-state.browser.d.ts.map +1 -0
- package/dist/sync/sync-state.browser.js +136 -0
- package/dist/sync/sync-state.browser.js.map +1 -0
- package/dist/sync/sync-state.client.d.ts +73 -0
- package/dist/sync/sync-state.client.d.ts.map +1 -0
- package/dist/sync/sync-state.client.js +78 -0
- package/dist/sync/sync-state.client.js.map +1 -0
- package/dist/sync/sync-state.consumer.d.ts +44 -17
- package/dist/sync/sync-state.consumer.d.ts.map +1 -1
- package/dist/sync/sync-state.consumer.js +161 -87
- package/dist/sync/sync-state.consumer.js.map +1 -1
- package/dist/sync/sync-state.core.d.ts +40 -0
- package/dist/sync/sync-state.core.d.ts.map +1 -0
- package/dist/sync/sync-state.core.js +130 -0
- package/dist/sync/sync-state.core.js.map +1 -0
- package/dist/sync/sync-state.descriptor.d.ts +39 -0
- package/dist/sync/sync-state.descriptor.d.ts.map +1 -0
- package/dist/sync/sync-state.descriptor.js +23 -0
- package/dist/sync/sync-state.descriptor.js.map +1 -0
- package/dist/testing.d.ts +31 -0
- package/dist/testing.d.ts.map +1 -0
- package/dist/testing.js +82 -0
- package/dist/testing.js.map +1 -0
- package/dist/tools/descriptors.d.ts +312 -0
- package/dist/tools/descriptors.d.ts.map +1 -0
- package/dist/tools/descriptors.js +98 -0
- package/dist/tools/descriptors.js.map +1 -0
- package/dist/tools/impl.d.ts +72 -0
- package/dist/tools/impl.d.ts.map +1 -0
- package/dist/tools/impl.js +572 -0
- package/dist/tools/impl.js.map +1 -0
- package/dist/tools/index.d.ts +3 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +3 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/schemas.d.ts +136 -0
- package/dist/tools/schemas.d.ts.map +1 -0
- package/dist/tools/schemas.js +113 -0
- package/dist/tools/schemas.js.map +1 -0
- package/dist/tools/widget-views.d.ts +9 -0
- package/dist/tools/widget-views.d.ts.map +1 -0
- package/dist/tools/widget-views.js +119 -0
- package/dist/tools/widget-views.js.map +1 -0
- package/dist/transform/index.d.ts +7 -18
- package/dist/transform/index.d.ts.map +1 -1
- package/dist/transform/index.js +16 -14
- package/dist/transform/index.js.map +1 -1
- package/dist/transform/transform-descriptor.d.ts +1 -21
- package/dist/transform/transform-descriptor.d.ts.map +1 -1
- package/dist/transform/transform-descriptor.js +1 -29
- package/dist/transform/transform-descriptor.js.map +1 -1
- package/dist/tui/plugin.d.ts +26 -0
- package/dist/tui/plugin.d.ts.map +1 -0
- package/dist/tui/plugin.js +107 -0
- package/dist/tui/plugin.js.map +1 -0
- package/dist/tui/storage-explorer.descriptor.d.ts +25 -4
- package/dist/tui/storage-explorer.descriptor.d.ts.map +1 -1
- package/dist/tui/storage-explorer.descriptor.js +7 -3
- package/dist/tui/storage-explorer.descriptor.js.map +1 -1
- package/dist/tui/storage-explorer.impl.consumer.d.ts +23 -6
- package/dist/tui/storage-explorer.impl.consumer.d.ts.map +1 -1
- package/dist/tui/storage-explorer.impl.consumer.js +231 -8
- package/dist/tui/storage-explorer.impl.consumer.js.map +1 -1
- package/dist/tui/storage-open.descriptor.d.ts +16 -3
- package/dist/tui/storage-open.descriptor.d.ts.map +1 -1
- package/dist/tui/storage-open.descriptor.js +5 -1
- package/dist/tui/storage-open.descriptor.js.map +1 -1
- package/dist/tui/storage-open.impl.consumer.d.ts +6 -1
- package/dist/tui/storage-open.impl.consumer.d.ts.map +1 -1
- package/dist/tui/storage-open.impl.consumer.js.map +1 -1
- package/dist/tui/storage-signed-out-ui.d.ts +21 -0
- package/dist/tui/storage-signed-out-ui.d.ts.map +1 -0
- package/dist/tui/storage-signed-out-ui.js +34 -0
- package/dist/tui/storage-signed-out-ui.js.map +1 -0
- package/dist/tui/storage.tui-state.descriptor.d.ts +61 -0
- package/dist/tui/storage.tui-state.descriptor.d.ts.map +1 -0
- package/dist/tui/storage.tui-state.descriptor.js +52 -0
- package/dist/tui/storage.tui-state.descriptor.js.map +1 -0
- package/dist/tui/storage.tui-state.impl.consumer.d.ts +29 -0
- package/dist/tui/storage.tui-state.impl.consumer.d.ts.map +1 -0
- package/dist/tui/storage.tui-state.impl.consumer.js +207 -0
- package/dist/tui/storage.tui-state.impl.consumer.js.map +1 -0
- package/dist/tui/storage.tui-state.key.d.ts +27 -0
- package/dist/tui/storage.tui-state.key.d.ts.map +1 -0
- package/dist/tui/storage.tui-state.key.js +12 -0
- package/dist/tui/storage.tui-state.key.js.map +1 -0
- package/dist/tui/tool-widgets/StorageBrowseToolWidget.impl.consumer.d.ts +14 -0
- package/dist/tui/tool-widgets/StorageBrowseToolWidget.impl.consumer.d.ts.map +1 -0
- package/dist/tui/tool-widgets/StorageBrowseToolWidget.impl.consumer.js +28 -0
- package/dist/tui/tool-widgets/StorageBrowseToolWidget.impl.consumer.js.map +1 -0
- package/dist/tui/tool-widgets/StorageCopyToolWidget.impl.consumer.d.ts +14 -0
- package/dist/tui/tool-widgets/StorageCopyToolWidget.impl.consumer.d.ts.map +1 -0
- package/dist/tui/tool-widgets/StorageCopyToolWidget.impl.consumer.js +21 -0
- package/dist/tui/tool-widgets/StorageCopyToolWidget.impl.consumer.js.map +1 -0
- package/dist/tui/tool-widgets/StorageSearchToolWidget.impl.consumer.d.ts +14 -0
- package/dist/tui/tool-widgets/StorageSearchToolWidget.impl.consumer.d.ts.map +1 -0
- package/dist/tui/tool-widgets/StorageSearchToolWidget.impl.consumer.js +22 -0
- package/dist/tui/tool-widgets/StorageSearchToolWidget.impl.consumer.js.map +1 -0
- package/dist/tui/tool-widgets/format.d.ts +19 -0
- package/dist/tui/tool-widgets/format.d.ts.map +1 -0
- package/dist/tui/tool-widgets/format.js +53 -0
- package/dist/tui/tool-widgets/format.js.map +1 -0
- package/dist/tui/tool-widgets/storage.browse.tool-widget.descriptor.d.ts +14 -0
- package/dist/tui/tool-widgets/storage.browse.tool-widget.descriptor.d.ts.map +1 -0
- package/dist/tui/tool-widgets/storage.browse.tool-widget.descriptor.js +14 -0
- package/dist/tui/tool-widgets/storage.browse.tool-widget.descriptor.js.map +1 -0
- package/dist/tui/tool-widgets/storage.copy.tool-widget.descriptor.d.ts +14 -0
- package/dist/tui/tool-widgets/storage.copy.tool-widget.descriptor.d.ts.map +1 -0
- package/dist/tui/tool-widgets/storage.copy.tool-widget.descriptor.js +14 -0
- package/dist/tui/tool-widgets/storage.copy.tool-widget.descriptor.js.map +1 -0
- package/dist/tui/tool-widgets/storage.search.tool-widget.descriptor.d.ts +14 -0
- package/dist/tui/tool-widgets/storage.search.tool-widget.descriptor.d.ts.map +1 -0
- package/dist/tui/tool-widgets/storage.search.tool-widget.descriptor.js +14 -0
- package/dist/tui/tool-widgets/storage.search.tool-widget.descriptor.js.map +1 -0
- package/dist/utils/caller-bearer.d.ts +13 -0
- package/dist/utils/caller-bearer.d.ts.map +1 -0
- package/dist/utils/caller-bearer.js +17 -0
- package/dist/utils/caller-bearer.js.map +1 -0
- package/dist/utils/error-context.d.ts +9 -1
- package/dist/utils/error-context.d.ts.map +1 -1
- package/dist/utils/error-context.js +7 -14
- package/dist/utils/error-context.js.map +1 -1
- package/dist/utils/failure-of.d.ts +20 -0
- package/dist/utils/failure-of.d.ts.map +1 -0
- package/dist/utils/failure-of.js +35 -0
- package/dist/utils/failure-of.js.map +1 -0
- package/dist/workers-port.d.ts +37 -0
- package/dist/workers-port.d.ts.map +1 -0
- package/dist/workers-port.js +60 -0
- package/dist/workers-port.js.map +1 -0
- package/package.json +641 -144
- package/dist/adapters/index.d.ts +0 -14
- package/dist/adapters/index.d.ts.map +0 -1
- package/dist/adapters/index.js +0 -15
- package/dist/adapters/index.js.map +0 -1
- package/dist/cli/context.consumer.d.ts +0 -26
- package/dist/cli/context.consumer.d.ts.map +0 -1
- package/dist/cli/context.consumer.js +0 -164
- package/dist/cli/context.consumer.js.map +0 -1
- package/dist/docs/adapters.docs.descriptor.d.ts +0 -4
- package/dist/docs/adapters.docs.descriptor.d.ts.map +0 -1
- package/dist/docs/adapters.docs.descriptor.js +0 -223
- package/dist/docs/adapters.docs.descriptor.js.map +0 -1
- package/dist/docs/manifests.docs.descriptor.d.ts +0 -4
- package/dist/docs/manifests.docs.descriptor.d.ts.map +0 -1
- package/dist/docs/manifests.docs.descriptor.js.map +0 -1
- package/src/adapters/index.ts +0 -13
- package/src/bridge/index.ts +0 -2
- package/src/bridge/storage-kind-bridge.ts +0 -131
- package/src/bridge/types.ts +0 -46
- package/src/cli/commands/list/storage.list.cli-command.descriptor.ts +0 -20
- package/src/cli/commands/list/storage.list.cli-command.impl.ts +0 -72
- package/src/cli/commands/sync/pull/storage.sync.pull.cli-command.descriptor.ts +0 -28
- package/src/cli/commands/sync/pull/storage.sync.pull.cli-command.impl.ts +0 -171
- package/src/cli/commands/sync/push/storage.sync.push.cli-command.descriptor.ts +0 -28
- package/src/cli/commands/sync/push/storage.sync.push.cli-command.impl.ts +0 -213
- package/src/cli/commands/sync/resolve/storage.sync.resolve.cli-command.descriptor.ts +0 -22
- package/src/cli/commands/sync/resolve/storage.sync.resolve.cli-command.impl.ts +0 -129
- package/src/cli/commands/sync/status/storage.sync.status.cli-command.descriptor.ts +0 -17
- package/src/cli/commands/sync/status/storage.sync.status.cli-command.impl.ts +0 -192
- package/src/cli/context.consumer.ts +0 -195
- package/src/cli/storage.cli-group.descriptor.ts +0 -13
- package/src/cli/storage.sync.cli-group.descriptor.ts +0 -14
- package/src/cli/types.ts +0 -25
- package/src/client/index.ts +0 -10
- package/src/client/list-browsable-adapters.ts +0 -42
- package/src/daemon/commands/sync.ts +0 -225
- package/src/docs/adapters.docs.descriptor.ts +0 -225
- package/src/docs/manifests.docs.descriptor.ts +0 -318
- package/src/docs/records.docs.descriptor.ts +0 -271
- package/src/docs/sync.docs.descriptor.ts +0 -281
- package/src/index.ts +0 -109
- package/src/interfaces/adapter.ts +0 -451
- package/src/interfaces/document-store.ts +0 -74
- package/src/interfaces/index.ts +0 -117
- package/src/interfaces/key-value.ts +0 -112
- package/src/interfaces/query-builder.ts +0 -31
- package/src/interfaces/record/index.ts +0 -58
- package/src/interfaces/record/interface.ts +0 -723
- package/src/interfaces/repository.ts +0 -300
- package/src/interfaces/schema/index.ts +0 -37
- package/src/interfaces/schema/schema-interface.ts +0 -586
- package/src/interfaces/schema/table-interface.ts +0 -314
- package/src/interfaces/storage-consumer-fs.ts +0 -66
- package/src/manifest/base.ts +0 -594
- package/src/manifest/cloud-sync.consumer.ts +0 -120
- package/src/manifest/index.ts +0 -7
- package/src/manifest/source-policy.ts +0 -74
- package/src/paths.ts +0 -171
- package/src/policy/context.ts +0 -30
- package/src/policy/index.ts +0 -20
- package/src/policy/overrides.ts +0 -46
- package/src/policy/persistence.ts +0 -117
- package/src/policy/types.ts +0 -28
- package/src/record/base.ts +0 -1872
- package/src/record/events.ts +0 -56
- package/src/record/extensions.ts +0 -308
- package/src/record/index.ts +0 -7
- package/src/resolver/storage-backed-resolver.ts +0 -255
- package/src/schemas/adapter-descriptor.ts +0 -128
- package/src/schemas/index.ts +0 -104
- package/src/schemas/manifest-descriptor.ts +0 -143
- package/src/schemas/record/descriptor.ts +0 -621
- package/src/schemas/record/index.ts +0 -60
- package/src/schemas/record/relation.ts +0 -49
- package/src/schemas/schema/descriptor.ts +0 -278
- package/src/schemas/schema/index.ts +0 -14
- package/src/schemas/sync-bridge-descriptor.ts +0 -143
- package/src/server/manifest-route.ts +0 -319
- package/src/storage-policy.context.descriptor.ts +0 -17
- package/src/storage-policy.context.server.ts +0 -34
- package/src/storage.plugin.ts +0 -264
- package/src/sync/cloud-pull.ts +0 -202
- package/src/sync/cloud-record-crud-config.ts +0 -41
- package/src/sync/record-sync-bridge.ts +0 -183
- package/src/sync/resolve-sync-target.ts +0 -57
- package/src/sync/schemas/cloud-pull.ts +0 -26
- package/src/sync/schemas/index.ts +0 -18
- package/src/sync/schemas/sync-helpers.ts +0 -18
- package/src/sync/schemas/sync-state.ts +0 -41
- package/src/sync/sync-bridge.ts +0 -763
- package/src/sync/sync-manifest.ts +0 -212
- package/src/sync/sync-state.consumer.ts +0 -144
- package/src/transform/index.ts +0 -130
- package/src/transform/transform-descriptor.ts +0 -53
- package/src/tui/storage-explorer.descriptor.ts +0 -32
- package/src/tui/storage-explorer.impl.consumer.ts +0 -14
- package/src/tui/storage-open.descriptor.ts +0 -31
- package/src/tui/storage-open.impl.consumer.ts +0 -14
- package/src/utils/error-context.ts +0 -19
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Applying a target's declared rotation to its stored snapshots.
|
|
3
|
+
*
|
|
4
|
+
* Rotation runs as its own step, before a job's snapshots and independent of
|
|
5
|
+
* their outcome, so a run that hangs or fails never leaves old snapshots in
|
|
6
|
+
* place. For one target run (one destination directory, one home):
|
|
7
|
+
*
|
|
8
|
+
* - `planRotation` (successful rows only) names the superseded snapshots;
|
|
9
|
+
* - a superseded snapshot is pruned only when every file it recorded is a
|
|
10
|
+
* regular file lexically inside the destination directory (never a link,
|
|
11
|
+
* never a path elsewhere); anything else skips that snapshot, reported, and
|
|
12
|
+
* leaves its row untouched;
|
|
13
|
+
* - stale staging (`<name>.<timestamp>.vacuum` and its `.vacuum-journal`) is a
|
|
14
|
+
* leftover of a VACUUM INTO that never finished: stale when a later run of
|
|
15
|
+
* this target has since started (its timestamp precedes the newest recorded
|
|
16
|
+
* run's start), so an in-flight run's staging is never touched.
|
|
17
|
+
*
|
|
18
|
+
* `planTargetRotation` only reads. `applyTargetRotation` removes exactly the
|
|
19
|
+
* planned paths, each re-checked as a regular file, and marks the pruned rows
|
|
20
|
+
* `pruned`; a dry run reports the plan without calling it.
|
|
21
|
+
*/
|
|
22
|
+
import { settle, valueFreeFailure } from "@vibesdotdev/kernel";
|
|
23
|
+
import { hostStat } from "../../host-files.js";
|
|
24
|
+
import { backupEntryKind } from "./io.js";
|
|
25
|
+
import { planRotation } from "./rotation.js";
|
|
26
|
+
/** One superseded snapshot and the recorded files its pruning removes. */
|
|
27
|
+
/** A superseded snapshot left in place, and why. */
|
|
28
|
+
/** A stale staging file the sweep removes. */
|
|
29
|
+
/** Records per page when a target's provenance is read. */
|
|
30
|
+
const PROVENANCE_PAGE = 200;
|
|
31
|
+
/** Every provenance row of one target run (a per-home run reads only its home's rows). */
|
|
32
|
+
export async function targetRecords(store, targetId, home) {
|
|
33
|
+
const rows = [];
|
|
34
|
+
for (let offset = 0;; offset += PROVENANCE_PAGE) {
|
|
35
|
+
const page = await store.list({ where: { targetId }, limit: PROVENANCE_PAGE, offset });
|
|
36
|
+
rows.push(...page.items);
|
|
37
|
+
if (!page.hasMore || page.items.length === 0)
|
|
38
|
+
break;
|
|
39
|
+
}
|
|
40
|
+
return rows.filter((row) => (row.home ?? null) === home);
|
|
41
|
+
}
|
|
42
|
+
/** `<name>.<YYYY-MM-DDTHH-MM-SS-mmmZ>` as `snapshotPathFor` writes it, back to epoch ms. */
|
|
43
|
+
function stagingStartedMs(name) {
|
|
44
|
+
const match = /\.(\d{4}-\d{2}-\d{2})T(\d{2})-(\d{2})-(\d{2})-(\d{3})Z\.vacuum(?:-journal)?$/.exec(name);
|
|
45
|
+
if (!match)
|
|
46
|
+
return null;
|
|
47
|
+
const [, day, h, m, s, ms] = match;
|
|
48
|
+
const parsed = Date.parse(`${day}T${h}:${m}:${s}.${ms}Z`);
|
|
49
|
+
return Number.isNaN(parsed) ? null : parsed;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Whether `path` lies lexically under `destDir`. Recorded paths are joined by
|
|
53
|
+
* the snapshot (already normal); one with a `.` or `..` segment is never
|
|
54
|
+
* inside. The destination itself may be a link the user placed (a volume
|
|
55
|
+
* elsewhere); only the files under it are checked as regular files.
|
|
56
|
+
*/
|
|
57
|
+
function inside(io, destDir, path) {
|
|
58
|
+
if (!io.path.isAbsolute(path) || path.split(/[\\/]/).some((segment) => segment === "." || segment === ".."))
|
|
59
|
+
return false;
|
|
60
|
+
for (let current = io.path.dirname(path); current !== io.path.dirname(current); current = io.path.dirname(current)) {
|
|
61
|
+
if (current === destDir)
|
|
62
|
+
return true;
|
|
63
|
+
}
|
|
64
|
+
return false;
|
|
65
|
+
}
|
|
66
|
+
/** What applying `policy` to one target run would do; reads only. */
|
|
67
|
+
export async function planTargetRotation(io, input) {
|
|
68
|
+
const decision = planRotation(input.records, input.policy);
|
|
69
|
+
const prune = [];
|
|
70
|
+
const skipped = [];
|
|
71
|
+
for (const record of decision.prune) {
|
|
72
|
+
const files = [];
|
|
73
|
+
let skip;
|
|
74
|
+
for (const file of record.files) {
|
|
75
|
+
if (!inside(io, input.destDir, file.path)) {
|
|
76
|
+
skip = "backup-rotation-file-outside-destination";
|
|
77
|
+
break;
|
|
78
|
+
}
|
|
79
|
+
const kind = await backupEntryKind(io, file.path);
|
|
80
|
+
if (kind === "missing")
|
|
81
|
+
continue; // already gone: nothing to remove, the row is still superseded
|
|
82
|
+
if (kind !== "file") {
|
|
83
|
+
skip = "backup-rotation-file-not-regular";
|
|
84
|
+
break;
|
|
85
|
+
}
|
|
86
|
+
files.push({ path: file.path, bytes: file.bytes });
|
|
87
|
+
}
|
|
88
|
+
if (skip)
|
|
89
|
+
skipped.push({ snapshotId: record.id, reason: skip });
|
|
90
|
+
else
|
|
91
|
+
prune.push({ snapshotId: record.id, startedAt: new Date(record.startedAt).toISOString(), files, bytes: files.reduce((sum, f) => sum + f.bytes, 0) });
|
|
92
|
+
}
|
|
93
|
+
const newestStart = Math.max(Number.NEGATIVE_INFINITY, ...input.records.map((row) => new Date(row.startedAt).getTime()));
|
|
94
|
+
const staging = [];
|
|
95
|
+
if ((await backupEntryKind(io, input.destDir)) !== "missing") {
|
|
96
|
+
for (const entry of await io.fs.list(input.destDir)) {
|
|
97
|
+
if (entry.kind !== "file")
|
|
98
|
+
continue;
|
|
99
|
+
const started = stagingStartedMs(entry.name);
|
|
100
|
+
if (started === null || !(started < newestStart))
|
|
101
|
+
continue;
|
|
102
|
+
const path = io.path.join(input.destDir, entry.name);
|
|
103
|
+
const stat = await hostStat(io.fs, path);
|
|
104
|
+
if (stat?.kind === "file")
|
|
105
|
+
staging.push({ path, bytes: stat.size });
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
return {
|
|
109
|
+
targetId: input.targetId,
|
|
110
|
+
home: input.home,
|
|
111
|
+
destDir: input.destDir,
|
|
112
|
+
kept: decision.keep.length,
|
|
113
|
+
prune,
|
|
114
|
+
skipped,
|
|
115
|
+
staging,
|
|
116
|
+
pruneBytes: prune.reduce((sum, p) => sum + p.bytes, 0),
|
|
117
|
+
stagingBytes: staging.reduce((sum, s) => sum + s.bytes, 0),
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
/** Remove exactly the planned paths (each still a regular file) and mark the pruned rows. */
|
|
121
|
+
export async function applyTargetRotation(io, store, plan) {
|
|
122
|
+
const outcome = { pruned: [], removedBytes: 0, failures: [] };
|
|
123
|
+
const removeFile = async (path, bytes) => {
|
|
124
|
+
const removed = await settle(async () => {
|
|
125
|
+
if ((await backupEntryKind(io, path)) !== "file")
|
|
126
|
+
return 0; // gone, or no longer a regular file: never followed
|
|
127
|
+
await io.fs.remove(path);
|
|
128
|
+
return bytes;
|
|
129
|
+
});
|
|
130
|
+
if (!removed.ok) {
|
|
131
|
+
outcome.failures.push({ path, failure: valueFreeFailure(removed.cause) });
|
|
132
|
+
return false;
|
|
133
|
+
}
|
|
134
|
+
outcome.removedBytes += removed.value;
|
|
135
|
+
return true;
|
|
136
|
+
};
|
|
137
|
+
for (const entry of plan.prune) {
|
|
138
|
+
let complete = true;
|
|
139
|
+
for (const file of entry.files)
|
|
140
|
+
complete = (await removeFile(file.path, file.bytes)) && complete;
|
|
141
|
+
if (!complete)
|
|
142
|
+
continue; // a row is marked pruned only when every one of its files is gone
|
|
143
|
+
const marked = await settle(() => store.update(entry.snapshotId, { status: "pruned" }));
|
|
144
|
+
if (marked.ok)
|
|
145
|
+
outcome.pruned.push(entry.snapshotId);
|
|
146
|
+
else
|
|
147
|
+
outcome.failures.push({ path: entry.snapshotId, failure: valueFreeFailure(marked.cause) });
|
|
148
|
+
}
|
|
149
|
+
for (const stale of plan.staging)
|
|
150
|
+
await removeFile(stale.path, stale.bytes);
|
|
151
|
+
return outcome;
|
|
152
|
+
}
|
|
153
|
+
//# sourceMappingURL=rotate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rotate.js","sourceRoot":"","sources":["../../../src/backup/core/rotate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Snapshot rotation — given a list of provenance records for a single
|
|
3
|
+
* target, decide which snapshot ids to retain and which to prune.
|
|
4
|
+
*
|
|
5
|
+
* Buckets:
|
|
6
|
+
* - daily: most recent N successful snapshots per day
|
|
7
|
+
* - weekly: most recent successful snapshot per ISO week, beyond the daily window
|
|
8
|
+
* - monthly: most recent successful snapshot per calendar month, beyond the weekly window
|
|
9
|
+
* - forever: when `keepForever` is true, never prune anything (rotation only marks).
|
|
10
|
+
*/
|
|
11
|
+
import type { BackupRotationPolicy } from "../schemas/target.ts";
|
|
12
|
+
import type { SnapshotRecord } from "../schemas/snapshot.ts";
|
|
13
|
+
export interface RotationDecision {
|
|
14
|
+
keep: SnapshotRecord[];
|
|
15
|
+
prune: SnapshotRecord[];
|
|
16
|
+
tags: Map<string, string>;
|
|
17
|
+
}
|
|
18
|
+
export declare function planRotation(snapshots: SnapshotRecord[], policy: BackupRotationPolicy): RotationDecision;
|
|
19
|
+
//# sourceMappingURL=rotation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rotation.d.ts","sourceRoot":"","sources":["../../../src/backup/core/rotation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAE7D,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,cAAc,EAAE,CAAC;IACvB,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC3B;AAqCD,wBAAgB,YAAY,CAC1B,SAAS,EAAE,cAAc,EAAE,EAC3B,MAAM,EAAE,oBAAoB,GAC3B,gBAAgB,CA8DlB"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Snapshot rotation — given a list of provenance records for a single
|
|
3
|
+
* target, decide which snapshot ids to retain and which to prune.
|
|
4
|
+
*
|
|
5
|
+
* Buckets:
|
|
6
|
+
* - daily: most recent N successful snapshots per day
|
|
7
|
+
* - weekly: most recent successful snapshot per ISO week, beyond the daily window
|
|
8
|
+
* - monthly: most recent successful snapshot per calendar month, beyond the weekly window
|
|
9
|
+
* - forever: when `keepForever` is true, never prune anything (rotation only marks).
|
|
10
|
+
*/
|
|
11
|
+
function dayKey(d) {
|
|
12
|
+
return d.toISOString().slice(0, 10); // YYYY-MM-DD
|
|
13
|
+
}
|
|
14
|
+
function isoWeekKey(d) {
|
|
15
|
+
// ISO week, simplified — `YYYY-Www`
|
|
16
|
+
const target = new Date(Date.UTC(d.getUTCFullYear(), d.getUTCMonth(), d.getUTCDate()));
|
|
17
|
+
const dayNum = (target.getUTCDay() + 6) % 7;
|
|
18
|
+
target.setUTCDate(target.getUTCDate() - dayNum + 3);
|
|
19
|
+
const firstThursday = target.valueOf();
|
|
20
|
+
target.setUTCMonth(0, 1);
|
|
21
|
+
if (target.getUTCDay() !== 4) {
|
|
22
|
+
target.setUTCMonth(0, 1 + ((4 - target.getUTCDay() + 7) % 7));
|
|
23
|
+
}
|
|
24
|
+
const weekNo = 1 + Math.ceil((firstThursday - target.valueOf()) / (7 * 24 * 3600 * 1000));
|
|
25
|
+
return `${d.getUTCFullYear()}-W${String(weekNo).padStart(2, "0")}`;
|
|
26
|
+
}
|
|
27
|
+
function monthKey(d) {
|
|
28
|
+
return d.toISOString().slice(0, 7); // YYYY-MM
|
|
29
|
+
}
|
|
30
|
+
/** A run's start as epoch milliseconds, whether the row holds an ISO string or a Date. */
|
|
31
|
+
function startedMs(snapshot) {
|
|
32
|
+
return new Date(snapshot.startedAt).getTime();
|
|
33
|
+
}
|
|
34
|
+
/** Only a successful snapshot is a rotation candidate: it is the one kind a later success supersedes. */
|
|
35
|
+
function isSuccessful(snapshot) {
|
|
36
|
+
return snapshot.status === "success" || snapshot.status === "verified";
|
|
37
|
+
}
|
|
38
|
+
export function planRotation(snapshots, policy) {
|
|
39
|
+
// Only successful snapshots fill keep buckets or are pruned. Failed, pending,
|
|
40
|
+
// empty and already-pruned rows are always kept: they are a run's record
|
|
41
|
+
// (diagnostics), never a superseded copy of the data.
|
|
42
|
+
const successful = snapshots
|
|
43
|
+
.filter(isSuccessful)
|
|
44
|
+
.sort((a, b) => startedMs(b) - startedMs(a)); // newest first
|
|
45
|
+
const keepIds = new Set();
|
|
46
|
+
const tags = new Map();
|
|
47
|
+
const dailySeen = new Map();
|
|
48
|
+
for (const s of successful) {
|
|
49
|
+
const k = dayKey(new Date(s.startedAt));
|
|
50
|
+
if (dailySeen.has(k))
|
|
51
|
+
continue;
|
|
52
|
+
dailySeen.set(k, s);
|
|
53
|
+
if (dailySeen.size <= policy.keepDaily) {
|
|
54
|
+
keepIds.add(s.id);
|
|
55
|
+
tags.set(s.id, `daily:${k}`);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
const weeklySeen = new Map();
|
|
59
|
+
for (const s of successful) {
|
|
60
|
+
const k = isoWeekKey(new Date(s.startedAt));
|
|
61
|
+
if (weeklySeen.has(k))
|
|
62
|
+
continue;
|
|
63
|
+
weeklySeen.set(k, s);
|
|
64
|
+
if (weeklySeen.size <= policy.keepWeekly && !keepIds.has(s.id)) {
|
|
65
|
+
keepIds.add(s.id);
|
|
66
|
+
tags.set(s.id, `weekly:${k}`);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
if (policy.keepMonthly > 0) {
|
|
70
|
+
const monthlySeen = new Map();
|
|
71
|
+
for (const s of successful) {
|
|
72
|
+
const k = monthKey(new Date(s.startedAt));
|
|
73
|
+
if (monthlySeen.has(k))
|
|
74
|
+
continue;
|
|
75
|
+
monthlySeen.set(k, s);
|
|
76
|
+
if (monthlySeen.size <= policy.keepMonthly && !keepIds.has(s.id)) {
|
|
77
|
+
keepIds.add(s.id);
|
|
78
|
+
tags.set(s.id, `monthly:${k}`);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
if (policy.keepForever) {
|
|
83
|
+
// keepForever overrides — nothing gets pruned.
|
|
84
|
+
return {
|
|
85
|
+
keep: snapshots,
|
|
86
|
+
prune: [],
|
|
87
|
+
tags,
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
const keep = [];
|
|
91
|
+
const prune = [];
|
|
92
|
+
for (const s of snapshots) {
|
|
93
|
+
if (isSuccessful(s) && !keepIds.has(s.id))
|
|
94
|
+
prune.push(s);
|
|
95
|
+
else
|
|
96
|
+
keep.push(s);
|
|
97
|
+
}
|
|
98
|
+
return { keep, prune, tags };
|
|
99
|
+
}
|
|
100
|
+
//# sourceMappingURL=rotation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rotation.js","sourceRoot":"","sources":["../../../src/backup/core/rotation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Snapshot core — runs a single `BackupTargetDescriptor` against the host
|
|
3
|
+
* filesystem through the runtime's kinds (`./io.ts`): no host API of its own.
|
|
4
|
+
*
|
|
5
|
+
* Supported source kinds:
|
|
6
|
+
* - `sqlite`: `VACUUM INTO` through LocalDB's SQLite driver kind, for an
|
|
7
|
+
* atomic, compacted snapshot that is then verified (tables, row count)
|
|
8
|
+
* - `file`: byte copy + sha256
|
|
9
|
+
* - `directory`: recursive byte copy, bounded in depth and entry count
|
|
10
|
+
*
|
|
11
|
+
* Every declared file that exists is copied: the primary and each sidecar.
|
|
12
|
+
* A missing primary never short-circuits (config.home keeps its key before
|
|
13
|
+
* config.json exists); none of them existing is the distinct `empty` outcome.
|
|
14
|
+
*
|
|
15
|
+
* Links are never followed or copied. A source, sidecar or directory entry
|
|
16
|
+
* that is a symbolic link is skipped and the run fails once with the typed,
|
|
17
|
+
* value-free `backup-source-symlink` reason; what else exists is still kept.
|
|
18
|
+
* Every snapshot file is written owner-only (0600).
|
|
19
|
+
*/
|
|
20
|
+
import type { BackupTargetDescriptor } from "../schemas/target.ts";
|
|
21
|
+
import type { SnapshotResult } from "../schemas/snapshot.ts";
|
|
22
|
+
import { type ResolvedTargetPaths } from "./paths.ts";
|
|
23
|
+
import { type BackupIo } from "./io.ts";
|
|
24
|
+
/** One run's outcome from the core: the job adds the run's home and preflight notices. */
|
|
25
|
+
export type SnapshotCoreResult = Omit<SnapshotResult, "notices" | "home"> & {
|
|
26
|
+
home?: string;
|
|
27
|
+
};
|
|
28
|
+
export interface RunSnapshotOptions {
|
|
29
|
+
/** Snapshot id provided by caller (so caller can record provenance with same id). */
|
|
30
|
+
snapshotId: string;
|
|
31
|
+
/** Now-ish timestamp used for filename derivation. */
|
|
32
|
+
timestamp: string;
|
|
33
|
+
/** Skip sha256 (faster, less safe) — default: false. */
|
|
34
|
+
skipHash?: boolean;
|
|
35
|
+
/** The target's paths, resolved on the caller's runtime (`resolveTargetPaths`). */
|
|
36
|
+
paths: ResolvedTargetPaths;
|
|
37
|
+
/** The run's host capabilities (`backupIoOf(runtime)`). */
|
|
38
|
+
io: BackupIo;
|
|
39
|
+
}
|
|
40
|
+
/** The outcome text of a target none of whose declared files exist (status `empty`). */
|
|
41
|
+
export declare const BACKUP_TARGET_EMPTY = "backup-target-empty: none of the target's declared files exist; nothing was snapshotted";
|
|
42
|
+
/** The outcome text of a run that skipped one or more symbolic links (status `failed`). */
|
|
43
|
+
export declare const BACKUP_SOURCE_SYMLINK = "backup-source-symlink: a source entry is a symbolic link; links are never followed or copied";
|
|
44
|
+
export declare function runSnapshot(target: BackupTargetDescriptor, options: RunSnapshotOptions): Promise<SnapshotCoreResult>;
|
|
45
|
+
//# sourceMappingURL=snapshot.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"snapshot.d.ts","sourceRoot":"","sources":["../../../src/backup/core/snapshot.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAIH,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,KAAK,EAAgB,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC3E,OAAO,EAAmB,KAAK,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEvE,OAAO,EAAmI,KAAK,QAAQ,EAAmB,MAAM,SAAS,CAAC;AAE1L,0FAA0F;AAC1F,MAAM,MAAM,kBAAkB,GAAG,IAAI,CAAC,cAAc,EAAE,SAAS,GAAG,MAAM,CAAC,GAAG;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAE9F,MAAM,WAAW,kBAAkB;IACjC,qFAAqF;IACrF,UAAU,EAAE,MAAM,CAAC;IACnB,sDAAsD;IACtD,SAAS,EAAE,MAAM,CAAC;IAClB,wDAAwD;IACxD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,mFAAmF;IACnF,KAAK,EAAE,mBAAmB,CAAC;IAC3B,2DAA2D;IAC3D,EAAE,EAAE,QAAQ,CAAC;CACd;AAED,wFAAwF;AACxF,eAAO,MAAM,mBAAmB,4FAC2D,CAAC;AAE5F,2FAA2F;AAC3F,eAAO,MAAM,qBAAqB,iGAC8D,CAAC;AAkHjG,wBAAsB,WAAW,CAC/B,MAAM,EAAE,sBAAsB,EAC9B,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,kBAAkB,CAAC,CA0F7B"}
|
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Snapshot core — runs a single `BackupTargetDescriptor` against the host
|
|
3
|
+
* filesystem through the runtime's kinds (`./io.ts`): no host API of its own.
|
|
4
|
+
*
|
|
5
|
+
* Supported source kinds:
|
|
6
|
+
* - `sqlite`: `VACUUM INTO` through LocalDB's SQLite driver kind, for an
|
|
7
|
+
* atomic, compacted snapshot that is then verified (tables, row count)
|
|
8
|
+
* - `file`: byte copy + sha256
|
|
9
|
+
* - `directory`: recursive byte copy, bounded in depth and entry count
|
|
10
|
+
*
|
|
11
|
+
* Every declared file that exists is copied: the primary and each sidecar.
|
|
12
|
+
* A missing primary never short-circuits (config.home keeps its key before
|
|
13
|
+
* config.json exists); none of them existing is the distinct `empty` outcome.
|
|
14
|
+
*
|
|
15
|
+
* Links are never followed or copied. A source, sidecar or directory entry
|
|
16
|
+
* that is a symbolic link is skipped and the run fails once with the typed,
|
|
17
|
+
* value-free `backup-source-symlink` reason; what else exists is still kept.
|
|
18
|
+
* Every snapshot file is written owner-only (0600).
|
|
19
|
+
*/
|
|
20
|
+
import { CapabilityError, CaughtFailureSchema, valueFreeFailure } from "@vibesdotdev/kernel";
|
|
21
|
+
import { snapshotPathFor } from "./paths.js";
|
|
22
|
+
import { chmodChecked } from "@vibesdotdev/filesystem";
|
|
23
|
+
import { BACKUP_DIRECTORY_MAX_DEPTH, BACKUP_DIRECTORY_MAX_ENTRIES, BACKUP_FILE_MODE, backupEntryKind, copyFileNoFollow, hashFileNoFollow } from "./io.js";
|
|
24
|
+
/** The outcome text of a target none of whose declared files exist (status `empty`). */
|
|
25
|
+
export const BACKUP_TARGET_EMPTY = "backup-target-empty: none of the target's declared files exist; nothing was snapshotted";
|
|
26
|
+
/** The outcome text of a run that skipped one or more symbolic links (status `failed`). */
|
|
27
|
+
export const BACKUP_SOURCE_SYMLINK = "backup-source-symlink: a source entry is a symbolic link; links are never followed or copied";
|
|
28
|
+
/** A failure's value-free facts on one line (`CapabilityError INVALID_INPUT backup-source-kind-mismatch`). */
|
|
29
|
+
function failureLine(facts) {
|
|
30
|
+
return [facts.name, facts.code, facts.reason].filter((part) => part !== undefined).join(" ");
|
|
31
|
+
}
|
|
32
|
+
function recordFile(state, destPath, hashed, source) {
|
|
33
|
+
const file = { path: destPath, bytes: hashed.bytes, source };
|
|
34
|
+
if (!state.skipHash)
|
|
35
|
+
file.sha256 = hashed.sha256;
|
|
36
|
+
state.files.push(file);
|
|
37
|
+
}
|
|
38
|
+
/** Copy one regular file in chunks, never through a link. */
|
|
39
|
+
async function copyFile(state, sourcePath, destPath, source) {
|
|
40
|
+
recordFile(state, destPath, await copyFileNoFollow(state.io, sourcePath, destPath, state.targetId), source);
|
|
41
|
+
}
|
|
42
|
+
/** `"` doubled: a SQLite identifier quoted from `sqlite_master`. */
|
|
43
|
+
function quoteIdentifier(name) {
|
|
44
|
+
return `"${name.replace(/"/g, '""')}"`;
|
|
45
|
+
}
|
|
46
|
+
async function snapshotSqlite(state, sourcePath, destPath, source) {
|
|
47
|
+
const { io } = state;
|
|
48
|
+
const driver = await io.sqlite();
|
|
49
|
+
const staging = `${destPath}.vacuum`;
|
|
50
|
+
await io.fs.mkdir(io.path.dirname(destPath), { recursive: true, mode: 0o700 });
|
|
51
|
+
try {
|
|
52
|
+
const src = driver.open(sourcePath, { readonly: true, create: false });
|
|
53
|
+
try {
|
|
54
|
+
// VACUUM INTO writes a clean, compacted copy; quotes are doubled for the literal.
|
|
55
|
+
src.exec(`VACUUM INTO '${staging.replace(/'/g, "''")}'`);
|
|
56
|
+
}
|
|
57
|
+
finally {
|
|
58
|
+
src.close();
|
|
59
|
+
}
|
|
60
|
+
// Made owner-only, then moved into place (same directory: no copy).
|
|
61
|
+
await chmodChecked(io.fs, staging, BACKUP_FILE_MODE);
|
|
62
|
+
await io.fs.rename(staging, destPath);
|
|
63
|
+
}
|
|
64
|
+
finally {
|
|
65
|
+
if ((await backupEntryKind(io, staging)) === "file")
|
|
66
|
+
await io.fs.remove(staging);
|
|
67
|
+
}
|
|
68
|
+
const dst = driver.open(destPath, { readonly: true, create: false });
|
|
69
|
+
try {
|
|
70
|
+
const tablesSeen = dst
|
|
71
|
+
.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name NOT LIKE 'sqlite_%'")
|
|
72
|
+
.all()
|
|
73
|
+
.map((row) => row.name);
|
|
74
|
+
let rowCount = 0;
|
|
75
|
+
for (const table of tablesSeen) {
|
|
76
|
+
rowCount += dst.prepare(`SELECT COUNT(*) AS n FROM ${quoteIdentifier(table)}`).get()?.n ?? 0;
|
|
77
|
+
}
|
|
78
|
+
recordFile(state, destPath, await hashFileNoFollow(io, destPath, state.targetId), source);
|
|
79
|
+
return { rowCount, tablesSeen };
|
|
80
|
+
}
|
|
81
|
+
finally {
|
|
82
|
+
dst.close();
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
/** Copy a directory tree, skipping (and counting) links, bounded in depth and entries. */
|
|
86
|
+
async function snapshotDirectory(state, sourceDir, destDir, relative, depth) {
|
|
87
|
+
const { io } = state;
|
|
88
|
+
if (depth > BACKUP_DIRECTORY_MAX_DEPTH || state.files.length > BACKUP_DIRECTORY_MAX_ENTRIES) {
|
|
89
|
+
throw new CapabilityError("A directory backup source exceeds the declared walk bounds.", "INVALID_INPUT", {
|
|
90
|
+
reason: "backup-source-too-large",
|
|
91
|
+
retryable: false,
|
|
92
|
+
details: { targetId: state.targetId, maxDepth: BACKUP_DIRECTORY_MAX_DEPTH, maxEntries: BACKUP_DIRECTORY_MAX_ENTRIES },
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
await io.fs.mkdir(destDir, { recursive: true, mode: 0o700 });
|
|
96
|
+
const entries = [...(await io.fs.list(sourceDir))].sort((a, b) => (a.name < b.name ? -1 : a.name > b.name ? 1 : 0));
|
|
97
|
+
for (const entry of entries) {
|
|
98
|
+
const src = io.path.join(sourceDir, entry.name);
|
|
99
|
+
const dst = io.path.join(destDir, entry.name);
|
|
100
|
+
const rel = relative ? `${relative}/${entry.name}` : entry.name;
|
|
101
|
+
if (entry.kind === "symlink") {
|
|
102
|
+
state.symlinks += 1;
|
|
103
|
+
}
|
|
104
|
+
else if (entry.kind === "directory") {
|
|
105
|
+
await snapshotDirectory(state, src, dst, rel, depth + 1);
|
|
106
|
+
}
|
|
107
|
+
else if (entry.kind === "file") {
|
|
108
|
+
await copySkippingLink(state, src, dst, rel);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Copy a file, or skip and count it when it is a link. A link that appears
|
|
114
|
+
* after this check (a race) is still never followed: the no-follow read
|
|
115
|
+
* refuses it and the run fails typed (`backup-source-symlink`).
|
|
116
|
+
*/
|
|
117
|
+
async function copySkippingLink(state, sourcePath, destPath, source) {
|
|
118
|
+
if ((await backupEntryKind(state.io, sourcePath)) === "symlink") {
|
|
119
|
+
state.symlinks += 1;
|
|
120
|
+
return;
|
|
121
|
+
}
|
|
122
|
+
await copyFile(state, sourcePath, destPath, source);
|
|
123
|
+
}
|
|
124
|
+
export async function runSnapshot(target, options) {
|
|
125
|
+
const startedAt = Date.now();
|
|
126
|
+
const { sourcePath, destDir } = options.paths;
|
|
127
|
+
const { io } = options;
|
|
128
|
+
const state = {
|
|
129
|
+
io,
|
|
130
|
+
targetId: target.id,
|
|
131
|
+
timestamp: options.timestamp,
|
|
132
|
+
skipHash: options.skipHash ?? false,
|
|
133
|
+
files: [],
|
|
134
|
+
symlinks: 0,
|
|
135
|
+
};
|
|
136
|
+
const outcome = (status, rowCount, error) => ({
|
|
137
|
+
targetId: target.id,
|
|
138
|
+
snapshotId: options.snapshotId,
|
|
139
|
+
status,
|
|
140
|
+
files: state.files,
|
|
141
|
+
rowCount,
|
|
142
|
+
durationMs: Date.now() - startedAt,
|
|
143
|
+
error,
|
|
144
|
+
});
|
|
145
|
+
let rowCount = null;
|
|
146
|
+
const tablesSeen = [];
|
|
147
|
+
let primary = "missing";
|
|
148
|
+
try {
|
|
149
|
+
const primaryName = io.path.basename(sourcePath);
|
|
150
|
+
primary = await backupEntryKind(io, sourcePath);
|
|
151
|
+
const destPath = snapshotPathFor(io.path, destDir, sourcePath, options.timestamp);
|
|
152
|
+
if (primary === "symlink") {
|
|
153
|
+
state.symlinks += 1;
|
|
154
|
+
}
|
|
155
|
+
else if (primary === "file" && target.source.kind === "sqlite") {
|
|
156
|
+
const probe = await snapshotSqlite(state, sourcePath, destPath, primaryName);
|
|
157
|
+
rowCount = probe.rowCount;
|
|
158
|
+
tablesSeen.push(...probe.tablesSeen);
|
|
159
|
+
}
|
|
160
|
+
else if (primary === "file" && target.source.kind === "file") {
|
|
161
|
+
await copySkippingLink(state, sourcePath, destPath, primaryName);
|
|
162
|
+
}
|
|
163
|
+
else if (primary === "directory" && target.source.kind === "directory") {
|
|
164
|
+
await snapshotDirectory(state, sourcePath, destPath, primaryName, 0);
|
|
165
|
+
}
|
|
166
|
+
else if (primary !== "missing") {
|
|
167
|
+
// A primary of another kind than declared (e.g. a directory where a file is declared).
|
|
168
|
+
throw new CapabilityError("A backup source is not the kind its target declares.", "INVALID_INPUT", {
|
|
169
|
+
reason: "backup-source-kind-mismatch",
|
|
170
|
+
retryable: false,
|
|
171
|
+
details: { targetId: target.id, declared: target.source.kind, found: primary },
|
|
172
|
+
});
|
|
173
|
+
}
|
|
174
|
+
// Sidecars (siblings of source — e.g. .key for identity, -wal/-shm for sqlite).
|
|
175
|
+
for (const sidecarName of target.source.sidecars) {
|
|
176
|
+
const sidecarSrc = io.path.join(io.path.dirname(sourcePath), sidecarName);
|
|
177
|
+
const kind = await backupEntryKind(io, sidecarSrc);
|
|
178
|
+
if (kind === "missing")
|
|
179
|
+
continue;
|
|
180
|
+
if (kind === "symlink") {
|
|
181
|
+
state.symlinks += 1;
|
|
182
|
+
continue;
|
|
183
|
+
}
|
|
184
|
+
await copySkippingLink(state, sidecarSrc, snapshotPathFor(io.path, destDir, sidecarSrc, options.timestamp), sidecarName);
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
catch (err) {
|
|
188
|
+
// The run's value-free facts (class, code, reason), never a thrown text that may name a path.
|
|
189
|
+
const failure = CaughtFailureSchema.parse(err);
|
|
190
|
+
return { ...outcome("failed", rowCount, failureLine(valueFreeFailure(failure))), failure: valueFreeFailure(failure) };
|
|
191
|
+
}
|
|
192
|
+
if (state.symlinks > 0) {
|
|
193
|
+
// Reported once for the run, value-free: what else exists was kept.
|
|
194
|
+
return outcome("failed", rowCount, `${BACKUP_SOURCE_SYMLINK} (${state.symlinks} skipped)`);
|
|
195
|
+
}
|
|
196
|
+
if (primary === "missing") {
|
|
197
|
+
if (target.source.required)
|
|
198
|
+
return outcome("failed", null, `source missing: ${sourcePath}`);
|
|
199
|
+
// Nothing the target declares exists: a distinct outcome, never success.
|
|
200
|
+
if (state.files.length === 0)
|
|
201
|
+
return outcome("empty", null, BACKUP_TARGET_EMPTY);
|
|
202
|
+
// The primary is optional and absent: what exists is kept; its table
|
|
203
|
+
// expectations have nothing to verify.
|
|
204
|
+
return outcome("success", null, null);
|
|
205
|
+
}
|
|
206
|
+
// Verification expectations
|
|
207
|
+
if (target.verify.minRows && rowCount !== null && rowCount < target.verify.minRows) {
|
|
208
|
+
return outcome("failed", rowCount, `verify failed: rowCount ${rowCount} < minRows ${target.verify.minRows}`);
|
|
209
|
+
}
|
|
210
|
+
for (const requiredTable of target.verify.requiredTables) {
|
|
211
|
+
if (!tablesSeen.includes(requiredTable)) {
|
|
212
|
+
return outcome("failed", rowCount, `verify failed: required table missing: ${requiredTable}`);
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
return outcome("verified", rowCount, null);
|
|
216
|
+
}
|
|
217
|
+
//# sourceMappingURL=snapshot.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"snapshot.js","sourceRoot":"","sources":["../../../src/backup/core/snapshot.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
declare const descriptor: {
|
|
2
|
+
kind: "docs/topic";
|
|
3
|
+
id: string;
|
|
4
|
+
title: string;
|
|
5
|
+
summary: string;
|
|
6
|
+
body: {
|
|
7
|
+
type: "markdown";
|
|
8
|
+
sourceType: "raw";
|
|
9
|
+
source: string;
|
|
10
|
+
};
|
|
11
|
+
parent: string;
|
|
12
|
+
order: number;
|
|
13
|
+
tags: string[];
|
|
14
|
+
surfaces: readonly ["cli", "in-app"];
|
|
15
|
+
hardware: readonly ["consumer", "cloud"];
|
|
16
|
+
enabled: boolean;
|
|
17
|
+
};
|
|
18
|
+
export default descriptor;
|
|
19
|
+
//# sourceMappingURL=backup.disaster-recovery.docs.descriptor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"backup.disaster-recovery.docs.descriptor.d.ts","sourceRoot":"","sources":["../../../src/backup/docs/backup.disaster-recovery.docs.descriptor.ts"],"names":[],"mappings":"AA4BA,QAAA,MAAM,UAAU;;;;;;;;;;;;;;;;CAaf,CAAC;AAEF,eAAe,UAAU,CAAC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
const source = `---
|
|
2
|
+
title: Disaster-recovery contracts
|
|
3
|
+
summary: Declare authority planes and verify isolated restore drills without handling secret values
|
|
4
|
+
tags: [backup, disaster-recovery, restore, rpo, rto]
|
|
5
|
+
parent: backup
|
|
6
|
+
order: 1
|
|
7
|
+
surfaces: [cli, in-app]
|
|
8
|
+
hardware: [consumer, cloud]
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Disaster-recovery contracts
|
|
12
|
+
|
|
13
|
+
The \`backup/recovery-plan\` kind is a declarative inventory of authoritative
|
|
14
|
+
and derived data planes. A plan records cross-provider destinations, retention,
|
|
15
|
+
encryption key references, restore dependencies, RPO/RTO, destructive-restore
|
|
16
|
+
approval, and the verification checks an isolated drill must produce.
|
|
17
|
+
|
|
18
|
+
Coverage is explicit: \`declared\` means a descriptor or destination exists;
|
|
19
|
+
\`implemented\` means a writer exists; \`verified\` means artifact integrity was
|
|
20
|
+
checked; and \`drill-verified\` requires isolated restore evidence. These states
|
|
21
|
+
are intentionally not interchangeable.
|
|
22
|
+
|
|
23
|
+
\`RecoveryDrillEvidenceSchema\` rejects production targets and any workflow that
|
|
24
|
+
reads or records secret values. \`verifyRecoveryDrillEvidence(plan, evidence)\`
|
|
25
|
+
then checks plane coverage, provider isolation, required checks, RPO/RTO, and
|
|
26
|
+
isolated-target cleanup.
|
|
27
|
+
`;
|
|
28
|
+
const descriptor = {
|
|
29
|
+
kind: "docs/topic",
|
|
30
|
+
id: "backup.disaster-recovery",
|
|
31
|
+
title: "Disaster-recovery contracts",
|
|
32
|
+
summary: "Declare authority planes and verify isolated restore drills without handling secret values",
|
|
33
|
+
body: { type: "markdown", sourceType: "raw", source },
|
|
34
|
+
parent: "backup",
|
|
35
|
+
order: 1,
|
|
36
|
+
tags: ["backup", "disaster-recovery", "restore", "rpo", "rto"],
|
|
37
|
+
surfaces: ["cli", "in-app"],
|
|
38
|
+
hardware: ["consumer", "cloud"],
|
|
39
|
+
enabled: true,
|
|
40
|
+
};
|
|
41
|
+
export default descriptor;
|
|
42
|
+
//# sourceMappingURL=backup.disaster-recovery.docs.descriptor.js.map
|