@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,314 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Storage Table Interface
|
|
3
|
+
*
|
|
4
|
+
* Defines the interface for CRUD operations on a single table within a schema.
|
|
5
|
+
* This is what gets returned when you access a table from a StorageSchema.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```typescript
|
|
9
|
+
* const schema = await runtime
|
|
10
|
+
* .query('storage/schema')
|
|
11
|
+
* .withId('session')
|
|
12
|
+
* .resolve();
|
|
13
|
+
*
|
|
14
|
+
* const todosTable = schema.table('todos');
|
|
15
|
+
*
|
|
16
|
+
* // Create
|
|
17
|
+
* const todo = await todosTable.create({
|
|
18
|
+
* sessionId: 'session-123',
|
|
19
|
+
* title: 'Implement storage',
|
|
20
|
+
* status: 'in_progress'
|
|
21
|
+
* });
|
|
22
|
+
*
|
|
23
|
+
* // List with relations to other tables in the schema
|
|
24
|
+
* const todos = await todosTable.list({
|
|
25
|
+
* where: { sessionId: 'session-123' },
|
|
26
|
+
* include: { session: true, parent: true }
|
|
27
|
+
* });
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
30
|
+
|
|
31
|
+
import type { z } from 'zod/v4';
|
|
32
|
+
import type { StorageRelation } from '../../schemas/record';
|
|
33
|
+
import type {
|
|
34
|
+
WhereFilter,
|
|
35
|
+
QueryOptions,
|
|
36
|
+
QueryResult,
|
|
37
|
+
CreateInput,
|
|
38
|
+
CreateManyOptions,
|
|
39
|
+
UpdateInput,
|
|
40
|
+
UpdateOptions,
|
|
41
|
+
UpdateResult,
|
|
42
|
+
DeleteOptions,
|
|
43
|
+
DeleteResult,
|
|
44
|
+
AggregationOptions,
|
|
45
|
+
AggregationResult,
|
|
46
|
+
StreamOptions
|
|
47
|
+
} from '../record';
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* Storage Table Interface
|
|
51
|
+
*
|
|
52
|
+
* Provides CRUD operations on a single table within a schema.
|
|
53
|
+
* Similar to StorageRecordInterface but scoped to a schema context.
|
|
54
|
+
*/
|
|
55
|
+
export interface StorageTableInterface<
|
|
56
|
+
T = unknown,
|
|
57
|
+
R extends Record<string, StorageRelation> = Record<string, StorageRelation>
|
|
58
|
+
> {
|
|
59
|
+
// METADATA
|
|
60
|
+
|
|
61
|
+
/** Table name */
|
|
62
|
+
readonly tableName: string;
|
|
63
|
+
|
|
64
|
+
/** Primary key field */
|
|
65
|
+
readonly primaryKey: string;
|
|
66
|
+
|
|
67
|
+
/** Zod schema for validation */
|
|
68
|
+
readonly schema: z.ZodType<T>;
|
|
69
|
+
|
|
70
|
+
/** Available relations to other tables in the schema */
|
|
71
|
+
readonly relations: R;
|
|
72
|
+
|
|
73
|
+
// CREATE
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* Create a new record
|
|
77
|
+
*
|
|
78
|
+
* @param data - Record data
|
|
79
|
+
* @returns Created record
|
|
80
|
+
*/
|
|
81
|
+
create(data: CreateInput<T>): Promise<T>;
|
|
82
|
+
|
|
83
|
+
/**
|
|
84
|
+
* Create multiple records
|
|
85
|
+
*
|
|
86
|
+
* @param data - Array of record data
|
|
87
|
+
* @param options - Create many options
|
|
88
|
+
* @returns Created records
|
|
89
|
+
*/
|
|
90
|
+
createMany(data: CreateInput<T>[], options?: CreateManyOptions): Promise<T[]>;
|
|
91
|
+
|
|
92
|
+
// READ
|
|
93
|
+
|
|
94
|
+
/**
|
|
95
|
+
* Get a single record by ID
|
|
96
|
+
*
|
|
97
|
+
* @param id - Record ID
|
|
98
|
+
* @param options - Query options (include relations, select fields)
|
|
99
|
+
* @returns Record or null if not found
|
|
100
|
+
*/
|
|
101
|
+
get(
|
|
102
|
+
id: string,
|
|
103
|
+
options?: Pick<QueryOptions<T, string & keyof R>, 'include' | 'select'>
|
|
104
|
+
): Promise<T | null>;
|
|
105
|
+
|
|
106
|
+
/**
|
|
107
|
+
* Get a single record or throw if not found
|
|
108
|
+
*
|
|
109
|
+
* @param id - Record ID
|
|
110
|
+
* @param options - Query options
|
|
111
|
+
* @returns Record
|
|
112
|
+
* @throws Error if record not found
|
|
113
|
+
*/
|
|
114
|
+
getOrThrow(
|
|
115
|
+
id: string,
|
|
116
|
+
options?: Pick<QueryOptions<T, string & keyof R>, 'include' | 'select'>
|
|
117
|
+
): Promise<T>;
|
|
118
|
+
|
|
119
|
+
/**
|
|
120
|
+
* Get many records by IDs
|
|
121
|
+
*
|
|
122
|
+
* @param ids - Record IDs
|
|
123
|
+
* @param options - Query options
|
|
124
|
+
* @returns Records (may be fewer than requested if some not found)
|
|
125
|
+
*/
|
|
126
|
+
getMany(
|
|
127
|
+
ids: string[],
|
|
128
|
+
options?: Pick<QueryOptions<T, string & keyof R>, 'include' | 'select'>
|
|
129
|
+
): Promise<T[]>;
|
|
130
|
+
|
|
131
|
+
/**
|
|
132
|
+
* List records with filtering, pagination, and relations
|
|
133
|
+
*
|
|
134
|
+
* @param options - Query options
|
|
135
|
+
* @returns Query result with items and pagination metadata
|
|
136
|
+
*/
|
|
137
|
+
list(options?: QueryOptions<T, string & keyof R>): Promise<QueryResult<T>>;
|
|
138
|
+
|
|
139
|
+
/**
|
|
140
|
+
* Find first record matching conditions
|
|
141
|
+
*
|
|
142
|
+
* @param options - Query options
|
|
143
|
+
* @returns First matching record or null
|
|
144
|
+
*/
|
|
145
|
+
findFirst(options?: QueryOptions<T, string & keyof R>): Promise<T | null>;
|
|
146
|
+
|
|
147
|
+
/**
|
|
148
|
+
* Find first record or throw if not found
|
|
149
|
+
*
|
|
150
|
+
* @param options - Query options
|
|
151
|
+
* @returns First matching record
|
|
152
|
+
* @throws Error if no record found
|
|
153
|
+
*/
|
|
154
|
+
findFirstOrThrow(options?: QueryOptions<T, string & keyof R>): Promise<T>;
|
|
155
|
+
|
|
156
|
+
/**
|
|
157
|
+
* Check if record exists
|
|
158
|
+
*
|
|
159
|
+
* @param id - Record ID
|
|
160
|
+
* @returns True if record exists
|
|
161
|
+
*/
|
|
162
|
+
exists(id: string): Promise<boolean>;
|
|
163
|
+
|
|
164
|
+
/**
|
|
165
|
+
* Count records matching conditions
|
|
166
|
+
*
|
|
167
|
+
* @param where - Filter conditions
|
|
168
|
+
* @returns Number of matching records
|
|
169
|
+
*/
|
|
170
|
+
count(where?: WhereFilter<T>): Promise<number>;
|
|
171
|
+
|
|
172
|
+
// UPDATE
|
|
173
|
+
|
|
174
|
+
/**
|
|
175
|
+
* Update a record by ID
|
|
176
|
+
*
|
|
177
|
+
* @param id - Record ID
|
|
178
|
+
* @param data - Update data
|
|
179
|
+
* @param options - Update options
|
|
180
|
+
* @returns Updated record
|
|
181
|
+
* @throws Error if record not found
|
|
182
|
+
*/
|
|
183
|
+
update(id: string, data: UpdateInput<T>, options?: UpdateOptions): Promise<T>;
|
|
184
|
+
|
|
185
|
+
/**
|
|
186
|
+
* Update many records matching conditions
|
|
187
|
+
*
|
|
188
|
+
* @param where - Filter conditions
|
|
189
|
+
* @param data - Update data
|
|
190
|
+
* @param options - Update options
|
|
191
|
+
* @returns Update result with count
|
|
192
|
+
*/
|
|
193
|
+
updateMany(
|
|
194
|
+
where: WhereFilter<T>,
|
|
195
|
+
data: UpdateInput<T>,
|
|
196
|
+
options?: UpdateOptions
|
|
197
|
+
): Promise<UpdateResult>;
|
|
198
|
+
|
|
199
|
+
/**
|
|
200
|
+
* Update or create a record
|
|
201
|
+
*
|
|
202
|
+
* @param id - Record ID
|
|
203
|
+
* @param create - Data to use if creating
|
|
204
|
+
* @param update - Data to use if updating
|
|
205
|
+
* @returns Created or updated record
|
|
206
|
+
*/
|
|
207
|
+
upsert(id: string, create: CreateInput<T>, update: UpdateInput<T>): Promise<T>;
|
|
208
|
+
|
|
209
|
+
// DELETE
|
|
210
|
+
|
|
211
|
+
/**
|
|
212
|
+
* Delete a record by ID
|
|
213
|
+
*
|
|
214
|
+
* @param id - Record ID
|
|
215
|
+
* @param options - Delete options
|
|
216
|
+
* @returns Delete result
|
|
217
|
+
*/
|
|
218
|
+
delete(id: string, options?: DeleteOptions): Promise<DeleteResult>;
|
|
219
|
+
|
|
220
|
+
/**
|
|
221
|
+
* Delete many records matching conditions
|
|
222
|
+
*
|
|
223
|
+
* @param where - Filter conditions
|
|
224
|
+
* @param options - Delete options
|
|
225
|
+
* @returns Delete result with count
|
|
226
|
+
*/
|
|
227
|
+
deleteMany(where: WhereFilter<T>, options?: DeleteOptions): Promise<DeleteResult>;
|
|
228
|
+
|
|
229
|
+
/**
|
|
230
|
+
* Restore a soft-deleted record
|
|
231
|
+
*
|
|
232
|
+
* @param id - Record ID
|
|
233
|
+
* @returns Restored record
|
|
234
|
+
* @throws Error if record not found or not soft-deleted
|
|
235
|
+
*/
|
|
236
|
+
restore(id: string): Promise<T>;
|
|
237
|
+
|
|
238
|
+
// AGGREGATION
|
|
239
|
+
|
|
240
|
+
/**
|
|
241
|
+
* Count records
|
|
242
|
+
*
|
|
243
|
+
* @param options - Aggregation options
|
|
244
|
+
* @returns Aggregation results
|
|
245
|
+
*/
|
|
246
|
+
aggregate(options: AggregationOptions<T> & { function: 'count' }): Promise<AggregationResult[]>;
|
|
247
|
+
|
|
248
|
+
/**
|
|
249
|
+
* Sum field values
|
|
250
|
+
*
|
|
251
|
+
* @param options - Aggregation options
|
|
252
|
+
* @returns Aggregation results
|
|
253
|
+
*/
|
|
254
|
+
aggregate(
|
|
255
|
+
options: AggregationOptions<T> & { function: 'sum'; field: keyof T }
|
|
256
|
+
): Promise<AggregationResult[]>;
|
|
257
|
+
|
|
258
|
+
/**
|
|
259
|
+
* Average field values
|
|
260
|
+
*
|
|
261
|
+
* @param options - Aggregation options
|
|
262
|
+
* @returns Aggregation results
|
|
263
|
+
*/
|
|
264
|
+
aggregate(
|
|
265
|
+
options: AggregationOptions<T> & { function: 'avg'; field: keyof T }
|
|
266
|
+
): Promise<AggregationResult[]>;
|
|
267
|
+
|
|
268
|
+
/**
|
|
269
|
+
* Get minimum field value
|
|
270
|
+
*
|
|
271
|
+
* @param options - Aggregation options
|
|
272
|
+
* @returns Aggregation results
|
|
273
|
+
*/
|
|
274
|
+
aggregate(
|
|
275
|
+
options: AggregationOptions<T> & { function: 'min'; field: keyof T }
|
|
276
|
+
): Promise<AggregationResult[]>;
|
|
277
|
+
|
|
278
|
+
/**
|
|
279
|
+
* Get maximum field value
|
|
280
|
+
*
|
|
281
|
+
* @param options - Aggregation options
|
|
282
|
+
* @returns Aggregation results
|
|
283
|
+
*/
|
|
284
|
+
aggregate(
|
|
285
|
+
options: AggregationOptions<T> & { function: 'max'; field: keyof T }
|
|
286
|
+
): Promise<AggregationResult[]>;
|
|
287
|
+
|
|
288
|
+
// STREAMING
|
|
289
|
+
|
|
290
|
+
/**
|
|
291
|
+
* Stream records as async iterable
|
|
292
|
+
*
|
|
293
|
+
* @param options - Stream options
|
|
294
|
+
* @returns Async iterable of records
|
|
295
|
+
*/
|
|
296
|
+
stream(options?: StreamOptions<T>): AsyncIterable<T>;
|
|
297
|
+
|
|
298
|
+
// UTILITIES
|
|
299
|
+
|
|
300
|
+
/**
|
|
301
|
+
* Validate record data against schema
|
|
302
|
+
*
|
|
303
|
+
* @param data - Record data
|
|
304
|
+
* @returns Validation result
|
|
305
|
+
*/
|
|
306
|
+
validate(data: unknown): Promise<{ success: boolean; data?: T; errors?: z.ZodError }>;
|
|
307
|
+
|
|
308
|
+
/**
|
|
309
|
+
* Get database adapter being used
|
|
310
|
+
*
|
|
311
|
+
* @returns Adapter ID
|
|
312
|
+
*/
|
|
313
|
+
getAdapterId(): string;
|
|
314
|
+
}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Storage Consumer File System Abstraction
|
|
3
|
+
*
|
|
4
|
+
* Consumer-scoped: provides access to host fs, crypto, and path primitives.
|
|
5
|
+
* Injected at runtime to avoid universal core importing Node.js built-ins.
|
|
6
|
+
*
|
|
7
|
+
* This enables `cli/context.consumer.ts` to operate in consumer hardware scope
|
|
8
|
+
* without polluting the universal core with Node.js imports.
|
|
9
|
+
*
|
|
10
|
+
* Usage:
|
|
11
|
+
* ```ts
|
|
12
|
+
* import { getConsumerFs } from './storage-consumer-fs';
|
|
13
|
+
*
|
|
14
|
+
* const fs = getConsumerFs();
|
|
15
|
+
* const data = await fs.readFile('/path/to/file', 'utf8');
|
|
16
|
+
* ```
|
|
17
|
+
*/
|
|
18
|
+
|
|
19
|
+
export interface ConsumerFileSystem {
|
|
20
|
+
existsSync(path: string): boolean;
|
|
21
|
+
mkdirSync(path: string, options?: { recursive: boolean }): void;
|
|
22
|
+
watch(
|
|
23
|
+
dir: string,
|
|
24
|
+
listener: (eventType: string, filename: string | Buffer | null) => void
|
|
25
|
+
): { close(): void } | null;
|
|
26
|
+
readFile(path: string, encoding: BufferEncoding): Promise<string>;
|
|
27
|
+
writeFile(
|
|
28
|
+
path: string,
|
|
29
|
+
content: string | Uint8Array,
|
|
30
|
+
options?: BufferEncoding | { encoding?: BufferEncoding; mode?: number; flag?: string }
|
|
31
|
+
): Promise<void>;
|
|
32
|
+
rename(oldPath: string, newPath: string): Promise<void>;
|
|
33
|
+
dirname(path: string): string;
|
|
34
|
+
basename(path: string, ext?: string): string;
|
|
35
|
+
join(...paths: string[]): string;
|
|
36
|
+
resolve(...paths: string[]): string;
|
|
37
|
+
randomUUID(): string;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
let _consumerFs: ConsumerFileSystem | null = null;
|
|
41
|
+
|
|
42
|
+
export async function getConsumerFs(): Promise<ConsumerFileSystem> {
|
|
43
|
+
if (_consumerFs) return _consumerFs;
|
|
44
|
+
|
|
45
|
+
const [fs, crypto, path] = await Promise.all([
|
|
46
|
+
import('node:fs'),
|
|
47
|
+
import('node:crypto'),
|
|
48
|
+
import('node:path')
|
|
49
|
+
]);
|
|
50
|
+
|
|
51
|
+
_consumerFs = {
|
|
52
|
+
existsSync: fs.existsSync,
|
|
53
|
+
mkdirSync: fs.mkdirSync,
|
|
54
|
+
watch: fs.watch.bind(fs),
|
|
55
|
+
readFile: (path: string, encoding: BufferEncoding) => fs.promises.readFile(path, encoding),
|
|
56
|
+
writeFile: (path: string, content: string | Uint8Array, options?: BufferEncoding | { encoding?: BufferEncoding; mode?: number; flag?: string }) => fs.promises.writeFile(path, content, options),
|
|
57
|
+
rename: fs.promises.rename,
|
|
58
|
+
dirname: path.dirname,
|
|
59
|
+
basename: path.basename,
|
|
60
|
+
join: path.join,
|
|
61
|
+
resolve: path.resolve,
|
|
62
|
+
randomUUID: crypto.randomUUID
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
return _consumerFs;
|
|
66
|
+
}
|