@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,250 @@
|
|
|
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
|
+
import type { z } from 'zod/v4';
|
|
31
|
+
import type { StorageRelation } from '../../schemas/record';
|
|
32
|
+
import type { WhereFilter, QueryOptions, QueryResult, CreateInput, CreateManyOptions, UpdateInput, UpdateOptions, UpdateResult, DeleteOptions, DeleteResult, AggregationOptions, AggregationResult, StreamOptions } from '../record';
|
|
33
|
+
/**
|
|
34
|
+
* Storage Table Interface
|
|
35
|
+
*
|
|
36
|
+
* Provides CRUD operations on a single table within a schema.
|
|
37
|
+
* Similar to StorageRecordInterface but scoped to a schema context.
|
|
38
|
+
*/
|
|
39
|
+
export interface StorageTableInterface<T = unknown, R extends Record<string, StorageRelation> = Record<string, StorageRelation>> {
|
|
40
|
+
/** Table name */
|
|
41
|
+
readonly tableName: string;
|
|
42
|
+
/** Primary key field */
|
|
43
|
+
readonly primaryKey: string;
|
|
44
|
+
/** Zod schema for validation */
|
|
45
|
+
readonly schema: z.ZodType<T>;
|
|
46
|
+
/** Available relations to other tables in the schema */
|
|
47
|
+
readonly relations: R;
|
|
48
|
+
/**
|
|
49
|
+
* Create a new record
|
|
50
|
+
*
|
|
51
|
+
* @param data - Record data
|
|
52
|
+
* @returns Created record
|
|
53
|
+
*/
|
|
54
|
+
create(data: CreateInput<T>): Promise<T>;
|
|
55
|
+
/**
|
|
56
|
+
* Create multiple records
|
|
57
|
+
*
|
|
58
|
+
* @param data - Array of record data
|
|
59
|
+
* @param options - Create many options
|
|
60
|
+
* @returns Created records
|
|
61
|
+
*/
|
|
62
|
+
createMany(data: CreateInput<T>[], options?: CreateManyOptions): Promise<T[]>;
|
|
63
|
+
/**
|
|
64
|
+
* Get a single record by ID
|
|
65
|
+
*
|
|
66
|
+
* @param id - Record ID
|
|
67
|
+
* @param options - Query options (include relations, select fields)
|
|
68
|
+
* @returns Record or null if not found
|
|
69
|
+
*/
|
|
70
|
+
get(id: string, options?: Pick<QueryOptions<T, string & keyof R>, 'include' | 'select'>): Promise<T | null>;
|
|
71
|
+
/**
|
|
72
|
+
* Get a single record or throw if not found
|
|
73
|
+
*
|
|
74
|
+
* @param id - Record ID
|
|
75
|
+
* @param options - Query options
|
|
76
|
+
* @returns Record
|
|
77
|
+
* @throws Error if record not found
|
|
78
|
+
*/
|
|
79
|
+
getOrThrow(id: string, options?: Pick<QueryOptions<T, string & keyof R>, 'include' | 'select'>): Promise<T>;
|
|
80
|
+
/**
|
|
81
|
+
* Get many records by IDs
|
|
82
|
+
*
|
|
83
|
+
* @param ids - Record IDs
|
|
84
|
+
* @param options - Query options
|
|
85
|
+
* @returns Records (may be fewer than requested if some not found)
|
|
86
|
+
*/
|
|
87
|
+
getMany(ids: string[], options?: Pick<QueryOptions<T, string & keyof R>, 'include' | 'select'>): Promise<T[]>;
|
|
88
|
+
/**
|
|
89
|
+
* List records with filtering, pagination, and relations
|
|
90
|
+
*
|
|
91
|
+
* @param options - Query options
|
|
92
|
+
* @returns Query result with items and pagination metadata
|
|
93
|
+
*/
|
|
94
|
+
list(options?: QueryOptions<T, string & keyof R>): Promise<QueryResult<T>>;
|
|
95
|
+
/**
|
|
96
|
+
* Find first record matching conditions
|
|
97
|
+
*
|
|
98
|
+
* @param options - Query options
|
|
99
|
+
* @returns First matching record or null
|
|
100
|
+
*/
|
|
101
|
+
findFirst(options?: QueryOptions<T, string & keyof R>): Promise<T | null>;
|
|
102
|
+
/**
|
|
103
|
+
* Find first record or throw if not found
|
|
104
|
+
*
|
|
105
|
+
* @param options - Query options
|
|
106
|
+
* @returns First matching record
|
|
107
|
+
* @throws Error if no record found
|
|
108
|
+
*/
|
|
109
|
+
findFirstOrThrow(options?: QueryOptions<T, string & keyof R>): Promise<T>;
|
|
110
|
+
/**
|
|
111
|
+
* Check if record exists
|
|
112
|
+
*
|
|
113
|
+
* @param id - Record ID
|
|
114
|
+
* @returns True if record exists
|
|
115
|
+
*/
|
|
116
|
+
exists(id: string): Promise<boolean>;
|
|
117
|
+
/**
|
|
118
|
+
* Count records matching conditions
|
|
119
|
+
*
|
|
120
|
+
* @param where - Filter conditions
|
|
121
|
+
* @returns Number of matching records
|
|
122
|
+
*/
|
|
123
|
+
count(where?: WhereFilter<T>): Promise<number>;
|
|
124
|
+
/**
|
|
125
|
+
* Update a record by ID
|
|
126
|
+
*
|
|
127
|
+
* @param id - Record ID
|
|
128
|
+
* @param data - Update data
|
|
129
|
+
* @param options - Update options
|
|
130
|
+
* @returns Updated record
|
|
131
|
+
* @throws Error if record not found
|
|
132
|
+
*/
|
|
133
|
+
update(id: string, data: UpdateInput<T>, options?: UpdateOptions): Promise<T>;
|
|
134
|
+
/**
|
|
135
|
+
* Update many records matching conditions
|
|
136
|
+
*
|
|
137
|
+
* @param where - Filter conditions
|
|
138
|
+
* @param data - Update data
|
|
139
|
+
* @param options - Update options
|
|
140
|
+
* @returns Update result with count
|
|
141
|
+
*/
|
|
142
|
+
updateMany(where: WhereFilter<T>, data: UpdateInput<T>, options?: UpdateOptions): Promise<UpdateResult>;
|
|
143
|
+
/**
|
|
144
|
+
* Update or create a record
|
|
145
|
+
*
|
|
146
|
+
* @param id - Record ID
|
|
147
|
+
* @param create - Data to use if creating
|
|
148
|
+
* @param update - Data to use if updating
|
|
149
|
+
* @returns Created or updated record
|
|
150
|
+
*/
|
|
151
|
+
upsert(id: string, create: CreateInput<T>, update: UpdateInput<T>): Promise<T>;
|
|
152
|
+
/**
|
|
153
|
+
* Delete a record by ID
|
|
154
|
+
*
|
|
155
|
+
* @param id - Record ID
|
|
156
|
+
* @param options - Delete options
|
|
157
|
+
* @returns Delete result
|
|
158
|
+
*/
|
|
159
|
+
delete(id: string, options?: DeleteOptions): Promise<DeleteResult>;
|
|
160
|
+
/**
|
|
161
|
+
* Delete many records matching conditions
|
|
162
|
+
*
|
|
163
|
+
* @param where - Filter conditions
|
|
164
|
+
* @param options - Delete options
|
|
165
|
+
* @returns Delete result with count
|
|
166
|
+
*/
|
|
167
|
+
deleteMany(where: WhereFilter<T>, options?: DeleteOptions): Promise<DeleteResult>;
|
|
168
|
+
/**
|
|
169
|
+
* Restore a soft-deleted record
|
|
170
|
+
*
|
|
171
|
+
* @param id - Record ID
|
|
172
|
+
* @returns Restored record
|
|
173
|
+
* @throws Error if record not found or not soft-deleted
|
|
174
|
+
*/
|
|
175
|
+
restore(id: string): Promise<T>;
|
|
176
|
+
/**
|
|
177
|
+
* Count records
|
|
178
|
+
*
|
|
179
|
+
* @param options - Aggregation options
|
|
180
|
+
* @returns Aggregation results
|
|
181
|
+
*/
|
|
182
|
+
aggregate(options: AggregationOptions<T> & {
|
|
183
|
+
function: 'count';
|
|
184
|
+
}): Promise<AggregationResult[]>;
|
|
185
|
+
/**
|
|
186
|
+
* Sum field values
|
|
187
|
+
*
|
|
188
|
+
* @param options - Aggregation options
|
|
189
|
+
* @returns Aggregation results
|
|
190
|
+
*/
|
|
191
|
+
aggregate(options: AggregationOptions<T> & {
|
|
192
|
+
function: 'sum';
|
|
193
|
+
field: keyof T;
|
|
194
|
+
}): Promise<AggregationResult[]>;
|
|
195
|
+
/**
|
|
196
|
+
* Average field values
|
|
197
|
+
*
|
|
198
|
+
* @param options - Aggregation options
|
|
199
|
+
* @returns Aggregation results
|
|
200
|
+
*/
|
|
201
|
+
aggregate(options: AggregationOptions<T> & {
|
|
202
|
+
function: 'avg';
|
|
203
|
+
field: keyof T;
|
|
204
|
+
}): Promise<AggregationResult[]>;
|
|
205
|
+
/**
|
|
206
|
+
* Get minimum field value
|
|
207
|
+
*
|
|
208
|
+
* @param options - Aggregation options
|
|
209
|
+
* @returns Aggregation results
|
|
210
|
+
*/
|
|
211
|
+
aggregate(options: AggregationOptions<T> & {
|
|
212
|
+
function: 'min';
|
|
213
|
+
field: keyof T;
|
|
214
|
+
}): Promise<AggregationResult[]>;
|
|
215
|
+
/**
|
|
216
|
+
* Get maximum field value
|
|
217
|
+
*
|
|
218
|
+
* @param options - Aggregation options
|
|
219
|
+
* @returns Aggregation results
|
|
220
|
+
*/
|
|
221
|
+
aggregate(options: AggregationOptions<T> & {
|
|
222
|
+
function: 'max';
|
|
223
|
+
field: keyof T;
|
|
224
|
+
}): Promise<AggregationResult[]>;
|
|
225
|
+
/**
|
|
226
|
+
* Stream records as async iterable
|
|
227
|
+
*
|
|
228
|
+
* @param options - Stream options
|
|
229
|
+
* @returns Async iterable of records
|
|
230
|
+
*/
|
|
231
|
+
stream(options?: StreamOptions<T>): AsyncIterable<T>;
|
|
232
|
+
/**
|
|
233
|
+
* Validate record data against schema
|
|
234
|
+
*
|
|
235
|
+
* @param data - Record data
|
|
236
|
+
* @returns Validation result
|
|
237
|
+
*/
|
|
238
|
+
validate(data: unknown): Promise<{
|
|
239
|
+
success: boolean;
|
|
240
|
+
data?: T;
|
|
241
|
+
errors?: z.ZodError;
|
|
242
|
+
}>;
|
|
243
|
+
/**
|
|
244
|
+
* Get database adapter being used
|
|
245
|
+
*
|
|
246
|
+
* @returns Adapter ID
|
|
247
|
+
*/
|
|
248
|
+
getAdapterId(): string;
|
|
249
|
+
}
|
|
250
|
+
//# sourceMappingURL=table-interface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"table-interface.d.ts","sourceRoot":"","sources":["../../../src/interfaces/schema/table-interface.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
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
|
+
export {};
|
|
31
|
+
//# sourceMappingURL=table-interface.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"table-interface.js","sourceRoot":"","sources":["../../../src/interfaces/schema/table-interface.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG"}
|
|
@@ -0,0 +1,40 @@
|
|
|
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
|
+
export interface ConsumerFileSystem {
|
|
19
|
+
existsSync(path: string): boolean;
|
|
20
|
+
mkdirSync(path: string, options?: {
|
|
21
|
+
recursive: boolean;
|
|
22
|
+
}): void;
|
|
23
|
+
watch(dir: string, listener: (eventType: string, filename: string | Buffer | null) => void): {
|
|
24
|
+
close(): void;
|
|
25
|
+
} | null;
|
|
26
|
+
readFile(path: string, encoding: BufferEncoding): Promise<string>;
|
|
27
|
+
writeFile(path: string, content: string | Uint8Array, options?: BufferEncoding | {
|
|
28
|
+
encoding?: BufferEncoding;
|
|
29
|
+
mode?: number;
|
|
30
|
+
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
|
+
export declare function getConsumerFs(): Promise<ConsumerFileSystem>;
|
|
40
|
+
//# sourceMappingURL=storage-consumer-fs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage-consumer-fs.d.ts","sourceRoot":"","sources":["../../src/interfaces/storage-consumer-fs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,MAAM,WAAW,kBAAkB;IAClC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAClC,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,SAAS,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAAC;IAChE,KAAK,CACJ,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,KAAK,IAAI,GACrE;QAAE,KAAK,IAAI,IAAI,CAAA;KAAE,GAAG,IAAI,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAClE,SAAS,CACR,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,GAAG,UAAU,EAC5B,OAAO,CAAC,EAAE,cAAc,GAAG;QAAE,QAAQ,CAAC,EAAE,cAAc,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GACpF,OAAO,CAAC,IAAI,CAAC,CAAC;IACjB,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxD,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7C,IAAI,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IACjC,OAAO,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IACpC,UAAU,IAAI,MAAM,CAAC;CACrB;AAID,wBAAsB,aAAa,IAAI,OAAO,CAAC,kBAAkB,CAAC,CAwBjE"}
|
|
@@ -0,0 +1,42 @@
|
|
|
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.js';
|
|
13
|
+
*
|
|
14
|
+
* const fs = getConsumerFs();
|
|
15
|
+
* const data = await fs.readFile('/path/to/file', 'utf8');
|
|
16
|
+
* ```
|
|
17
|
+
*/
|
|
18
|
+
let _consumerFs = null;
|
|
19
|
+
export async function getConsumerFs() {
|
|
20
|
+
if (_consumerFs)
|
|
21
|
+
return _consumerFs;
|
|
22
|
+
const [fs, crypto, path] = await Promise.all([
|
|
23
|
+
import('node:fs'),
|
|
24
|
+
import('node:crypto'),
|
|
25
|
+
import('node:path')
|
|
26
|
+
]);
|
|
27
|
+
_consumerFs = {
|
|
28
|
+
existsSync: fs.existsSync,
|
|
29
|
+
mkdirSync: fs.mkdirSync,
|
|
30
|
+
watch: fs.watch.bind(fs),
|
|
31
|
+
readFile: (path, encoding) => fs.promises.readFile(path, encoding),
|
|
32
|
+
writeFile: (path, content, options) => fs.promises.writeFile(path, content, options),
|
|
33
|
+
rename: fs.promises.rename,
|
|
34
|
+
dirname: path.dirname,
|
|
35
|
+
basename: path.basename,
|
|
36
|
+
join: path.join,
|
|
37
|
+
resolve: path.resolve,
|
|
38
|
+
randomUUID: crypto.randomUUID
|
|
39
|
+
};
|
|
40
|
+
return _consumerFs;
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=storage-consumer-fs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage-consumer-fs.js","sourceRoot":"","sources":["../../src/interfaces/storage-consumer-fs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAuBH,IAAI,WAAW,GAA8B,IAAI,CAAC;AAElD,MAAM,CAAC,KAAK,UAAU,aAAa;IAClC,IAAI,WAAW;QAAE,OAAO,WAAW,CAAC;IAEpC,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC5C,MAAM,CAAC,SAAS,CAAC;QACjB,MAAM,CAAC,aAAa,CAAC;QACrB,MAAM,CAAC,WAAW,CAAC;KACnB,CAAC,CAAC;IAEH,WAAW,GAAG;QACb,UAAU,EAAE,EAAE,CAAC,UAAU;QACzB,SAAS,EAAE,EAAE,CAAC,SAAS;QACvB,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACxB,QAAQ,EAAE,CAAC,IAAY,EAAE,QAAwB,EAAE,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;QAC1F,SAAS,EAAE,CAAC,IAAY,EAAE,OAA4B,EAAE,OAAsF,EAAE,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC;QAChM,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM;QAC1B,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,UAAU,EAAE,MAAM,CAAC,UAAU;KAC7B,CAAC;IAEF,OAAO,WAAW,CAAC;AACpB,CAAC"}
|
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Storage Manifest Base Class
|
|
3
|
+
*
|
|
4
|
+
* Base class for working with stored data. Modules can extend this
|
|
5
|
+
* for custom methods while getting load/save for free.
|
|
6
|
+
*
|
|
7
|
+
* Uses runtime query API to resolve the appropriate adapter.
|
|
8
|
+
*/
|
|
9
|
+
import type { z } from 'zod/v4';
|
|
10
|
+
import type { KindContext } from '@vibesdotdev/runtime/schemas/kind';
|
|
11
|
+
import type { StorageAdapterInterface } from '../interfaces/adapter';
|
|
12
|
+
import type { StorageManifestDescriptor } from '../schemas/manifest-descriptor';
|
|
13
|
+
import type { Unsubscribe } from '../interfaces/document-store';
|
|
14
|
+
/**
|
|
15
|
+
* Base class for storage manifests.
|
|
16
|
+
*
|
|
17
|
+
* Provides document-style operations (load, save, exists, delete) using
|
|
18
|
+
* the runtime to resolve the appropriate adapter based on scope and configuration.
|
|
19
|
+
*
|
|
20
|
+
* Includes caching and subscription support for reactive updates.
|
|
21
|
+
*
|
|
22
|
+
* @template T - The type of data being stored
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* ```ts
|
|
26
|
+
* // Runtime instantiation (via descriptor)
|
|
27
|
+
* // The runtime will instantiate this with the descriptor
|
|
28
|
+
*
|
|
29
|
+
* // Manual instantiation by ID
|
|
30
|
+
* const storage = StorageManifest.fromId<AIProvider[]>('ai.providers');
|
|
31
|
+
* const providers = await storage.load();
|
|
32
|
+
*
|
|
33
|
+
* // Extended class with custom methods
|
|
34
|
+
* class AIProvidersStorage extends StorageManifest<AIProvider[]> {
|
|
35
|
+
* async getEnabled(): Promise<AIProvider[]> {
|
|
36
|
+
* const all = await this.load() ?? [];
|
|
37
|
+
* return all.filter(p => p.enabled);
|
|
38
|
+
* }
|
|
39
|
+
* }
|
|
40
|
+
* ```
|
|
41
|
+
*/
|
|
42
|
+
export declare class StorageManifest<T> {
|
|
43
|
+
protected descriptor: StorageManifestDescriptor;
|
|
44
|
+
protected context: KindContext;
|
|
45
|
+
private adapterCache;
|
|
46
|
+
private pendingId;
|
|
47
|
+
private pendingContext;
|
|
48
|
+
private resolved;
|
|
49
|
+
private cachedData;
|
|
50
|
+
private cacheValid;
|
|
51
|
+
private subscribers;
|
|
52
|
+
private storeUnsubscribe;
|
|
53
|
+
private subscriptionStarted;
|
|
54
|
+
private getRuntime;
|
|
55
|
+
/**
|
|
56
|
+
* Create a storage manifest instance.
|
|
57
|
+
*
|
|
58
|
+
* @param descriptorOrId - Either the full descriptor (for runtime instantiation)
|
|
59
|
+
* or the manifest ID string (for manual instantiation)
|
|
60
|
+
* @param context - Runtime context (optional for manual instantiation, required for runtime)
|
|
61
|
+
*/
|
|
62
|
+
constructor(descriptorOrId: StorageManifestDescriptor | string, context?: KindContext);
|
|
63
|
+
/**
|
|
64
|
+
* Resolve the descriptor from the runtime on first data access.
|
|
65
|
+
* No-op if already resolved or constructed with a direct descriptor.
|
|
66
|
+
*/
|
|
67
|
+
private ensureResolved;
|
|
68
|
+
/**
|
|
69
|
+
* Create a storage manifest by looking up its ID.
|
|
70
|
+
* Convenience static method for manual instantiation.
|
|
71
|
+
*/
|
|
72
|
+
static fromId<T>(manifestId: string): StorageManifest<T>;
|
|
73
|
+
/**
|
|
74
|
+
* Get the schema for this manifest.
|
|
75
|
+
*/
|
|
76
|
+
get schema(): z.ZodType<T>;
|
|
77
|
+
/**
|
|
78
|
+
* Get the namespace for this manifest.
|
|
79
|
+
*/
|
|
80
|
+
get namespace(): string;
|
|
81
|
+
/**
|
|
82
|
+
* Resolve the adapter for this manifest using runtime query API.
|
|
83
|
+
*
|
|
84
|
+
* Uses the manifest's allowed adapters list and current scope to
|
|
85
|
+
* select the best available adapter.
|
|
86
|
+
*/
|
|
87
|
+
protected getAdapter(): Promise<StorageAdapterInterface>;
|
|
88
|
+
/**
|
|
89
|
+
* Get adapter configuration based on manifest scope.
|
|
90
|
+
* Override in subclasses for custom configuration.
|
|
91
|
+
*/
|
|
92
|
+
protected getAdapterConfig(adapterId?: string): Record<string, unknown>;
|
|
93
|
+
private getCloudApiEndpoint;
|
|
94
|
+
private hasCloudEndpointRegistrar;
|
|
95
|
+
/**
|
|
96
|
+
* Get base path for storage based on scope.
|
|
97
|
+
* Uses descriptor's scopePaths if provided, otherwise defaults.
|
|
98
|
+
*/
|
|
99
|
+
protected getBasePath(workspacePath?: string): string;
|
|
100
|
+
/**
|
|
101
|
+
* Invalidate the cache, forcing the next load to hit storage.
|
|
102
|
+
*/
|
|
103
|
+
invalidateCache(): void;
|
|
104
|
+
/**
|
|
105
|
+
* Get cached data if available.
|
|
106
|
+
* @returns Cached data or undefined if not cached
|
|
107
|
+
*/
|
|
108
|
+
getCachedData(): T | undefined;
|
|
109
|
+
/**
|
|
110
|
+
* Check if data is currently cached.
|
|
111
|
+
*/
|
|
112
|
+
isCached(): boolean;
|
|
113
|
+
/**
|
|
114
|
+
* Load data from storage.
|
|
115
|
+
*
|
|
116
|
+
* @returns The stored data, or null if not found
|
|
117
|
+
*/
|
|
118
|
+
load(): Promise<T | null>;
|
|
119
|
+
/**
|
|
120
|
+
* Save data to storage.
|
|
121
|
+
*
|
|
122
|
+
* @param data - The data to save
|
|
123
|
+
*/
|
|
124
|
+
save(data: T): Promise<void>;
|
|
125
|
+
/**
|
|
126
|
+
* Trigger a non-blocking cloud push after save.
|
|
127
|
+
* Only fires if the manifest has cloud-api in allowedAdapters.
|
|
128
|
+
*
|
|
129
|
+
* Consumer modules are loaded via opaque dynamic import to prevent Vite
|
|
130
|
+
* from tracing them into the client bundle — they contain Node.js APIs
|
|
131
|
+
* and must only run server-side.
|
|
132
|
+
*/
|
|
133
|
+
private triggerCloudSync;
|
|
134
|
+
/**
|
|
135
|
+
* Check if data exists in storage.
|
|
136
|
+
*/
|
|
137
|
+
exists(): Promise<boolean>;
|
|
138
|
+
/**
|
|
139
|
+
* Delete data from storage.
|
|
140
|
+
*/
|
|
141
|
+
delete(): Promise<void>;
|
|
142
|
+
/**
|
|
143
|
+
* Load data or return default value.
|
|
144
|
+
*
|
|
145
|
+
* @param defaultValue - Value to return if no data exists
|
|
146
|
+
*/
|
|
147
|
+
loadOrDefault(defaultValue: T): Promise<T>;
|
|
148
|
+
/**
|
|
149
|
+
* Update data using a transform function.
|
|
150
|
+
*
|
|
151
|
+
* @param transform - Function that receives current data and returns updated data
|
|
152
|
+
*/
|
|
153
|
+
update(transform: (current: T | null) => T): Promise<void>;
|
|
154
|
+
/**
|
|
155
|
+
* Validate data against the manifest's schema.
|
|
156
|
+
*/
|
|
157
|
+
validate(data: unknown): z.ZodSafeParseResult<T>;
|
|
158
|
+
/**
|
|
159
|
+
* Subscribe to changes for this manifest.
|
|
160
|
+
* Returns an unsubscribe function.
|
|
161
|
+
*
|
|
162
|
+
* @param callback - Function called when data changes
|
|
163
|
+
* @returns Unsubscribe function
|
|
164
|
+
*/
|
|
165
|
+
subscribe(callback: (data: T | null) => void): Unsubscribe;
|
|
166
|
+
/**
|
|
167
|
+
* Initialize subscription to storage adapter.
|
|
168
|
+
*/
|
|
169
|
+
private initSubscription;
|
|
170
|
+
/**
|
|
171
|
+
* Start subscription with the given subscribe function.
|
|
172
|
+
*/
|
|
173
|
+
private startSubscription;
|
|
174
|
+
/**
|
|
175
|
+
* Stop storage-level subscription.
|
|
176
|
+
*/
|
|
177
|
+
private stopSubscription;
|
|
178
|
+
/**
|
|
179
|
+
* Notify all subscribers of a change.
|
|
180
|
+
*/
|
|
181
|
+
protected notifySubscribers(data: T | null): void;
|
|
182
|
+
/**
|
|
183
|
+
* Get the number of active subscribers.
|
|
184
|
+
*/
|
|
185
|
+
getSubscriberCount(): number;
|
|
186
|
+
}
|
|
187
|
+
//# sourceMappingURL=base.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/manifest/base.ts"],"names":[],"mappings":"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"}
|