@powerhousedao/reactor 6.0.0-dev.8 → 6.0.0-dev.81
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/cache/collection-membership-cache.d.ts +13 -0
- package/dist/src/cache/collection-membership-cache.d.ts.map +1 -0
- package/dist/src/cache/document-meta-cache.d.ts.map +1 -1
- package/dist/src/cache/kysely-operation-index.d.ts +6 -1
- package/dist/src/cache/kysely-operation-index.d.ts.map +1 -1
- package/dist/src/cache/kysely-write-cache.d.ts +9 -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 +5 -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 +37 -0
- package/dist/src/executor/document-action-handler.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 +6 -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 +11 -9
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +20208 -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 +1 -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/relational/types.d.ts +2 -0
- package/dist/src/processors/relational/types.d.ts.map +1 -0
- package/dist/src/processors/relational/utils.d.ts +2 -0
- package/dist/src/processors/relational/utils.d.ts.map +1 -0
- 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 +238 -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/store.d.ts +5 -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,92 @@ 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
|
+
* Deletes keyframes for a document. Optionally scoped to a specific
|
|
141
|
+
* scope and/or branch.
|
|
142
|
+
*
|
|
143
|
+
* @param documentId - The document id
|
|
144
|
+
* @param scope - Optional scope filter; omit to delete across all scopes
|
|
145
|
+
* @param branch - Optional branch filter; omit to delete across all branches
|
|
146
|
+
* @param signal - Optional abort signal to cancel the request
|
|
147
|
+
* @returns The number of keyframes deleted
|
|
148
|
+
*/
|
|
68
149
|
deleteKeyframes(documentId: string, scope?: string, branch?: string, signal?: AbortSignal): Promise<number>;
|
|
69
150
|
}
|
|
151
|
+
/**
|
|
152
|
+
* Filters applied when reading document state from {@link IDocumentView}.
|
|
153
|
+
*/
|
|
70
154
|
export interface ViewFilter {
|
|
155
|
+
/** Branch to read from. Defaults to the main branch when omitted. */
|
|
71
156
|
branch?: string;
|
|
157
|
+
/** Scopes to include. When omitted, all scopes are included. */
|
|
72
158
|
scopes?: string[];
|
|
159
|
+
/** Exclude operations originating from this remote name. */
|
|
160
|
+
excludeSourceRemote?: string;
|
|
73
161
|
}
|
|
162
|
+
/**
|
|
163
|
+
* Criteria for searching documents in storage-backed read models.
|
|
164
|
+
* All provided fields are combined with AND logic.
|
|
165
|
+
*/
|
|
74
166
|
export interface SearchFilter {
|
|
167
|
+
/** Filter by document type identifier. */
|
|
75
168
|
documentType?: string;
|
|
169
|
+
/** Filter by parent document id. */
|
|
76
170
|
parentId?: string;
|
|
171
|
+
/** Filter by arbitrary key-value identifiers stored on the document. */
|
|
77
172
|
identifiers?: Record<string, any>;
|
|
173
|
+
/** When true, include soft-deleted documents in results. */
|
|
78
174
|
includeDeleted?: boolean;
|
|
79
175
|
}
|
|
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;
|
|
176
|
+
/**
|
|
177
|
+
* Filter options for querying operations. When multiple filters are provided,
|
|
178
|
+
* they are combined with AND logic.
|
|
179
|
+
*/
|
|
180
|
+
export interface OperationFilter {
|
|
181
|
+
/** Filter by action types (OR logic within array) */
|
|
182
|
+
actionTypes?: string[];
|
|
183
|
+
/** Filter operations with timestamp >= this value (ISO string) */
|
|
184
|
+
timestampFrom?: string;
|
|
185
|
+
/** Filter operations with timestamp <= this value (ISO string) */
|
|
186
|
+
timestampTo?: string;
|
|
187
|
+
/** Filter operations with index >= this value */
|
|
188
|
+
sinceRevision?: number;
|
|
106
189
|
}
|
|
190
|
+
/**
|
|
191
|
+
* Materialised read model that maintains document snapshots. Snapshots are
|
|
192
|
+
* updated by indexing operations (which must include `resultingState`) and
|
|
193
|
+
* queried with optional consistency tokens for read-after-write guarantees.
|
|
194
|
+
*/
|
|
107
195
|
export interface IDocumentView {
|
|
108
196
|
/**
|
|
109
197
|
* Initializes the view.
|
|
@@ -143,6 +231,15 @@ export interface IDocumentView {
|
|
|
143
231
|
* @param signal - Optional abort signal to cancel the request
|
|
144
232
|
*/
|
|
145
233
|
get<TDocument extends PHDocument>(documentId: string, view?: ViewFilter, consistencyToken?: ConsistencyToken, signal?: AbortSignal): Promise<TDocument>;
|
|
234
|
+
/**
|
|
235
|
+
* Returns the documents with the given ids.
|
|
236
|
+
*
|
|
237
|
+
* @param documentIds - The list of document ids to get.
|
|
238
|
+
* @param view - Optional filter containing branch and scopes information
|
|
239
|
+
* @param consistencyToken - Optional token for read-after-write consistency
|
|
240
|
+
* @param signal - Optional abort signal to cancel the request
|
|
241
|
+
*/
|
|
242
|
+
getMany<TDocument extends PHDocument>(documentIds: string[], view?: ViewFilter, consistencyToken?: ConsistencyToken, signal?: AbortSignal): Promise<TDocument[]>;
|
|
146
243
|
/**
|
|
147
244
|
* Returns the document with the given identifier (either id or slug).
|
|
148
245
|
* Throws an error if the identifier matches both an id and a slug that refer to different documents.
|
|
@@ -174,7 +271,33 @@ export interface IDocumentView {
|
|
|
174
271
|
* @returns The document ID or undefined if the slug doesn't exist
|
|
175
272
|
*/
|
|
176
273
|
resolveSlug(slug: string, view?: ViewFilter, consistencyToken?: ConsistencyToken, signal?: AbortSignal): Promise<string | undefined>;
|
|
274
|
+
/**
|
|
275
|
+
* Resolves a list of slugs to document IDs.
|
|
276
|
+
*
|
|
277
|
+
* @param slugs - The list of slugs to resolve.
|
|
278
|
+
* @param view - Optional filter containing branch and scopes information
|
|
279
|
+
* @param consistencyToken - Optional token for read-after-write consistency
|
|
280
|
+
* @param signal - Optional abort signal to cancel the request
|
|
281
|
+
* @returns The list of document IDs
|
|
282
|
+
*/
|
|
283
|
+
resolveSlugs(slugs: string[], view?: ViewFilter, consistencyToken?: ConsistencyToken, signal?: AbortSignal): Promise<string[]>;
|
|
284
|
+
/**
|
|
285
|
+
* Resolves an identifier (either id or slug) to a document ID.
|
|
286
|
+
* This is a lightweight alternative to getByIdOrSlug that returns just the ID
|
|
287
|
+
* without fetching the full document.
|
|
288
|
+
*
|
|
289
|
+
* @param identifier - The id or slug to resolve
|
|
290
|
+
* @param view - Optional filter containing branch and scopes information
|
|
291
|
+
* @param consistencyToken - Optional token for read-after-write consistency
|
|
292
|
+
* @param signal - Optional abort signal to cancel the request
|
|
293
|
+
* @returns The document ID
|
|
294
|
+
* @throws {Error} If document not found or identifier matches both an ID and slug referring to different documents
|
|
295
|
+
*/
|
|
296
|
+
resolveIdOrSlug(identifier: string, view?: ViewFilter, consistencyToken?: ConsistencyToken, signal?: AbortSignal): Promise<string>;
|
|
177
297
|
}
|
|
298
|
+
/**
|
|
299
|
+
* A directed relationship between two documents in the document graph.
|
|
300
|
+
*/
|
|
178
301
|
export type DocumentRelationship = {
|
|
179
302
|
sourceId: string;
|
|
180
303
|
targetId: string;
|
|
@@ -183,15 +306,27 @@ export type DocumentRelationship = {
|
|
|
183
306
|
createdAt: Date;
|
|
184
307
|
updatedAt: Date;
|
|
185
308
|
};
|
|
309
|
+
/**
|
|
310
|
+
* A lightweight directed edge in a {@link IDocumentGraph}.
|
|
311
|
+
*/
|
|
186
312
|
export type DocumentGraphEdge = {
|
|
187
313
|
from: string;
|
|
188
314
|
to: string;
|
|
189
315
|
type: string;
|
|
190
316
|
};
|
|
317
|
+
/**
|
|
318
|
+
* A subgraph of the document relationship graph, returned by traversal
|
|
319
|
+
* queries such as {@link IDocumentIndexer.findAncestors}.
|
|
320
|
+
*/
|
|
191
321
|
export interface IDocumentGraph {
|
|
192
322
|
nodes: string[];
|
|
193
323
|
edges: DocumentGraphEdge[];
|
|
194
324
|
}
|
|
325
|
+
/**
|
|
326
|
+
* Read model that maintains a directed graph of document relationships.
|
|
327
|
+
* Relationships are created and removed by indexing operations containing
|
|
328
|
+
* ADD_RELATIONSHIP and REMOVE_RELATIONSHIP actions.
|
|
329
|
+
*/
|
|
195
330
|
export interface IDocumentIndexer {
|
|
196
331
|
/**
|
|
197
332
|
* Initializes the indexer and catches up on any missed operations.
|
|
@@ -221,7 +356,7 @@ export interface IDocumentIndexer {
|
|
|
221
356
|
* @param consistencyToken - Optional token for read-after-write consistency
|
|
222
357
|
* @param signal - Optional abort signal to cancel the request
|
|
223
358
|
*/
|
|
224
|
-
getOutgoing(documentId: string, types?: string[], consistencyToken?: ConsistencyToken, signal?: AbortSignal): Promise<DocumentRelationship
|
|
359
|
+
getOutgoing(documentId: string, types?: string[], paging?: PagingOptions, consistencyToken?: ConsistencyToken, signal?: AbortSignal): Promise<PagedResults<DocumentRelationship>>;
|
|
225
360
|
/**
|
|
226
361
|
* Returns incoming relationships to a document.
|
|
227
362
|
*
|
|
@@ -230,7 +365,7 @@ export interface IDocumentIndexer {
|
|
|
230
365
|
* @param consistencyToken - Optional token for read-after-write consistency
|
|
231
366
|
* @param signal - Optional abort signal to cancel the request
|
|
232
367
|
*/
|
|
233
|
-
getIncoming(documentId: string, types?: string[], consistencyToken?: ConsistencyToken, signal?: AbortSignal): Promise<DocumentRelationship
|
|
368
|
+
getIncoming(documentId: string, types?: string[], paging?: PagingOptions, consistencyToken?: ConsistencyToken, signal?: AbortSignal): Promise<PagedResults<DocumentRelationship>>;
|
|
234
369
|
/**
|
|
235
370
|
* Checks if a relationship exists between two documents.
|
|
236
371
|
*
|
|
@@ -250,7 +385,7 @@ export interface IDocumentIndexer {
|
|
|
250
385
|
* @param consistencyToken - Optional token for read-after-write consistency
|
|
251
386
|
* @param signal - Optional abort signal to cancel the request
|
|
252
387
|
*/
|
|
253
|
-
getUndirectedRelationships(a: string, b: string, types?: string[], consistencyToken?: ConsistencyToken, signal?: AbortSignal): Promise<DocumentRelationship
|
|
388
|
+
getUndirectedRelationships(a: string, b: string, types?: string[], paging?: PagingOptions, consistencyToken?: ConsistencyToken, signal?: AbortSignal): Promise<PagedResults<DocumentRelationship>>;
|
|
254
389
|
/**
|
|
255
390
|
* Returns all directed relationships between two documents.
|
|
256
391
|
*
|
|
@@ -260,7 +395,7 @@ export interface IDocumentIndexer {
|
|
|
260
395
|
* @param consistencyToken - Optional token for read-after-write consistency
|
|
261
396
|
* @param signal - Optional abort signal to cancel the request
|
|
262
397
|
*/
|
|
263
|
-
getDirectedRelationships(sourceId: string, targetId: string, types?: string[], consistencyToken?: ConsistencyToken, signal?: AbortSignal): Promise<DocumentRelationship
|
|
398
|
+
getDirectedRelationships(sourceId: string, targetId: string, types?: string[], paging?: PagingOptions, consistencyToken?: ConsistencyToken, signal?: AbortSignal): Promise<PagedResults<DocumentRelationship>>;
|
|
264
399
|
/**
|
|
265
400
|
* Finds a path from source to target following directed edges.
|
|
266
401
|
*
|
|
@@ -290,85 +425,9 @@ export interface IDocumentIndexer {
|
|
|
290
425
|
getRelationshipTypes(consistencyToken?: ConsistencyToken, signal?: AbortSignal): Promise<string[]>;
|
|
291
426
|
}
|
|
292
427
|
/**
|
|
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.
|
|
428
|
+
* Persistent storage for sync remote configurations. Each remote represents
|
|
429
|
+
* a connection to an external system that operations can be synced with.
|
|
300
430
|
*/
|
|
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
431
|
export interface ISyncRemoteStorage {
|
|
373
432
|
/**
|
|
374
433
|
* Lists all remotes.
|
|
@@ -402,6 +461,10 @@ export interface ISyncRemoteStorage {
|
|
|
402
461
|
*/
|
|
403
462
|
remove(name: string, signal?: AbortSignal): Promise<void>;
|
|
404
463
|
}
|
|
464
|
+
/**
|
|
465
|
+
* Persistent storage for sync cursors that track inbox/outbox progress
|
|
466
|
+
* per remote. Cursors allow sync to resume from where it left off.
|
|
467
|
+
*/
|
|
405
468
|
export interface ISyncCursorStorage {
|
|
406
469
|
/**
|
|
407
470
|
* Lists all cursors for a remote.
|
|
@@ -415,10 +478,11 @@ export interface ISyncCursorStorage {
|
|
|
415
478
|
* Gets a cursor for a remote.
|
|
416
479
|
*
|
|
417
480
|
* @param remoteName - The name of the remote
|
|
481
|
+
* @param cursorType - The type of cursor ("inbox" or "outbox")
|
|
418
482
|
* @param signal - Optional abort signal to cancel the request
|
|
419
483
|
* @returns The cursor
|
|
420
484
|
*/
|
|
421
|
-
get(remoteName: string, signal?: AbortSignal): Promise<RemoteCursor>;
|
|
485
|
+
get(remoteName: string, cursorType: "inbox" | "outbox", signal?: AbortSignal): Promise<RemoteCursor>;
|
|
422
486
|
/**
|
|
423
487
|
* Upserts a cursor.
|
|
424
488
|
*
|
|
@@ -436,4 +500,54 @@ export interface ISyncCursorStorage {
|
|
|
436
500
|
*/
|
|
437
501
|
remove(remoteName: string, signal?: AbortSignal): Promise<void>;
|
|
438
502
|
}
|
|
503
|
+
/**
|
|
504
|
+
* Serializable snapshot of a permanently failed SyncOperation.
|
|
505
|
+
*/
|
|
506
|
+
export type DeadLetterRecord = {
|
|
507
|
+
id: string;
|
|
508
|
+
jobId: string;
|
|
509
|
+
jobDependencies: string[];
|
|
510
|
+
remoteName: string;
|
|
511
|
+
documentId: string;
|
|
512
|
+
scopes: string[];
|
|
513
|
+
branch: string;
|
|
514
|
+
operations: OperationWithContext[];
|
|
515
|
+
errorSource: ChannelErrorSource;
|
|
516
|
+
errorMessage: string;
|
|
517
|
+
};
|
|
518
|
+
/**
|
|
519
|
+
* Persists dead-lettered sync operations so they survive reactor restarts.
|
|
520
|
+
*/
|
|
521
|
+
export interface ISyncDeadLetterStorage {
|
|
522
|
+
/**
|
|
523
|
+
* Lists dead letters for a remote, ordered by ordinal DESC (newest first).
|
|
524
|
+
*
|
|
525
|
+
* @param remoteName - The name of the remote
|
|
526
|
+
* @param paging - Optional paging options (cursor + limit)
|
|
527
|
+
* @param signal - Optional abort signal to cancel the request
|
|
528
|
+
* @returns Paged dead letter records
|
|
529
|
+
*/
|
|
530
|
+
list(remoteName: string, paging?: PagingOptions, signal?: AbortSignal): Promise<PagedResults<DeadLetterRecord>>;
|
|
531
|
+
/**
|
|
532
|
+
* Adds a dead letter. Duplicate ids are silently ignored.
|
|
533
|
+
*
|
|
534
|
+
* @param deadLetter - The dead letter record to persist
|
|
535
|
+
* @param signal - Optional abort signal to cancel the request
|
|
536
|
+
*/
|
|
537
|
+
add(deadLetter: DeadLetterRecord, signal?: AbortSignal): Promise<void>;
|
|
538
|
+
/**
|
|
539
|
+
* Removes a single dead letter by id.
|
|
540
|
+
*
|
|
541
|
+
* @param id - The dead letter id
|
|
542
|
+
* @param signal - Optional abort signal to cancel the request
|
|
543
|
+
*/
|
|
544
|
+
remove(id: string, signal?: AbortSignal): Promise<void>;
|
|
545
|
+
/**
|
|
546
|
+
* Removes all dead letters for a remote.
|
|
547
|
+
*
|
|
548
|
+
* @param remoteName - The name of the remote
|
|
549
|
+
* @param signal - Optional abort signal to cancel the request
|
|
550
|
+
*/
|
|
551
|
+
removeByRemote(remoteName: string, signal?: AbortSignal): Promise<void>;
|
|
552
|
+
}
|
|
439
553
|
//# 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,12 +1,13 @@
|
|
|
1
|
-
import { type Operation } from "document-model";
|
|
2
|
-
import type
|
|
3
|
-
import
|
|
1
|
+
import { type Operation, type OperationWithContext } from "document-model";
|
|
2
|
+
import { type Kysely } from "kysely";
|
|
3
|
+
import type { PagedResults, PagingOptions } from "../../shared/types.js";
|
|
4
|
+
import { type AtomicTxn, type DocumentRevisions, type IOperationStore, type OperationFilter } from "../interfaces.js";
|
|
4
5
|
import type { Database } from "./types.js";
|
|
5
6
|
export declare class KyselyOperationStore implements IOperationStore {
|
|
6
7
|
private db;
|
|
7
8
|
constructor(db: Kysely<Database>);
|
|
8
9
|
apply(documentId: string, documentType: string, scope: string, branch: string, revision: number, fn: (txn: AtomicTxn) => void | Promise<void>, signal?: AbortSignal): Promise<void>;
|
|
9
|
-
getSince(documentId: string, scope: string, branch: string, revision: number, paging?: PagingOptions, signal?: AbortSignal): Promise<PagedResults<Operation>>;
|
|
10
|
+
getSince(documentId: string, scope: string, branch: string, revision: number, filter?: OperationFilter, paging?: PagingOptions, signal?: AbortSignal): Promise<PagedResults<Operation>>;
|
|
10
11
|
getSinceId(id: number, paging?: PagingOptions, signal?: AbortSignal): Promise<PagedResults<OperationWithContext>>;
|
|
11
12
|
getConflicting(documentId: string, scope: string, branch: string, minTimestamp: string, paging?: PagingOptions, signal?: AbortSignal): Promise<PagedResults<Operation>>;
|
|
12
13
|
getRevisions(documentId: string, branch: string, signal?: AbortSignal): Promise<DocumentRevisions>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../../src/storage/kysely/store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../../src/storage/kysely/store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAC3E,OAAO,EAAO,KAAK,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC1C,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACzE,OAAO,EAGL,KAAK,SAAS,EACd,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,eAAe,EACrB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,KAAK,EAAE,QAAQ,EAAgB,MAAM,YAAY,CAAC;AAEzD,qBAAa,oBAAqB,YAAW,eAAe;IAC9C,OAAO,CAAC,EAAE;gBAAF,EAAE,EAAE,MAAM,CAAC,QAAQ,CAAC;IAElC,KAAK,CACT,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,EAAE,EAAE,CAAC,GAAG,EAAE,SAAS,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,EAC5C,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,IAAI,CAAC;IAkEV,QAAQ,CACZ,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,eAAe,EACxB,MAAM,CAAC,EAAE,aAAa,EACtB,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IA2F7B,UAAU,CACd,EAAE,EAAE,MAAM,EACV,MAAM,CAAC,EAAE,aAAa,EACtB,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,YAAY,CAAC,oBAAoB,CAAC,CAAC;IAwDxC,cAAc,CAClB,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,MAAM,EACpB,MAAM,CAAC,EAAE,aAAa,EACtB,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IA8D7B,YAAY,CAChB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,iBAAiB,CAAC;IA2C7B,OAAO,CAAC,cAAc;IAYtB,OAAO,CAAC,yBAAyB;CAYlC"}
|