@powerhousedao/reactor 6.0.0-dev.13 → 6.0.0-dev.131
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/index.d.ts +4320 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +9442 -0
- package/dist/index.js.map +1 -0
- package/package.json +21 -20
- package/dist/src/actions/index.d.ts +0 -24
- package/dist/src/actions/index.d.ts.map +0 -1
- package/dist/src/actions/index.js +0 -76
- package/dist/src/actions/index.js.map +0 -1
- package/dist/src/cache/buffer/ring-buffer.d.ts +0 -37
- package/dist/src/cache/buffer/ring-buffer.d.ts.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.d.ts +0 -114
- package/dist/src/cache/document-meta-cache-types.d.ts.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.d.ts +0 -30
- package/dist/src/cache/document-meta-cache.d.ts.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.d.ts +0 -3
- package/dist/src/cache/index.d.ts.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.d.ts +0 -15
- package/dist/src/cache/kysely-operation-index.d.ts.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.d.ts +0 -134
- package/dist/src/cache/kysely-write-cache.d.ts.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.d.ts +0 -15
- package/dist/src/cache/lru/lru-tracker.d.ts.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.d.ts +0 -50
- package/dist/src/cache/operation-index-types.d.ts.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.d.ts +0 -83
- package/dist/src/cache/write/interfaces.d.ts.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.d.ts +0 -42
- package/dist/src/cache/write-cache-types.d.ts.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.d.ts +0 -117
- package/dist/src/client/reactor-client.d.ts.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.d.ts +0 -241
- package/dist/src/client/types.d.ts.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.d.ts +0 -47
- package/dist/src/core/reactor-builder.d.ts.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.d.ts +0 -49
- package/dist/src/core/reactor-client-builder.d.ts.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.d.ts +0 -116
- package/dist/src/core/reactor.d.ts.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.d.ts +0 -276
- package/dist/src/core/types.d.ts.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.d.ts +0 -59
- package/dist/src/core/utils.d.ts.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.d.ts +0 -8
- package/dist/src/events/event-bus.d.ts.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.d.ts +0 -27
- package/dist/src/events/interfaces.d.ts.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.d.ts +0 -67
- package/dist/src/events/types.d.ts.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.d.ts +0 -49
- package/dist/src/executor/interfaces.d.ts.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.d.ts +0 -34
- package/dist/src/executor/simple-job-executor-manager.d.ts.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.d.ts +0 -80
- package/dist/src/executor/simple-job-executor.d.ts.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.d.ts +0 -93
- package/dist/src/executor/types.d.ts.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.d.ts +0 -74
- package/dist/src/executor/util.d.ts.map +0 -1
- package/dist/src/executor/util.js +0 -184
- package/dist/src/executor/util.js.map +0 -1
- package/dist/src/index.d.ts +0 -53
- package/dist/src/index.d.ts.map +0 -1
- package/dist/src/index.js +0 -62
- package/dist/src/index.js.map +0 -1
- package/dist/src/job-tracker/in-memory-job-tracker.d.ts +0 -25
- package/dist/src/job-tracker/in-memory-job-tracker.d.ts.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.d.ts +0 -3
- package/dist/src/job-tracker/index.d.ts.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.d.ts +0 -39
- package/dist/src/job-tracker/interfaces.d.ts.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.d.ts +0 -23
- package/dist/src/logging/console.d.ts.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.d.ts +0 -12
- package/dist/src/logging/types.d.ts.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.d.ts +0 -3
- package/dist/src/processors/index.d.ts.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.d.ts +0 -38
- package/dist/src/processors/processor-manager.d.ts.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.d.ts +0 -10
- package/dist/src/processors/utils.d.ts.map +0 -1
- package/dist/src/processors/utils.js +0 -59
- package/dist/src/processors/utils.js.map +0 -1
- package/dist/src/queue/interfaces.d.ts +0 -103
- package/dist/src/queue/interfaces.d.ts.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.d.ts +0 -25
- package/dist/src/queue/job-execution-handle.d.ts.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.d.ts +0 -81
- package/dist/src/queue/queue.d.ts.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.d.ts +0 -73
- package/dist/src/queue/types.d.ts.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.d.ts +0 -60
- package/dist/src/read-models/base-read-model.d.ts.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.d.ts +0 -39
- package/dist/src/read-models/coordinator.d.ts.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.d.ts +0 -24
- package/dist/src/read-models/document-view.d.ts.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.d.ts +0 -29
- package/dist/src/read-models/interfaces.d.ts.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.d.ts +0 -47
- package/dist/src/read-models/types.d.ts.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.d.ts +0 -70
- package/dist/src/registry/implementation.d.ts.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.d.ts +0 -3
- package/dist/src/registry/index.d.ts.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.d.ts +0 -100
- package/dist/src/registry/interfaces.d.ts.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.d.ts +0 -35
- package/dist/src/shared/awaiter.d.ts.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.d.ts +0 -48
- package/dist/src/shared/consistency-tracker.d.ts.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/drive-url.d.ts +0 -15
- package/dist/src/shared/drive-url.d.ts.map +0 -1
- package/dist/src/shared/drive-url.js +0 -17
- package/dist/src/shared/drive-url.js.map +0 -1
- package/dist/src/shared/errors.d.ts +0 -41
- package/dist/src/shared/errors.d.ts.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.d.ts +0 -16
- package/dist/src/shared/factories.d.ts.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.d.ts +0 -135
- package/dist/src/shared/types.d.ts.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.d.ts +0 -3
- package/dist/src/shared/utils.d.ts.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.d.ts +0 -12
- package/dist/src/signer/passthrough-signer.d.ts.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.d.ts +0 -17
- package/dist/src/signer/types.d.ts.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.d.ts +0 -4
- package/dist/src/storage/index.d.ts.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.d.ts +0 -439
- package/dist/src/storage/interfaces.d.ts.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.d.ts +0 -28
- package/dist/src/storage/kysely/document-indexer.d.ts.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.d.ts +0 -15
- package/dist/src/storage/kysely/keyframe-store.d.ts.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.d.ts +0 -16
- package/dist/src/storage/kysely/store.d.ts.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.d.ts +0 -13
- package/dist/src/storage/kysely/sync-cursor-storage.d.ts.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.d.ts +0 -13
- package/dist/src/storage/kysely/sync-remote-storage.d.ts.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.d.ts +0 -135
- package/dist/src/storage/kysely/types.d.ts.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.d.ts +0 -3
- package/dist/src/storage/migrations/001_create_operation_table.d.ts.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.d.ts +0 -3
- package/dist/src/storage/migrations/002_create_keyframe_table.d.ts.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.d.ts +0 -3
- package/dist/src/storage/migrations/003_create_document_table.d.ts.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.d.ts +0 -3
- package/dist/src/storage/migrations/004_create_document_relationship_table.d.ts.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.d.ts +0 -3
- package/dist/src/storage/migrations/005_create_indexer_state_table.d.ts.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.d.ts +0 -3
- package/dist/src/storage/migrations/006_create_document_snapshot_table.d.ts.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.d.ts +0 -3
- package/dist/src/storage/migrations/007_create_slug_mapping_table.d.ts.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.d.ts +0 -3
- package/dist/src/storage/migrations/008_create_view_state_table.d.ts.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.d.ts +0 -3
- package/dist/src/storage/migrations/009_create_operation_index_tables.d.ts.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.d.ts +0 -3
- package/dist/src/storage/migrations/010_create_sync_tables.d.ts.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.d.ts +0 -3
- package/dist/src/storage/migrations/index.d.ts.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.d.ts +0 -6
- package/dist/src/storage/migrations/migrator.d.ts.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.d.ts +0 -2
- package/dist/src/storage/migrations/run-migrations.d.ts.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.d.ts +0 -9
- package/dist/src/storage/migrations/types.d.ts.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.d.ts +0 -15
- package/dist/src/storage/txn.d.ts.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.d.ts +0 -13
- package/dist/src/subs/default-error-handler.d.ts.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.d.ts +0 -45
- package/dist/src/subs/react-subscription-manager.d.ts.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.d.ts +0 -17
- package/dist/src/subs/subscription-notification-read-model.d.ts.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.d.ts +0 -64
- package/dist/src/subs/types.d.ts.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.d.ts +0 -6
- package/dist/src/sync/channels/index.d.ts.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.d.ts +0 -30
- package/dist/src/sync/channels/utils.d.ts.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.d.ts +0 -10
- package/dist/src/sync/errors.d.ts.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.d.ts +0 -12
- package/dist/src/sync/index.d.ts.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.d.ts +0 -180
- package/dist/src/sync/interfaces.d.ts.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.d.ts +0 -21
- package/dist/src/sync/mailbox.d.ts.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.d.ts +0 -19
- package/dist/src/sync/sync-builder.d.ts.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.d.ts +0 -37
- package/dist/src/sync/sync-manager.d.ts.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.d.ts +0 -28
- package/dist/src/sync/sync-operation.d.ts.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.d.ts +0 -60
- package/dist/src/sync/types.d.ts.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.d.ts +0 -36
- package/dist/src/sync/utils.d.ts.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.d.ts +0 -30
- package/dist/src/utils/reshuffle.d.ts.map +0 -1
- package/dist/src/utils/reshuffle.js +0 -47
- package/dist/src/utils/reshuffle.js.map +0 -1
|
@@ -1,266 +0,0 @@
|
|
|
1
|
-
import { OperationEventTypes, } from "../events/types.js";
|
|
2
|
-
import { JobAwaiter } from "../shared/awaiter.js";
|
|
3
|
-
import { JobStatus, } from "../shared/types.js";
|
|
4
|
-
import { ChannelError } from "./errors.js";
|
|
5
|
-
import { SyncOperation } from "./sync-operation.js";
|
|
6
|
-
import { ChannelErrorSource, SyncOperationStatus } from "./types.js";
|
|
7
|
-
import { batchOperationsByDocument, createIdleHealth, filterOperations, } from "./utils.js";
|
|
8
|
-
export class SyncManager {
|
|
9
|
-
logger;
|
|
10
|
-
remoteStorage;
|
|
11
|
-
cursorStorage;
|
|
12
|
-
channelFactory;
|
|
13
|
-
_operationIndex;
|
|
14
|
-
reactor;
|
|
15
|
-
eventBus;
|
|
16
|
-
remotes;
|
|
17
|
-
awaiter;
|
|
18
|
-
isShutdown;
|
|
19
|
-
eventUnsubscribe;
|
|
20
|
-
loadJobs = new Map();
|
|
21
|
-
constructor(logger, remoteStorage, cursorStorage, channelFactory, operationIndex, reactor, eventBus) {
|
|
22
|
-
this.logger = logger;
|
|
23
|
-
this.remoteStorage = remoteStorage;
|
|
24
|
-
this.cursorStorage = cursorStorage;
|
|
25
|
-
this.channelFactory = channelFactory;
|
|
26
|
-
this._operationIndex = operationIndex;
|
|
27
|
-
this.reactor = reactor;
|
|
28
|
-
this.eventBus = eventBus;
|
|
29
|
-
this.remotes = new Map();
|
|
30
|
-
this.awaiter = new JobAwaiter(eventBus, (jobId, signal) => reactor.getJobStatus(jobId, signal));
|
|
31
|
-
this.isShutdown = false;
|
|
32
|
-
}
|
|
33
|
-
async startup() {
|
|
34
|
-
if (this.isShutdown) {
|
|
35
|
-
throw new Error("SyncManager is already shutdown and cannot be started");
|
|
36
|
-
}
|
|
37
|
-
const remoteRecords = await this.remoteStorage.list();
|
|
38
|
-
for (const record of remoteRecords) {
|
|
39
|
-
const channel = this.channelFactory.instance(record.id, record.name, record.channelConfig, this.cursorStorage, record.collectionId, record.filter);
|
|
40
|
-
try {
|
|
41
|
-
await channel.init();
|
|
42
|
-
}
|
|
43
|
-
catch (error) {
|
|
44
|
-
console.error(`Error initializing channel for remote ${record.name}: ${error instanceof Error ? error.message : String(error)}`);
|
|
45
|
-
continue;
|
|
46
|
-
}
|
|
47
|
-
const remote = {
|
|
48
|
-
id: record.id,
|
|
49
|
-
name: record.name,
|
|
50
|
-
collectionId: record.collectionId,
|
|
51
|
-
filter: record.filter,
|
|
52
|
-
options: record.options,
|
|
53
|
-
channel,
|
|
54
|
-
};
|
|
55
|
-
this.remotes.set(record.name, remote);
|
|
56
|
-
this.wireChannelCallbacks(remote);
|
|
57
|
-
}
|
|
58
|
-
this.eventUnsubscribe = this.eventBus.subscribe(OperationEventTypes.OPERATION_WRITTEN, (_type, event) => this.handleOperationWritten(event));
|
|
59
|
-
}
|
|
60
|
-
shutdown() {
|
|
61
|
-
this.isShutdown = true;
|
|
62
|
-
if (this.eventUnsubscribe) {
|
|
63
|
-
this.eventUnsubscribe();
|
|
64
|
-
this.eventUnsubscribe = undefined;
|
|
65
|
-
}
|
|
66
|
-
this.awaiter.shutdown();
|
|
67
|
-
for (const remote of this.remotes.values()) {
|
|
68
|
-
try {
|
|
69
|
-
remote.channel.shutdown();
|
|
70
|
-
}
|
|
71
|
-
catch (error) {
|
|
72
|
-
console.error(`Error shutting down channel for remote ${remote.name}: ${error instanceof Error ? error.message : String(error)}`);
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
this.remotes.clear();
|
|
76
|
-
return {
|
|
77
|
-
isShutdown: true,
|
|
78
|
-
};
|
|
79
|
-
}
|
|
80
|
-
getByName(name) {
|
|
81
|
-
const remote = this.remotes.get(name);
|
|
82
|
-
if (!remote) {
|
|
83
|
-
throw new Error(`Remote with name '${name}' does not exist`);
|
|
84
|
-
}
|
|
85
|
-
return remote;
|
|
86
|
-
}
|
|
87
|
-
getById(id) {
|
|
88
|
-
for (const remote of this.remotes.values()) {
|
|
89
|
-
if (remote.id === id) {
|
|
90
|
-
return remote;
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
throw new Error(`Remote with id '${id}' does not exist`);
|
|
94
|
-
}
|
|
95
|
-
async add(name, collectionId, channelConfig, filter = { documentId: [], scope: [], branch: "" }, options = {}, id) {
|
|
96
|
-
if (this.isShutdown) {
|
|
97
|
-
throw new Error("SyncManager is shutdown and cannot add remotes");
|
|
98
|
-
}
|
|
99
|
-
if (this.remotes.has(name)) {
|
|
100
|
-
throw new Error(`Remote with name '${name}' already exists`);
|
|
101
|
-
}
|
|
102
|
-
this.logger.debug("Adding remote (@name, @collectionId, @channelConfig, @filter, @options, @id)", name, collectionId, channelConfig, filter, options, id);
|
|
103
|
-
const remoteId = id ?? crypto.randomUUID();
|
|
104
|
-
const status = {
|
|
105
|
-
push: createIdleHealth(),
|
|
106
|
-
pull: createIdleHealth(),
|
|
107
|
-
};
|
|
108
|
-
const remoteRecord = {
|
|
109
|
-
id: remoteId,
|
|
110
|
-
name,
|
|
111
|
-
collectionId,
|
|
112
|
-
channelConfig,
|
|
113
|
-
filter,
|
|
114
|
-
options,
|
|
115
|
-
status,
|
|
116
|
-
};
|
|
117
|
-
await this.remoteStorage.upsert(remoteRecord);
|
|
118
|
-
const channel = this.channelFactory.instance(remoteId, name, channelConfig, this.cursorStorage, collectionId, filter);
|
|
119
|
-
await channel.init();
|
|
120
|
-
const remote = {
|
|
121
|
-
id: remoteId,
|
|
122
|
-
name,
|
|
123
|
-
collectionId,
|
|
124
|
-
filter,
|
|
125
|
-
options,
|
|
126
|
-
channel,
|
|
127
|
-
};
|
|
128
|
-
this.remotes.set(name, remote);
|
|
129
|
-
this.wireChannelCallbacks(remote);
|
|
130
|
-
await this.backfillOutbox(remote, collectionId, filter);
|
|
131
|
-
return remote;
|
|
132
|
-
}
|
|
133
|
-
async backfillOutbox(remote, collectionId, filter) {
|
|
134
|
-
let historicalOps;
|
|
135
|
-
try {
|
|
136
|
-
historicalOps = await this._operationIndex.find(collectionId);
|
|
137
|
-
}
|
|
138
|
-
catch {
|
|
139
|
-
return;
|
|
140
|
-
}
|
|
141
|
-
if (historicalOps.items.length === 0) {
|
|
142
|
-
return;
|
|
143
|
-
}
|
|
144
|
-
const opsWithContext = historicalOps.items.map((entry) => ({
|
|
145
|
-
operation: {
|
|
146
|
-
id: entry.id,
|
|
147
|
-
index: entry.index,
|
|
148
|
-
skip: entry.skip,
|
|
149
|
-
hash: entry.hash,
|
|
150
|
-
timestampUtcMs: entry.timestampUtcMs,
|
|
151
|
-
action: entry.action,
|
|
152
|
-
},
|
|
153
|
-
context: {
|
|
154
|
-
documentId: entry.documentId,
|
|
155
|
-
documentType: entry.documentType,
|
|
156
|
-
scope: entry.scope,
|
|
157
|
-
branch: entry.branch,
|
|
158
|
-
ordinal: entry.ordinal ?? 0,
|
|
159
|
-
},
|
|
160
|
-
}));
|
|
161
|
-
const filteredOps = filterOperations(opsWithContext, filter);
|
|
162
|
-
if (filteredOps.length === 0) {
|
|
163
|
-
return;
|
|
164
|
-
}
|
|
165
|
-
const batches = batchOperationsByDocument(filteredOps);
|
|
166
|
-
for (const batch of batches) {
|
|
167
|
-
const syncOp = new SyncOperation(crypto.randomUUID(), remote.name, batch.documentId, [batch.scope], batch.branch, batch.operations);
|
|
168
|
-
remote.channel.outbox.add(syncOp);
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
async remove(name) {
|
|
172
|
-
const remote = this.remotes.get(name);
|
|
173
|
-
if (!remote) {
|
|
174
|
-
throw new Error(`Remote with name '${name}' does not exist`);
|
|
175
|
-
}
|
|
176
|
-
await this.remoteStorage.remove(name);
|
|
177
|
-
remote.channel.shutdown();
|
|
178
|
-
this.remotes.delete(name);
|
|
179
|
-
}
|
|
180
|
-
list() {
|
|
181
|
-
return Array.from(this.remotes.values());
|
|
182
|
-
}
|
|
183
|
-
wireChannelCallbacks(remote) {
|
|
184
|
-
remote.channel.inbox.onAdded((syncOp) => {
|
|
185
|
-
this.handleInboxJob(remote, syncOp);
|
|
186
|
-
});
|
|
187
|
-
remote.channel.outbox.onAdded((syncOp) => {
|
|
188
|
-
this.handleOutboxJob(remote, syncOp);
|
|
189
|
-
});
|
|
190
|
-
}
|
|
191
|
-
handleOperationWritten(event) {
|
|
192
|
-
if (this.isShutdown) {
|
|
193
|
-
return;
|
|
194
|
-
}
|
|
195
|
-
const sourceRemote = event.jobMeta?.sourceRemote;
|
|
196
|
-
for (const remote of this.remotes.values()) {
|
|
197
|
-
if (sourceRemote && remote.name === sourceRemote) {
|
|
198
|
-
continue;
|
|
199
|
-
}
|
|
200
|
-
const filteredOps = filterOperations(event.operations, remote.filter);
|
|
201
|
-
if (filteredOps.length === 0) {
|
|
202
|
-
continue;
|
|
203
|
-
}
|
|
204
|
-
const batches = batchOperationsByDocument(filteredOps);
|
|
205
|
-
for (const batch of batches) {
|
|
206
|
-
const syncOp = new SyncOperation(crypto.randomUUID(), remote.name, batch.documentId, [batch.scope], batch.branch, batch.operations);
|
|
207
|
-
remote.channel.outbox.add(syncOp);
|
|
208
|
-
}
|
|
209
|
-
}
|
|
210
|
-
}
|
|
211
|
-
handleInboxJob(remote, syncOp) {
|
|
212
|
-
if (this.isShutdown) {
|
|
213
|
-
return;
|
|
214
|
-
}
|
|
215
|
-
void this.applyInboxJob(remote, syncOp);
|
|
216
|
-
}
|
|
217
|
-
handleOutboxJob(remote, syncOp) {
|
|
218
|
-
syncOp.on((syncOp, _prev, next) => {
|
|
219
|
-
if (next === SyncOperationStatus.Applied) {
|
|
220
|
-
remote.channel.outbox.remove(syncOp);
|
|
221
|
-
}
|
|
222
|
-
else if (next === SyncOperationStatus.Error) {
|
|
223
|
-
remote.channel.outbox.remove(syncOp);
|
|
224
|
-
}
|
|
225
|
-
});
|
|
226
|
-
}
|
|
227
|
-
async applyInboxJob(remote, syncOp) {
|
|
228
|
-
const operations = syncOp.operations.map((op) => op.operation);
|
|
229
|
-
let jobInfo;
|
|
230
|
-
try {
|
|
231
|
-
jobInfo = await this.reactor.load(syncOp.documentId, syncOp.branch, operations, undefined, { sourceRemote: remote.name });
|
|
232
|
-
}
|
|
233
|
-
catch (error) {
|
|
234
|
-
const err = error instanceof Error ? error : new Error(String(error));
|
|
235
|
-
const channelError = new ChannelError(ChannelErrorSource.Inbox, err);
|
|
236
|
-
syncOp.failed(channelError);
|
|
237
|
-
remote.channel.deadLetter.add(syncOp);
|
|
238
|
-
remote.channel.inbox.remove(syncOp);
|
|
239
|
-
return;
|
|
240
|
-
}
|
|
241
|
-
let completedJobInfo;
|
|
242
|
-
try {
|
|
243
|
-
completedJobInfo = await this.awaiter.waitForJob(jobInfo.id);
|
|
244
|
-
}
|
|
245
|
-
catch (error) {
|
|
246
|
-
const err = error instanceof Error ? error : new Error(String(error));
|
|
247
|
-
const channelError = new ChannelError(ChannelErrorSource.Inbox, err);
|
|
248
|
-
syncOp.failed(channelError);
|
|
249
|
-
remote.channel.deadLetter.add(syncOp);
|
|
250
|
-
remote.channel.inbox.remove(syncOp);
|
|
251
|
-
return;
|
|
252
|
-
}
|
|
253
|
-
const jobKey = `${syncOp.documentId}:${syncOp.branch}`;
|
|
254
|
-
this.loadJobs.set(jobKey, completedJobInfo);
|
|
255
|
-
if (completedJobInfo.status === JobStatus.FAILED) {
|
|
256
|
-
const error = new ChannelError(ChannelErrorSource.Inbox, new Error(`Failed to apply operations: ${completedJobInfo.error?.message || "Unknown error"}`));
|
|
257
|
-
syncOp.failed(error);
|
|
258
|
-
remote.channel.deadLetter.add(syncOp);
|
|
259
|
-
}
|
|
260
|
-
else {
|
|
261
|
-
syncOp.executed();
|
|
262
|
-
}
|
|
263
|
-
remote.channel.inbox.remove(syncOp);
|
|
264
|
-
}
|
|
265
|
-
}
|
|
266
|
-
//# sourceMappingURL=sync-manager.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sync-manager.js","sourceRoot":"","sources":["../../../src/sync/sync-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import type { OperationWithContext } from "../storage/interfaces.js";
|
|
2
|
-
import type { ChannelError } from "./errors.js";
|
|
3
|
-
import { SyncOperationStatus } from "./types.js";
|
|
4
|
-
type SyncOperationStatusCallback = (syncOp: SyncOperation, prev: SyncOperationStatus, next: SyncOperationStatus) => void;
|
|
5
|
-
export declare class SyncOperationAggregateError extends Error {
|
|
6
|
-
errors: Error[];
|
|
7
|
-
constructor(errors: Error[]);
|
|
8
|
-
}
|
|
9
|
-
export declare class SyncOperation {
|
|
10
|
-
readonly id: string;
|
|
11
|
-
readonly remoteName: string;
|
|
12
|
-
readonly documentId: string;
|
|
13
|
-
readonly scopes: string[];
|
|
14
|
-
readonly branch: string;
|
|
15
|
-
readonly operations: OperationWithContext[];
|
|
16
|
-
status: SyncOperationStatus;
|
|
17
|
-
error?: ChannelError;
|
|
18
|
-
private callbacks;
|
|
19
|
-
constructor(id: string, remoteName: string, documentId: string, scopes: string[], branch: string, operations: OperationWithContext[]);
|
|
20
|
-
on(callback: SyncOperationStatusCallback): void;
|
|
21
|
-
started(): void;
|
|
22
|
-
transported(): void;
|
|
23
|
-
executed(): void;
|
|
24
|
-
failed(error: ChannelError): void;
|
|
25
|
-
private transition;
|
|
26
|
-
}
|
|
27
|
-
export {};
|
|
28
|
-
//# sourceMappingURL=sync-operation.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sync-operation.d.ts","sourceRoot":"","sources":["../../../src/sync/sync-operation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEjD,KAAK,2BAA2B,GAAG,CACjC,MAAM,EAAE,aAAa,EACrB,IAAI,EAAE,mBAAmB,EACzB,IAAI,EAAE,mBAAmB,KACtB,IAAI,CAAC;AAEV,qBAAa,2BAA4B,SAAQ,KAAK;IACpD,MAAM,EAAE,KAAK,EAAE,CAAC;gBAEJ,MAAM,EAAE,KAAK,EAAE;CAQ5B;AAED,qBAAa,aAAa;IACxB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,oBAAoB,EAAE,CAAC;IAC5C,MAAM,EAAE,mBAAmB,CAAC;IAC5B,KAAK,CAAC,EAAE,YAAY,CAAC;IAErB,OAAO,CAAC,SAAS,CAAqC;gBAGpD,EAAE,EAAE,MAAM,EACV,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EAAE,EAChB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,oBAAoB,EAAE;IAWpC,EAAE,CAAC,QAAQ,EAAE,2BAA2B,GAAG,IAAI;IAI/C,OAAO,IAAI,IAAI;IAIf,WAAW,IAAI,IAAI;IAInB,QAAQ,IAAI,IAAI;IAIhB,MAAM,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI;IAKjC,OAAO,CAAC,UAAU;CAenB"}
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
import { SyncOperationStatus } from "./types.js";
|
|
2
|
-
export class SyncOperationAggregateError extends Error {
|
|
3
|
-
errors;
|
|
4
|
-
constructor(errors) {
|
|
5
|
-
const messages = errors.map((e) => e.message).join("; ");
|
|
6
|
-
super(`SyncOperation callback failed with ${errors.length} error(s): ${messages}`);
|
|
7
|
-
this.name = "SyncOperationAggregateError";
|
|
8
|
-
this.errors = errors;
|
|
9
|
-
}
|
|
10
|
-
}
|
|
11
|
-
export class SyncOperation {
|
|
12
|
-
id;
|
|
13
|
-
remoteName;
|
|
14
|
-
documentId;
|
|
15
|
-
scopes;
|
|
16
|
-
branch;
|
|
17
|
-
operations;
|
|
18
|
-
status;
|
|
19
|
-
error;
|
|
20
|
-
callbacks = [];
|
|
21
|
-
constructor(id, remoteName, documentId, scopes, branch, operations) {
|
|
22
|
-
this.id = id;
|
|
23
|
-
this.remoteName = remoteName;
|
|
24
|
-
this.documentId = documentId;
|
|
25
|
-
this.scopes = scopes;
|
|
26
|
-
this.branch = branch;
|
|
27
|
-
this.operations = operations;
|
|
28
|
-
this.status = SyncOperationStatus.Unknown;
|
|
29
|
-
}
|
|
30
|
-
on(callback) {
|
|
31
|
-
this.callbacks.push(callback);
|
|
32
|
-
}
|
|
33
|
-
started() {
|
|
34
|
-
this.transition(SyncOperationStatus.TransportPending);
|
|
35
|
-
}
|
|
36
|
-
transported() {
|
|
37
|
-
this.transition(SyncOperationStatus.ExecutionPending);
|
|
38
|
-
}
|
|
39
|
-
executed() {
|
|
40
|
-
this.transition(SyncOperationStatus.Applied);
|
|
41
|
-
}
|
|
42
|
-
failed(error) {
|
|
43
|
-
this.error = error;
|
|
44
|
-
this.transition(SyncOperationStatus.Error);
|
|
45
|
-
}
|
|
46
|
-
transition(next) {
|
|
47
|
-
const prev = this.status;
|
|
48
|
-
this.status = next;
|
|
49
|
-
const errors = [];
|
|
50
|
-
for (const callback of this.callbacks) {
|
|
51
|
-
try {
|
|
52
|
-
callback(this, prev, next);
|
|
53
|
-
}
|
|
54
|
-
catch (error) {
|
|
55
|
-
errors.push(error instanceof Error ? error : new Error(String(error)));
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
if (errors.length > 0) {
|
|
59
|
-
throw new SyncOperationAggregateError(errors);
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
//# sourceMappingURL=sync-operation.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sync-operation.js","sourceRoot":"","sources":["../../../src/sync/sync-operation.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAQjD,MAAM,OAAO,2BAA4B,SAAQ,KAAK;IACpD,MAAM,CAAU;IAEhB,YAAY,MAAe;QACzB,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzD,KAAK,CACH,sCAAsC,MAAM,CAAC,MAAM,cAAc,QAAQ,EAAE,CAC5E,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,6BAA6B,CAAC;QAC1C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;CACF;AAED,MAAM,OAAO,aAAa;IACf,EAAE,CAAS;IACX,UAAU,CAAS;IACnB,UAAU,CAAS;IACnB,MAAM,CAAW;IACjB,MAAM,CAAS;IACf,UAAU,CAAyB;IAC5C,MAAM,CAAsB;IAC5B,KAAK,CAAgB;IAEb,SAAS,GAAkC,EAAE,CAAC;IAEtD,YACE,EAAU,EACV,UAAkB,EAClB,UAAkB,EAClB,MAAgB,EAChB,MAAc,EACd,UAAkC;QAElC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,MAAM,GAAG,mBAAmB,CAAC,OAAO,CAAC;IAC5C,CAAC;IAED,EAAE,CAAC,QAAqC;QACtC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAChC,CAAC;IAED,OAAO;QACL,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;IACxD,CAAC;IAED,WAAW;QACT,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;IACxD,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAC/C,CAAC;IAED,MAAM,CAAC,KAAmB;QACxB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAC7C,CAAC;IAEO,UAAU,CAAC,IAAyB;QAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,MAAM,MAAM,GAAY,EAAE,CAAC;QAC3B,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACtC,IAAI,CAAC;gBACH,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YAC7B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,IAAI,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACzE,CAAC;QACH,CAAC;QACD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,2BAA2B,CAAC,MAAM,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;CACF"}
|
package/dist/src/sync/types.d.ts
DELETED
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
import type { OperationWithContext } from "../storage/interfaces.js";
|
|
2
|
-
export type RemoteOptions = {};
|
|
3
|
-
export type RemoteFilter = {
|
|
4
|
-
documentId: string[];
|
|
5
|
-
scope: string[];
|
|
6
|
-
branch: string;
|
|
7
|
-
};
|
|
8
|
-
export type RemoteCursor = {
|
|
9
|
-
remoteName: string;
|
|
10
|
-
cursorOrdinal: number;
|
|
11
|
-
lastSyncedAtUtcMs?: number;
|
|
12
|
-
};
|
|
13
|
-
export type ChannelMeta = {
|
|
14
|
-
id: string;
|
|
15
|
-
};
|
|
16
|
-
export type SyncEnvelopeType = "operations" | "ack";
|
|
17
|
-
export type SyncEnvelope = {
|
|
18
|
-
type: SyncEnvelopeType;
|
|
19
|
-
channelMeta: ChannelMeta;
|
|
20
|
-
operations?: OperationWithContext[];
|
|
21
|
-
cursor?: RemoteCursor;
|
|
22
|
-
};
|
|
23
|
-
export declare enum SyncOperationStatus {
|
|
24
|
-
Unknown = -1,
|
|
25
|
-
TransportPending = 0,
|
|
26
|
-
ExecutionPending = 1,
|
|
27
|
-
Applied = 2,
|
|
28
|
-
Error = 3
|
|
29
|
-
}
|
|
30
|
-
export declare enum ChannelErrorSource {
|
|
31
|
-
None = "none",
|
|
32
|
-
Channel = "channel",
|
|
33
|
-
Inbox = "inbox",
|
|
34
|
-
Outbox = "outbox"
|
|
35
|
-
}
|
|
36
|
-
export type SyncOperationErrorType = "SIGNATURE_INVALID" | "HASH_MISMATCH" | "LIBRARY_ERROR" | "MISSING_OPERATIONS" | "EXCESSIVE_SHUFFLE" | "GRACEFUL_ABORT";
|
|
37
|
-
export type ChannelHealth = {
|
|
38
|
-
state: "idle" | "running" | "error";
|
|
39
|
-
lastSuccessUtcMs?: number;
|
|
40
|
-
lastFailureUtcMs?: number;
|
|
41
|
-
failureCount: number;
|
|
42
|
-
};
|
|
43
|
-
export type RemoteStatus = {
|
|
44
|
-
push: ChannelHealth;
|
|
45
|
-
pull: ChannelHealth;
|
|
46
|
-
};
|
|
47
|
-
export type ChannelConfig = {
|
|
48
|
-
type: string;
|
|
49
|
-
parameters: Record<string, unknown>;
|
|
50
|
-
};
|
|
51
|
-
export type RemoteRecord = {
|
|
52
|
-
id: string;
|
|
53
|
-
name: string;
|
|
54
|
-
collectionId: string;
|
|
55
|
-
channelConfig: ChannelConfig;
|
|
56
|
-
filter: RemoteFilter;
|
|
57
|
-
options: RemoteOptions;
|
|
58
|
-
status: RemoteStatus;
|
|
59
|
-
};
|
|
60
|
-
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/sync/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAGrE,MAAM,MAAM,aAAa,GAAG,EAE3B,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,EAAE,EAAE,MAAM,CAAC;CACZ,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,YAAY,GAAG,KAAK,CAAC;AAEpD,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE,gBAAgB,CAAC;IACvB,WAAW,EAAE,WAAW,CAAC;IACzB,UAAU,CAAC,EAAE,oBAAoB,EAAE,CAAC;IACpC,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB,CAAC;AAEF,oBAAY,mBAAmB;IAC7B,OAAO,KAAK;IACZ,gBAAgB,IAAI;IACpB,gBAAgB,IAAI;IACpB,OAAO,IAAI;IACX,KAAK,IAAI;CACV;AAED,oBAAY,kBAAkB;IAC5B,IAAI,SAAS;IACb,OAAO,YAAY;IACnB,KAAK,UAAU;IACf,MAAM,WAAW;CAClB;AAED,MAAM,MAAM,sBAAsB,GAC9B,mBAAmB,GACnB,eAAe,GACf,eAAe,GACf,oBAAoB,GACpB,mBAAmB,GACnB,gBAAgB,CAAC;AAErB,MAAM,MAAM,aAAa,GAAG;IAC1B,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;IACpC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE,aAAa,CAAC;IACpB,IAAI,EAAE,aAAa,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACrC,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,aAAa,CAAC;IAC7B,MAAM,EAAE,YAAY,CAAC;IACrB,OAAO,EAAE,aAAa,CAAC;IACvB,MAAM,EAAE,YAAY,CAAC;CACtB,CAAC"}
|
package/dist/src/sync/types.js
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
export var SyncOperationStatus;
|
|
2
|
-
(function (SyncOperationStatus) {
|
|
3
|
-
SyncOperationStatus[SyncOperationStatus["Unknown"] = -1] = "Unknown";
|
|
4
|
-
SyncOperationStatus[SyncOperationStatus["TransportPending"] = 0] = "TransportPending";
|
|
5
|
-
SyncOperationStatus[SyncOperationStatus["ExecutionPending"] = 1] = "ExecutionPending";
|
|
6
|
-
SyncOperationStatus[SyncOperationStatus["Applied"] = 2] = "Applied";
|
|
7
|
-
SyncOperationStatus[SyncOperationStatus["Error"] = 3] = "Error";
|
|
8
|
-
})(SyncOperationStatus || (SyncOperationStatus = {}));
|
|
9
|
-
export var ChannelErrorSource;
|
|
10
|
-
(function (ChannelErrorSource) {
|
|
11
|
-
ChannelErrorSource["None"] = "none";
|
|
12
|
-
ChannelErrorSource["Channel"] = "channel";
|
|
13
|
-
ChannelErrorSource["Inbox"] = "inbox";
|
|
14
|
-
ChannelErrorSource["Outbox"] = "outbox";
|
|
15
|
-
})(ChannelErrorSource || (ChannelErrorSource = {}));
|
|
16
|
-
//# sourceMappingURL=types.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/sync/types.ts"],"names":[],"mappings":"AAgCA,MAAM,CAAN,IAAY,mBAMX;AAND,WAAY,mBAAmB;IAC7B,oEAAY,CAAA;IACZ,qFAAoB,CAAA;IACpB,qFAAoB,CAAA;IACpB,mEAAW,CAAA;IACX,+DAAS,CAAA;AACX,CAAC,EANW,mBAAmB,KAAnB,mBAAmB,QAM9B;AAED,MAAM,CAAN,IAAY,kBAKX;AALD,WAAY,kBAAkB;IAC5B,mCAAa,CAAA;IACb,yCAAmB,CAAA;IACnB,qCAAe,CAAA;IACf,uCAAiB,CAAA;AACnB,CAAC,EALW,kBAAkB,KAAlB,kBAAkB,QAK7B"}
|
package/dist/src/sync/utils.d.ts
DELETED
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import type { OperationWithContext } from "../storage/interfaces.js";
|
|
2
|
-
import type { ChannelHealth, RemoteFilter } from "./types.js";
|
|
3
|
-
export type OperationBatch = {
|
|
4
|
-
documentId: string;
|
|
5
|
-
branch: string;
|
|
6
|
-
scope: string;
|
|
7
|
-
operations: OperationWithContext[];
|
|
8
|
-
};
|
|
9
|
-
/**
|
|
10
|
-
* Filters operations based on a remote's filter criteria.
|
|
11
|
-
*
|
|
12
|
-
* @param operations - The operations to filter
|
|
13
|
-
* @param filter - The filter criteria to apply
|
|
14
|
-
* @returns The filtered operations that match the criteria
|
|
15
|
-
*/
|
|
16
|
-
export declare function filterOperations(operations: OperationWithContext[], filter: RemoteFilter): OperationWithContext[];
|
|
17
|
-
/**
|
|
18
|
-
* Creates an idle channel health status.
|
|
19
|
-
*
|
|
20
|
-
* @returns A new idle channel health object
|
|
21
|
-
*/
|
|
22
|
-
export declare function createIdleHealth(): ChannelHealth;
|
|
23
|
-
/**
|
|
24
|
-
* Batches consecutive operations by documentId and scope, preserving ordering.
|
|
25
|
-
*
|
|
26
|
-
* For operations [a1_doc, a1_global, a2_doc, b1_global], this returns:
|
|
27
|
-
* - Batch 1: [a1_doc] for doc-a, document scope
|
|
28
|
-
* - Batch 2: [a1_global] for doc-a, global scope
|
|
29
|
-
* - Batch 3: [a2_doc] for doc-a, document scope
|
|
30
|
-
* - Batch 4: [b1_global] for doc-b, global scope
|
|
31
|
-
*
|
|
32
|
-
* This ensures operations are grouped for efficient processing while maintaining
|
|
33
|
-
* causality across documents and scopes.
|
|
34
|
-
*/
|
|
35
|
-
export declare function batchOperationsByDocument(operations: OperationWithContext[]): OperationBatch[];
|
|
36
|
-
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/sync/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE9D,MAAM,MAAM,cAAc,GAAG;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,oBAAoB,EAAE,CAAC;CACpC,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,oBAAoB,EAAE,EAClC,MAAM,EAAE,YAAY,GACnB,oBAAoB,EAAE,CAmBxB;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,IAAI,aAAa,CAKhD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,yBAAyB,CACvC,UAAU,EAAE,oBAAoB,EAAE,GACjC,cAAc,EAAE,CAsClB"}
|
package/dist/src/sync/utils.js
DELETED
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Filters operations based on a remote's filter criteria.
|
|
3
|
-
*
|
|
4
|
-
* @param operations - The operations to filter
|
|
5
|
-
* @param filter - The filter criteria to apply
|
|
6
|
-
* @returns The filtered operations that match the criteria
|
|
7
|
-
*/
|
|
8
|
-
export function filterOperations(operations, filter) {
|
|
9
|
-
return operations.filter((op) => {
|
|
10
|
-
if (filter.branch && op.context.branch !== filter.branch) {
|
|
11
|
-
return false;
|
|
12
|
-
}
|
|
13
|
-
if (filter.documentId.length > 0 &&
|
|
14
|
-
!filter.documentId.includes(op.context.documentId)) {
|
|
15
|
-
return false;
|
|
16
|
-
}
|
|
17
|
-
if (filter.scope.length > 0 && !filter.scope.includes(op.context.scope)) {
|
|
18
|
-
return false;
|
|
19
|
-
}
|
|
20
|
-
return true;
|
|
21
|
-
});
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* Creates an idle channel health status.
|
|
25
|
-
*
|
|
26
|
-
* @returns A new idle channel health object
|
|
27
|
-
*/
|
|
28
|
-
export function createIdleHealth() {
|
|
29
|
-
return {
|
|
30
|
-
state: "idle",
|
|
31
|
-
failureCount: 0,
|
|
32
|
-
};
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* Batches consecutive operations by documentId and scope, preserving ordering.
|
|
36
|
-
*
|
|
37
|
-
* For operations [a1_doc, a1_global, a2_doc, b1_global], this returns:
|
|
38
|
-
* - Batch 1: [a1_doc] for doc-a, document scope
|
|
39
|
-
* - Batch 2: [a1_global] for doc-a, global scope
|
|
40
|
-
* - Batch 3: [a2_doc] for doc-a, document scope
|
|
41
|
-
* - Batch 4: [b1_global] for doc-b, global scope
|
|
42
|
-
*
|
|
43
|
-
* This ensures operations are grouped for efficient processing while maintaining
|
|
44
|
-
* causality across documents and scopes.
|
|
45
|
-
*/
|
|
46
|
-
export function batchOperationsByDocument(operations) {
|
|
47
|
-
const batches = [];
|
|
48
|
-
let currentDocId = null;
|
|
49
|
-
let currentScope = null;
|
|
50
|
-
let currentBatch = [];
|
|
51
|
-
const flushBatch = () => {
|
|
52
|
-
if (currentBatch.length === 0 ||
|
|
53
|
-
currentDocId === null ||
|
|
54
|
-
currentScope === null) {
|
|
55
|
-
return;
|
|
56
|
-
}
|
|
57
|
-
batches.push({
|
|
58
|
-
documentId: currentDocId,
|
|
59
|
-
branch: currentBatch[0].context.branch,
|
|
60
|
-
scope: currentScope,
|
|
61
|
-
operations: currentBatch,
|
|
62
|
-
});
|
|
63
|
-
currentBatch = [];
|
|
64
|
-
};
|
|
65
|
-
for (const op of operations) {
|
|
66
|
-
const docId = op.context.documentId;
|
|
67
|
-
const scope = op.context.scope;
|
|
68
|
-
if (docId !== currentDocId || scope !== currentScope) {
|
|
69
|
-
flushBatch();
|
|
70
|
-
currentDocId = docId;
|
|
71
|
-
currentScope = scope;
|
|
72
|
-
}
|
|
73
|
-
currentBatch.push(op);
|
|
74
|
-
}
|
|
75
|
-
flushBatch();
|
|
76
|
-
return batches;
|
|
77
|
-
}
|
|
78
|
-
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/sync/utils.ts"],"names":[],"mappings":"AAUA;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAC9B,UAAkC,EAClC,MAAoB;IAEpB,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE;QAC9B,IAAI,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE,CAAC;YACzD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IACE,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC;YAC5B,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,EAClD,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACxE,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB;IAC9B,OAAO;QACL,KAAK,EAAE,MAAM;QACb,YAAY,EAAE,CAAC;KAChB,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,yBAAyB,CACvC,UAAkC;IAElC,MAAM,OAAO,GAAqB,EAAE,CAAC;IAErC,IAAI,YAAY,GAAkB,IAAI,CAAC;IACvC,IAAI,YAAY,GAAkB,IAAI,CAAC;IACvC,IAAI,YAAY,GAA2B,EAAE,CAAC;IAE9C,MAAM,UAAU,GAAG,GAAG,EAAE;QACtB,IACE,YAAY,CAAC,MAAM,KAAK,CAAC;YACzB,YAAY,KAAK,IAAI;YACrB,YAAY,KAAK,IAAI,EACrB,CAAC;YACD,OAAO;QACT,CAAC;QAED,OAAO,CAAC,IAAI,CAAC;YACX,UAAU,EAAE,YAAY;YACxB,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM;YACtC,KAAK,EAAE,YAAY;YACnB,UAAU,EAAE,YAAY;SACzB,CAAC,CAAC;QACH,YAAY,GAAG,EAAE,CAAC;IACpB,CAAC,CAAC;IAEF,KAAK,MAAM,EAAE,IAAI,UAAU,EAAE,CAAC;QAC5B,MAAM,KAAK,GAAG,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC;QACpC,MAAM,KAAK,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;QAC/B,IAAI,KAAK,KAAK,YAAY,IAAI,KAAK,KAAK,YAAY,EAAE,CAAC;YACrD,UAAU,EAAE,CAAC;YACb,YAAY,GAAG,KAAK,CAAC;YACrB,YAAY,GAAG,KAAK,CAAC;QACvB,CAAC;QACD,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACxB,CAAC;IAED,UAAU,EAAE,CAAC;IACb,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
type OperationIndex = {
|
|
2
|
-
index: number;
|
|
3
|
-
skip: number;
|
|
4
|
-
id?: string;
|
|
5
|
-
timestampUtcMs?: string;
|
|
6
|
-
};
|
|
7
|
-
/**
|
|
8
|
-
* Sorts operations by index and skip number.
|
|
9
|
-
* [0:0 2:0 1:0 3:3 3:1] => [0:0 1:0 2:0 3:1 3:3]
|
|
10
|
-
*/
|
|
11
|
-
export declare function sortOperations<TOpIndex extends OperationIndex>(operations: TOpIndex[]): TOpIndex[];
|
|
12
|
-
/**
|
|
13
|
-
* Reshuffles operations by timestamp only, ignoring their original index values.
|
|
14
|
-
* Used for merging concurrent operations from different branches.
|
|
15
|
-
*
|
|
16
|
-
* Example:
|
|
17
|
-
* [0:0, 1:0, 2:0, A3:0, A4:0, A5:0] + [0:0, 1:0, 2:0, B3:0, B4:2, B5:0]
|
|
18
|
-
* GC => [0:0, 1:0, 2:0, A3:0, A4:0, A5:0] + [0:0, 1:0, B4:2, B5:0]
|
|
19
|
-
* Split => [0:0, 1:0] + [2:0, A3:0, A4:0, A5:0] + [B4:2, B5:0]
|
|
20
|
-
* Reshuffle(6:4) => [6:4, 7:0, 8:0, 9:0, 10:0, 11:0]
|
|
21
|
-
* merge => [0:0, 1:0, 6:4, 7:0, 8:0, 9:0, 10:0, 11:0]
|
|
22
|
-
*/
|
|
23
|
-
export declare function reshuffleByTimestamp<TOp extends OperationIndex>(startIndex: OperationIndex, opsA: TOp[], opsB: TOp[]): TOp[];
|
|
24
|
-
/**
|
|
25
|
-
* Reshuffles operations by timestamp first, then by original index value.
|
|
26
|
-
* Used for merging concurrent operations while preserving index ordering for operations with same timestamp.
|
|
27
|
-
*/
|
|
28
|
-
export declare function reshuffleByTimestampAndIndex<TOp extends OperationIndex>(startIndex: OperationIndex, opsA: TOp[], opsB: TOp[]): TOp[];
|
|
29
|
-
export {};
|
|
30
|
-
//# sourceMappingURL=reshuffle.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"reshuffle.d.ts","sourceRoot":"","sources":["../../../src/utils/reshuffle.ts"],"names":[],"mappings":"AAAA,KAAK,cAAc,GAAG;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF;;;GAGG;AACH,wBAAgB,cAAc,CAAC,QAAQ,SAAS,cAAc,EAC5D,UAAU,EAAE,QAAQ,EAAE,GACrB,QAAQ,EAAE,CAKZ;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,SAAS,cAAc,EAC7D,UAAU,EAAE,cAAc,EAC1B,IAAI,EAAE,GAAG,EAAE,EACX,IAAI,EAAE,GAAG,EAAE,GACV,GAAG,EAAE,CAYP;AAED;;;GAGG;AACH,wBAAgB,4BAA4B,CAAC,GAAG,SAAS,cAAc,EACrE,UAAU,EAAE,cAAc,EAC1B,IAAI,EAAE,GAAG,EAAE,EACX,IAAI,EAAE,GAAG,EAAE,GACV,GAAG,EAAE,CAaP"}
|