@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
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { IEventBus } from "../events/interfaces.js";
|
|
2
|
+
import type { Job } from "../queue/types.js";
|
|
2
3
|
import type { ErrorInfo } from "../shared/types.js";
|
|
3
4
|
import { type JobInfo } from "../shared/types.js";
|
|
4
5
|
import type { IJobTracker } from "./interfaces.js";
|
|
@@ -13,13 +14,13 @@ export declare class InMemoryJobTracker implements IJobTracker {
|
|
|
13
14
|
private unsubscribers;
|
|
14
15
|
constructor(eventBus: IEventBus);
|
|
15
16
|
private subscribeToEvents;
|
|
16
|
-
private
|
|
17
|
-
private
|
|
17
|
+
private handleWriteReady;
|
|
18
|
+
private handleReadReady;
|
|
18
19
|
private handleJobFailed;
|
|
19
20
|
shutdown(): void;
|
|
20
21
|
registerJob(jobInfo: JobInfo): void;
|
|
21
22
|
markRunning(jobId: string): void;
|
|
22
|
-
markFailed(jobId: string, error: ErrorInfo): void;
|
|
23
|
+
markFailed(jobId: string, error: ErrorInfo, job?: Job): void;
|
|
23
24
|
getJobStatus(jobId: string): JobInfo | null;
|
|
24
25
|
}
|
|
25
26
|
//# sourceMappingURL=in-memory-job-tracker.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"in-memory-job-tracker.d.ts","sourceRoot":"","sources":["../../../src/job-tracker/in-memory-job-tracker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAYzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAa,KAAK,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEnD;;;;GAIG;AACH,qBAAa,kBAAmB,YAAW,WAAW;IAIxC,OAAO,CAAC,QAAQ;IAH5B,OAAO,CAAC,IAAI,CAA8B;IAC1C,OAAO,CAAC,aAAa,CAAqB;gBAEtB,QAAQ,EAAE,SAAS;IAIvC,OAAO,CAAC,iBAAiB;IA6BzB,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"in-memory-job-tracker.d.ts","sourceRoot":"","sources":["../../../src/job-tracker/in-memory-job-tracker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAYzD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAa,KAAK,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEnD;;;;GAIG;AACH,qBAAa,kBAAmB,YAAW,WAAW;IAIxC,OAAO,CAAC,QAAQ;IAH5B,OAAO,CAAC,IAAI,CAA8B;IAC1C,OAAO,CAAC,aAAa,CAAqB;gBAEtB,QAAQ,EAAE,SAAS;IAIvC,OAAO,CAAC,iBAAiB;IA6BzB,OAAO,CAAC,gBAAgB;IAaxB,OAAO,CAAC,eAAe;IAWvB,OAAO,CAAC,eAAe;IAWvB,QAAQ,IAAI,IAAI;IAOhB,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAInC,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAsBhC,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI;IA0B5D,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI;CAI5C"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { Job } from "../queue/types.js";
|
|
1
2
|
import type { ErrorInfo, JobInfo } from "../shared/types.js";
|
|
2
3
|
/**
|
|
3
4
|
* Interface for tracking job lifecycle status.
|
|
@@ -21,8 +22,9 @@ export interface IJobTracker {
|
|
|
21
22
|
*
|
|
22
23
|
* @param jobId - The job ID to mark as failed
|
|
23
24
|
* @param error - Error information including message and stack trace
|
|
25
|
+
* @param job - Optional full job object for debugging purposes
|
|
24
26
|
*/
|
|
25
|
-
markFailed(jobId: string, error: ErrorInfo): void;
|
|
27
|
+
markFailed(jobId: string, error: ErrorInfo, job?: Job): void;
|
|
26
28
|
/**
|
|
27
29
|
* Retrieve the current status of a job.
|
|
28
30
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../src/job-tracker/interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7D;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B;;;;OAIG;IACH,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IAEpC;;;;OAIG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAEjC
|
|
1
|
+
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../src/job-tracker/interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7D;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B;;;;OAIG;IACH,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IAEpC;;;;OAIG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAEjC;;;;;;OAMG;IACH,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC;IAE7D;;;;;OAKG;IACH,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;IAE5C;;;OAGG;IACH,QAAQ,IAAI,IAAI,CAAC;CAClB"}
|
|
@@ -1,23 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
declare const LOG_LEVELS: {
|
|
3
|
-
readonly verbose: 0;
|
|
4
|
-
readonly debug: 1;
|
|
5
|
-
readonly info: 2;
|
|
6
|
-
readonly warn: 3;
|
|
7
|
-
readonly error: 4;
|
|
8
|
-
};
|
|
9
|
-
export declare class ConsoleLogger implements ILogger {
|
|
10
|
-
#private;
|
|
11
|
-
errorHandler: LoggerErrorHandler;
|
|
12
|
-
constructor(tags?: string[], handler?: LoggerErrorHandler);
|
|
13
|
-
get level(): keyof typeof LOG_LEVELS;
|
|
14
|
-
set level(value: keyof typeof LOG_LEVELS);
|
|
15
|
-
child(tags: string[]): ILogger;
|
|
16
|
-
verbose(message: string, ...replacements: any[]): void;
|
|
17
|
-
debug(message: string, ...replacements: any[]): void;
|
|
18
|
-
info(message: string, ...replacements: any[]): void;
|
|
19
|
-
warn(message: string, ...replacements: any[]): void;
|
|
20
|
-
error(message: string, ...replacements: any[]): void;
|
|
21
|
-
}
|
|
22
|
-
export {};
|
|
1
|
+
export { ConsoleLogger } from "document-model/core";
|
|
23
2
|
//# sourceMappingURL=console.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"console.d.ts","sourceRoot":"","sources":["../../../src/logging/console.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"console.d.ts","sourceRoot":"","sources":["../../../src/logging/console.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC"}
|
|
@@ -1,12 +1,2 @@
|
|
|
1
|
-
export type
|
|
2
|
-
export type ILogger = {
|
|
3
|
-
level: "verbose" | "debug" | "info" | "warn" | "error";
|
|
4
|
-
verbose: (message: string, ...replacements: any[]) => void;
|
|
5
|
-
debug: (message: string, ...replacements: any[]) => void;
|
|
6
|
-
info: (message: string, ...replacements: any[]) => void;
|
|
7
|
-
warn: (message: string, ...replacements: any[]) => void;
|
|
8
|
-
error: (message: string, ...replacements: any[]) => void;
|
|
9
|
-
errorHandler: LoggerErrorHandler;
|
|
10
|
-
child: (tags: string[]) => ILogger;
|
|
11
|
-
};
|
|
1
|
+
export type { ILogger, LoggerErrorHandler } from "document-model/core";
|
|
12
2
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/logging/types.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/logging/types.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/processors/index.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/processors/index.ts"],"names":[],"mappings":"AAAA,mBAAmB,kCAAkC,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
|
+
import type { OperationWithContext } from "@powerhousedao/shared/document-model";
|
|
2
|
+
import type { IProcessorManager, ProcessorFactory, TrackedProcessor } from "@powerhousedao/shared/processors";
|
|
1
3
|
import type { Kysely } from "kysely";
|
|
2
4
|
import type { IOperationIndex } from "../cache/operation-index-types.js";
|
|
3
5
|
import type { IWriteCache } from "../cache/write/interfaces.js";
|
|
6
|
+
import type { ILogger } from "../logging/types.js";
|
|
4
7
|
import { BaseReadModel } from "../read-models/base-read-model.js";
|
|
5
8
|
import type { DocumentViewDatabase } from "../read-models/types.js";
|
|
6
9
|
import type { IConsistencyTracker } from "../shared/consistency-tracker.js";
|
|
7
|
-
import type { OperationWithContext } from "../storage/interfaces.js";
|
|
8
|
-
import type { IProcessorManager, ProcessorFactory, ProcessorRecord } from "./types.js";
|
|
9
10
|
/**
|
|
10
11
|
* Manages processor lifecycle based on operations.
|
|
11
12
|
* Extends BaseReadModel to receive operations from ReadModelCoordinator.
|
|
@@ -15,24 +16,36 @@ import type { IProcessorManager, ProcessorFactory, ProcessorRecord } from "./typ
|
|
|
15
16
|
* 2. Create processors for each drive using registered factories
|
|
16
17
|
* 3. Route operations to matching processors based on filters
|
|
17
18
|
* 4. Clean up processors when drives are deleted or factories are unregistered
|
|
19
|
+
* 5. Track per-processor cursors for failure recovery and backfill
|
|
18
20
|
*/
|
|
19
21
|
export declare class ProcessorManager extends BaseReadModel implements IProcessorManager {
|
|
20
22
|
private factoryRegistry;
|
|
21
23
|
private processorsByDrive;
|
|
22
24
|
private factoryToProcessors;
|
|
23
25
|
private knownDriveIds;
|
|
24
|
-
|
|
25
|
-
|
|
26
|
+
private cursorCache;
|
|
27
|
+
private logger;
|
|
28
|
+
constructor(db: Kysely<DocumentViewDatabase>, operationIndex: IOperationIndex, writeCache: IWriteCache, consistencyTracker: IConsistencyTracker, logger: ILogger);
|
|
29
|
+
init(): Promise<void>;
|
|
30
|
+
protected commitOperations(items: OperationWithContext[]): Promise<void>;
|
|
26
31
|
registerFactory(identifier: string, factory: ProcessorFactory): Promise<void>;
|
|
27
32
|
unregisterFactory(identifier: string): Promise<void>;
|
|
28
|
-
|
|
29
|
-
|
|
33
|
+
get(processorId: string): TrackedProcessor | undefined;
|
|
34
|
+
getAll(): TrackedProcessor[];
|
|
35
|
+
private allTrackedProcessors;
|
|
30
36
|
private detectAndRegisterNewDrives;
|
|
31
37
|
private detectAndCleanupDeletedDrives;
|
|
38
|
+
private discoverExistingDrives;
|
|
32
39
|
private isDeletedDocumentADrive;
|
|
33
40
|
private createProcessorsForDrive;
|
|
41
|
+
private backfillProcessor;
|
|
42
|
+
private retryProcessor;
|
|
34
43
|
private cleanupDriveProcessors;
|
|
35
44
|
private safeDisconnect;
|
|
36
45
|
private routeOperationsToProcessors;
|
|
46
|
+
private loadAllCursors;
|
|
47
|
+
private safeSaveProcessorCursor;
|
|
48
|
+
private saveProcessorCursor;
|
|
49
|
+
private deleteProcessorCursors;
|
|
37
50
|
}
|
|
38
51
|
//# sourceMappingURL=processor-manager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processor-manager.d.ts","sourceRoot":"","sources":["../../../src/processors/processor-manager.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"processor-manager.d.ts","sourceRoot":"","sources":["../../../src/processors/processor-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AACjF,OAAO,KAAK,EAEV,iBAAiB,EACjB,gBAAgB,EAEhB,gBAAgB,EACjB,MAAM,kCAAkC,CAAC;AAE1C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAClE,OAAO,KAAK,EACV,oBAAoB,EAErB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAW5E;;;;;;;;;;GAUG;AACH,qBAAa,gBACX,SAAQ,aACR,YAAW,iBAAiB;IAE5B,OAAO,CAAC,eAAe,CAA4C;IACnE,OAAO,CAAC,iBAAiB,CAA8C;IACvE,OAAO,CAAC,mBAAmB,CACf;IACZ,OAAO,CAAC,aAAa,CAA0B;IAC/C,OAAO,CAAC,WAAW,CAA8C;IACjE,OAAO,CAAC,MAAM,CAAU;gBAGtB,EAAE,EAAE,MAAM,CAAC,oBAAoB,CAAC,EAChC,cAAc,EAAE,eAAe,EAC/B,UAAU,EAAE,WAAW,EACvB,kBAAkB,EAAE,mBAAmB,EACvC,MAAM,EAAE,OAAO;IASF,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;cAMX,gBAAgB,CACvC,KAAK,EAAE,oBAAoB,EAAE,GAC5B,OAAO,CAAC,IAAI,CAAC;IAMV,eAAe,CACnB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,IAAI,CAAC;IAmBV,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAyB1D,GAAG,CAAC,WAAW,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS;IAOtD,MAAM,IAAI,gBAAgB,EAAE;IAI5B,OAAO,CAAE,oBAAoB;YAMf,0BAA0B;YAyB1B,6BAA6B;YAgB7B,sBAAsB;IAapC,OAAO,CAAC,uBAAuB;YAIjB,wBAAwB;YAwGxB,iBAAiB;YAsCjB,cAAc;YASd,sBAAsB;YAiBtB,cAAc;YAQd,2BAA2B;YA0C3B,cAAc;YAWd,uBAAuB;YAcvB,mBAAmB;YAuCnB,sBAAsB;CAqBrC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/processors/relational/types.ts"],"names":[],"mappings":"AAAA,cAAc,mDAAmD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/processors/relational/utils.ts"],"names":[],"mappings":"AAAA,cAAc,mDAAmD,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
import type { OperationWithContext } from "@powerhousedao/shared/document-model";
|
|
2
|
+
import type { ProcessorFilter } from "@powerhousedao/shared/processors";
|
|
1
3
|
import type { PHDocumentHeader } from "document-model";
|
|
2
|
-
|
|
3
|
-
import type { ProcessorFilter } from "./types.js";
|
|
4
|
+
export declare const DRIVE_DOCUMENT_TYPE = "powerhouse/document-drive";
|
|
4
5
|
export declare function isDriveCreation(op: OperationWithContext): boolean;
|
|
5
6
|
export declare function isDriveDeletion(op: OperationWithContext): boolean;
|
|
6
7
|
export declare function extractDriveHeader(op: OperationWithContext): PHDocumentHeader | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/processors/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/processors/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AACjF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAEvD,eAAO,MAAM,mBAAmB,8BAA8B,CAAC;AAE/D,wBAAgB,eAAe,CAAC,EAAE,EAAE,oBAAoB,GAAG,OAAO,CAKjE;AAED,wBAAgB,eAAe,CAAC,EAAE,EAAE,oBAAoB,GAAG,OAAO,CAEjE;AAED,wBAAgB,kBAAkB,CAChC,EAAE,EAAE,oBAAoB,GACvB,gBAAgB,GAAG,SAAS,CAQ9B;AAED,wBAAgB,wBAAwB,CACtC,EAAE,EAAE,oBAAoB,GACvB,MAAM,GAAG,SAAS,CAGpB;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,gBAAgB,CAe1E;AAED,wBAAgB,aAAa,CAC3B,EAAE,EAAE,oBAAoB,EACxB,MAAM,EAAE,eAAe,GACtB,OAAO,CA2BT"}
|
|
@@ -10,16 +10,19 @@ export declare class JobExecutionHandle implements IJobExecutionHandle {
|
|
|
10
10
|
private onStart?;
|
|
11
11
|
private onComplete?;
|
|
12
12
|
private onFail?;
|
|
13
|
+
private onDefer?;
|
|
13
14
|
private getStateName;
|
|
14
15
|
constructor(job: Job, initialState: JobQueueState, callbacks?: {
|
|
15
16
|
onStart?: () => void;
|
|
16
17
|
onComplete?: () => void;
|
|
17
18
|
onFail?: (error: ErrorInfo) => void;
|
|
19
|
+
onDefer?: () => void;
|
|
18
20
|
});
|
|
19
21
|
get job(): Job;
|
|
20
22
|
get state(): JobQueueState;
|
|
21
23
|
start(): void;
|
|
22
24
|
complete(): void;
|
|
23
25
|
fail(error: ErrorInfo): void;
|
|
26
|
+
defer(): void;
|
|
24
27
|
}
|
|
25
28
|
//# sourceMappingURL=job-execution-handle.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"job-execution-handle.d.ts","sourceRoot":"","sources":["../../../src/queue/job-execution-handle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,KAAK,EAAE,mBAAmB,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C;;GAEG;AACH,qBAAa,kBAAmB,YAAW,mBAAmB;IAC5D,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,IAAI,CAAM;IAClB,OAAO,CAAC,OAAO,CAAC,CAAa;IAC7B,OAAO,CAAC,UAAU,CAAC,CAAa;IAChC,OAAO,CAAC,MAAM,CAAC,CAA6B;
|
|
1
|
+
{"version":3,"file":"job-execution-handle.d.ts","sourceRoot":"","sources":["../../../src/queue/job-execution-handle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,KAAK,EAAE,mBAAmB,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C;;GAEG;AACH,qBAAa,kBAAmB,YAAW,mBAAmB;IAC5D,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,IAAI,CAAM;IAClB,OAAO,CAAC,OAAO,CAAC,CAAa;IAC7B,OAAO,CAAC,UAAU,CAAC,CAAa;IAChC,OAAO,CAAC,MAAM,CAAC,CAA6B;IAC5C,OAAO,CAAC,OAAO,CAAC,CAAa;IAE7B,OAAO,CAAC,YAAY;gBAkBlB,GAAG,EAAE,GAAG,EACR,YAAY,EAAE,aAAa,EAC3B,SAAS,CAAC,EAAE;QACV,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;QACrB,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;QACxB,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;QACpC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;KACtB;IAUH,IAAI,GAAG,IAAI,GAAG,CAEb;IAED,IAAI,KAAK,IAAI,aAAa,CAEzB;IAED,KAAK,IAAI,IAAI;IAUb,QAAQ,IAAI,IAAI;IAUhB,IAAI,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAU5B,KAAK,IAAI,IAAI;CASd"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { IEventBus } from "../events/interfaces.js";
|
|
2
|
+
import type { IDocumentModelResolver } from "../registry/document-model-resolver.js";
|
|
2
3
|
import type { ErrorInfo } from "../shared/types.js";
|
|
3
4
|
import type { IQueue } from "./interfaces.js";
|
|
4
5
|
import type { IJobExecutionHandle, Job } from "./types.js";
|
|
@@ -10,6 +11,7 @@ import type { IJobExecutionHandle, Job } from "./types.js";
|
|
|
10
11
|
*/
|
|
11
12
|
export declare class InMemoryQueue implements IQueue {
|
|
12
13
|
private eventBus;
|
|
14
|
+
private resolver;
|
|
13
15
|
private queues;
|
|
14
16
|
private jobIdToQueueKey;
|
|
15
17
|
private docIdToJobId;
|
|
@@ -18,7 +20,8 @@ export declare class InMemoryQueue implements IQueue {
|
|
|
18
20
|
private jobIndex;
|
|
19
21
|
private isBlocked;
|
|
20
22
|
private onDrainedCallback?;
|
|
21
|
-
|
|
23
|
+
private isPausedFlag;
|
|
24
|
+
constructor(eventBus: IEventBus, resolver: IDocumentModelResolver);
|
|
22
25
|
private toErrorInfo;
|
|
23
26
|
/**
|
|
24
27
|
* Creates a unique key for a document/scope/branch combination
|
|
@@ -48,6 +51,7 @@ export declare class InMemoryQueue implements IQueue {
|
|
|
48
51
|
* Get the next job that has all its dependencies met
|
|
49
52
|
*/
|
|
50
53
|
private getNextJobWithMetDependencies;
|
|
54
|
+
private getCreateDocumentType;
|
|
51
55
|
enqueue(job: Job): Promise<void>;
|
|
52
56
|
dequeue(documentId: string, scope: string, branch: string, signal?: AbortSignal): Promise<IJobExecutionHandle | null>;
|
|
53
57
|
dequeueNext(signal?: AbortSignal): Promise<IJobExecutionHandle | null>;
|
|
@@ -59,6 +63,7 @@ export declare class InMemoryQueue implements IQueue {
|
|
|
59
63
|
hasJobs(): Promise<boolean>;
|
|
60
64
|
completeJob(jobId: string): Promise<void>;
|
|
61
65
|
failJob(jobId: string, error?: ErrorInfo): Promise<void>;
|
|
66
|
+
deferJob(jobId: string): void;
|
|
62
67
|
retryJob(jobId: string, error?: ErrorInfo): Promise<void>;
|
|
63
68
|
/**
|
|
64
69
|
* Check if the queue is drained and call the callback if it is
|
|
@@ -77,5 +82,29 @@ export declare class InMemoryQueue implements IQueue {
|
|
|
77
82
|
* Unblocks the queue from accepting new jobs.
|
|
78
83
|
*/
|
|
79
84
|
unblock(): void;
|
|
85
|
+
/**
|
|
86
|
+
* Pauses job dequeuing. Jobs can still be enqueued but dequeueNext() will return null.
|
|
87
|
+
*/
|
|
88
|
+
pause(): void;
|
|
89
|
+
/**
|
|
90
|
+
* Resumes job dequeuing and emits JOB_AVAILABLE events for pending jobs to wake up executors.
|
|
91
|
+
*/
|
|
92
|
+
resume(): Promise<void>;
|
|
93
|
+
/**
|
|
94
|
+
* Returns whether job dequeuing is paused.
|
|
95
|
+
*/
|
|
96
|
+
get paused(): boolean;
|
|
97
|
+
/**
|
|
98
|
+
* Returns all pending jobs across all queues.
|
|
99
|
+
*/
|
|
100
|
+
getPendingJobs(): Job[];
|
|
101
|
+
/**
|
|
102
|
+
* Returns a map of document IDs to sets of executing job IDs.
|
|
103
|
+
*/
|
|
104
|
+
getExecutingJobIds(): Map<string, Set<string>>;
|
|
105
|
+
/**
|
|
106
|
+
* Returns a job by ID from the job index.
|
|
107
|
+
*/
|
|
108
|
+
getJob(jobId: string): Job | undefined;
|
|
80
109
|
}
|
|
81
110
|
//# sourceMappingURL=queue.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queue.d.ts","sourceRoot":"","sources":["../../../src/queue/queue.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"queue.d.ts","sourceRoot":"","sources":["../../../src/queue/queue.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Action, Operation } from "document-model";
|
|
2
|
-
import type { ErrorInfo } from "../shared/types.js";
|
|
2
|
+
import type { ErrorInfo, JobMeta } from "../shared/types.js";
|
|
3
3
|
export type JobKind = "mutation" | "load";
|
|
4
4
|
/**
|
|
5
5
|
* State of a job in the queue
|
|
@@ -21,6 +21,7 @@ export interface IJobExecutionHandle {
|
|
|
21
21
|
start(): void;
|
|
22
22
|
complete(): void;
|
|
23
23
|
fail(error: ErrorInfo): void;
|
|
24
|
+
defer(): void;
|
|
24
25
|
}
|
|
25
26
|
/**
|
|
26
27
|
* Represents a job to be executed by the job executor
|
|
@@ -52,8 +53,8 @@ export type Job = {
|
|
|
52
53
|
lastError?: ErrorInfo;
|
|
53
54
|
/** History of all errors from each attempt (ordered) */
|
|
54
55
|
errorHistory: ErrorInfo[];
|
|
55
|
-
/**
|
|
56
|
-
meta
|
|
56
|
+
/** Metadata that flows through the job lifecycle */
|
|
57
|
+
meta: JobMeta;
|
|
57
58
|
};
|
|
58
59
|
/**
|
|
59
60
|
* Event types for the queue system
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/queue/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/queue/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7D,MAAM,MAAM,OAAO,GAAG,UAAU,GAAG,MAAM,CAAC;AAE1C;;GAEG;AACH,oBAAY,aAAa;IACvB,OAAO,KAAK;IACZ,aAAa,IAAI;IACjB,OAAO,IAAI;IACX,KAAK,IAAI;IACT,OAAO,IAAI;IACX,QAAQ,IAAI;CACb;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC;IAClB,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;IAE9B,KAAK,IAAI,IAAI,CAAC;IACd,QAAQ,IAAI,IAAI,CAAC;IACjB,IAAI,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,CAAC;IAC7B,KAAK,IAAI,IAAI,CAAC;CACf;AAED;;GAEG;AACH,MAAM,MAAM,GAAG,GAAG;IAChB,oCAAoC;IACpC,EAAE,EAAE,MAAM,CAAC;IAEX,iEAAiE;IACjE,IAAI,EAAE,OAAO,CAAC;IAEd,2CAA2C;IAC3C,UAAU,EAAE,MAAM,CAAC;IAEnB,kCAAkC;IAClC,KAAK,EAAE,MAAM,CAAC;IAEd,mCAAmC;IACnC,MAAM,EAAE,MAAM,CAAC;IAEf,0DAA0D;IAC1D,OAAO,EAAE,MAAM,EAAE,CAAC;IAElB,6DAA6D;IAC7D,UAAU,EAAE,SAAS,EAAE,CAAC;IAExB,yCAAyC;IACzC,SAAS,EAAE,MAAM,CAAC;IAElB,yDAAyD;IACzD,SAAS,EAAE,MAAM,EAAE,CAAC;IAEpB,+BAA+B;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,wCAAwC;IACxC,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,+BAA+B;IAC/B,SAAS,CAAC,EAAE,SAAS,CAAC;IAEtB,wDAAwD;IACxD,YAAY,EAAE,SAAS,EAAE,CAAC;IAE1B,oDAAoD;IACpD,IAAI,EAAE,OAAO,CAAC;CACf,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe;;CAElB,CAAC;AAEX;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf,CAAC"}
|
|
@@ -1,38 +1,42 @@
|
|
|
1
|
+
import type { OperationWithContext } from "@powerhousedao/shared/document-model";
|
|
1
2
|
import type { Kysely, Transaction } from "kysely";
|
|
2
3
|
import type { IOperationIndex } from "../cache/operation-index-types.js";
|
|
3
4
|
import type { IWriteCache } from "../cache/write/interfaces.js";
|
|
4
5
|
import type { IConsistencyTracker } from "../shared/consistency-tracker.js";
|
|
5
6
|
import type { ConsistencyToken } from "../shared/types.js";
|
|
6
|
-
import type { OperationWithContext } from "../storage/interfaces.js";
|
|
7
7
|
import type { IReadModel } from "./interfaces.js";
|
|
8
8
|
import type { DocumentViewDatabase } from "./types.js";
|
|
9
|
+
export type BaseReadModelConfig = {
|
|
10
|
+
readModelId: string;
|
|
11
|
+
rebuildStateOnInit: boolean;
|
|
12
|
+
};
|
|
9
13
|
/**
|
|
10
14
|
* Base class for read models that provides catch-up/rewind functionality.
|
|
11
15
|
* Handles initialization, state tracking via ViewState table, and consistency tracking.
|
|
12
|
-
* Subclasses
|
|
16
|
+
* Subclasses override commitOperations() with their specific domain logic.
|
|
13
17
|
*/
|
|
14
18
|
export declare class BaseReadModel implements IReadModel {
|
|
15
19
|
protected db: Kysely<DocumentViewDatabase>;
|
|
16
20
|
protected operationIndex: IOperationIndex;
|
|
17
21
|
protected writeCache: IWriteCache;
|
|
18
22
|
protected consistencyTracker: IConsistencyTracker;
|
|
19
|
-
protected
|
|
23
|
+
protected config: BaseReadModelConfig;
|
|
20
24
|
protected lastOrdinal: number;
|
|
21
|
-
constructor(db: Kysely<DocumentViewDatabase>, operationIndex: IOperationIndex, writeCache: IWriteCache, consistencyTracker: IConsistencyTracker,
|
|
25
|
+
constructor(db: Kysely<DocumentViewDatabase>, operationIndex: IOperationIndex, writeCache: IWriteCache, consistencyTracker: IConsistencyTracker, config: BaseReadModelConfig);
|
|
22
26
|
/**
|
|
23
27
|
* Initializes the read model by loading state and catching up on missed operations.
|
|
24
28
|
*/
|
|
25
29
|
init(): Promise<void>;
|
|
26
30
|
/**
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
* The overriding method should call saveState() and updateConsistencyTracker() at the end.
|
|
31
|
+
* Template method: runs domain-specific commitOperations, then persists
|
|
32
|
+
* state and updates consistency tracking.
|
|
30
33
|
*/
|
|
31
34
|
indexOperations(items: OperationWithContext[]): Promise<void>;
|
|
32
35
|
/**
|
|
33
36
|
* Waits for the read model to reach the specified consistency level.
|
|
34
37
|
*/
|
|
35
38
|
waitForConsistency(token: ConsistencyToken, timeoutMs?: number, signal?: AbortSignal): Promise<void>;
|
|
39
|
+
protected commitOperations(items: OperationWithContext[]): Promise<void>;
|
|
36
40
|
/**
|
|
37
41
|
* Rebuilds document state for each operation using the write cache.
|
|
38
42
|
*/
|
|
@@ -48,12 +52,10 @@ export declare class BaseReadModel implements IReadModel {
|
|
|
48
52
|
protected initializeState(): Promise<void>;
|
|
49
53
|
/**
|
|
50
54
|
* Saves the last processed ordinal to the ViewState table.
|
|
51
|
-
* Should be called at the end of indexOperations() within a transaction.
|
|
52
55
|
*/
|
|
53
56
|
protected saveState(trx: Transaction<DocumentViewDatabase>, items: OperationWithContext[]): Promise<void>;
|
|
54
57
|
/**
|
|
55
58
|
* Updates the consistency tracker with the processed operations.
|
|
56
|
-
* Should be called at the end of indexOperations() after the transaction commits.
|
|
57
59
|
*/
|
|
58
60
|
protected updateConsistencyTracker(items: OperationWithContext[]): void;
|
|
59
61
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-read-model.d.ts","sourceRoot":"","sources":["../../../src/read-models/base-read-model.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAClD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,KAAK,EAEV,gBAAgB,EACjB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"base-read-model.d.ts","sourceRoot":"","sources":["../../../src/read-models/base-read-model.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AACjF,OAAO,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAClD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,KAAK,EAEV,gBAAgB,EACjB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAEvD,MAAM,MAAM,mBAAmB,GAAG;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,EAAE,OAAO,CAAC;CAC7B,CAAC;AAEF;;;;GAIG;AACH,qBAAa,aAAc,YAAW,UAAU;IAI5C,SAAS,CAAC,EAAE,EAAE,MAAM,CAAC,oBAAoB,CAAC;IAC1C,SAAS,CAAC,cAAc,EAAE,eAAe;IACzC,SAAS,CAAC,UAAU,EAAE,WAAW;IACjC,SAAS,CAAC,kBAAkB,EAAE,mBAAmB;IACjD,SAAS,CAAC,MAAM,EAAE,mBAAmB;IAPvC,SAAS,CAAC,WAAW,EAAE,MAAM,CAAK;gBAGtB,EAAE,EAAE,MAAM,CAAC,oBAAoB,CAAC,EAChC,cAAc,EAAE,eAAe,EAC/B,UAAU,EAAE,WAAW,EACvB,kBAAkB,EAAE,mBAAmB,EACvC,MAAM,EAAE,mBAAmB;IAGvC;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IA4B3B;;;OAGG;IACG,eAAe,CAAC,KAAK,EAAE,oBAAoB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAYnE;;OAEG;IACG,kBAAkB,CACtB,KAAK,EAAE,gBAAgB,EACvB,SAAS,CAAC,EAAE,MAAM,EAClB,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,IAAI,CAAC;cAQA,gBAAgB,CAE9B,KAAK,EAAE,oBAAoB,EAAE,GAC5B,OAAO,CAAC,IAAI,CAAC;IAEhB;;OAEG;cACa,yBAAyB,CACvC,UAAU,EAAE,oBAAoB,EAAE,GACjC,OAAO,CAAC,oBAAoB,EAAE,CAAC;IA0BlC;;;OAGG;cACa,SAAS,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAWxD;;OAEG;cACa,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAWhD;;OAEG;cACa,SAAS,CACvB,GAAG,EAAE,WAAW,CAAC,oBAAoB,CAAC,EACtC,KAAK,EAAE,oBAAoB,EAAE,GAC5B,OAAO,CAAC,IAAI,CAAC;IAchB;;OAEG;IACH,SAAS,CAAC,wBAAwB,CAAC,KAAK,EAAE,oBAAoB,EAAE,GAAG,IAAI;CAexE"}
|
|
@@ -31,9 +31,9 @@ export declare class ReadModelCoordinator implements IReadModelCoordinator {
|
|
|
31
31
|
*/
|
|
32
32
|
stop(): void;
|
|
33
33
|
/**
|
|
34
|
-
* Handle
|
|
34
|
+
* Handle write ready events by updating all read models in parallel.
|
|
35
35
|
* Errors from individual read models are collected and re-thrown as an aggregate.
|
|
36
36
|
*/
|
|
37
|
-
private
|
|
37
|
+
private handleWriteReady;
|
|
38
38
|
}
|
|
39
39
|
//# sourceMappingURL=coordinator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coordinator.d.ts","sourceRoot":"","sources":["../../../src/read-models/coordinator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAOzD,OAAO,KAAK,EAAE,UAAU,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAEzE;;;;;;;;;;;;GAYG;AACH,qBAAa,oBAAqB,YAAW,qBAAqB;IAK9D,OAAO,CAAC,QAAQ;aACA,QAAQ,EAAE,UAAU,EAAE;aACtB,SAAS,EAAE,UAAU,EAAE;IANzC,OAAO,CAAC,WAAW,CAAC,CAAc;IAClC,OAAO,CAAC,SAAS,CAAS;gBAGhB,QAAQ,EAAE,SAAS,EACX,QAAQ,EAAE,UAAU,EAAE,EACtB,SAAS,EAAE,UAAU,EAAE;IAKzC;;;OAGG;IACH,KAAK,IAAI,IAAI;IAgBb;;;OAGG;IACH,IAAI,IAAI,IAAI;IAaZ;;;OAGG;YACW,
|
|
1
|
+
{"version":3,"file":"coordinator.d.ts","sourceRoot":"","sources":["../../../src/read-models/coordinator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAOzD,OAAO,KAAK,EAAE,UAAU,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAEzE;;;;;;;;;;;;GAYG;AACH,qBAAa,oBAAqB,YAAW,qBAAqB;IAK9D,OAAO,CAAC,QAAQ;aACA,QAAQ,EAAE,UAAU,EAAE;aACtB,SAAS,EAAE,UAAU,EAAE;IANzC,OAAO,CAAC,WAAW,CAAC,CAAc;IAClC,OAAO,CAAC,SAAS,CAAS;gBAGhB,QAAQ,EAAE,SAAS,EACX,QAAQ,EAAE,UAAU,EAAE,EACtB,SAAS,EAAE,UAAU,EAAE;IAKzC;;;OAGG;IACH,KAAK,IAAI,IAAI;IAgBb;;;OAGG;IACH,IAAI,IAAI,IAAI;IAaZ;;;OAGG;YACW,gBAAgB;CAsB/B"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import type { PHDocument } from "document-model";
|
|
1
|
+
import type { OperationWithContext, PHDocument } from "document-model";
|
|
2
2
|
import type { Kysely } from "kysely";
|
|
3
3
|
import type { IOperationIndex } from "../cache/operation-index-types.js";
|
|
4
4
|
import type { IWriteCache } from "../cache/write/interfaces.js";
|
|
5
5
|
import type { IConsistencyTracker } from "../shared/consistency-tracker.js";
|
|
6
|
-
import type { ConsistencyToken } from "../shared/types.js";
|
|
7
|
-
import type { IDocumentView, IOperationStore,
|
|
6
|
+
import type { ConsistencyToken, PagedResults, PagingOptions } from "../shared/types.js";
|
|
7
|
+
import type { IDocumentView, IOperationStore, ViewFilter } from "../storage/interfaces.js";
|
|
8
8
|
import type { Database as StorageDatabase } from "../storage/kysely/types.js";
|
|
9
9
|
import { BaseReadModel } from "./base-read-model.js";
|
|
10
10
|
import type { DocumentViewDatabase } from "./types.js";
|
|
@@ -13,12 +13,15 @@ export declare class KyselyDocumentView extends BaseReadModel implements IDocume
|
|
|
13
13
|
private operationStore;
|
|
14
14
|
private _db;
|
|
15
15
|
constructor(db: Kysely<Database>, operationStore: IOperationStore, operationIndex: IOperationIndex, writeCache: IWriteCache, consistencyTracker: IConsistencyTracker);
|
|
16
|
-
|
|
16
|
+
protected commitOperations(items: OperationWithContext[]): Promise<void>;
|
|
17
17
|
exists(documentIds: string[], consistencyToken?: ConsistencyToken, signal?: AbortSignal): Promise<boolean[]>;
|
|
18
18
|
get<TDocument extends PHDocument>(documentId: string, view?: ViewFilter, consistencyToken?: ConsistencyToken, signal?: AbortSignal): Promise<TDocument>;
|
|
19
|
+
getMany<TDocument extends PHDocument>(documentIds: string[], view?: ViewFilter, consistencyToken?: ConsistencyToken, signal?: AbortSignal): Promise<TDocument[]>;
|
|
19
20
|
getByIdOrSlug<TDocument extends PHDocument>(identifier: string, view?: ViewFilter, consistencyToken?: ConsistencyToken, signal?: AbortSignal): Promise<TDocument>;
|
|
20
21
|
findByType(type: string, view?: ViewFilter, paging?: PagingOptions, consistencyToken?: ConsistencyToken, signal?: AbortSignal): Promise<PagedResults<PHDocument>>;
|
|
21
22
|
resolveSlug(slug: string, view?: ViewFilter, consistencyToken?: ConsistencyToken, signal?: AbortSignal): Promise<string | undefined>;
|
|
23
|
+
resolveSlugs(slugs: string[], view?: ViewFilter, consistencyToken?: ConsistencyToken, signal?: AbortSignal): Promise<string[]>;
|
|
24
|
+
resolveIdOrSlug(identifier: string, view?: ViewFilter, consistencyToken?: ConsistencyToken, signal?: AbortSignal): Promise<string>;
|
|
22
25
|
}
|
|
23
26
|
export {};
|
|
24
27
|
//# sourceMappingURL=document-view.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"document-view.d.ts","sourceRoot":"","sources":["../../../src/read-models/document-view.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"document-view.d.ts","sourceRoot":"","sources":["../../../src/read-models/document-view.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { OperationWithContext } from "
|
|
1
|
+
import type { OperationWithContext } from "@powerhousedao/shared/document-model";
|
|
2
2
|
/**
|
|
3
3
|
* Generic interface for any read model that can index operations.
|
|
4
4
|
* Implementations include IDocumentView, search indices, caches, etc.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../src/read-models/interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../src/read-models/interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAEjF;;;GAGG;AACH,MAAM,WAAW,UAAU;IACzB;;;;;OAKG;IACH,eAAe,CAAC,UAAU,EAAE,oBAAoB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACpE;AAED;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IACpC;;OAEG;IACH,KAAK,IAAI,IAAI,CAAC;IAEd;;OAEG;IACH,IAAI,IAAI,IAAI,CAAC;CACd"}
|
|
@@ -30,10 +30,23 @@ export interface SlugMappingTable {
|
|
|
30
30
|
createdAt: Generated<Date>;
|
|
31
31
|
updatedAt: Generated<Date>;
|
|
32
32
|
}
|
|
33
|
+
export interface ProcessorCursorTable {
|
|
34
|
+
processorId: string;
|
|
35
|
+
factoryId: string;
|
|
36
|
+
driveId: string;
|
|
37
|
+
processorIndex: number;
|
|
38
|
+
lastOrdinal: Generated<number>;
|
|
39
|
+
status: Generated<string>;
|
|
40
|
+
lastError: string | null;
|
|
41
|
+
lastErrorTimestamp: Date | null;
|
|
42
|
+
createdAt: Generated<Date>;
|
|
43
|
+
updatedAt: Generated<Date>;
|
|
44
|
+
}
|
|
33
45
|
export interface DocumentViewDatabase {
|
|
34
46
|
ViewState: ViewStateTable;
|
|
35
47
|
DocumentSnapshot: DocumentSnapshotTable;
|
|
36
48
|
SlugMapping: SlugMappingTable;
|
|
49
|
+
ProcessorCursor: ProcessorCursorTable;
|
|
37
50
|
}
|
|
38
51
|
export type ViewStateRow = Selectable<ViewStateTable>;
|
|
39
52
|
export type InsertableViewState = Insertable<ViewStateTable>;
|
|
@@ -44,4 +57,7 @@ export type UpdateableDocumentSnapshot = Updateable<DocumentSnapshotTable>;
|
|
|
44
57
|
export type SlugMappingRow = Selectable<SlugMappingTable>;
|
|
45
58
|
export type InsertableSlugMapping = Insertable<SlugMappingTable>;
|
|
46
59
|
export type UpdateableSlugMapping = Updateable<SlugMappingTable>;
|
|
60
|
+
export type ProcessorCursorRow = Selectable<ProcessorCursorTable>;
|
|
61
|
+
export type InsertableProcessorCursor = Insertable<ProcessorCursorTable>;
|
|
62
|
+
export type UpdateableProcessorCursor = Updateable<ProcessorCursorTable>;
|
|
47
63
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/read-models/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAE5E,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,sBAAsB,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;CACzC;AAED,MAAM,WAAW,qBAAqB;IACpC,EAAE,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,aAAa,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;IAC/B,eAAe,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IACnC,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;IAC9B,SAAS,EAAE,IAAI,GAAG,IAAI,CAAC;CACxB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;IAC3B,SAAS,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;CAC5B;AAED,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,cAAc,CAAC;IAC1B,gBAAgB,EAAE,qBAAqB,CAAC;IACxC,WAAW,EAAE,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/read-models/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { IDocumentModelLoader, IDocumentModelRegistry } from "./interfaces.js";
|
|
2
|
+
export interface IDocumentModelResolver {
|
|
3
|
+
ensureModelLoaded(documentType: string): Promise<void>;
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* Encapsulates the logic for resolving document model modules on demand.
|
|
7
|
+
* Shared between the queue (CREATE_DOCUMENT gate) and the executor manager
|
|
8
|
+
* (post-failure recovery) so that both paths use the same deduplication
|
|
9
|
+
* and failure-caching state.
|
|
10
|
+
*/
|
|
11
|
+
export declare class DocumentModelResolver implements IDocumentModelResolver {
|
|
12
|
+
private registry;
|
|
13
|
+
private loader;
|
|
14
|
+
private loadingModels;
|
|
15
|
+
private failedModelTypes;
|
|
16
|
+
constructor(registry: IDocumentModelRegistry, loader: IDocumentModelLoader);
|
|
17
|
+
ensureModelLoaded(documentType: string): Promise<void>;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* No-op resolver used when no document model loader is configured.
|
|
21
|
+
* Checks the registry for the model and returns if found; throws if not.
|
|
22
|
+
* Since there is no loader, missing models cannot be recovered.
|
|
23
|
+
*/
|
|
24
|
+
export declare class NullDocumentModelResolver implements IDocumentModelResolver {
|
|
25
|
+
private registry?;
|
|
26
|
+
constructor(registry?: IDocumentModelRegistry | undefined);
|
|
27
|
+
ensureModelLoaded(documentType: string): Promise<void>;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=document-model-resolver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"document-model-resolver.d.ts","sourceRoot":"","sources":["../../../src/registry/document-model-resolver.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,oBAAoB,EACpB,sBAAsB,EACvB,MAAM,iBAAiB,CAAC;AAEzB,MAAM,WAAW,sBAAsB;IACrC,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACxD;AAED;;;;;GAKG;AACH,qBAAa,qBAAsB,YAAW,sBAAsB;IAKhE,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,MAAM;IALhB,OAAO,CAAC,aAAa,CAAoC;IACzD,OAAO,CAAC,gBAAgB,CAAqB;gBAGnC,QAAQ,EAAE,sBAAsB,EAChC,MAAM,EAAE,oBAAoB;IAGhC,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CA0C7D;AAED;;;;GAIG;AACH,qBAAa,yBAA0B,YAAW,sBAAsB;IAC1D,OAAO,CAAC,QAAQ,CAAC;gBAAT,QAAQ,CAAC,EAAE,sBAAsB,YAAA;IAErD,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAYvD"}
|