@vibesdotdev/storage 0.0.1
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/README.md +75 -0
- package/SPEC.md +60 -0
- package/dist/adapters/index.d.ts +14 -0
- package/dist/adapters/index.d.ts.map +1 -0
- package/dist/adapters/index.js +15 -0
- package/dist/adapters/index.js.map +1 -0
- package/dist/bridge/index.d.ts +3 -0
- package/dist/bridge/index.d.ts.map +1 -0
- package/dist/bridge/index.js +2 -0
- package/dist/bridge/index.js.map +1 -0
- package/dist/bridge/storage-kind-bridge.d.ts +27 -0
- package/dist/bridge/storage-kind-bridge.d.ts.map +1 -0
- package/dist/bridge/storage-kind-bridge.js +110 -0
- package/dist/bridge/storage-kind-bridge.js.map +1 -0
- package/dist/bridge/types.d.ts +45 -0
- package/dist/bridge/types.d.ts.map +1 -0
- package/dist/bridge/types.js +8 -0
- package/dist/bridge/types.js.map +1 -0
- package/dist/cli/commands/list/storage.list.cli-command.descriptor.d.ts +4 -0
- package/dist/cli/commands/list/storage.list.cli-command.descriptor.d.ts.map +1 -0
- package/dist/cli/commands/list/storage.list.cli-command.descriptor.js +18 -0
- package/dist/cli/commands/list/storage.list.cli-command.descriptor.js.map +1 -0
- package/dist/cli/commands/list/storage.list.cli-command.impl.d.ts +11 -0
- package/dist/cli/commands/list/storage.list.cli-command.impl.d.ts.map +1 -0
- package/dist/cli/commands/list/storage.list.cli-command.impl.js +48 -0
- package/dist/cli/commands/list/storage.list.cli-command.impl.js.map +1 -0
- package/dist/cli/commands/sync/pull/storage.sync.pull.cli-command.descriptor.d.ts +4 -0
- package/dist/cli/commands/sync/pull/storage.sync.pull.cli-command.descriptor.d.ts.map +1 -0
- package/dist/cli/commands/sync/pull/storage.sync.pull.cli-command.descriptor.js +26 -0
- package/dist/cli/commands/sync/pull/storage.sync.pull.cli-command.descriptor.js.map +1 -0
- package/dist/cli/commands/sync/pull/storage.sync.pull.cli-command.impl.d.ts +13 -0
- package/dist/cli/commands/sync/pull/storage.sync.pull.cli-command.impl.d.ts.map +1 -0
- package/dist/cli/commands/sync/pull/storage.sync.pull.cli-command.impl.js +136 -0
- package/dist/cli/commands/sync/pull/storage.sync.pull.cli-command.impl.js.map +1 -0
- package/dist/cli/commands/sync/push/storage.sync.push.cli-command.descriptor.d.ts +4 -0
- package/dist/cli/commands/sync/push/storage.sync.push.cli-command.descriptor.d.ts.map +1 -0
- package/dist/cli/commands/sync/push/storage.sync.push.cli-command.descriptor.js +26 -0
- package/dist/cli/commands/sync/push/storage.sync.push.cli-command.descriptor.js.map +1 -0
- package/dist/cli/commands/sync/push/storage.sync.push.cli-command.impl.d.ts +13 -0
- package/dist/cli/commands/sync/push/storage.sync.push.cli-command.impl.d.ts.map +1 -0
- package/dist/cli/commands/sync/push/storage.sync.push.cli-command.impl.js +165 -0
- package/dist/cli/commands/sync/push/storage.sync.push.cli-command.impl.js.map +1 -0
- package/dist/cli/commands/sync/resolve/storage.sync.resolve.cli-command.descriptor.d.ts +4 -0
- package/dist/cli/commands/sync/resolve/storage.sync.resolve.cli-command.descriptor.d.ts.map +1 -0
- package/dist/cli/commands/sync/resolve/storage.sync.resolve.cli-command.descriptor.js +20 -0
- package/dist/cli/commands/sync/resolve/storage.sync.resolve.cli-command.descriptor.js.map +1 -0
- package/dist/cli/commands/sync/resolve/storage.sync.resolve.cli-command.impl.d.ts +12 -0
- package/dist/cli/commands/sync/resolve/storage.sync.resolve.cli-command.impl.d.ts.map +1 -0
- package/dist/cli/commands/sync/resolve/storage.sync.resolve.cli-command.impl.js +95 -0
- package/dist/cli/commands/sync/resolve/storage.sync.resolve.cli-command.impl.js.map +1 -0
- package/dist/cli/commands/sync/status/storage.sync.status.cli-command.descriptor.d.ts +4 -0
- package/dist/cli/commands/sync/status/storage.sync.status.cli-command.descriptor.d.ts.map +1 -0
- package/dist/cli/commands/sync/status/storage.sync.status.cli-command.descriptor.js +15 -0
- package/dist/cli/commands/sync/status/storage.sync.status.cli-command.descriptor.js.map +1 -0
- package/dist/cli/commands/sync/status/storage.sync.status.cli-command.impl.d.ts +13 -0
- package/dist/cli/commands/sync/status/storage.sync.status.cli-command.impl.d.ts.map +1 -0
- package/dist/cli/commands/sync/status/storage.sync.status.cli-command.impl.js +150 -0
- package/dist/cli/commands/sync/status/storage.sync.status.cli-command.impl.js.map +1 -0
- package/dist/cli/context.consumer.d.ts +26 -0
- package/dist/cli/context.consumer.d.ts.map +1 -0
- package/dist/cli/context.consumer.js +164 -0
- package/dist/cli/context.consumer.js.map +1 -0
- package/dist/cli/storage.cli-group.descriptor.d.ts +4 -0
- package/dist/cli/storage.cli-group.descriptor.d.ts.map +1 -0
- package/dist/cli/storage.cli-group.descriptor.js +11 -0
- package/dist/cli/storage.cli-group.descriptor.js.map +1 -0
- package/dist/cli/storage.sync.cli-group.descriptor.d.ts +4 -0
- package/dist/cli/storage.sync.cli-group.descriptor.d.ts.map +1 -0
- package/dist/cli/storage.sync.cli-group.descriptor.js +12 -0
- package/dist/cli/storage.sync.cli-group.descriptor.js.map +1 -0
- package/dist/cli/types.d.ts +26 -0
- package/dist/cli/types.d.ts.map +1 -0
- package/dist/cli/types.js +11 -0
- package/dist/cli/types.js.map +1 -0
- package/dist/client/index.d.ts +10 -0
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client/index.js +10 -0
- package/dist/client/index.js.map +1 -0
- package/dist/client/list-browsable-adapters.d.ts +31 -0
- package/dist/client/list-browsable-adapters.d.ts.map +1 -0
- package/dist/client/list-browsable-adapters.js +40 -0
- package/dist/client/list-browsable-adapters.js.map +1 -0
- package/dist/daemon/commands/sync.d.ts +23 -0
- package/dist/daemon/commands/sync.d.ts.map +1 -0
- package/dist/daemon/commands/sync.js +169 -0
- package/dist/daemon/commands/sync.js.map +1 -0
- package/dist/docs/adapters.docs.descriptor.d.ts +4 -0
- package/dist/docs/adapters.docs.descriptor.d.ts.map +1 -0
- package/dist/docs/adapters.docs.descriptor.js +223 -0
- package/dist/docs/adapters.docs.descriptor.js.map +1 -0
- package/dist/docs/manifests.docs.descriptor.d.ts +4 -0
- package/dist/docs/manifests.docs.descriptor.d.ts.map +1 -0
- package/dist/docs/manifests.docs.descriptor.js +316 -0
- package/dist/docs/manifests.docs.descriptor.js.map +1 -0
- package/dist/docs/records.docs.descriptor.d.ts +4 -0
- package/dist/docs/records.docs.descriptor.d.ts.map +1 -0
- package/dist/docs/records.docs.descriptor.js +269 -0
- package/dist/docs/records.docs.descriptor.js.map +1 -0
- package/dist/docs/sync.docs.descriptor.d.ts +4 -0
- package/dist/docs/sync.docs.descriptor.d.ts.map +1 -0
- package/dist/docs/sync.docs.descriptor.js +279 -0
- package/dist/docs/sync.docs.descriptor.js.map +1 -0
- package/dist/index.d.ts +27 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +29 -0
- package/dist/index.js.map +1 -0
- package/dist/interfaces/adapter.d.ts +382 -0
- package/dist/interfaces/adapter.d.ts.map +1 -0
- package/dist/interfaces/adapter.js +11 -0
- package/dist/interfaces/adapter.js.map +1 -0
- package/dist/interfaces/document-store.d.ts +62 -0
- package/dist/interfaces/document-store.d.ts.map +1 -0
- package/dist/interfaces/document-store.js +8 -0
- package/dist/interfaces/document-store.js.map +1 -0
- package/dist/interfaces/index.d.ts +17 -0
- package/dist/interfaces/index.d.ts.map +1 -0
- package/dist/interfaces/index.js +24 -0
- package/dist/interfaces/index.js.map +1 -0
- package/dist/interfaces/key-value.d.ts +95 -0
- package/dist/interfaces/key-value.d.ts.map +1 -0
- package/dist/interfaces/key-value.js +8 -0
- package/dist/interfaces/key-value.js.map +1 -0
- package/dist/interfaces/query-builder.d.ts +31 -0
- package/dist/interfaces/query-builder.d.ts.map +1 -0
- package/dist/interfaces/query-builder.js +11 -0
- package/dist/interfaces/query-builder.js.map +1 -0
- package/dist/interfaces/record/index.d.ts +7 -0
- package/dist/interfaces/record/index.d.ts.map +1 -0
- package/dist/interfaces/record/index.js +7 -0
- package/dist/interfaces/record/index.js.map +1 -0
- package/dist/interfaces/record/interface.d.ts +593 -0
- package/dist/interfaces/record/interface.d.ts.map +1 -0
- package/dist/interfaces/record/interface.js +49 -0
- package/dist/interfaces/record/interface.js.map +1 -0
- package/dist/interfaces/repository.d.ts +262 -0
- package/dist/interfaces/repository.d.ts.map +1 -0
- package/dist/interfaces/repository.js +8 -0
- package/dist/interfaces/repository.js.map +1 -0
- package/dist/interfaces/schema/index.d.ts +8 -0
- package/dist/interfaces/schema/index.d.ts.map +1 -0
- package/dist/interfaces/schema/index.js +10 -0
- package/dist/interfaces/schema/index.js.map +1 -0
- package/dist/interfaces/schema/schema-interface.d.ts +516 -0
- package/dist/interfaces/schema/schema-interface.d.ts.map +1 -0
- package/dist/interfaces/schema/schema-interface.js +31 -0
- package/dist/interfaces/schema/schema-interface.js.map +1 -0
- package/dist/interfaces/schema/table-interface.d.ts +250 -0
- package/dist/interfaces/schema/table-interface.d.ts.map +1 -0
- package/dist/interfaces/schema/table-interface.js +31 -0
- package/dist/interfaces/schema/table-interface.js.map +1 -0
- package/dist/interfaces/storage-consumer-fs.d.ts +40 -0
- package/dist/interfaces/storage-consumer-fs.d.ts.map +1 -0
- package/dist/interfaces/storage-consumer-fs.js +42 -0
- package/dist/interfaces/storage-consumer-fs.js.map +1 -0
- package/dist/manifest/base.d.ts +187 -0
- package/dist/manifest/base.d.ts.map +1 -0
- package/dist/manifest/base.js +516 -0
- package/dist/manifest/base.js.map +1 -0
- package/dist/manifest/cloud-sync.consumer.d.ts +7 -0
- package/dist/manifest/cloud-sync.consumer.d.ts.map +1 -0
- package/dist/manifest/cloud-sync.consumer.js +82 -0
- package/dist/manifest/cloud-sync.consumer.js.map +1 -0
- package/dist/manifest/index.d.ts +7 -0
- package/dist/manifest/index.d.ts.map +1 -0
- package/dist/manifest/index.js +7 -0
- package/dist/manifest/index.js.map +1 -0
- package/dist/manifest/source-policy.d.ts +8 -0
- package/dist/manifest/source-policy.d.ts.map +1 -0
- package/dist/manifest/source-policy.js +62 -0
- package/dist/manifest/source-policy.js.map +1 -0
- package/dist/paths.d.ts +6 -0
- package/dist/paths.d.ts.map +1 -0
- package/dist/paths.js +152 -0
- package/dist/paths.js.map +1 -0
- package/dist/policy/context.d.ts +9 -0
- package/dist/policy/context.d.ts.map +1 -0
- package/dist/policy/context.js +29 -0
- package/dist/policy/context.js.map +1 -0
- package/dist/policy/index.d.ts +4 -0
- package/dist/policy/index.d.ts.map +1 -0
- package/dist/policy/index.js +4 -0
- package/dist/policy/index.js.map +1 -0
- package/dist/policy/overrides.d.ts +40 -0
- package/dist/policy/overrides.d.ts.map +1 -0
- package/dist/policy/overrides.js +37 -0
- package/dist/policy/overrides.js.map +1 -0
- package/dist/policy/persistence.d.ts +38 -0
- package/dist/policy/persistence.d.ts.map +1 -0
- package/dist/policy/persistence.js +65 -0
- package/dist/policy/persistence.js.map +1 -0
- package/dist/policy/types.d.ts +21 -0
- package/dist/policy/types.d.ts.map +1 -0
- package/dist/policy/types.js +7 -0
- package/dist/policy/types.js.map +1 -0
- package/dist/record/base.d.ts +186 -0
- package/dist/record/base.d.ts.map +1 -0
- package/dist/record/base.js +1437 -0
- package/dist/record/base.js.map +1 -0
- package/dist/record/events.d.ts +71 -0
- package/dist/record/events.d.ts.map +1 -0
- package/dist/record/events.js +52 -0
- package/dist/record/events.js.map +1 -0
- package/dist/record/extensions.d.ts +51 -0
- package/dist/record/extensions.d.ts.map +1 -0
- package/dist/record/extensions.js +222 -0
- package/dist/record/extensions.js.map +1 -0
- package/dist/record/index.d.ts +7 -0
- package/dist/record/index.d.ts.map +1 -0
- package/dist/record/index.js +7 -0
- package/dist/record/index.js.map +1 -0
- package/dist/resolver/storage-backed-resolver.d.ts +23 -0
- package/dist/resolver/storage-backed-resolver.d.ts.map +1 -0
- package/dist/resolver/storage-backed-resolver.js +187 -0
- package/dist/resolver/storage-backed-resolver.js.map +1 -0
- package/dist/schemas/adapter-descriptor.d.ts +108 -0
- package/dist/schemas/adapter-descriptor.d.ts.map +1 -0
- package/dist/schemas/adapter-descriptor.js +101 -0
- package/dist/schemas/adapter-descriptor.js.map +1 -0
- package/dist/schemas/index.d.ts +14 -0
- package/dist/schemas/index.d.ts.map +1 -0
- package/dist/schemas/index.js +12 -0
- package/dist/schemas/index.js.map +1 -0
- package/dist/schemas/manifest-descriptor.d.ts +110 -0
- package/dist/schemas/manifest-descriptor.d.ts.map +1 -0
- package/dist/schemas/manifest-descriptor.js +114 -0
- package/dist/schemas/manifest-descriptor.js.map +1 -0
- package/dist/schemas/record/descriptor.d.ts +570 -0
- package/dist/schemas/record/descriptor.d.ts.map +1 -0
- package/dist/schemas/record/descriptor.js +389 -0
- package/dist/schemas/record/descriptor.js.map +1 -0
- package/dist/schemas/record/index.d.ts +8 -0
- package/dist/schemas/record/index.d.ts.map +1 -0
- package/dist/schemas/record/index.js +7 -0
- package/dist/schemas/record/index.js.map +1 -0
- package/dist/schemas/record/relation.d.ts +36 -0
- package/dist/schemas/record/relation.d.ts.map +1 -0
- package/dist/schemas/record/relation.js +37 -0
- package/dist/schemas/record/relation.js.map +1 -0
- package/dist/schemas/schema/descriptor.d.ts +231 -0
- package/dist/schemas/schema/descriptor.d.ts.map +1 -0
- package/dist/schemas/schema/descriptor.js +205 -0
- package/dist/schemas/schema/descriptor.js.map +1 -0
- package/dist/schemas/schema/index.d.ts +7 -0
- package/dist/schemas/schema/index.d.ts.map +1 -0
- package/dist/schemas/schema/index.js +7 -0
- package/dist/schemas/schema/index.js.map +1 -0
- package/dist/schemas/sync-bridge-descriptor.d.ts +124 -0
- package/dist/schemas/sync-bridge-descriptor.d.ts.map +1 -0
- package/dist/schemas/sync-bridge-descriptor.js +67 -0
- package/dist/schemas/sync-bridge-descriptor.js.map +1 -0
- package/dist/server/manifest-route.d.ts +92 -0
- package/dist/server/manifest-route.d.ts.map +1 -0
- package/dist/server/manifest-route.js +226 -0
- package/dist/server/manifest-route.js.map +1 -0
- package/dist/storage-policy.context.descriptor.d.ts +16 -0
- package/dist/storage-policy.context.descriptor.d.ts.map +1 -0
- package/dist/storage-policy.context.descriptor.js +16 -0
- package/dist/storage-policy.context.descriptor.js.map +1 -0
- package/dist/storage-policy.context.server.d.ts +14 -0
- package/dist/storage-policy.context.server.d.ts.map +1 -0
- package/dist/storage-policy.context.server.js +27 -0
- package/dist/storage-policy.context.server.js.map +1 -0
- package/dist/storage.plugin.d.ts +38 -0
- package/dist/storage.plugin.d.ts.map +1 -0
- package/dist/storage.plugin.js +204 -0
- package/dist/storage.plugin.js.map +1 -0
- package/dist/sync/cloud-pull.d.ts +15 -0
- package/dist/sync/cloud-pull.d.ts.map +1 -0
- package/dist/sync/cloud-pull.js +130 -0
- package/dist/sync/cloud-pull.js.map +1 -0
- package/dist/sync/cloud-record-crud-config.d.ts +19 -0
- package/dist/sync/cloud-record-crud-config.d.ts.map +1 -0
- package/dist/sync/cloud-record-crud-config.js +22 -0
- package/dist/sync/cloud-record-crud-config.js.map +1 -0
- package/dist/sync/record-sync-bridge.d.ts +5 -0
- package/dist/sync/record-sync-bridge.d.ts.map +1 -0
- package/dist/sync/record-sync-bridge.js +121 -0
- package/dist/sync/record-sync-bridge.js.map +1 -0
- package/dist/sync/resolve-sync-target.d.ts +23 -0
- package/dist/sync/resolve-sync-target.d.ts.map +1 -0
- package/dist/sync/resolve-sync-target.js +45 -0
- package/dist/sync/resolve-sync-target.js.map +1 -0
- package/dist/sync/schemas/cloud-pull.d.ts +25 -0
- package/dist/sync/schemas/cloud-pull.d.ts.map +1 -0
- package/dist/sync/schemas/cloud-pull.js +7 -0
- package/dist/sync/schemas/cloud-pull.js.map +1 -0
- package/dist/sync/schemas/index.d.ts +9 -0
- package/dist/sync/schemas/index.d.ts.map +1 -0
- package/dist/sync/schemas/index.js +9 -0
- package/dist/sync/schemas/index.js.map +1 -0
- package/dist/sync/schemas/sync-helpers.d.ts +17 -0
- package/dist/sync/schemas/sync-helpers.d.ts.map +1 -0
- package/dist/sync/schemas/sync-helpers.js +7 -0
- package/dist/sync/schemas/sync-helpers.js.map +1 -0
- package/dist/sync/schemas/sync-state.d.ts +65 -0
- package/dist/sync/schemas/sync-state.d.ts.map +1 -0
- package/dist/sync/schemas/sync-state.js +32 -0
- package/dist/sync/schemas/sync-state.js.map +1 -0
- package/dist/sync/sync-bridge.d.ts +80 -0
- package/dist/sync/sync-bridge.d.ts.map +1 -0
- package/dist/sync/sync-bridge.js +617 -0
- package/dist/sync/sync-bridge.js.map +1 -0
- package/dist/sync/sync-manifest.d.ts +20 -0
- package/dist/sync/sync-manifest.d.ts.map +1 -0
- package/dist/sync/sync-manifest.js +140 -0
- package/dist/sync/sync-manifest.js.map +1 -0
- package/dist/sync/sync-state.consumer.d.ts +23 -0
- package/dist/sync/sync-state.consumer.d.ts.map +1 -0
- package/dist/sync/sync-state.consumer.js +111 -0
- package/dist/sync/sync-state.consumer.js.map +1 -0
- package/dist/transform/index.d.ts +75 -0
- package/dist/transform/index.d.ts.map +1 -0
- package/dist/transform/index.js +81 -0
- package/dist/transform/index.js.map +1 -0
- package/dist/transform/transform-descriptor.d.ts +51 -0
- package/dist/transform/transform-descriptor.d.ts.map +1 -0
- package/dist/transform/transform-descriptor.js +30 -0
- package/dist/transform/transform-descriptor.js.map +1 -0
- package/dist/tui/storage-explorer.descriptor.d.ts +14 -0
- package/dist/tui/storage-explorer.descriptor.d.ts.map +1 -0
- package/dist/tui/storage-explorer.descriptor.js +29 -0
- package/dist/tui/storage-explorer.descriptor.js.map +1 -0
- package/dist/tui/storage-explorer.impl.consumer.d.ts +11 -0
- package/dist/tui/storage-explorer.impl.consumer.d.ts.map +1 -0
- package/dist/tui/storage-explorer.impl.consumer.js +13 -0
- package/dist/tui/storage-explorer.impl.consumer.js.map +1 -0
- package/dist/tui/storage-open.descriptor.d.ts +14 -0
- package/dist/tui/storage-open.descriptor.d.ts.map +1 -0
- package/dist/tui/storage-open.descriptor.js +28 -0
- package/dist/tui/storage-open.descriptor.js.map +1 -0
- package/dist/tui/storage-open.impl.consumer.d.ts +11 -0
- package/dist/tui/storage-open.impl.consumer.d.ts.map +1 -0
- package/dist/tui/storage-open.impl.consumer.js +13 -0
- package/dist/tui/storage-open.impl.consumer.js.map +1 -0
- package/dist/utils/error-context.d.ts +2 -0
- package/dist/utils/error-context.d.ts.map +1 -0
- package/dist/utils/error-context.js +17 -0
- package/dist/utils/error-context.js.map +1 -0
- package/package.json +241 -0
- package/src/adapters/index.ts +13 -0
- package/src/bridge/index.ts +2 -0
- package/src/bridge/storage-kind-bridge.ts +131 -0
- package/src/bridge/types.ts +46 -0
- package/src/cli/commands/list/storage.list.cli-command.descriptor.ts +20 -0
- package/src/cli/commands/list/storage.list.cli-command.impl.ts +72 -0
- package/src/cli/commands/sync/pull/storage.sync.pull.cli-command.descriptor.ts +28 -0
- package/src/cli/commands/sync/pull/storage.sync.pull.cli-command.impl.ts +171 -0
- package/src/cli/commands/sync/push/storage.sync.push.cli-command.descriptor.ts +28 -0
- package/src/cli/commands/sync/push/storage.sync.push.cli-command.impl.ts +213 -0
- package/src/cli/commands/sync/resolve/storage.sync.resolve.cli-command.descriptor.ts +22 -0
- package/src/cli/commands/sync/resolve/storage.sync.resolve.cli-command.impl.ts +129 -0
- package/src/cli/commands/sync/status/storage.sync.status.cli-command.descriptor.ts +17 -0
- package/src/cli/commands/sync/status/storage.sync.status.cli-command.impl.ts +192 -0
- package/src/cli/context.consumer.ts +195 -0
- package/src/cli/storage.cli-group.descriptor.ts +13 -0
- package/src/cli/storage.sync.cli-group.descriptor.ts +14 -0
- package/src/cli/types.ts +25 -0
- package/src/client/index.ts +10 -0
- package/src/client/list-browsable-adapters.ts +42 -0
- package/src/daemon/commands/sync.ts +225 -0
- package/src/docs/adapters.docs.descriptor.ts +225 -0
- package/src/docs/manifests.docs.descriptor.ts +318 -0
- package/src/docs/records.docs.descriptor.ts +271 -0
- package/src/docs/sync.docs.descriptor.ts +281 -0
- package/src/index.ts +109 -0
- package/src/interfaces/adapter.ts +451 -0
- package/src/interfaces/document-store.ts +74 -0
- package/src/interfaces/index.ts +117 -0
- package/src/interfaces/key-value.ts +112 -0
- package/src/interfaces/query-builder.ts +31 -0
- package/src/interfaces/record/index.ts +58 -0
- package/src/interfaces/record/interface.ts +723 -0
- package/src/interfaces/repository.ts +300 -0
- package/src/interfaces/schema/index.ts +37 -0
- package/src/interfaces/schema/schema-interface.ts +586 -0
- package/src/interfaces/schema/table-interface.ts +314 -0
- package/src/interfaces/storage-consumer-fs.ts +66 -0
- package/src/manifest/base.ts +594 -0
- package/src/manifest/cloud-sync.consumer.ts +120 -0
- package/src/manifest/index.ts +7 -0
- package/src/manifest/source-policy.ts +74 -0
- package/src/paths.ts +171 -0
- package/src/policy/context.ts +30 -0
- package/src/policy/index.ts +20 -0
- package/src/policy/overrides.ts +46 -0
- package/src/policy/persistence.ts +117 -0
- package/src/policy/types.ts +28 -0
- package/src/record/base.ts +1872 -0
- package/src/record/events.ts +56 -0
- package/src/record/extensions.ts +308 -0
- package/src/record/index.ts +7 -0
- package/src/resolver/storage-backed-resolver.ts +255 -0
- package/src/schemas/adapter-descriptor.ts +128 -0
- package/src/schemas/index.ts +104 -0
- package/src/schemas/manifest-descriptor.ts +143 -0
- package/src/schemas/record/descriptor.ts +621 -0
- package/src/schemas/record/index.ts +60 -0
- package/src/schemas/record/relation.ts +49 -0
- package/src/schemas/schema/descriptor.ts +278 -0
- package/src/schemas/schema/index.ts +14 -0
- package/src/schemas/sync-bridge-descriptor.ts +143 -0
- package/src/server/manifest-route.ts +319 -0
- package/src/storage-policy.context.descriptor.ts +17 -0
- package/src/storage-policy.context.server.ts +34 -0
- package/src/storage.plugin.ts +264 -0
- package/src/sync/cloud-pull.ts +202 -0
- package/src/sync/cloud-record-crud-config.ts +41 -0
- package/src/sync/record-sync-bridge.ts +183 -0
- package/src/sync/resolve-sync-target.ts +57 -0
- package/src/sync/schemas/cloud-pull.ts +26 -0
- package/src/sync/schemas/index.ts +18 -0
- package/src/sync/schemas/sync-helpers.ts +18 -0
- package/src/sync/schemas/sync-state.ts +41 -0
- package/src/sync/sync-bridge.ts +763 -0
- package/src/sync/sync-manifest.ts +212 -0
- package/src/sync/sync-state.consumer.ts +144 -0
- package/src/transform/index.ts +130 -0
- package/src/transform/transform-descriptor.ts +53 -0
- package/src/tui/storage-explorer.descriptor.ts +32 -0
- package/src/tui/storage-explorer.impl.consumer.ts +14 -0
- package/src/tui/storage-open.descriptor.ts +31 -0
- package/src/tui/storage-open.impl.consumer.ts +14 -0
- package/src/utils/error-context.ts +19 -0
|
@@ -0,0 +1,516 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Storage Schema Interface
|
|
3
|
+
*
|
|
4
|
+
* Defines the interface for multi-table schemas with relations.
|
|
5
|
+
* This is what gets resolved when you query for a storage/schema descriptor.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```typescript
|
|
9
|
+
* const schema = await runtime
|
|
10
|
+
* .query('storage/schema')
|
|
11
|
+
* .withId('session')
|
|
12
|
+
* .resolve();
|
|
13
|
+
*
|
|
14
|
+
* // Access individual tables
|
|
15
|
+
* const sessions = schema.table('sessions');
|
|
16
|
+
* const todos = schema.table('todos');
|
|
17
|
+
*
|
|
18
|
+
* // Cross-table operations
|
|
19
|
+
* const sessionWithTodos = await schema.getTransaction(async (tx) => {
|
|
20
|
+
* const session = await sessions.create({ ... });
|
|
21
|
+
* await todos.create({ sessionId: session.id, title: 'First todo' });
|
|
22
|
+
* return session;
|
|
23
|
+
* });
|
|
24
|
+
*
|
|
25
|
+
* // Schema-level operations
|
|
26
|
+
* await schema.migrate();
|
|
27
|
+
* await schema.backup();
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
30
|
+
import type { z } from 'zod/v4';
|
|
31
|
+
import type { StorageRelation } from '../../schemas/record';
|
|
32
|
+
import type { StorageTableDefinition } from '../../schemas/schema';
|
|
33
|
+
import type { StorageTableInterface } from './table-interface';
|
|
34
|
+
import type { TransactionFn, TransactionContext } from '../record';
|
|
35
|
+
/**
|
|
36
|
+
* Migration status
|
|
37
|
+
*/
|
|
38
|
+
export interface MigrationStatus {
|
|
39
|
+
/** Current schema version */
|
|
40
|
+
currentVersion: number;
|
|
41
|
+
/** Latest available version */
|
|
42
|
+
latestVersion: number;
|
|
43
|
+
/** Whether migrations are pending */
|
|
44
|
+
pending: boolean;
|
|
45
|
+
/** List of applied migrations */
|
|
46
|
+
applied: Array<{
|
|
47
|
+
version: number;
|
|
48
|
+
name?: string;
|
|
49
|
+
appliedAt: Date;
|
|
50
|
+
}>;
|
|
51
|
+
/** List of pending migrations */
|
|
52
|
+
pendingMigrations: Array<{
|
|
53
|
+
version: number;
|
|
54
|
+
name?: string;
|
|
55
|
+
}>;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Migration options
|
|
59
|
+
*/
|
|
60
|
+
export interface MigrationOptions {
|
|
61
|
+
/** Target version (default: latest) */
|
|
62
|
+
targetVersion?: number;
|
|
63
|
+
/** Dry run (don't actually apply migrations) */
|
|
64
|
+
dryRun?: boolean;
|
|
65
|
+
/** Skip migrations that fail */
|
|
66
|
+
skipFailures?: boolean;
|
|
67
|
+
/** Force apply even if already applied */
|
|
68
|
+
force?: boolean;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Migration result
|
|
72
|
+
*/
|
|
73
|
+
export interface MigrationResult {
|
|
74
|
+
/** Whether migration was successful */
|
|
75
|
+
success: boolean;
|
|
76
|
+
/** Applied migrations */
|
|
77
|
+
applied: Array<{
|
|
78
|
+
version: number;
|
|
79
|
+
name?: string;
|
|
80
|
+
duration: number;
|
|
81
|
+
}>;
|
|
82
|
+
/** Failed migrations */
|
|
83
|
+
failed: Array<{
|
|
84
|
+
version: number;
|
|
85
|
+
name?: string;
|
|
86
|
+
error: Error;
|
|
87
|
+
}>;
|
|
88
|
+
/** Total duration */
|
|
89
|
+
duration: number;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Backup options
|
|
93
|
+
*/
|
|
94
|
+
export interface BackupOptions {
|
|
95
|
+
/** Backup name/identifier */
|
|
96
|
+
name?: string;
|
|
97
|
+
/** Tables to include (default: all) */
|
|
98
|
+
tables?: string[];
|
|
99
|
+
/** Tables to exclude */
|
|
100
|
+
excludeTables?: string[];
|
|
101
|
+
/** Include schema definition */
|
|
102
|
+
includeSchema?: boolean;
|
|
103
|
+
/** Compression algorithm */
|
|
104
|
+
compression?: 'none' | 'gzip' | 'brotli';
|
|
105
|
+
/** Output path */
|
|
106
|
+
path?: string;
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Backup result
|
|
110
|
+
*/
|
|
111
|
+
export interface BackupResult {
|
|
112
|
+
/** Backup ID */
|
|
113
|
+
id: string;
|
|
114
|
+
/** Backup name */
|
|
115
|
+
name: string;
|
|
116
|
+
/** Backup path */
|
|
117
|
+
path: string;
|
|
118
|
+
/** Backup size in bytes */
|
|
119
|
+
size: number;
|
|
120
|
+
/** Tables included */
|
|
121
|
+
tables: string[];
|
|
122
|
+
/** Backup timestamp */
|
|
123
|
+
createdAt: Date;
|
|
124
|
+
/** Checksum for verification */
|
|
125
|
+
checksum: string;
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Restore options
|
|
129
|
+
*/
|
|
130
|
+
export interface RestoreOptions {
|
|
131
|
+
/** Backup ID or path */
|
|
132
|
+
backup: string;
|
|
133
|
+
/** Tables to restore (default: all in backup) */
|
|
134
|
+
tables?: string[];
|
|
135
|
+
/** Drop existing tables before restore */
|
|
136
|
+
dropExisting?: boolean;
|
|
137
|
+
/** Verify checksum before restore */
|
|
138
|
+
verifyChecksum?: boolean;
|
|
139
|
+
/** Continue on errors */
|
|
140
|
+
continueOnError?: boolean;
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Restore result
|
|
144
|
+
*/
|
|
145
|
+
export interface RestoreResult {
|
|
146
|
+
/** Whether restore was successful */
|
|
147
|
+
success: boolean;
|
|
148
|
+
/** Restored tables */
|
|
149
|
+
tables: string[];
|
|
150
|
+
/** Number of records restored per table */
|
|
151
|
+
recordCounts: Record<string, number>;
|
|
152
|
+
/** Errors encountered */
|
|
153
|
+
errors: Array<{
|
|
154
|
+
table: string;
|
|
155
|
+
error: Error;
|
|
156
|
+
}>;
|
|
157
|
+
/** Duration in milliseconds */
|
|
158
|
+
duration: number;
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Sync status
|
|
162
|
+
*/
|
|
163
|
+
export interface SyncStatus {
|
|
164
|
+
/** Whether sync is enabled */
|
|
165
|
+
enabled: boolean;
|
|
166
|
+
/** Last sync time */
|
|
167
|
+
lastSync?: Date;
|
|
168
|
+
/** Sync direction */
|
|
169
|
+
direction: 'bidirectional' | 'to-cloud' | 'from-cloud';
|
|
170
|
+
/** Whether sync is in progress */
|
|
171
|
+
inProgress: boolean;
|
|
172
|
+
/** Number of pending changes */
|
|
173
|
+
pendingChanges: number;
|
|
174
|
+
/** Sync errors */
|
|
175
|
+
errors: Array<{
|
|
176
|
+
table: string;
|
|
177
|
+
error: Error;
|
|
178
|
+
timestamp: Date;
|
|
179
|
+
}>;
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Sync options
|
|
183
|
+
*/
|
|
184
|
+
export interface SyncOptions {
|
|
185
|
+
/** Force sync even if already in progress */
|
|
186
|
+
force?: boolean;
|
|
187
|
+
/** Tables to sync (default: all) */
|
|
188
|
+
tables?: string[];
|
|
189
|
+
/** Direction override */
|
|
190
|
+
direction?: 'bidirectional' | 'to-cloud' | 'from-cloud';
|
|
191
|
+
/** Dry run (don't actually sync) */
|
|
192
|
+
dryRun?: boolean;
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* Sync result
|
|
196
|
+
*/
|
|
197
|
+
export interface SyncResult {
|
|
198
|
+
/** Whether sync was successful */
|
|
199
|
+
success: boolean;
|
|
200
|
+
/** Number of changes pushed */
|
|
201
|
+
pushed: number;
|
|
202
|
+
/** Number of changes pulled */
|
|
203
|
+
pulled: number;
|
|
204
|
+
/** Conflicts detected */
|
|
205
|
+
conflicts: Array<{
|
|
206
|
+
table: string;
|
|
207
|
+
id: string;
|
|
208
|
+
local: unknown;
|
|
209
|
+
remote: unknown;
|
|
210
|
+
}>;
|
|
211
|
+
/** Duration in milliseconds */
|
|
212
|
+
duration: number;
|
|
213
|
+
}
|
|
214
|
+
/**
|
|
215
|
+
* Cross-table query options
|
|
216
|
+
*/
|
|
217
|
+
export interface CrossTableQueryOptions {
|
|
218
|
+
/** Tables to include */
|
|
219
|
+
tables: string[];
|
|
220
|
+
/** Join conditions */
|
|
221
|
+
joins: Array<{
|
|
222
|
+
from: {
|
|
223
|
+
table: string;
|
|
224
|
+
field: string;
|
|
225
|
+
};
|
|
226
|
+
to: {
|
|
227
|
+
table: string;
|
|
228
|
+
field: string;
|
|
229
|
+
};
|
|
230
|
+
type?: 'inner' | 'left' | 'right' | 'full';
|
|
231
|
+
}>;
|
|
232
|
+
/** Filter conditions */
|
|
233
|
+
where?: Record<string, unknown>;
|
|
234
|
+
/** Order by */
|
|
235
|
+
orderBy?: Array<{
|
|
236
|
+
table: string;
|
|
237
|
+
field: string;
|
|
238
|
+
direction: 'asc' | 'desc';
|
|
239
|
+
}>;
|
|
240
|
+
/** Limit */
|
|
241
|
+
limit?: number;
|
|
242
|
+
/** Offset */
|
|
243
|
+
offset?: number;
|
|
244
|
+
}
|
|
245
|
+
/**
|
|
246
|
+
* Schema statistics
|
|
247
|
+
*/
|
|
248
|
+
export interface SchemaStatistics {
|
|
249
|
+
/** Table statistics */
|
|
250
|
+
tables: Record<string, {
|
|
251
|
+
/** Number of records */
|
|
252
|
+
recordCount: number;
|
|
253
|
+
/** Table size in bytes */
|
|
254
|
+
size: number;
|
|
255
|
+
/** Index size in bytes */
|
|
256
|
+
indexSize: number;
|
|
257
|
+
/** Last modified */
|
|
258
|
+
lastModified?: Date;
|
|
259
|
+
}>;
|
|
260
|
+
/** Total database size */
|
|
261
|
+
totalSize: number;
|
|
262
|
+
/** Database file path */
|
|
263
|
+
path: string;
|
|
264
|
+
}
|
|
265
|
+
/**
|
|
266
|
+
* Schema health status
|
|
267
|
+
*/
|
|
268
|
+
export interface SchemaHealthStatus {
|
|
269
|
+
/** Whether schema is healthy */
|
|
270
|
+
healthy: boolean;
|
|
271
|
+
/** Database connection status */
|
|
272
|
+
connected: boolean;
|
|
273
|
+
/** Migration status */
|
|
274
|
+
migrations: MigrationStatus;
|
|
275
|
+
/** Integrity check result */
|
|
276
|
+
integrity: {
|
|
277
|
+
valid: boolean;
|
|
278
|
+
errors: string[];
|
|
279
|
+
};
|
|
280
|
+
/** Performance metrics */
|
|
281
|
+
performance: {
|
|
282
|
+
averageQueryTime: number;
|
|
283
|
+
slowQueries: number;
|
|
284
|
+
cacheHitRate: number;
|
|
285
|
+
};
|
|
286
|
+
}
|
|
287
|
+
/**
|
|
288
|
+
* Storage Schema Interface
|
|
289
|
+
*
|
|
290
|
+
* Provides access to multiple tables with cross-table operations.
|
|
291
|
+
*/
|
|
292
|
+
export interface StorageSchemaInterface<TTables extends Record<string, StorageTableDefinition> = Record<string, StorageTableDefinition>> {
|
|
293
|
+
/** Schema ID */
|
|
294
|
+
readonly id: string;
|
|
295
|
+
/** Schema name */
|
|
296
|
+
readonly name: string;
|
|
297
|
+
/** Database name */
|
|
298
|
+
readonly dbName: string;
|
|
299
|
+
/** Available table names */
|
|
300
|
+
readonly tableNames: Extract<keyof TTables, string>[];
|
|
301
|
+
/** Zod schemas for all tables */
|
|
302
|
+
readonly schemas: {
|
|
303
|
+
[K in keyof TTables]: z.ZodType;
|
|
304
|
+
};
|
|
305
|
+
/** Relations between tables */
|
|
306
|
+
readonly relations: Record<string, Record<string, StorageRelation>>;
|
|
307
|
+
/**
|
|
308
|
+
* Get a table interface for operations
|
|
309
|
+
*
|
|
310
|
+
* @param tableName - Table name
|
|
311
|
+
* @returns Table interface
|
|
312
|
+
*/
|
|
313
|
+
table<K extends Extract<keyof TTables, string>>(tableName: K): StorageTableInterface<z.infer<TTables[K]['schema']>, TTables[K]['relations'] extends Record<string, StorageRelation> ? TTables[K]['relations'] : Record<string, StorageRelation>>;
|
|
314
|
+
/**
|
|
315
|
+
* Check if table exists
|
|
316
|
+
*
|
|
317
|
+
* @param tableName - Table name
|
|
318
|
+
* @returns True if table exists
|
|
319
|
+
*/
|
|
320
|
+
hasTable(tableName: string): boolean;
|
|
321
|
+
/**
|
|
322
|
+
* Get all table interfaces
|
|
323
|
+
*
|
|
324
|
+
* @returns Map of table name to interface
|
|
325
|
+
*/
|
|
326
|
+
getTables(): Map<string, StorageTableInterface>;
|
|
327
|
+
/**
|
|
328
|
+
* Execute operations in a transaction
|
|
329
|
+
*
|
|
330
|
+
* @param fn - Transaction function
|
|
331
|
+
* @returns Transaction result
|
|
332
|
+
*/
|
|
333
|
+
transaction<T>(fn: TransactionFn<T>): Promise<T>;
|
|
334
|
+
/**
|
|
335
|
+
* Begin a transaction explicitly
|
|
336
|
+
*
|
|
337
|
+
* @returns Transaction context
|
|
338
|
+
*/
|
|
339
|
+
beginTransaction(): Promise<TransactionContext>;
|
|
340
|
+
/**
|
|
341
|
+
* Commit a transaction
|
|
342
|
+
*
|
|
343
|
+
* @param tx - Transaction context
|
|
344
|
+
*/
|
|
345
|
+
commitTransaction(tx: TransactionContext): Promise<void>;
|
|
346
|
+
/**
|
|
347
|
+
* Rollback a transaction
|
|
348
|
+
*
|
|
349
|
+
* @param tx - Transaction context
|
|
350
|
+
*/
|
|
351
|
+
rollbackTransaction(tx: TransactionContext): Promise<void>;
|
|
352
|
+
/**
|
|
353
|
+
* Execute a cross-table query with joins
|
|
354
|
+
*
|
|
355
|
+
* @param options - Query options
|
|
356
|
+
* @returns Query results
|
|
357
|
+
*/
|
|
358
|
+
query(options: CrossTableQueryOptions): Promise<Record<string, unknown>[]>;
|
|
359
|
+
/**
|
|
360
|
+
* Batch operations across multiple tables
|
|
361
|
+
*
|
|
362
|
+
* @param operations - Array of operations
|
|
363
|
+
* @returns Array of results
|
|
364
|
+
*/
|
|
365
|
+
batch(operations: Array<{
|
|
366
|
+
table: string;
|
|
367
|
+
operation: 'create' | 'update' | 'delete';
|
|
368
|
+
data?: unknown;
|
|
369
|
+
id?: string;
|
|
370
|
+
}>): Promise<unknown[]>;
|
|
371
|
+
/**
|
|
372
|
+
* Truncate multiple tables
|
|
373
|
+
*
|
|
374
|
+
* @param tables - Table names (default: all tables)
|
|
375
|
+
* @param options - Truncate options
|
|
376
|
+
*/
|
|
377
|
+
truncate(tables?: string[], options?: {
|
|
378
|
+
restartIdentity?: boolean;
|
|
379
|
+
cascade?: boolean;
|
|
380
|
+
}): Promise<void>;
|
|
381
|
+
/**
|
|
382
|
+
* Run migrations
|
|
383
|
+
*
|
|
384
|
+
* @param options - Migration options
|
|
385
|
+
* @returns Migration result
|
|
386
|
+
*/
|
|
387
|
+
migrate(options?: MigrationOptions): Promise<MigrationResult>;
|
|
388
|
+
/**
|
|
389
|
+
* Rollback migrations
|
|
390
|
+
*
|
|
391
|
+
* @param steps - Number of migrations to rollback (default: 1)
|
|
392
|
+
* @returns Migration result
|
|
393
|
+
*/
|
|
394
|
+
rollback(steps?: number): Promise<MigrationResult>;
|
|
395
|
+
/**
|
|
396
|
+
* Get migration status
|
|
397
|
+
*
|
|
398
|
+
* @returns Migration status
|
|
399
|
+
*/
|
|
400
|
+
getMigrationStatus(): Promise<MigrationStatus>;
|
|
401
|
+
/**
|
|
402
|
+
* Reset schema (drop all tables and re-run migrations)
|
|
403
|
+
*
|
|
404
|
+
* @param options - Reset options
|
|
405
|
+
*/
|
|
406
|
+
reset(options?: {
|
|
407
|
+
seed?: boolean;
|
|
408
|
+
}): Promise<void>;
|
|
409
|
+
/**
|
|
410
|
+
* Create a backup
|
|
411
|
+
*
|
|
412
|
+
* @param options - Backup options
|
|
413
|
+
* @returns Backup result
|
|
414
|
+
*/
|
|
415
|
+
backup(options?: BackupOptions): Promise<BackupResult>;
|
|
416
|
+
/**
|
|
417
|
+
* Restore from a backup
|
|
418
|
+
*
|
|
419
|
+
* @param options - Restore options
|
|
420
|
+
* @returns Restore result
|
|
421
|
+
*/
|
|
422
|
+
restore(options: RestoreOptions): Promise<RestoreResult>;
|
|
423
|
+
/**
|
|
424
|
+
* List available backups
|
|
425
|
+
*
|
|
426
|
+
* @returns List of backups
|
|
427
|
+
*/
|
|
428
|
+
listBackups(): Promise<Array<{
|
|
429
|
+
id: string;
|
|
430
|
+
name: string;
|
|
431
|
+
createdAt: Date;
|
|
432
|
+
size: number;
|
|
433
|
+
tables: string[];
|
|
434
|
+
}>>;
|
|
435
|
+
/**
|
|
436
|
+
* Delete a backup
|
|
437
|
+
*
|
|
438
|
+
* @param backupId - Backup ID
|
|
439
|
+
*/
|
|
440
|
+
deleteBackup(backupId: string): Promise<void>;
|
|
441
|
+
/**
|
|
442
|
+
* Sync with remote storage
|
|
443
|
+
*
|
|
444
|
+
* @param options - Sync options
|
|
445
|
+
* @returns Sync result
|
|
446
|
+
*/
|
|
447
|
+
sync(options?: SyncOptions): Promise<SyncResult>;
|
|
448
|
+
/**
|
|
449
|
+
* Get sync status
|
|
450
|
+
*
|
|
451
|
+
* @returns Sync status
|
|
452
|
+
*/
|
|
453
|
+
getSyncStatus(): Promise<SyncStatus>;
|
|
454
|
+
/**
|
|
455
|
+
* Enable sync
|
|
456
|
+
*/
|
|
457
|
+
enableSync(): Promise<void>;
|
|
458
|
+
/**
|
|
459
|
+
* Disable sync
|
|
460
|
+
*/
|
|
461
|
+
disableSync(): Promise<void>;
|
|
462
|
+
/**
|
|
463
|
+
* Get schema statistics
|
|
464
|
+
*
|
|
465
|
+
* @returns Schema statistics
|
|
466
|
+
*/
|
|
467
|
+
getStatistics(): Promise<SchemaStatistics>;
|
|
468
|
+
/**
|
|
469
|
+
* Get health status
|
|
470
|
+
*
|
|
471
|
+
* @returns Health status
|
|
472
|
+
*/
|
|
473
|
+
getHealth(): Promise<SchemaHealthStatus>;
|
|
474
|
+
/**
|
|
475
|
+
* Check database integrity
|
|
476
|
+
*
|
|
477
|
+
* @returns Integrity check result
|
|
478
|
+
*/
|
|
479
|
+
checkIntegrity(): Promise<{
|
|
480
|
+
valid: boolean;
|
|
481
|
+
errors: string[];
|
|
482
|
+
}>;
|
|
483
|
+
/**
|
|
484
|
+
* Optimize database (vacuum, analyze, etc.)
|
|
485
|
+
*/
|
|
486
|
+
optimize(): Promise<void>;
|
|
487
|
+
/**
|
|
488
|
+
* Get adapter ID
|
|
489
|
+
*
|
|
490
|
+
* @returns Adapter ID
|
|
491
|
+
*/
|
|
492
|
+
getAdapterId(): string;
|
|
493
|
+
/**
|
|
494
|
+
* Export schema definition
|
|
495
|
+
*
|
|
496
|
+
* @returns Schema definition
|
|
497
|
+
*/
|
|
498
|
+
exportSchema(): Record<string, unknown>;
|
|
499
|
+
/**
|
|
500
|
+
* Validate data against table schema
|
|
501
|
+
*
|
|
502
|
+
* @param tableName - Table name
|
|
503
|
+
* @param data - Data to validate
|
|
504
|
+
* @returns Validation result
|
|
505
|
+
*/
|
|
506
|
+
validate<K extends Extract<keyof TTables, string>>(tableName: K, data: unknown): Promise<{
|
|
507
|
+
success: boolean;
|
|
508
|
+
data?: unknown;
|
|
509
|
+
errors?: z.ZodError;
|
|
510
|
+
}>;
|
|
511
|
+
/**
|
|
512
|
+
* Close all connections and cleanup
|
|
513
|
+
*/
|
|
514
|
+
close(): Promise<void>;
|
|
515
|
+
}
|
|
516
|
+
//# sourceMappingURL=schema-interface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema-interface.d.ts","sourceRoot":"","sources":["../../../src/interfaces/schema/schema-interface.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Storage Schema Interface
|
|
3
|
+
*
|
|
4
|
+
* Defines the interface for multi-table schemas with relations.
|
|
5
|
+
* This is what gets resolved when you query for a storage/schema descriptor.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```typescript
|
|
9
|
+
* const schema = await runtime
|
|
10
|
+
* .query('storage/schema')
|
|
11
|
+
* .withId('session')
|
|
12
|
+
* .resolve();
|
|
13
|
+
*
|
|
14
|
+
* // Access individual tables
|
|
15
|
+
* const sessions = schema.table('sessions');
|
|
16
|
+
* const todos = schema.table('todos');
|
|
17
|
+
*
|
|
18
|
+
* // Cross-table operations
|
|
19
|
+
* const sessionWithTodos = await schema.getTransaction(async (tx) => {
|
|
20
|
+
* const session = await sessions.create({ ... });
|
|
21
|
+
* await todos.create({ sessionId: session.id, title: 'First todo' });
|
|
22
|
+
* return session;
|
|
23
|
+
* });
|
|
24
|
+
*
|
|
25
|
+
* // Schema-level operations
|
|
26
|
+
* await schema.migrate();
|
|
27
|
+
* await schema.backup();
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
30
|
+
export {};
|
|
31
|
+
//# sourceMappingURL=schema-interface.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema-interface.js","sourceRoot":"","sources":["../../../src/interfaces/schema/schema-interface.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG"}
|