@powerhousedao/reactor 6.0.0-dev.9 → 6.0.0-dev.90
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/admin/document-integrity-service.d.ts +17 -0
- package/dist/src/admin/document-integrity-service.d.ts.map +1 -0
- package/dist/src/admin/types.d.ts +30 -0
- package/dist/src/admin/types.d.ts.map +1 -0
- package/dist/src/cache/collection-membership-cache.d.ts +14 -0
- package/dist/src/cache/collection-membership-cache.d.ts.map +1 -0
- package/dist/src/cache/document-meta-cache.d.ts +1 -0
- package/dist/src/cache/document-meta-cache.d.ts.map +1 -1
- package/dist/src/cache/kysely-operation-index.d.ts +11 -2
- package/dist/src/cache/kysely-operation-index.d.ts.map +1 -1
- package/dist/src/cache/kysely-write-cache.d.ts +10 -2
- package/dist/src/cache/kysely-write-cache.d.ts.map +1 -1
- package/dist/src/cache/operation-index-types.d.ts +16 -2
- package/dist/src/cache/operation-index-types.d.ts.map +1 -1
- package/dist/src/cache/write/interfaces.d.ts +7 -2
- package/dist/src/cache/write/interfaces.d.ts.map +1 -1
- package/dist/src/client/reactor-client.d.ts +13 -10
- package/dist/src/client/reactor-client.d.ts.map +1 -1
- package/dist/src/client/types.d.ts +25 -6
- package/dist/src/client/types.d.ts.map +1 -1
- package/dist/src/core/reactor-builder.d.ts +23 -10
- package/dist/src/core/reactor-builder.d.ts.map +1 -1
- package/dist/src/core/reactor-client-builder.d.ts +8 -4
- package/dist/src/core/reactor-client-builder.d.ts.map +1 -1
- package/dist/src/core/reactor.d.ts +20 -80
- package/dist/src/core/reactor.d.ts.map +1 -1
- package/dist/src/core/types.d.ts +64 -28
- package/dist/src/core/types.d.ts.map +1 -1
- package/dist/src/core/utils.d.ts +39 -3
- package/dist/src/core/utils.d.ts.map +1 -1
- package/dist/src/events/types.d.ts +35 -10
- package/dist/src/events/types.d.ts.map +1 -1
- package/dist/src/executor/document-action-handler.d.ts +30 -0
- package/dist/src/executor/document-action-handler.d.ts.map +1 -0
- package/dist/src/executor/execution-scope.d.ts +44 -0
- package/dist/src/executor/execution-scope.d.ts.map +1 -0
- package/dist/src/executor/signature-verifier.d.ts +9 -0
- package/dist/src/executor/signature-verifier.d.ts.map +1 -0
- package/dist/src/executor/simple-job-executor-manager.d.ts +6 -1
- package/dist/src/executor/simple-job-executor-manager.d.ts.map +1 -1
- package/dist/src/executor/simple-job-executor.d.ts +8 -46
- package/dist/src/executor/simple-job-executor.d.ts.map +1 -1
- package/dist/src/executor/types.d.ts +1 -3
- package/dist/src/executor/types.d.ts.map +1 -1
- package/dist/src/executor/util.d.ts +12 -2
- package/dist/src/executor/util.d.ts.map +1 -1
- package/dist/src/index.d.ts +13 -9
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +20501 -61
- package/dist/src/job-tracker/in-memory-job-tracker.d.ts +4 -3
- package/dist/src/job-tracker/in-memory-job-tracker.d.ts.map +1 -1
- package/dist/src/job-tracker/interfaces.d.ts +3 -1
- package/dist/src/job-tracker/interfaces.d.ts.map +1 -1
- package/dist/src/logging/console.d.ts +1 -22
- package/dist/src/logging/console.d.ts.map +1 -1
- package/dist/src/logging/types.d.ts +1 -11
- package/dist/src/logging/types.d.ts.map +1 -1
- package/dist/src/processors/index.d.ts +0 -1
- package/dist/src/processors/index.d.ts.map +1 -1
- package/dist/src/processors/processor-manager.d.ts +19 -6
- package/dist/src/processors/processor-manager.d.ts.map +1 -1
- package/dist/src/processors/utils.d.ts +3 -2
- package/dist/src/processors/utils.d.ts.map +1 -1
- package/dist/src/queue/job-execution-handle.d.ts +3 -0
- package/dist/src/queue/job-execution-handle.d.ts.map +1 -1
- package/dist/src/queue/queue.d.ts +30 -1
- package/dist/src/queue/queue.d.ts.map +1 -1
- package/dist/src/queue/types.d.ts +4 -3
- package/dist/src/queue/types.d.ts.map +1 -1
- package/dist/src/read-models/base-read-model.d.ts +11 -9
- package/dist/src/read-models/base-read-model.d.ts.map +1 -1
- package/dist/src/read-models/coordinator.d.ts +2 -2
- package/dist/src/read-models/coordinator.d.ts.map +1 -1
- package/dist/src/read-models/document-view.d.ts +7 -4
- package/dist/src/read-models/document-view.d.ts.map +1 -1
- package/dist/src/read-models/interfaces.d.ts +1 -1
- package/dist/src/read-models/interfaces.d.ts.map +1 -1
- package/dist/src/read-models/types.d.ts +16 -0
- package/dist/src/read-models/types.d.ts.map +1 -1
- package/dist/src/registry/document-model-resolver.d.ts +29 -0
- package/dist/src/registry/document-model-resolver.d.ts.map +1 -0
- package/dist/src/registry/implementation.d.ts +4 -0
- package/dist/src/registry/implementation.d.ts.map +1 -1
- package/dist/src/registry/index.d.ts +3 -1
- package/dist/src/registry/index.d.ts.map +1 -1
- package/dist/src/registry/interfaces.d.ts +8 -0
- package/dist/src/registry/interfaces.d.ts.map +1 -1
- package/dist/src/shared/awaiter.d.ts +2 -2
- package/dist/src/shared/awaiter.d.ts.map +1 -1
- package/dist/src/shared/collect-all-pages.d.ts +7 -0
- package/dist/src/shared/collect-all-pages.d.ts.map +1 -0
- package/dist/src/shared/drive-url.d.ts +15 -0
- package/dist/src/shared/drive-url.d.ts.map +1 -0
- package/dist/src/shared/errors.d.ts +9 -0
- package/dist/src/shared/errors.d.ts.map +1 -1
- package/dist/src/shared/factories.d.ts +6 -2
- package/dist/src/shared/factories.d.ts.map +1 -1
- package/dist/src/shared/types.d.ts +32 -6
- package/dist/src/shared/types.d.ts.map +1 -1
- package/dist/src/signer/passthrough-signer.d.ts +1 -1
- package/dist/src/signer/passthrough-signer.d.ts.map +1 -1
- package/dist/src/storage/interfaces.d.ts +252 -124
- package/dist/src/storage/interfaces.d.ts.map +1 -1
- package/dist/src/storage/kysely/document-indexer.d.ts +17 -18
- package/dist/src/storage/kysely/document-indexer.d.ts.map +1 -1
- package/dist/src/storage/kysely/keyframe-store.d.ts +10 -1
- package/dist/src/storage/kysely/keyframe-store.d.ts.map +1 -1
- package/dist/src/storage/kysely/store.d.ts +9 -4
- package/dist/src/storage/kysely/store.d.ts.map +1 -1
- package/dist/src/storage/kysely/sync-cursor-storage.d.ts +1 -1
- package/dist/src/storage/kysely/sync-cursor-storage.d.ts.map +1 -1
- package/dist/src/storage/kysely/sync-dead-letter-storage.d.ts +17 -0
- package/dist/src/storage/kysely/sync-dead-letter-storage.d.ts.map +1 -0
- package/dist/src/storage/kysely/types.d.ts +22 -0
- package/dist/src/storage/kysely/types.d.ts.map +1 -1
- package/dist/src/storage/migrations/011_add_cursor_type_column.d.ts +3 -0
- package/dist/src/storage/migrations/011_add_cursor_type_column.d.ts.map +1 -0
- package/dist/src/storage/migrations/012_add_source_remote_column.d.ts +3 -0
- package/dist/src/storage/migrations/012_add_source_remote_column.d.ts.map +1 -0
- package/dist/src/storage/migrations/013_create_sync_dead_letters_table.d.ts +3 -0
- package/dist/src/storage/migrations/013_create_sync_dead_letters_table.d.ts.map +1 -0
- package/dist/src/storage/migrations/014_create_processor_cursor_table.d.ts +3 -0
- package/dist/src/storage/migrations/014_create_processor_cursor_table.d.ts.map +1 -0
- package/dist/src/storage/migrations/migrator.d.ts.map +1 -1
- package/dist/src/subs/default-error-handler.d.ts.map +1 -1
- package/dist/src/subs/subscription-notification-read-model.d.ts +3 -2
- package/dist/src/subs/subscription-notification-read-model.d.ts.map +1 -1
- package/dist/src/sync/batch-aggregator.d.ts +25 -0
- package/dist/src/sync/batch-aggregator.d.ts.map +1 -0
- package/dist/src/sync/buffered-mailbox.d.ts +36 -0
- package/dist/src/sync/buffered-mailbox.d.ts.map +1 -0
- package/dist/src/sync/channels/gql-req-channel.d.ts +121 -0
- package/dist/src/sync/channels/gql-req-channel.d.ts.map +1 -0
- package/dist/src/sync/channels/gql-request-channel-factory.d.ts +32 -0
- package/dist/src/sync/channels/gql-request-channel-factory.d.ts.map +1 -0
- package/dist/src/sync/channels/gql-res-channel.d.ts +31 -0
- package/dist/src/sync/channels/gql-res-channel.d.ts.map +1 -0
- package/dist/src/sync/channels/gql-response-channel-factory.d.ts +13 -0
- package/dist/src/sync/channels/gql-response-channel-factory.d.ts.map +1 -0
- package/dist/src/sync/channels/index.d.ts +6 -4
- package/dist/src/sync/channels/index.d.ts.map +1 -1
- package/dist/src/sync/channels/interval-poll-timer.d.ts +40 -0
- package/dist/src/sync/channels/interval-poll-timer.d.ts.map +1 -0
- package/dist/src/sync/channels/poll-timer.d.ts +14 -0
- package/dist/src/sync/channels/poll-timer.d.ts.map +1 -0
- package/dist/src/sync/channels/utils.d.ts +15 -1
- package/dist/src/sync/channels/utils.d.ts.map +1 -1
- package/dist/src/sync/index.d.ts +11 -7
- package/dist/src/sync/index.d.ts.map +1 -1
- package/dist/src/sync/interfaces.d.ts +42 -19
- package/dist/src/sync/interfaces.d.ts.map +1 -1
- package/dist/src/sync/mailbox.d.ts +51 -12
- package/dist/src/sync/mailbox.d.ts.map +1 -1
- package/dist/src/sync/sync-awaiter.d.ts +34 -0
- package/dist/src/sync/sync-awaiter.d.ts.map +1 -0
- package/dist/src/sync/sync-builder.d.ts +5 -1
- package/dist/src/sync/sync-builder.d.ts.map +1 -1
- package/dist/src/sync/sync-manager.d.ts +22 -8
- package/dist/src/sync/sync-manager.d.ts.map +1 -1
- package/dist/src/sync/sync-operation.d.ts +4 -2
- package/dist/src/sync/sync-operation.d.ts.map +1 -1
- package/dist/src/sync/sync-status-tracker.d.ts +31 -0
- package/dist/src/sync/sync-status-tracker.d.ts.map +1 -0
- package/dist/src/sync/types.d.ts +107 -2
- package/dist/src/sync/types.d.ts.map +1 -1
- package/dist/src/sync/utils.d.ts +37 -2
- package/dist/src/sync/utils.d.ts.map +1 -1
- package/dist/src/utils/reshuffle.d.ts +22 -5
- package/dist/src/utils/reshuffle.d.ts.map +1 -1
- package/package.json +24 -20
- package/dist/src/actions/index.js +0 -76
- package/dist/src/actions/index.js.map +0 -1
- package/dist/src/cache/buffer/ring-buffer.js +0 -69
- package/dist/src/cache/buffer/ring-buffer.js.map +0 -1
- package/dist/src/cache/document-meta-cache-types.js +0 -2
- package/dist/src/cache/document-meta-cache-types.js.map +0 -1
- package/dist/src/cache/document-meta-cache.js +0 -128
- package/dist/src/cache/document-meta-cache.js.map +0 -1
- package/dist/src/cache/index.js +0 -2
- package/dist/src/cache/index.js.map +0 -1
- package/dist/src/cache/kysely-operation-index.js +0 -250
- package/dist/src/cache/kysely-operation-index.js.map +0 -1
- package/dist/src/cache/kysely-write-cache.js +0 -388
- package/dist/src/cache/kysely-write-cache.js.map +0 -1
- package/dist/src/cache/lru/lru-tracker.js +0 -96
- package/dist/src/cache/lru/lru-tracker.js.map +0 -1
- package/dist/src/cache/operation-index-types.js +0 -4
- package/dist/src/cache/operation-index-types.js.map +0 -1
- package/dist/src/cache/write/interfaces.js +0 -2
- package/dist/src/cache/write/interfaces.js.map +0 -1
- package/dist/src/cache/write-cache-types.js +0 -2
- package/dist/src/cache/write-cache-types.js.map +0 -1
- package/dist/src/client/reactor-client.js +0 -406
- package/dist/src/client/reactor-client.js.map +0 -1
- package/dist/src/client/types.js +0 -14
- package/dist/src/client/types.js.map +0 -1
- package/dist/src/core/reactor-builder.js +0 -231
- package/dist/src/core/reactor-builder.js.map +0 -1
- package/dist/src/core/reactor-client-builder.js +0 -123
- package/dist/src/core/reactor-client-builder.js.map +0 -1
- package/dist/src/core/reactor.js +0 -981
- package/dist/src/core/reactor.js.map +0 -1
- package/dist/src/core/types.js +0 -2
- package/dist/src/core/types.js.map +0 -1
- package/dist/src/core/utils.js +0 -171
- package/dist/src/core/utils.js.map +0 -1
- package/dist/src/events/event-bus.js +0 -53
- package/dist/src/events/event-bus.js.map +0 -1
- package/dist/src/events/interfaces.js +0 -2
- package/dist/src/events/interfaces.js.map +0 -1
- package/dist/src/events/types.js +0 -28
- package/dist/src/events/types.js.map +0 -1
- package/dist/src/executor/interfaces.js +0 -2
- package/dist/src/executor/interfaces.js.map +0 -1
- package/dist/src/executor/simple-job-executor-manager.js +0 -233
- package/dist/src/executor/simple-job-executor-manager.js.map +0 -1
- package/dist/src/executor/simple-job-executor.js +0 -898
- package/dist/src/executor/simple-job-executor.js.map +0 -1
- package/dist/src/executor/types.js +0 -11
- package/dist/src/executor/types.js.map +0 -1
- package/dist/src/executor/util.js +0 -184
- package/dist/src/executor/util.js.map +0 -1
- package/dist/src/index.js.map +0 -1
- package/dist/src/job-tracker/in-memory-job-tracker.js +0 -112
- package/dist/src/job-tracker/in-memory-job-tracker.js.map +0 -1
- package/dist/src/job-tracker/index.js +0 -2
- package/dist/src/job-tracker/index.js.map +0 -1
- package/dist/src/job-tracker/interfaces.js +0 -2
- package/dist/src/job-tracker/interfaces.js.map +0 -1
- package/dist/src/logging/console.js +0 -108
- package/dist/src/logging/console.js.map +0 -1
- package/dist/src/logging/types.js +0 -2
- package/dist/src/logging/types.js.map +0 -1
- package/dist/src/processors/index.js +0 -2
- package/dist/src/processors/index.js.map +0 -1
- package/dist/src/processors/processor-manager.js +0 -165
- package/dist/src/processors/processor-manager.js.map +0 -1
- package/dist/src/processors/types.d.ts +0 -63
- package/dist/src/processors/types.d.ts.map +0 -1
- package/dist/src/processors/types.js +0 -2
- package/dist/src/processors/types.js.map +0 -1
- package/dist/src/processors/utils.js +0 -58
- package/dist/src/processors/utils.js.map +0 -1
- package/dist/src/queue/interfaces.js +0 -2
- package/dist/src/queue/interfaces.js.map +0 -1
- package/dist/src/queue/job-execution-handle.js +0 -62
- package/dist/src/queue/job-execution-handle.js.map +0 -1
- package/dist/src/queue/queue.js +0 -384
- package/dist/src/queue/queue.js.map +0 -1
- package/dist/src/queue/types.js +0 -19
- package/dist/src/queue/types.js.map +0 -1
- package/dist/src/read-models/base-read-model.js +0 -143
- package/dist/src/read-models/base-read-model.js.map +0 -1
- package/dist/src/read-models/coordinator.js +0 -72
- package/dist/src/read-models/coordinator.js.map +0 -1
- package/dist/src/read-models/document-view.js +0 -375
- package/dist/src/read-models/document-view.js.map +0 -1
- package/dist/src/read-models/interfaces.js +0 -2
- package/dist/src/read-models/interfaces.js.map +0 -1
- package/dist/src/read-models/types.js +0 -2
- package/dist/src/read-models/types.js.map +0 -1
- package/dist/src/registry/implementation.js +0 -216
- package/dist/src/registry/implementation.js.map +0 -1
- package/dist/src/registry/index.js +0 -2
- package/dist/src/registry/index.js.map +0 -1
- package/dist/src/registry/interfaces.js +0 -2
- package/dist/src/registry/interfaces.js.map +0 -1
- package/dist/src/shared/awaiter.js +0 -123
- package/dist/src/shared/awaiter.js.map +0 -1
- package/dist/src/shared/consistency-tracker.js +0 -123
- package/dist/src/shared/consistency-tracker.js.map +0 -1
- package/dist/src/shared/errors.js +0 -75
- package/dist/src/shared/errors.js.map +0 -1
- package/dist/src/shared/factories.js +0 -33
- package/dist/src/shared/factories.js.map +0 -1
- package/dist/src/shared/types.js +0 -38
- package/dist/src/shared/types.js.map +0 -1
- package/dist/src/shared/utils.js +0 -8
- package/dist/src/shared/utils.js.map +0 -1
- package/dist/src/signer/passthrough-signer.js +0 -19
- package/dist/src/signer/passthrough-signer.js.map +0 -1
- package/dist/src/signer/types.js +0 -2
- package/dist/src/signer/types.js.map +0 -1
- package/dist/src/storage/consistency-aware-legacy-storage.d.ts +0 -33
- package/dist/src/storage/consistency-aware-legacy-storage.d.ts.map +0 -1
- package/dist/src/storage/consistency-aware-legacy-storage.js +0 -65
- package/dist/src/storage/consistency-aware-legacy-storage.js.map +0 -1
- package/dist/src/storage/index.js +0 -3
- package/dist/src/storage/index.js.map +0 -1
- package/dist/src/storage/interfaces.js +0 -19
- package/dist/src/storage/interfaces.js.map +0 -1
- package/dist/src/storage/kysely/document-indexer.js +0 -350
- package/dist/src/storage/kysely/document-indexer.js.map +0 -1
- package/dist/src/storage/kysely/keyframe-store.js +0 -64
- package/dist/src/storage/kysely/keyframe-store.js.map +0 -1
- package/dist/src/storage/kysely/store.js +0 -233
- package/dist/src/storage/kysely/store.js.map +0 -1
- package/dist/src/storage/kysely/sync-cursor-storage.js +0 -93
- package/dist/src/storage/kysely/sync-cursor-storage.js.map +0 -1
- package/dist/src/storage/kysely/sync-remote-storage.js +0 -133
- package/dist/src/storage/kysely/sync-remote-storage.js.map +0 -1
- package/dist/src/storage/kysely/types.js +0 -2
- package/dist/src/storage/kysely/types.js.map +0 -1
- package/dist/src/storage/migrations/001_create_operation_table.js +0 -41
- package/dist/src/storage/migrations/001_create_operation_table.js.map +0 -1
- package/dist/src/storage/migrations/002_create_keyframe_table.js +0 -27
- package/dist/src/storage/migrations/002_create_keyframe_table.js.map +0 -1
- package/dist/src/storage/migrations/003_create_document_table.js +0 -10
- package/dist/src/storage/migrations/003_create_document_table.js.map +0 -1
- package/dist/src/storage/migrations/004_create_document_relationship_table.js +0 -35
- package/dist/src/storage/migrations/004_create_document_relationship_table.js.map +0 -1
- package/dist/src/storage/migrations/005_create_indexer_state_table.js +0 -10
- package/dist/src/storage/migrations/005_create_indexer_state_table.js.map +0 -1
- package/dist/src/storage/migrations/006_create_document_snapshot_table.js +0 -49
- package/dist/src/storage/migrations/006_create_document_snapshot_table.js.map +0 -1
- package/dist/src/storage/migrations/007_create_slug_mapping_table.js +0 -24
- package/dist/src/storage/migrations/007_create_slug_mapping_table.js.map +0 -1
- package/dist/src/storage/migrations/008_create_view_state_table.js +0 -10
- package/dist/src/storage/migrations/008_create_view_state_table.js.map +0 -1
- package/dist/src/storage/migrations/009_create_operation_index_tables.js +0 -50
- package/dist/src/storage/migrations/009_create_operation_index_tables.js.map +0 -1
- package/dist/src/storage/migrations/010_create_sync_tables.js +0 -43
- package/dist/src/storage/migrations/010_create_sync_tables.js.map +0 -1
- package/dist/src/storage/migrations/index.js +0 -3
- package/dist/src/storage/migrations/index.js.map +0 -1
- package/dist/src/storage/migrations/migrator.js +0 -78
- package/dist/src/storage/migrations/migrator.js.map +0 -1
- package/dist/src/storage/migrations/run-migrations.js +0 -58
- package/dist/src/storage/migrations/run-migrations.js.map +0 -1
- package/dist/src/storage/migrations/types.js +0 -2
- package/dist/src/storage/migrations/types.js.map +0 -1
- package/dist/src/storage/txn.js +0 -42
- package/dist/src/storage/txn.js.map +0 -1
- package/dist/src/subs/default-error-handler.js +0 -27
- package/dist/src/subs/default-error-handler.js.map +0 -1
- package/dist/src/subs/react-subscription-manager.js +0 -185
- package/dist/src/subs/react-subscription-manager.js.map +0 -1
- package/dist/src/subs/subscription-notification-read-model.js +0 -62
- package/dist/src/subs/subscription-notification-read-model.js.map +0 -1
- package/dist/src/subs/types.js +0 -2
- package/dist/src/subs/types.js.map +0 -1
- package/dist/src/sync/channels/composite-channel-factory.d.ts +0 -30
- package/dist/src/sync/channels/composite-channel-factory.d.ts.map +0 -1
- package/dist/src/sync/channels/composite-channel-factory.js +0 -87
- package/dist/src/sync/channels/composite-channel-factory.js.map +0 -1
- package/dist/src/sync/channels/gql-channel-factory.d.ts +0 -25
- package/dist/src/sync/channels/gql-channel-factory.d.ts.map +0 -1
- package/dist/src/sync/channels/gql-channel-factory.js +0 -76
- package/dist/src/sync/channels/gql-channel-factory.js.map +0 -1
- package/dist/src/sync/channels/gql-channel.d.ts +0 -118
- package/dist/src/sync/channels/gql-channel.d.ts.map +0 -1
- package/dist/src/sync/channels/gql-channel.js +0 -423
- package/dist/src/sync/channels/gql-channel.js.map +0 -1
- package/dist/src/sync/channels/index.js +0 -6
- package/dist/src/sync/channels/index.js.map +0 -1
- package/dist/src/sync/channels/polling-channel.d.ts +0 -39
- package/dist/src/sync/channels/polling-channel.d.ts.map +0 -1
- package/dist/src/sync/channels/polling-channel.js +0 -72
- package/dist/src/sync/channels/polling-channel.js.map +0 -1
- package/dist/src/sync/channels/utils.js +0 -96
- package/dist/src/sync/channels/utils.js.map +0 -1
- package/dist/src/sync/errors.js +0 -17
- package/dist/src/sync/errors.js.map +0 -1
- package/dist/src/sync/index.js +0 -9
- package/dist/src/sync/index.js.map +0 -1
- package/dist/src/sync/interfaces.js +0 -2
- package/dist/src/sync/interfaces.js.map +0 -1
- package/dist/src/sync/mailbox.js +0 -59
- package/dist/src/sync/mailbox.js.map +0 -1
- package/dist/src/sync/sync-builder.js +0 -39
- package/dist/src/sync/sync-builder.js.map +0 -1
- package/dist/src/sync/sync-manager.js +0 -266
- package/dist/src/sync/sync-manager.js.map +0 -1
- package/dist/src/sync/sync-operation.js +0 -63
- package/dist/src/sync/sync-operation.js.map +0 -1
- package/dist/src/sync/types.js +0 -16
- package/dist/src/sync/types.js.map +0 -1
- package/dist/src/sync/utils.js +0 -78
- package/dist/src/sync/utils.js.map +0 -1
- package/dist/src/utils/reshuffle.js +0 -47
- package/dist/src/utils/reshuffle.js.map +0 -1
|
@@ -1,39 +1,86 @@
|
|
|
1
|
-
import type { Operation, PHDocument } from "document-model";
|
|
2
|
-
import type { ConsistencyToken } from "../shared/types.js";
|
|
1
|
+
import type { Operation, OperationWithContext, PHDocument } from "document-model";
|
|
2
|
+
import type { ConsistencyToken, PagedResults, PagingOptions } from "../shared/types.js";
|
|
3
|
+
import type { ChannelErrorSource } from "../sync/types.js";
|
|
3
4
|
import type { RemoteCursor, RemoteRecord } from "../sync/types.js";
|
|
4
|
-
export type
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
branch: string;
|
|
9
|
-
resultingState?: string;
|
|
10
|
-
ordinal: number;
|
|
11
|
-
};
|
|
12
|
-
export type OperationWithContext = {
|
|
13
|
-
operation: Operation;
|
|
14
|
-
context: OperationContext;
|
|
15
|
-
};
|
|
5
|
+
export type { PagedResults, PagingOptions } from "../shared/types.js";
|
|
6
|
+
/**
|
|
7
|
+
* Thrown when an operation with the same identity already exists in the store.
|
|
8
|
+
*/
|
|
16
9
|
export declare class DuplicateOperationError extends Error {
|
|
17
10
|
constructor(description: string);
|
|
18
11
|
}
|
|
12
|
+
/**
|
|
13
|
+
* Thrown when a concurrent write conflict is detected during an atomic apply.
|
|
14
|
+
*/
|
|
19
15
|
export declare class OptimisticLockError extends Error {
|
|
20
16
|
constructor(message: string);
|
|
21
17
|
}
|
|
18
|
+
/**
|
|
19
|
+
* Thrown when the caller-provided revision does not match the current
|
|
20
|
+
* stored revision, indicating a stale read.
|
|
21
|
+
*/
|
|
22
22
|
export declare class RevisionMismatchError extends Error {
|
|
23
23
|
constructor(expected: number, actual: number);
|
|
24
24
|
}
|
|
25
|
+
/**
|
|
26
|
+
* A write transaction passed to {@link IOperationStore.apply}. Accumulates
|
|
27
|
+
* operations that are committed atomically when the callback returns.
|
|
28
|
+
*/
|
|
25
29
|
export interface AtomicTxn {
|
|
30
|
+
/** Stages one or more operations to be written as part of this transaction. */
|
|
26
31
|
addOperations(...operations: Operation[]): void;
|
|
27
32
|
}
|
|
33
|
+
/**
|
|
34
|
+
* Per-scope revision map for a document, used to reconstruct the header
|
|
35
|
+
* revision field and lastModified timestamp.
|
|
36
|
+
*/
|
|
28
37
|
export type DocumentRevisions = {
|
|
29
38
|
/** Map of scope to operation index for that scope */
|
|
30
39
|
revision: Record<string, number>;
|
|
31
40
|
/** Latest timestamp across revisions */
|
|
32
41
|
latestTimestamp: string;
|
|
33
42
|
};
|
|
43
|
+
/**
|
|
44
|
+
* Append-only store for document operations. Operations are partitioned by
|
|
45
|
+
* (documentId, scope, branch) and ordered by a monotonic revision index.
|
|
46
|
+
*/
|
|
34
47
|
export interface IOperationStore {
|
|
48
|
+
/**
|
|
49
|
+
* Atomically appends operations for a single document/scope/branch.
|
|
50
|
+
* The provided revision must match the current head; otherwise a
|
|
51
|
+
* {@link RevisionMismatchError} is thrown.
|
|
52
|
+
*
|
|
53
|
+
* @param documentId - The document id
|
|
54
|
+
* @param documentType - The document type identifier
|
|
55
|
+
* @param scope - The operation scope (e.g. "global", "local")
|
|
56
|
+
* @param branch - The branch name
|
|
57
|
+
* @param revision - Expected current revision (optimistic lock)
|
|
58
|
+
* @param fn - Callback that stages operations via {@link AtomicTxn}
|
|
59
|
+
* @param signal - Optional abort signal to cancel the request
|
|
60
|
+
*/
|
|
35
61
|
apply(documentId: string, documentType: string, scope: string, branch: string, revision: number, fn: (txn: AtomicTxn) => void | Promise<void>, signal?: AbortSignal): Promise<void>;
|
|
36
|
-
|
|
62
|
+
/**
|
|
63
|
+
* Returns operations for a document/scope/branch whose index is greater
|
|
64
|
+
* than the given revision.
|
|
65
|
+
*
|
|
66
|
+
* @param documentId - The document id
|
|
67
|
+
* @param scope - The operation scope
|
|
68
|
+
* @param branch - The branch name
|
|
69
|
+
* @param revision - Return operations after this revision index
|
|
70
|
+
* @param filter - Optional filters (action types, timestamp range)
|
|
71
|
+
* @param paging - Optional paging options for cursor-based pagination
|
|
72
|
+
* @param signal - Optional abort signal to cancel the request
|
|
73
|
+
*/
|
|
74
|
+
getSince(documentId: string, scope: string, branch: string, revision: number, filter?: OperationFilter, paging?: PagingOptions, signal?: AbortSignal): Promise<PagedResults<Operation>>;
|
|
75
|
+
/**
|
|
76
|
+
* Returns operations across all documents whose auto-increment store id
|
|
77
|
+
* is greater than the given id. Used by read models and sync to catch up
|
|
78
|
+
* on operations they may have missed.
|
|
79
|
+
*
|
|
80
|
+
* @param id - Return operations with store id greater than this value
|
|
81
|
+
* @param paging - Optional paging options for cursor-based pagination
|
|
82
|
+
* @param signal - Optional abort signal to cancel the request
|
|
83
|
+
*/
|
|
37
84
|
getSinceId(id: number, paging?: PagingOptions, signal?: AbortSignal): Promise<PagedResults<OperationWithContext>>;
|
|
38
85
|
/**
|
|
39
86
|
* Gets operations that may conflict with incoming operations during a load.
|
|
@@ -59,51 +106,106 @@ export interface IOperationStore {
|
|
|
59
106
|
*/
|
|
60
107
|
getRevisions(documentId: string, branch: string, signal?: AbortSignal): Promise<DocumentRevisions>;
|
|
61
108
|
}
|
|
109
|
+
/**
|
|
110
|
+
* Stores periodic document snapshots (keyframes) so that document state
|
|
111
|
+
* can be reconstructed without replaying the full operation history.
|
|
112
|
+
*/
|
|
62
113
|
export interface IKeyframeStore {
|
|
114
|
+
/**
|
|
115
|
+
* Stores a document snapshot at a specific revision.
|
|
116
|
+
*
|
|
117
|
+
* @param documentId - The document id
|
|
118
|
+
* @param scope - The operation scope
|
|
119
|
+
* @param branch - The branch name
|
|
120
|
+
* @param revision - The operation index this snapshot corresponds to
|
|
121
|
+
* @param document - The full document state to persist
|
|
122
|
+
* @param signal - Optional abort signal to cancel the request
|
|
123
|
+
*/
|
|
63
124
|
putKeyframe(documentId: string, scope: string, branch: string, revision: number, document: PHDocument, signal?: AbortSignal): Promise<void>;
|
|
125
|
+
/**
|
|
126
|
+
* Finds the keyframe closest to (but not exceeding) the target revision.
|
|
127
|
+
* Returns undefined if no keyframe exists for this document/scope/branch.
|
|
128
|
+
*
|
|
129
|
+
* @param documentId - The document id
|
|
130
|
+
* @param scope - The operation scope
|
|
131
|
+
* @param branch - The branch name
|
|
132
|
+
* @param targetRevision - The desired revision upper bound
|
|
133
|
+
* @param signal - Optional abort signal to cancel the request
|
|
134
|
+
*/
|
|
64
135
|
findNearestKeyframe(documentId: string, scope: string, branch: string, targetRevision: number, signal?: AbortSignal): Promise<{
|
|
65
136
|
revision: number;
|
|
66
137
|
document: PHDocument;
|
|
67
138
|
} | undefined>;
|
|
139
|
+
/**
|
|
140
|
+
* Lists all keyframes for a document, optionally filtered by scope and branch.
|
|
141
|
+
*
|
|
142
|
+
* @param documentId - The document id
|
|
143
|
+
* @param scope - Optional scope filter
|
|
144
|
+
* @param branch - Optional branch filter
|
|
145
|
+
* @param signal - Optional abort signal to cancel the request
|
|
146
|
+
*/
|
|
147
|
+
listKeyframes(documentId: string, scope?: string, branch?: string, signal?: AbortSignal): Promise<Array<{
|
|
148
|
+
scope: string;
|
|
149
|
+
branch: string;
|
|
150
|
+
revision: number;
|
|
151
|
+
document: PHDocument;
|
|
152
|
+
}>>;
|
|
153
|
+
/**
|
|
154
|
+
* Deletes keyframes for a document. Optionally scoped to a specific
|
|
155
|
+
* scope and/or branch.
|
|
156
|
+
*
|
|
157
|
+
* @param documentId - The document id
|
|
158
|
+
* @param scope - Optional scope filter; omit to delete across all scopes
|
|
159
|
+
* @param branch - Optional branch filter; omit to delete across all branches
|
|
160
|
+
* @param signal - Optional abort signal to cancel the request
|
|
161
|
+
* @returns The number of keyframes deleted
|
|
162
|
+
*/
|
|
68
163
|
deleteKeyframes(documentId: string, scope?: string, branch?: string, signal?: AbortSignal): Promise<number>;
|
|
69
164
|
}
|
|
165
|
+
/**
|
|
166
|
+
* Filters applied when reading document state from {@link IDocumentView}.
|
|
167
|
+
*/
|
|
70
168
|
export interface ViewFilter {
|
|
169
|
+
/** Branch to read from. Defaults to the main branch when omitted. */
|
|
71
170
|
branch?: string;
|
|
171
|
+
/** Scopes to include. When omitted, all scopes are included. */
|
|
72
172
|
scopes?: string[];
|
|
173
|
+
/** Exclude operations originating from this remote name. */
|
|
174
|
+
excludeSourceRemote?: string;
|
|
73
175
|
}
|
|
176
|
+
/**
|
|
177
|
+
* Criteria for searching documents in storage-backed read models.
|
|
178
|
+
* All provided fields are combined with AND logic.
|
|
179
|
+
*/
|
|
74
180
|
export interface SearchFilter {
|
|
181
|
+
/** Filter by document type identifier. */
|
|
75
182
|
documentType?: string;
|
|
183
|
+
/** Filter by parent document id. */
|
|
76
184
|
parentId?: string;
|
|
185
|
+
/** Filter by arbitrary key-value identifiers stored on the document. */
|
|
77
186
|
identifiers?: Record<string, any>;
|
|
187
|
+
/** When true, include soft-deleted documents in results. */
|
|
78
188
|
includeDeleted?: boolean;
|
|
79
189
|
}
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
export interface
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
name: string | null;
|
|
94
|
-
scope: string;
|
|
95
|
-
branch: string;
|
|
96
|
-
content: string;
|
|
97
|
-
documentType: string;
|
|
98
|
-
lastOperationIndex: number;
|
|
99
|
-
lastOperationHash: string;
|
|
100
|
-
lastUpdatedAt: Date;
|
|
101
|
-
snapshotVersion: number;
|
|
102
|
-
identifiers: string | null;
|
|
103
|
-
metadata: string | null;
|
|
104
|
-
isDeleted: boolean;
|
|
105
|
-
deletedAt: Date | null;
|
|
190
|
+
/**
|
|
191
|
+
* Filter options for querying operations. When multiple filters are provided,
|
|
192
|
+
* they are combined with AND logic.
|
|
193
|
+
*/
|
|
194
|
+
export interface OperationFilter {
|
|
195
|
+
/** Filter by action types (OR logic within array) */
|
|
196
|
+
actionTypes?: string[];
|
|
197
|
+
/** Filter operations with timestamp >= this value (ISO string) */
|
|
198
|
+
timestampFrom?: string;
|
|
199
|
+
/** Filter operations with timestamp <= this value (ISO string) */
|
|
200
|
+
timestampTo?: string;
|
|
201
|
+
/** Filter operations with index >= this value */
|
|
202
|
+
sinceRevision?: number;
|
|
106
203
|
}
|
|
204
|
+
/**
|
|
205
|
+
* Materialised read model that maintains document snapshots. Snapshots are
|
|
206
|
+
* updated by indexing operations (which must include `resultingState`) and
|
|
207
|
+
* queried with optional consistency tokens for read-after-write guarantees.
|
|
208
|
+
*/
|
|
107
209
|
export interface IDocumentView {
|
|
108
210
|
/**
|
|
109
211
|
* Initializes the view.
|
|
@@ -143,6 +245,15 @@ export interface IDocumentView {
|
|
|
143
245
|
* @param signal - Optional abort signal to cancel the request
|
|
144
246
|
*/
|
|
145
247
|
get<TDocument extends PHDocument>(documentId: string, view?: ViewFilter, consistencyToken?: ConsistencyToken, signal?: AbortSignal): Promise<TDocument>;
|
|
248
|
+
/**
|
|
249
|
+
* Returns the documents with the given ids.
|
|
250
|
+
*
|
|
251
|
+
* @param documentIds - The list of document ids to get.
|
|
252
|
+
* @param view - Optional filter containing branch and scopes information
|
|
253
|
+
* @param consistencyToken - Optional token for read-after-write consistency
|
|
254
|
+
* @param signal - Optional abort signal to cancel the request
|
|
255
|
+
*/
|
|
256
|
+
getMany<TDocument extends PHDocument>(documentIds: string[], view?: ViewFilter, consistencyToken?: ConsistencyToken, signal?: AbortSignal): Promise<TDocument[]>;
|
|
146
257
|
/**
|
|
147
258
|
* Returns the document with the given identifier (either id or slug).
|
|
148
259
|
* Throws an error if the identifier matches both an id and a slug that refer to different documents.
|
|
@@ -174,7 +285,33 @@ export interface IDocumentView {
|
|
|
174
285
|
* @returns The document ID or undefined if the slug doesn't exist
|
|
175
286
|
*/
|
|
176
287
|
resolveSlug(slug: string, view?: ViewFilter, consistencyToken?: ConsistencyToken, signal?: AbortSignal): Promise<string | undefined>;
|
|
288
|
+
/**
|
|
289
|
+
* Resolves a list of slugs to document IDs.
|
|
290
|
+
*
|
|
291
|
+
* @param slugs - The list of slugs to resolve.
|
|
292
|
+
* @param view - Optional filter containing branch and scopes information
|
|
293
|
+
* @param consistencyToken - Optional token for read-after-write consistency
|
|
294
|
+
* @param signal - Optional abort signal to cancel the request
|
|
295
|
+
* @returns The list of document IDs
|
|
296
|
+
*/
|
|
297
|
+
resolveSlugs(slugs: string[], view?: ViewFilter, consistencyToken?: ConsistencyToken, signal?: AbortSignal): Promise<string[]>;
|
|
298
|
+
/**
|
|
299
|
+
* Resolves an identifier (either id or slug) to a document ID.
|
|
300
|
+
* This is a lightweight alternative to getByIdOrSlug that returns just the ID
|
|
301
|
+
* without fetching the full document.
|
|
302
|
+
*
|
|
303
|
+
* @param identifier - The id or slug to resolve
|
|
304
|
+
* @param view - Optional filter containing branch and scopes information
|
|
305
|
+
* @param consistencyToken - Optional token for read-after-write consistency
|
|
306
|
+
* @param signal - Optional abort signal to cancel the request
|
|
307
|
+
* @returns The document ID
|
|
308
|
+
* @throws {Error} If document not found or identifier matches both an ID and slug referring to different documents
|
|
309
|
+
*/
|
|
310
|
+
resolveIdOrSlug(identifier: string, view?: ViewFilter, consistencyToken?: ConsistencyToken, signal?: AbortSignal): Promise<string>;
|
|
177
311
|
}
|
|
312
|
+
/**
|
|
313
|
+
* A directed relationship between two documents in the document graph.
|
|
314
|
+
*/
|
|
178
315
|
export type DocumentRelationship = {
|
|
179
316
|
sourceId: string;
|
|
180
317
|
targetId: string;
|
|
@@ -183,15 +320,27 @@ export type DocumentRelationship = {
|
|
|
183
320
|
createdAt: Date;
|
|
184
321
|
updatedAt: Date;
|
|
185
322
|
};
|
|
323
|
+
/**
|
|
324
|
+
* A lightweight directed edge in a {@link IDocumentGraph}.
|
|
325
|
+
*/
|
|
186
326
|
export type DocumentGraphEdge = {
|
|
187
327
|
from: string;
|
|
188
328
|
to: string;
|
|
189
329
|
type: string;
|
|
190
330
|
};
|
|
331
|
+
/**
|
|
332
|
+
* A subgraph of the document relationship graph, returned by traversal
|
|
333
|
+
* queries such as {@link IDocumentIndexer.findAncestors}.
|
|
334
|
+
*/
|
|
191
335
|
export interface IDocumentGraph {
|
|
192
336
|
nodes: string[];
|
|
193
337
|
edges: DocumentGraphEdge[];
|
|
194
338
|
}
|
|
339
|
+
/**
|
|
340
|
+
* Read model that maintains a directed graph of document relationships.
|
|
341
|
+
* Relationships are created and removed by indexing operations containing
|
|
342
|
+
* ADD_RELATIONSHIP and REMOVE_RELATIONSHIP actions.
|
|
343
|
+
*/
|
|
195
344
|
export interface IDocumentIndexer {
|
|
196
345
|
/**
|
|
197
346
|
* Initializes the indexer and catches up on any missed operations.
|
|
@@ -221,7 +370,7 @@ export interface IDocumentIndexer {
|
|
|
221
370
|
* @param consistencyToken - Optional token for read-after-write consistency
|
|
222
371
|
* @param signal - Optional abort signal to cancel the request
|
|
223
372
|
*/
|
|
224
|
-
getOutgoing(documentId: string, types?: string[], consistencyToken?: ConsistencyToken, signal?: AbortSignal): Promise<DocumentRelationship
|
|
373
|
+
getOutgoing(documentId: string, types?: string[], paging?: PagingOptions, consistencyToken?: ConsistencyToken, signal?: AbortSignal): Promise<PagedResults<DocumentRelationship>>;
|
|
225
374
|
/**
|
|
226
375
|
* Returns incoming relationships to a document.
|
|
227
376
|
*
|
|
@@ -230,7 +379,7 @@ export interface IDocumentIndexer {
|
|
|
230
379
|
* @param consistencyToken - Optional token for read-after-write consistency
|
|
231
380
|
* @param signal - Optional abort signal to cancel the request
|
|
232
381
|
*/
|
|
233
|
-
getIncoming(documentId: string, types?: string[], consistencyToken?: ConsistencyToken, signal?: AbortSignal): Promise<DocumentRelationship
|
|
382
|
+
getIncoming(documentId: string, types?: string[], paging?: PagingOptions, consistencyToken?: ConsistencyToken, signal?: AbortSignal): Promise<PagedResults<DocumentRelationship>>;
|
|
234
383
|
/**
|
|
235
384
|
* Checks if a relationship exists between two documents.
|
|
236
385
|
*
|
|
@@ -250,7 +399,7 @@ export interface IDocumentIndexer {
|
|
|
250
399
|
* @param consistencyToken - Optional token for read-after-write consistency
|
|
251
400
|
* @param signal - Optional abort signal to cancel the request
|
|
252
401
|
*/
|
|
253
|
-
getUndirectedRelationships(a: string, b: string, types?: string[], consistencyToken?: ConsistencyToken, signal?: AbortSignal): Promise<DocumentRelationship
|
|
402
|
+
getUndirectedRelationships(a: string, b: string, types?: string[], paging?: PagingOptions, consistencyToken?: ConsistencyToken, signal?: AbortSignal): Promise<PagedResults<DocumentRelationship>>;
|
|
254
403
|
/**
|
|
255
404
|
* Returns all directed relationships between two documents.
|
|
256
405
|
*
|
|
@@ -260,7 +409,7 @@ export interface IDocumentIndexer {
|
|
|
260
409
|
* @param consistencyToken - Optional token for read-after-write consistency
|
|
261
410
|
* @param signal - Optional abort signal to cancel the request
|
|
262
411
|
*/
|
|
263
|
-
getDirectedRelationships(sourceId: string, targetId: string, types?: string[], consistencyToken?: ConsistencyToken, signal?: AbortSignal): Promise<DocumentRelationship
|
|
412
|
+
getDirectedRelationships(sourceId: string, targetId: string, types?: string[], paging?: PagingOptions, consistencyToken?: ConsistencyToken, signal?: AbortSignal): Promise<PagedResults<DocumentRelationship>>;
|
|
264
413
|
/**
|
|
265
414
|
* Finds a path from source to target following directed edges.
|
|
266
415
|
*
|
|
@@ -290,85 +439,9 @@ export interface IDocumentIndexer {
|
|
|
290
439
|
getRelationshipTypes(consistencyToken?: ConsistencyToken, signal?: AbortSignal): Promise<string[]>;
|
|
291
440
|
}
|
|
292
441
|
/**
|
|
293
|
-
*
|
|
294
|
-
*
|
|
295
|
-
* accepting an optional consistency token on read operations.
|
|
296
|
-
*
|
|
297
|
-
* This is a standalone interface (not extending IDocumentStorage) because the
|
|
298
|
-
* method signatures differ - consistency token is added as an optional parameter
|
|
299
|
-
* to read operations.
|
|
442
|
+
* Persistent storage for sync remote configurations. Each remote represents
|
|
443
|
+
* a connection to an external system that operations can be synced with.
|
|
300
444
|
*/
|
|
301
|
-
export interface IConsistencyAwareStorage {
|
|
302
|
-
/**
|
|
303
|
-
* Returns the document with the given id.
|
|
304
|
-
*
|
|
305
|
-
* @param id - The id of the document to get
|
|
306
|
-
* @param consistencyToken - Optional token for read-after-write consistency
|
|
307
|
-
* @param signal - Optional abort signal to cancel the request
|
|
308
|
-
*/
|
|
309
|
-
get<TDocument extends PHDocument>(id: string, consistencyToken?: ConsistencyToken, signal?: AbortSignal): Promise<TDocument>;
|
|
310
|
-
/**
|
|
311
|
-
* Returns the document with the given slug.
|
|
312
|
-
*
|
|
313
|
-
* @param slug - The slug of the document to get
|
|
314
|
-
* @param consistencyToken - Optional token for read-after-write consistency
|
|
315
|
-
* @param signal - Optional abort signal to cancel the request
|
|
316
|
-
*/
|
|
317
|
-
getBySlug<TDocument extends PHDocument>(slug: string, consistencyToken?: ConsistencyToken, signal?: AbortSignal): Promise<TDocument>;
|
|
318
|
-
/**
|
|
319
|
-
* Returns true if the document exists.
|
|
320
|
-
*
|
|
321
|
-
* @param id - The id of the document to check
|
|
322
|
-
* @param consistencyToken - Optional token for read-after-write consistency
|
|
323
|
-
* @param signal - Optional abort signal to cancel the request
|
|
324
|
-
*/
|
|
325
|
-
exists(id: string, consistencyToken?: ConsistencyToken, signal?: AbortSignal): Promise<boolean>;
|
|
326
|
-
/**
|
|
327
|
-
* Finds documents by their document type.
|
|
328
|
-
*
|
|
329
|
-
* @param type - The document type to search for
|
|
330
|
-
* @param limit - Optional limit on the number of results
|
|
331
|
-
* @param cursor - Optional cursor for pagination
|
|
332
|
-
* @param consistencyToken - Optional token for read-after-write consistency
|
|
333
|
-
* @param signal - Optional abort signal to cancel the request
|
|
334
|
-
*/
|
|
335
|
-
findByType(type: string, limit?: number, cursor?: string, consistencyToken?: ConsistencyToken, signal?: AbortSignal): Promise<{
|
|
336
|
-
documents: string[];
|
|
337
|
-
nextCursor: string | undefined;
|
|
338
|
-
}>;
|
|
339
|
-
/**
|
|
340
|
-
* Returns the children of a document.
|
|
341
|
-
*
|
|
342
|
-
* @param id - The id of the parent document
|
|
343
|
-
* @param consistencyToken - Optional token for read-after-write consistency
|
|
344
|
-
* @param signal - Optional abort signal to cancel the request
|
|
345
|
-
*/
|
|
346
|
-
getChildren(id: string, consistencyToken?: ConsistencyToken, signal?: AbortSignal): Promise<string[]>;
|
|
347
|
-
/**
|
|
348
|
-
* Resolves slugs to document IDs.
|
|
349
|
-
*
|
|
350
|
-
* @param slugs - The slugs to resolve
|
|
351
|
-
* @param consistencyToken - Optional token for read-after-write consistency
|
|
352
|
-
* @param signal - Optional abort signal to cancel the request
|
|
353
|
-
*/
|
|
354
|
-
resolveIds(slugs: string[], consistencyToken?: ConsistencyToken, signal?: AbortSignal): Promise<string[]>;
|
|
355
|
-
/**
|
|
356
|
-
* Resolves document IDs to slugs.
|
|
357
|
-
*
|
|
358
|
-
* @param ids - The document IDs to resolve
|
|
359
|
-
* @param consistencyToken - Optional token for read-after-write consistency
|
|
360
|
-
* @param signal - Optional abort signal to cancel the request
|
|
361
|
-
*/
|
|
362
|
-
resolveSlugs(ids: string[], consistencyToken?: ConsistencyToken, signal?: AbortSignal): Promise<string[]>;
|
|
363
|
-
/**
|
|
364
|
-
* Returns all parent documents of the child document with the given id.
|
|
365
|
-
*
|
|
366
|
-
* @param childId - The id of the child document
|
|
367
|
-
* @param consistencyToken - Optional token for read-after-write consistency
|
|
368
|
-
* @param signal - Optional abort signal to cancel the request
|
|
369
|
-
*/
|
|
370
|
-
getParents(childId: string, consistencyToken?: ConsistencyToken, signal?: AbortSignal): Promise<string[]>;
|
|
371
|
-
}
|
|
372
445
|
export interface ISyncRemoteStorage {
|
|
373
446
|
/**
|
|
374
447
|
* Lists all remotes.
|
|
@@ -402,6 +475,10 @@ export interface ISyncRemoteStorage {
|
|
|
402
475
|
*/
|
|
403
476
|
remove(name: string, signal?: AbortSignal): Promise<void>;
|
|
404
477
|
}
|
|
478
|
+
/**
|
|
479
|
+
* Persistent storage for sync cursors that track inbox/outbox progress
|
|
480
|
+
* per remote. Cursors allow sync to resume from where it left off.
|
|
481
|
+
*/
|
|
405
482
|
export interface ISyncCursorStorage {
|
|
406
483
|
/**
|
|
407
484
|
* Lists all cursors for a remote.
|
|
@@ -415,10 +492,11 @@ export interface ISyncCursorStorage {
|
|
|
415
492
|
* Gets a cursor for a remote.
|
|
416
493
|
*
|
|
417
494
|
* @param remoteName - The name of the remote
|
|
495
|
+
* @param cursorType - The type of cursor ("inbox" or "outbox")
|
|
418
496
|
* @param signal - Optional abort signal to cancel the request
|
|
419
497
|
* @returns The cursor
|
|
420
498
|
*/
|
|
421
|
-
get(remoteName: string, signal?: AbortSignal): Promise<RemoteCursor>;
|
|
499
|
+
get(remoteName: string, cursorType: "inbox" | "outbox", signal?: AbortSignal): Promise<RemoteCursor>;
|
|
422
500
|
/**
|
|
423
501
|
* Upserts a cursor.
|
|
424
502
|
*
|
|
@@ -436,4 +514,54 @@ export interface ISyncCursorStorage {
|
|
|
436
514
|
*/
|
|
437
515
|
remove(remoteName: string, signal?: AbortSignal): Promise<void>;
|
|
438
516
|
}
|
|
517
|
+
/**
|
|
518
|
+
* Serializable snapshot of a permanently failed SyncOperation.
|
|
519
|
+
*/
|
|
520
|
+
export type DeadLetterRecord = {
|
|
521
|
+
id: string;
|
|
522
|
+
jobId: string;
|
|
523
|
+
jobDependencies: string[];
|
|
524
|
+
remoteName: string;
|
|
525
|
+
documentId: string;
|
|
526
|
+
scopes: string[];
|
|
527
|
+
branch: string;
|
|
528
|
+
operations: OperationWithContext[];
|
|
529
|
+
errorSource: ChannelErrorSource;
|
|
530
|
+
errorMessage: string;
|
|
531
|
+
};
|
|
532
|
+
/**
|
|
533
|
+
* Persists dead-lettered sync operations so they survive reactor restarts.
|
|
534
|
+
*/
|
|
535
|
+
export interface ISyncDeadLetterStorage {
|
|
536
|
+
/**
|
|
537
|
+
* Lists dead letters for a remote, ordered by ordinal DESC (newest first).
|
|
538
|
+
*
|
|
539
|
+
* @param remoteName - The name of the remote
|
|
540
|
+
* @param paging - Optional paging options (cursor + limit)
|
|
541
|
+
* @param signal - Optional abort signal to cancel the request
|
|
542
|
+
* @returns Paged dead letter records
|
|
543
|
+
*/
|
|
544
|
+
list(remoteName: string, paging?: PagingOptions, signal?: AbortSignal): Promise<PagedResults<DeadLetterRecord>>;
|
|
545
|
+
/**
|
|
546
|
+
* Adds a dead letter. Duplicate ids are silently ignored.
|
|
547
|
+
*
|
|
548
|
+
* @param deadLetter - The dead letter record to persist
|
|
549
|
+
* @param signal - Optional abort signal to cancel the request
|
|
550
|
+
*/
|
|
551
|
+
add(deadLetter: DeadLetterRecord, signal?: AbortSignal): Promise<void>;
|
|
552
|
+
/**
|
|
553
|
+
* Removes a single dead letter by id.
|
|
554
|
+
*
|
|
555
|
+
* @param id - The dead letter id
|
|
556
|
+
* @param signal - Optional abort signal to cancel the request
|
|
557
|
+
*/
|
|
558
|
+
remove(id: string, signal?: AbortSignal): Promise<void>;
|
|
559
|
+
/**
|
|
560
|
+
* Removes all dead letters for a remote.
|
|
561
|
+
*
|
|
562
|
+
* @param remoteName - The name of the remote
|
|
563
|
+
* @param signal - Optional abort signal to cancel the request
|
|
564
|
+
*/
|
|
565
|
+
removeByRemote(remoteName: string, signal?: AbortSignal): Promise<void>;
|
|
566
|
+
}
|
|
439
567
|
//# sourceMappingURL=interfaces.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../src/storage/interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../src/storage/interfaces.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,28 +1,27 @@
|
|
|
1
|
+
import type { OperationWithContext } from "document-model";
|
|
1
2
|
import type { Kysely } from "kysely";
|
|
3
|
+
import type { IOperationIndex } from "../../cache/operation-index-types.js";
|
|
4
|
+
import type { IWriteCache } from "../../cache/write/interfaces.js";
|
|
5
|
+
import { BaseReadModel } from "../../read-models/base-read-model.js";
|
|
6
|
+
import type { DocumentViewDatabase } from "../../read-models/types.js";
|
|
2
7
|
import type { IConsistencyTracker } from "../../shared/consistency-tracker.js";
|
|
3
|
-
import type { ConsistencyToken } from "../../shared/types.js";
|
|
4
|
-
import type { DocumentRelationship, IDocumentGraph, IDocumentIndexer
|
|
5
|
-
import type { Database as StorageDatabase
|
|
6
|
-
type
|
|
7
|
-
export declare class KyselyDocumentIndexer implements IDocumentIndexer {
|
|
8
|
-
private
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
init(): Promise<void>;
|
|
14
|
-
indexOperations(items: OperationWithContext[]): Promise<void>;
|
|
15
|
-
waitForConsistency(token: ConsistencyToken, timeoutMs?: number, signal?: AbortSignal): Promise<void>;
|
|
16
|
-
getOutgoing(documentId: string, types?: string[], consistencyToken?: ConsistencyToken, signal?: AbortSignal): Promise<DocumentRelationship[]>;
|
|
17
|
-
getIncoming(documentId: string, types?: string[], consistencyToken?: ConsistencyToken, signal?: AbortSignal): Promise<DocumentRelationship[]>;
|
|
8
|
+
import type { ConsistencyToken, PagedResults, PagingOptions } from "../../shared/types.js";
|
|
9
|
+
import type { DocumentRelationship, IDocumentGraph, IDocumentIndexer } from "../interfaces.js";
|
|
10
|
+
import type { DocumentIndexerDatabase, Database as StorageDatabase } from "./types.js";
|
|
11
|
+
export type IndexerDatabase = StorageDatabase & DocumentIndexerDatabase & DocumentViewDatabase;
|
|
12
|
+
export declare class KyselyDocumentIndexer extends BaseReadModel implements IDocumentIndexer {
|
|
13
|
+
private _db;
|
|
14
|
+
constructor(db: Kysely<IndexerDatabase>, operationIndex: IOperationIndex, writeCache: IWriteCache, consistencyTracker: IConsistencyTracker);
|
|
15
|
+
protected commitOperations(items: OperationWithContext[]): Promise<void>;
|
|
16
|
+
getOutgoing(documentId: string, types?: string[], paging?: PagingOptions, consistencyToken?: ConsistencyToken, signal?: AbortSignal): Promise<PagedResults<DocumentRelationship>>;
|
|
17
|
+
getIncoming(documentId: string, types?: string[], paging?: PagingOptions, consistencyToken?: ConsistencyToken, signal?: AbortSignal): Promise<PagedResults<DocumentRelationship>>;
|
|
18
18
|
hasRelationship(sourceId: string, targetId: string, types?: string[], consistencyToken?: ConsistencyToken, signal?: AbortSignal): Promise<boolean>;
|
|
19
|
-
getUndirectedRelationships(a: string, b: string, types?: string[], consistencyToken?: ConsistencyToken, signal?: AbortSignal): Promise<DocumentRelationship
|
|
20
|
-
getDirectedRelationships(sourceId: string, targetId: string, types?: string[], consistencyToken?: ConsistencyToken, signal?: AbortSignal): Promise<DocumentRelationship
|
|
19
|
+
getUndirectedRelationships(a: string, b: string, types?: string[], paging?: PagingOptions, consistencyToken?: ConsistencyToken, signal?: AbortSignal): Promise<PagedResults<DocumentRelationship>>;
|
|
20
|
+
getDirectedRelationships(sourceId: string, targetId: string, types?: string[], paging?: PagingOptions, consistencyToken?: ConsistencyToken, signal?: AbortSignal): Promise<PagedResults<DocumentRelationship>>;
|
|
21
21
|
findPath(sourceId: string, targetId: string, types?: string[], consistencyToken?: ConsistencyToken, signal?: AbortSignal): Promise<string[] | null>;
|
|
22
22
|
findAncestors(documentId: string, types?: string[], consistencyToken?: ConsistencyToken, signal?: AbortSignal): Promise<IDocumentGraph>;
|
|
23
23
|
getRelationshipTypes(consistencyToken?: ConsistencyToken, signal?: AbortSignal): Promise<string[]>;
|
|
24
24
|
private handleAddRelationship;
|
|
25
25
|
private handleRemoveRelationship;
|
|
26
26
|
}
|
|
27
|
-
export {};
|
|
28
27
|
//# sourceMappingURL=document-indexer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"document-indexer.d.ts","sourceRoot":"","sources":["../../../../src/storage/kysely/document-indexer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"document-indexer.d.ts","sourceRoot":"","sources":["../../../../src/storage/kysely/document-indexer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +1,24 @@
|
|
|
1
1
|
import type { PHDocument } from "document-model";
|
|
2
|
-
import type { Kysely } from "kysely";
|
|
2
|
+
import type { Kysely, Transaction } from "kysely";
|
|
3
3
|
import type { IKeyframeStore } from "../interfaces.js";
|
|
4
4
|
import type { Database } from "./types.js";
|
|
5
5
|
export declare class KyselyKeyframeStore implements IKeyframeStore {
|
|
6
6
|
private db;
|
|
7
|
+
private trx?;
|
|
7
8
|
constructor(db: Kysely<Database>);
|
|
9
|
+
private get queryExecutor();
|
|
10
|
+
withTransaction(trx: Transaction<Database>): KyselyKeyframeStore;
|
|
8
11
|
putKeyframe(documentId: string, scope: string, branch: string, revision: number, document: PHDocument, signal?: AbortSignal): Promise<void>;
|
|
9
12
|
findNearestKeyframe(documentId: string, scope: string, branch: string, targetRevision: number, signal?: AbortSignal): Promise<{
|
|
10
13
|
revision: number;
|
|
11
14
|
document: PHDocument;
|
|
12
15
|
} | undefined>;
|
|
16
|
+
listKeyframes(documentId: string, scope?: string, branch?: string, signal?: AbortSignal): Promise<Array<{
|
|
17
|
+
scope: string;
|
|
18
|
+
branch: string;
|
|
19
|
+
revision: number;
|
|
20
|
+
document: PHDocument;
|
|
21
|
+
}>>;
|
|
13
22
|
deleteKeyframes(documentId: string, scope?: string, branch?: string, signal?: AbortSignal): Promise<number>;
|
|
14
23
|
}
|
|
15
24
|
//# sourceMappingURL=keyframe-store.d.ts.map
|