@powerhousedao/reactor 6.0.0-dev.7 → 6.0.0-dev.78
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
package/dist/src/queue/queue.js
DELETED
|
@@ -1,384 +0,0 @@
|
|
|
1
|
-
import { JobExecutionHandle } from "./job-execution-handle.js";
|
|
2
|
-
import { JobQueueState, QueueEventTypes } from "./types.js";
|
|
3
|
-
/**
|
|
4
|
-
* In-memory implementation of the IQueue interface.
|
|
5
|
-
* Organizes jobs by documentId, scope, and branch to ensure proper ordering.
|
|
6
|
-
* Ensures serial execution per document by tracking executing jobs.
|
|
7
|
-
* Implements dependency management through queue hints.
|
|
8
|
-
*/
|
|
9
|
-
export class InMemoryQueue {
|
|
10
|
-
eventBus;
|
|
11
|
-
queues = new Map();
|
|
12
|
-
jobIdToQueueKey = new Map();
|
|
13
|
-
docIdToJobId = new Map();
|
|
14
|
-
jobIdToDocId = new Map();
|
|
15
|
-
completedJobs = new Set();
|
|
16
|
-
jobIndex = new Map();
|
|
17
|
-
isBlocked = false;
|
|
18
|
-
onDrainedCallback;
|
|
19
|
-
constructor(eventBus) {
|
|
20
|
-
this.eventBus = eventBus;
|
|
21
|
-
}
|
|
22
|
-
toErrorInfo(error) {
|
|
23
|
-
if (error instanceof Error) {
|
|
24
|
-
return {
|
|
25
|
-
message: error.message,
|
|
26
|
-
stack: error.stack || new Error().stack || "",
|
|
27
|
-
};
|
|
28
|
-
}
|
|
29
|
-
return {
|
|
30
|
-
message: error,
|
|
31
|
-
stack: new Error().stack || "",
|
|
32
|
-
};
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* Creates a unique key for a document/scope/branch combination
|
|
36
|
-
*/
|
|
37
|
-
createQueueKey(documentId, scope, branch) {
|
|
38
|
-
return `${documentId}:${scope}:${branch}`;
|
|
39
|
-
}
|
|
40
|
-
/**
|
|
41
|
-
* Gets or creates a queue for the given key
|
|
42
|
-
*/
|
|
43
|
-
getQueue(queueKey) {
|
|
44
|
-
let queue = this.queues.get(queueKey);
|
|
45
|
-
if (!queue) {
|
|
46
|
-
queue = [];
|
|
47
|
-
this.queues.set(queueKey, queue);
|
|
48
|
-
}
|
|
49
|
-
return queue;
|
|
50
|
-
}
|
|
51
|
-
/**
|
|
52
|
-
* Check if a document has any jobs currently executing
|
|
53
|
-
*/
|
|
54
|
-
isDocumentExecuting(documentId) {
|
|
55
|
-
const executingSet = this.docIdToJobId.get(documentId);
|
|
56
|
-
return executingSet ? executingSet.size > 0 : false;
|
|
57
|
-
}
|
|
58
|
-
/**
|
|
59
|
-
* Mark a job as executing for its document
|
|
60
|
-
*/
|
|
61
|
-
markJobExecuting(job) {
|
|
62
|
-
let executingSet = this.docIdToJobId.get(job.documentId);
|
|
63
|
-
if (!executingSet) {
|
|
64
|
-
executingSet = new Set();
|
|
65
|
-
this.docIdToJobId.set(job.documentId, executingSet);
|
|
66
|
-
}
|
|
67
|
-
executingSet.add(job.id);
|
|
68
|
-
this.jobIdToDocId.set(job.id, job.documentId);
|
|
69
|
-
}
|
|
70
|
-
/**
|
|
71
|
-
* Mark a job as no longer executing for its document
|
|
72
|
-
*/
|
|
73
|
-
markJobComplete(jobId, documentId) {
|
|
74
|
-
const executingSet = this.docIdToJobId.get(documentId);
|
|
75
|
-
if (executingSet) {
|
|
76
|
-
executingSet.delete(jobId);
|
|
77
|
-
if (executingSet.size === 0) {
|
|
78
|
-
this.docIdToJobId.delete(documentId);
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
this.jobIdToDocId.delete(jobId);
|
|
82
|
-
}
|
|
83
|
-
/**
|
|
84
|
-
* Check if all dependencies for a job have been completed
|
|
85
|
-
*/
|
|
86
|
-
areDependenciesMet(job) {
|
|
87
|
-
if (job.queueHint.length === 0) {
|
|
88
|
-
return true;
|
|
89
|
-
}
|
|
90
|
-
return job.queueHint.every((depId) => this.completedJobs.has(depId));
|
|
91
|
-
}
|
|
92
|
-
/**
|
|
93
|
-
* Get the next job that has all its dependencies met
|
|
94
|
-
*/
|
|
95
|
-
getNextJobWithMetDependencies(queue) {
|
|
96
|
-
for (const job of queue) {
|
|
97
|
-
if (this.areDependenciesMet(job)) {
|
|
98
|
-
return job;
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
return null;
|
|
102
|
-
}
|
|
103
|
-
async enqueue(job) {
|
|
104
|
-
// Throw error if queue is blocked
|
|
105
|
-
if (this.isBlocked) {
|
|
106
|
-
throw new Error("Queue is blocked");
|
|
107
|
-
}
|
|
108
|
-
const queueKey = this.createQueueKey(job.documentId, job.scope, job.branch);
|
|
109
|
-
const queue = this.getQueue(queueKey);
|
|
110
|
-
// Add job to the end of the queue (FIFO)
|
|
111
|
-
queue.push(job);
|
|
112
|
-
// Track job location for removal and dependency resolution
|
|
113
|
-
this.jobIdToQueueKey.set(job.id, queueKey);
|
|
114
|
-
this.jobIndex.set(job.id, job);
|
|
115
|
-
// Emit job available event
|
|
116
|
-
const eventData = {
|
|
117
|
-
documentId: job.documentId,
|
|
118
|
-
scope: job.scope,
|
|
119
|
-
branch: job.branch,
|
|
120
|
-
jobId: job.id,
|
|
121
|
-
};
|
|
122
|
-
await this.eventBus.emit(QueueEventTypes.JOB_AVAILABLE, eventData);
|
|
123
|
-
}
|
|
124
|
-
dequeue(documentId, scope, branch, signal) {
|
|
125
|
-
const queueKey = this.createQueueKey(documentId, scope, branch);
|
|
126
|
-
const queue = this.queues.get(queueKey);
|
|
127
|
-
if (signal?.aborted) {
|
|
128
|
-
return Promise.reject(new Error("Operation aborted"));
|
|
129
|
-
}
|
|
130
|
-
if (!queue || queue.length === 0) {
|
|
131
|
-
return Promise.resolve(null);
|
|
132
|
-
}
|
|
133
|
-
// Find the first job with met dependencies
|
|
134
|
-
const job = this.getNextJobWithMetDependencies(queue);
|
|
135
|
-
if (!job) {
|
|
136
|
-
return Promise.resolve(null);
|
|
137
|
-
}
|
|
138
|
-
// Remove job from queue
|
|
139
|
-
const jobIndex = queue.indexOf(job);
|
|
140
|
-
queue.splice(jobIndex, 1);
|
|
141
|
-
// Remove from queue tracking but keep in job index for retry
|
|
142
|
-
this.jobIdToQueueKey.delete(job.id);
|
|
143
|
-
// Mark this job as executing for its document
|
|
144
|
-
this.markJobExecuting(job);
|
|
145
|
-
// Clean up empty queue
|
|
146
|
-
if (queue.length === 0) {
|
|
147
|
-
this.queues.delete(queueKey);
|
|
148
|
-
}
|
|
149
|
-
// Create and return the execution handle
|
|
150
|
-
const handle = new JobExecutionHandle(job, JobQueueState.READY, {
|
|
151
|
-
onStart: () => {
|
|
152
|
-
// Job is now running
|
|
153
|
-
},
|
|
154
|
-
onComplete: () => {
|
|
155
|
-
void this.completeJob(job.id);
|
|
156
|
-
},
|
|
157
|
-
onFail: (error) => {
|
|
158
|
-
void this.failJob(job.id, error);
|
|
159
|
-
},
|
|
160
|
-
});
|
|
161
|
-
return Promise.resolve(handle);
|
|
162
|
-
}
|
|
163
|
-
dequeueNext(signal) {
|
|
164
|
-
if (signal?.aborted) {
|
|
165
|
-
return Promise.reject(new Error("Operation aborted"));
|
|
166
|
-
}
|
|
167
|
-
// Find the first non-empty queue for a document that's not currently executing
|
|
168
|
-
for (const [queueKey, queue] of this.queues.entries()) {
|
|
169
|
-
if (queue.length > 0) {
|
|
170
|
-
// Find the first job with met dependencies
|
|
171
|
-
const job = this.getNextJobWithMetDependencies(queue);
|
|
172
|
-
if (!job) {
|
|
173
|
-
continue; // No job with met dependencies in this queue
|
|
174
|
-
}
|
|
175
|
-
// Only dequeue if the document is not currently executing jobs
|
|
176
|
-
if (!this.isDocumentExecuting(job.documentId)) {
|
|
177
|
-
// Remove job from queue
|
|
178
|
-
const jobIdx = queue.indexOf(job);
|
|
179
|
-
queue.splice(jobIdx, 1);
|
|
180
|
-
// Remove from queue tracking but keep in job index for retry
|
|
181
|
-
this.jobIdToQueueKey.delete(job.id);
|
|
182
|
-
// Keep job in jobIndex so we can retry it if needed
|
|
183
|
-
// Mark this job as executing for its document
|
|
184
|
-
this.markJobExecuting(job);
|
|
185
|
-
// Clean up empty queue
|
|
186
|
-
if (queue.length === 0) {
|
|
187
|
-
this.queues.delete(queueKey);
|
|
188
|
-
}
|
|
189
|
-
// Create and return the execution handle
|
|
190
|
-
const handle = new JobExecutionHandle(job, JobQueueState.READY, {
|
|
191
|
-
onStart: () => {
|
|
192
|
-
// Job is now running
|
|
193
|
-
},
|
|
194
|
-
onComplete: () => {
|
|
195
|
-
void this.completeJob(job.id);
|
|
196
|
-
},
|
|
197
|
-
onFail: (error) => {
|
|
198
|
-
void this.failJob(job.id, error);
|
|
199
|
-
},
|
|
200
|
-
});
|
|
201
|
-
return Promise.resolve(handle);
|
|
202
|
-
}
|
|
203
|
-
}
|
|
204
|
-
}
|
|
205
|
-
return Promise.resolve(null);
|
|
206
|
-
}
|
|
207
|
-
size(documentId, scope, branch) {
|
|
208
|
-
const queueKey = this.createQueueKey(documentId, scope, branch);
|
|
209
|
-
const queue = this.queues.get(queueKey);
|
|
210
|
-
return Promise.resolve(queue ? queue.length : 0);
|
|
211
|
-
}
|
|
212
|
-
totalSize() {
|
|
213
|
-
let total = 0;
|
|
214
|
-
for (const queue of this.queues.values()) {
|
|
215
|
-
total += queue.length;
|
|
216
|
-
}
|
|
217
|
-
return Promise.resolve(total);
|
|
218
|
-
}
|
|
219
|
-
remove(jobId) {
|
|
220
|
-
const queueKey = this.jobIdToQueueKey.get(jobId);
|
|
221
|
-
if (!queueKey) {
|
|
222
|
-
return Promise.resolve(false);
|
|
223
|
-
}
|
|
224
|
-
const queue = this.queues.get(queueKey);
|
|
225
|
-
if (!queue) {
|
|
226
|
-
// Clean up orphaned index entry
|
|
227
|
-
this.jobIdToQueueKey.delete(jobId);
|
|
228
|
-
this.jobIndex.delete(jobId);
|
|
229
|
-
return Promise.resolve(false);
|
|
230
|
-
}
|
|
231
|
-
const jobIdx = queue.findIndex((job) => job.id === jobId);
|
|
232
|
-
if (jobIdx === -1) {
|
|
233
|
-
// Clean up orphaned index entry
|
|
234
|
-
this.jobIdToQueueKey.delete(jobId);
|
|
235
|
-
this.jobIndex.delete(jobId);
|
|
236
|
-
return Promise.resolve(false);
|
|
237
|
-
}
|
|
238
|
-
// Remove job from queue
|
|
239
|
-
queue.splice(jobIdx, 1);
|
|
240
|
-
// Remove from job index
|
|
241
|
-
this.jobIdToQueueKey.delete(jobId);
|
|
242
|
-
this.jobIndex.delete(jobId);
|
|
243
|
-
// Clean up empty queue
|
|
244
|
-
if (queue.length === 0) {
|
|
245
|
-
this.queues.delete(queueKey);
|
|
246
|
-
}
|
|
247
|
-
return Promise.resolve(true);
|
|
248
|
-
}
|
|
249
|
-
clear(documentId, scope, branch) {
|
|
250
|
-
const queueKey = this.createQueueKey(documentId, scope, branch);
|
|
251
|
-
const queue = this.queues.get(queueKey);
|
|
252
|
-
if (queue) {
|
|
253
|
-
// Remove all jobs from the job index
|
|
254
|
-
for (const job of queue) {
|
|
255
|
-
this.jobIdToQueueKey.delete(job.id);
|
|
256
|
-
this.jobIndex.delete(job.id);
|
|
257
|
-
}
|
|
258
|
-
// Remove the queue
|
|
259
|
-
this.queues.delete(queueKey);
|
|
260
|
-
}
|
|
261
|
-
return Promise.resolve();
|
|
262
|
-
}
|
|
263
|
-
clearAll() {
|
|
264
|
-
// Clear all job indices
|
|
265
|
-
this.jobIdToQueueKey.clear();
|
|
266
|
-
this.jobIndex.clear();
|
|
267
|
-
this.completedJobs.clear();
|
|
268
|
-
// Clear all queues
|
|
269
|
-
this.queues.clear();
|
|
270
|
-
return Promise.resolve();
|
|
271
|
-
}
|
|
272
|
-
hasJobs() {
|
|
273
|
-
return Promise.resolve(this.queues.size > 0 &&
|
|
274
|
-
Array.from(this.queues.values()).some((q) => q.length > 0));
|
|
275
|
-
}
|
|
276
|
-
async completeJob(jobId) {
|
|
277
|
-
// Get the documentId for the executing job
|
|
278
|
-
const documentId = this.jobIdToDocId.get(jobId);
|
|
279
|
-
if (documentId) {
|
|
280
|
-
// Mark the job as no longer executing
|
|
281
|
-
this.markJobComplete(jobId, documentId);
|
|
282
|
-
}
|
|
283
|
-
// Track the job as completed for dependency resolution
|
|
284
|
-
this.completedJobs.add(jobId);
|
|
285
|
-
// Remove from job index
|
|
286
|
-
this.jobIndex.delete(jobId);
|
|
287
|
-
// For in-memory queue, completing just removes the job
|
|
288
|
-
// In a persistent queue, this would update the job status
|
|
289
|
-
await this.remove(jobId);
|
|
290
|
-
// Check if queue is now drained
|
|
291
|
-
this.checkDrained();
|
|
292
|
-
}
|
|
293
|
-
async failJob(jobId, error) {
|
|
294
|
-
// Get the documentId for the executing job
|
|
295
|
-
const documentId = this.jobIdToDocId.get(jobId);
|
|
296
|
-
if (documentId) {
|
|
297
|
-
// Mark the job as no longer executing
|
|
298
|
-
this.markJobComplete(jobId, documentId);
|
|
299
|
-
}
|
|
300
|
-
// update the job lastError and errorHistory
|
|
301
|
-
const job = this.jobIndex.get(jobId);
|
|
302
|
-
if (job) {
|
|
303
|
-
job.lastError = error;
|
|
304
|
-
if (error) {
|
|
305
|
-
job.errorHistory.push(error);
|
|
306
|
-
}
|
|
307
|
-
}
|
|
308
|
-
// Remove from job index
|
|
309
|
-
this.jobIndex.delete(jobId);
|
|
310
|
-
// For in-memory queue, failing just removes the job
|
|
311
|
-
// In a persistent queue, this would update the job status and store the error
|
|
312
|
-
await this.remove(jobId);
|
|
313
|
-
// Check if queue is now drained
|
|
314
|
-
this.checkDrained();
|
|
315
|
-
}
|
|
316
|
-
async retryJob(jobId, error) {
|
|
317
|
-
// Get the job from the index (it might be executing, not in queue)
|
|
318
|
-
const job = this.jobIndex.get(jobId);
|
|
319
|
-
if (!job) {
|
|
320
|
-
return;
|
|
321
|
-
}
|
|
322
|
-
// update the job lastError
|
|
323
|
-
job.lastError = error;
|
|
324
|
-
// Mark it as no longer executing if it was
|
|
325
|
-
const documentId = this.jobIdToDocId.get(jobId);
|
|
326
|
-
if (documentId) {
|
|
327
|
-
this.markJobComplete(jobId, documentId);
|
|
328
|
-
}
|
|
329
|
-
// Remove from indices
|
|
330
|
-
this.jobIndex.delete(jobId);
|
|
331
|
-
this.jobIdToQueueKey.delete(jobId);
|
|
332
|
-
// Add error to history
|
|
333
|
-
if (error) {
|
|
334
|
-
job.errorHistory.push(error);
|
|
335
|
-
}
|
|
336
|
-
// Update retry count
|
|
337
|
-
const updatedJob = {
|
|
338
|
-
...job,
|
|
339
|
-
retryCount: (job.retryCount || 0) + 1,
|
|
340
|
-
lastError: error,
|
|
341
|
-
};
|
|
342
|
-
// Re-enqueue with updated retry count
|
|
343
|
-
await this.enqueue(updatedJob);
|
|
344
|
-
}
|
|
345
|
-
/**
|
|
346
|
-
* Check if the queue is drained and call the callback if it is
|
|
347
|
-
*/
|
|
348
|
-
checkDrained() {
|
|
349
|
-
if (this.isDrained && this.onDrainedCallback) {
|
|
350
|
-
const callback = this.onDrainedCallback;
|
|
351
|
-
this.onDrainedCallback = undefined;
|
|
352
|
-
callback();
|
|
353
|
-
}
|
|
354
|
-
}
|
|
355
|
-
/**
|
|
356
|
-
* Returns true if and only if all jobs have been resolved.
|
|
357
|
-
*/
|
|
358
|
-
get isDrained() {
|
|
359
|
-
// Queue is drained if there are no pending jobs and no executing jobs
|
|
360
|
-
const hasPendingJobs = this.queues.size > 0 &&
|
|
361
|
-
Array.from(this.queues.values()).some((q) => q.length > 0);
|
|
362
|
-
const hasExecutingJobs = this.docIdToJobId.size > 0 &&
|
|
363
|
-
Array.from(this.docIdToJobId.values()).some((set) => set.size > 0);
|
|
364
|
-
return !hasPendingJobs && !hasExecutingJobs;
|
|
365
|
-
}
|
|
366
|
-
/**
|
|
367
|
-
* Blocks the queue from accepting new jobs.
|
|
368
|
-
* @param onDrained - Optional callback to call when the queue is drained
|
|
369
|
-
*/
|
|
370
|
-
block(onDrained) {
|
|
371
|
-
this.isBlocked = true;
|
|
372
|
-
this.onDrainedCallback = onDrained;
|
|
373
|
-
// Check if already drained
|
|
374
|
-
this.checkDrained();
|
|
375
|
-
}
|
|
376
|
-
/**
|
|
377
|
-
* Unblocks the queue from accepting new jobs.
|
|
378
|
-
*/
|
|
379
|
-
unblock() {
|
|
380
|
-
this.isBlocked = false;
|
|
381
|
-
this.onDrainedCallback = undefined;
|
|
382
|
-
}
|
|
383
|
-
}
|
|
384
|
-
//# sourceMappingURL=queue.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"queue.js","sourceRoot":"","sources":["../../../src/queue/queue.ts"],"names":[],"mappings":"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"}
|
package/dist/src/queue/types.js
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* State of a job in the queue
|
|
3
|
-
*/
|
|
4
|
-
export var JobQueueState;
|
|
5
|
-
(function (JobQueueState) {
|
|
6
|
-
JobQueueState[JobQueueState["UNKNOWN"] = -1] = "UNKNOWN";
|
|
7
|
-
JobQueueState[JobQueueState["PREPROCESSING"] = 0] = "PREPROCESSING";
|
|
8
|
-
JobQueueState[JobQueueState["PENDING"] = 1] = "PENDING";
|
|
9
|
-
JobQueueState[JobQueueState["READY"] = 2] = "READY";
|
|
10
|
-
JobQueueState[JobQueueState["RUNNING"] = 3] = "RUNNING";
|
|
11
|
-
JobQueueState[JobQueueState["RESOLVED"] = 4] = "RESOLVED";
|
|
12
|
-
})(JobQueueState || (JobQueueState = {}));
|
|
13
|
-
/**
|
|
14
|
-
* Event types for the queue system
|
|
15
|
-
*/
|
|
16
|
-
export const QueueEventTypes = {
|
|
17
|
-
JOB_AVAILABLE: 10000,
|
|
18
|
-
};
|
|
19
|
-
//# sourceMappingURL=types.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/queue/types.ts"],"names":[],"mappings":"AAKA;;GAEG;AACH,MAAM,CAAN,IAAY,aAOX;AAPD,WAAY,aAAa;IACvB,wDAAY,CAAA;IACZ,mEAAiB,CAAA;IACjB,uDAAW,CAAA;IACX,mDAAS,CAAA;IACT,uDAAW,CAAA;IACX,yDAAY,CAAA;AACd,CAAC,EAPW,aAAa,KAAb,aAAa,QAOxB;AA6DD;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,aAAa,EAAE,KAAK;CACZ,CAAC"}
|
|
@@ -1,143 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Base class for read models that provides catch-up/rewind functionality.
|
|
3
|
-
* Handles initialization, state tracking via ViewState table, and consistency tracking.
|
|
4
|
-
* Subclasses should override indexOperations() with their specific indexing logic.
|
|
5
|
-
*/
|
|
6
|
-
export class BaseReadModel {
|
|
7
|
-
db;
|
|
8
|
-
operationIndex;
|
|
9
|
-
writeCache;
|
|
10
|
-
consistencyTracker;
|
|
11
|
-
readModelId;
|
|
12
|
-
lastOrdinal = 0;
|
|
13
|
-
constructor(db, operationIndex, writeCache, consistencyTracker, readModelId) {
|
|
14
|
-
this.db = db;
|
|
15
|
-
this.operationIndex = operationIndex;
|
|
16
|
-
this.writeCache = writeCache;
|
|
17
|
-
this.consistencyTracker = consistencyTracker;
|
|
18
|
-
this.readModelId = readModelId;
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* Initializes the read model by loading state and catching up on missed operations.
|
|
22
|
-
*/
|
|
23
|
-
async init() {
|
|
24
|
-
const viewState = await this.loadState();
|
|
25
|
-
if (viewState !== undefined) {
|
|
26
|
-
this.lastOrdinal = viewState;
|
|
27
|
-
const missedOperations = await this.operationIndex.getSinceOrdinal(this.lastOrdinal);
|
|
28
|
-
if (missedOperations.items.length > 0) {
|
|
29
|
-
const opsWithState = await this.rebuildStateForOperations(missedOperations.items);
|
|
30
|
-
await this.indexOperations(opsWithState);
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
else {
|
|
34
|
-
await this.initializeState();
|
|
35
|
-
const allOperations = await this.operationIndex.getSinceOrdinal(0);
|
|
36
|
-
if (allOperations.items.length > 0) {
|
|
37
|
-
const opsWithState = await this.rebuildStateForOperations(allOperations.items);
|
|
38
|
-
await this.indexOperations(opsWithState);
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
/**
|
|
43
|
-
* Indexes operations into the read model.
|
|
44
|
-
* Subclasses should override this method to implement their specific indexing logic.
|
|
45
|
-
* The overriding method should call saveState() and updateConsistencyTracker() at the end.
|
|
46
|
-
*/
|
|
47
|
-
async indexOperations(items) {
|
|
48
|
-
if (items.length === 0)
|
|
49
|
-
return;
|
|
50
|
-
await this.db.transaction().execute(async (trx) => {
|
|
51
|
-
await this.saveState(trx, items);
|
|
52
|
-
});
|
|
53
|
-
this.updateConsistencyTracker(items);
|
|
54
|
-
}
|
|
55
|
-
/**
|
|
56
|
-
* Waits for the read model to reach the specified consistency level.
|
|
57
|
-
*/
|
|
58
|
-
async waitForConsistency(token, timeoutMs, signal) {
|
|
59
|
-
if (token.coordinates.length === 0) {
|
|
60
|
-
return;
|
|
61
|
-
}
|
|
62
|
-
await this.consistencyTracker.waitFor(token.coordinates, timeoutMs, signal);
|
|
63
|
-
}
|
|
64
|
-
/**
|
|
65
|
-
* Rebuilds document state for each operation using the write cache.
|
|
66
|
-
*/
|
|
67
|
-
async rebuildStateForOperations(operations) {
|
|
68
|
-
const result = [];
|
|
69
|
-
for (const op of operations) {
|
|
70
|
-
const { documentId, scope, branch } = op.context;
|
|
71
|
-
const targetRevision = op.operation.index;
|
|
72
|
-
const document = await this.writeCache.getState(documentId, scope, branch, targetRevision);
|
|
73
|
-
result.push({
|
|
74
|
-
operation: op.operation,
|
|
75
|
-
context: {
|
|
76
|
-
...op.context,
|
|
77
|
-
resultingState: JSON.stringify(document),
|
|
78
|
-
},
|
|
79
|
-
});
|
|
80
|
-
}
|
|
81
|
-
return result;
|
|
82
|
-
}
|
|
83
|
-
/**
|
|
84
|
-
* Loads the last processed ordinal from the ViewState table.
|
|
85
|
-
* Returns undefined if no state exists for this read model.
|
|
86
|
-
*/
|
|
87
|
-
async loadState() {
|
|
88
|
-
const viewStateDb = this.db;
|
|
89
|
-
const row = await viewStateDb
|
|
90
|
-
.selectFrom("ViewState")
|
|
91
|
-
.select("lastOrdinal")
|
|
92
|
-
.where("readModelId", "=", this.readModelId)
|
|
93
|
-
.executeTakeFirst();
|
|
94
|
-
return row?.lastOrdinal;
|
|
95
|
-
}
|
|
96
|
-
/**
|
|
97
|
-
* Initializes the ViewState row for this read model.
|
|
98
|
-
*/
|
|
99
|
-
async initializeState() {
|
|
100
|
-
const viewStateDb = this.db;
|
|
101
|
-
await viewStateDb
|
|
102
|
-
.insertInto("ViewState")
|
|
103
|
-
.values({
|
|
104
|
-
readModelId: this.readModelId,
|
|
105
|
-
lastOrdinal: 0,
|
|
106
|
-
})
|
|
107
|
-
.execute();
|
|
108
|
-
}
|
|
109
|
-
/**
|
|
110
|
-
* Saves the last processed ordinal to the ViewState table.
|
|
111
|
-
* Should be called at the end of indexOperations() within a transaction.
|
|
112
|
-
*/
|
|
113
|
-
async saveState(trx, items) {
|
|
114
|
-
const maxOrdinal = Math.max(...items.map((item) => item.context.ordinal));
|
|
115
|
-
this.lastOrdinal = maxOrdinal;
|
|
116
|
-
await trx
|
|
117
|
-
.updateTable("ViewState")
|
|
118
|
-
.set({
|
|
119
|
-
lastOrdinal: maxOrdinal,
|
|
120
|
-
lastOperationTimestamp: new Date(),
|
|
121
|
-
})
|
|
122
|
-
.where("readModelId", "=", this.readModelId)
|
|
123
|
-
.execute();
|
|
124
|
-
}
|
|
125
|
-
/**
|
|
126
|
-
* Updates the consistency tracker with the processed operations.
|
|
127
|
-
* Should be called at the end of indexOperations() after the transaction commits.
|
|
128
|
-
*/
|
|
129
|
-
updateConsistencyTracker(items) {
|
|
130
|
-
const coordinates = [];
|
|
131
|
-
for (let i = 0; i < items.length; i++) {
|
|
132
|
-
const item = items[i];
|
|
133
|
-
coordinates.push({
|
|
134
|
-
documentId: item.context.documentId,
|
|
135
|
-
scope: item.context.scope,
|
|
136
|
-
branch: item.context.branch,
|
|
137
|
-
operationIndex: item.operation.index,
|
|
138
|
-
});
|
|
139
|
-
}
|
|
140
|
-
this.consistencyTracker.update(coordinates);
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
//# sourceMappingURL=base-read-model.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"base-read-model.js","sourceRoot":"","sources":["../../../src/read-models/base-read-model.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
import { OperationEventTypes, } from "../events/types.js";
|
|
2
|
-
/**
|
|
3
|
-
* Coordinates read model synchronization by listening to operation write events
|
|
4
|
-
* and updating all registered read models in parallel.
|
|
5
|
-
*
|
|
6
|
-
* This coordinator is responsible for:
|
|
7
|
-
* - Subscribing to OPERATION_WRITTEN events from the event bus
|
|
8
|
-
* - Distributing operation updates to all registered read models
|
|
9
|
-
* - Managing the lifecycle of read model subscriptions
|
|
10
|
-
*
|
|
11
|
-
* Read models are updated asynchronously and in parallel to avoid blocking
|
|
12
|
-
* the write path. Errors in read model updates are propagated through the
|
|
13
|
-
* event bus but do not affect the write operation success.
|
|
14
|
-
*/
|
|
15
|
-
export class ReadModelCoordinator {
|
|
16
|
-
eventBus;
|
|
17
|
-
preReady;
|
|
18
|
-
postReady;
|
|
19
|
-
unsubscribe;
|
|
20
|
-
isRunning = false;
|
|
21
|
-
constructor(eventBus, preReady, postReady) {
|
|
22
|
-
this.eventBus = eventBus;
|
|
23
|
-
this.preReady = preReady;
|
|
24
|
-
this.postReady = postReady;
|
|
25
|
-
//
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* Start listening for operation events and updating read models.
|
|
29
|
-
* Can be called multiple times safely (subsequent calls are no-ops).
|
|
30
|
-
*/
|
|
31
|
-
start() {
|
|
32
|
-
if (this.isRunning) {
|
|
33
|
-
return;
|
|
34
|
-
}
|
|
35
|
-
// Subscribe to OPERATION_WRITTEN events
|
|
36
|
-
this.unsubscribe = this.eventBus.subscribe(OperationEventTypes.OPERATION_WRITTEN, async (type, event) => {
|
|
37
|
-
await this.handleOperationWritten(event);
|
|
38
|
-
});
|
|
39
|
-
this.isRunning = true;
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
* Stop listening and clean up subscriptions.
|
|
43
|
-
* Can be called multiple times safely (subsequent calls are no-ops).
|
|
44
|
-
*/
|
|
45
|
-
stop() {
|
|
46
|
-
if (!this.isRunning) {
|
|
47
|
-
return;
|
|
48
|
-
}
|
|
49
|
-
if (this.unsubscribe) {
|
|
50
|
-
this.unsubscribe();
|
|
51
|
-
this.unsubscribe = undefined;
|
|
52
|
-
}
|
|
53
|
-
this.isRunning = false;
|
|
54
|
-
}
|
|
55
|
-
/**
|
|
56
|
-
* Handle operation written events by updating all read models in parallel.
|
|
57
|
-
* Errors from individual read models are collected and re-thrown as an aggregate.
|
|
58
|
-
*/
|
|
59
|
-
async handleOperationWritten(event) {
|
|
60
|
-
// Index into pre-ready read models in parallel
|
|
61
|
-
await Promise.all(this.preReady.map((readModel) => readModel.indexOperations(event.operations)));
|
|
62
|
-
// Emit OPERATIONS_READY event after all pre-ready read models have completed
|
|
63
|
-
const readyEvent = {
|
|
64
|
-
jobId: event.jobId,
|
|
65
|
-
operations: event.operations,
|
|
66
|
-
};
|
|
67
|
-
await this.eventBus.emit(OperationEventTypes.OPERATIONS_READY, readyEvent);
|
|
68
|
-
// Process post-ready read models (e.g., subscription notifications)
|
|
69
|
-
await Promise.all(this.postReady.map((readModel) => readModel.indexOperations(event.operations)));
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
//# sourceMappingURL=coordinator.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"coordinator.js","sourceRoot":"","sources":["../../../src/read-models/coordinator.ts"],"names":[],"mappings":"AACA,OAAO,EACL,mBAAmB,GAIpB,MAAM,oBAAoB,CAAC;AAG5B;;;;;;;;;;;;GAYG;AACH,MAAM,OAAO,oBAAoB;IAKrB;IACQ;IACA;IANV,WAAW,CAAe;IAC1B,SAAS,GAAG,KAAK,CAAC;IAE1B,YACU,QAAmB,EACX,QAAsB,EACtB,SAAuB;QAF/B,aAAQ,GAAR,QAAQ,CAAW;QACX,aAAQ,GAAR,QAAQ,CAAc;QACtB,cAAS,GAAT,SAAS,CAAc;QAEvC,EAAE;IACJ,CAAC;IAED;;;OAGG;IACH,KAAK;QACH,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,OAAO;QACT,CAAC;QAED,wCAAwC;QACxC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CACxC,mBAAmB,CAAC,iBAAiB,EACrC,KAAK,EAAE,IAAI,EAAE,KAA4B,EAAE,EAAE;YAC3C,MAAM,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;QAC3C,CAAC,CACF,CAAC;QAEF,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IACxB,CAAC;IAED;;;OAGG;IACH,IAAI;QACF,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,OAAO;QACT,CAAC;QAED,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;QAC/B,CAAC;QAED,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IACzB,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,sBAAsB,CAClC,KAA4B;QAE5B,+CAA+C;QAC/C,MAAM,OAAO,CAAC,GAAG,CACf,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAC9B,SAAS,CAAC,eAAe,CAAC,KAAK,CAAC,UAAU,CAAC,CAC5C,CACF,CAAC;QAEF,6EAA6E;QAC7E,MAAM,UAAU,GAAyB;YACvC,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,UAAU,EAAE,KAAK,CAAC,UAAU;SAC7B,CAAC;QACF,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,mBAAmB,CAAC,gBAAgB,EAAE,UAAU,CAAC,CAAC;QAE3E,oEAAoE;QACpE,MAAM,OAAO,CAAC,GAAG,CACf,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAC/B,SAAS,CAAC,eAAe,CAAC,KAAK,CAAC,UAAU,CAAC,CAC5C,CACF,CAAC;IACJ,CAAC;CACF"}
|