@powerhousedao/reactor 6.0.0-dev.13 → 6.0.0-dev.130
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +4320 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +9442 -0
- package/dist/index.js.map +1 -0
- package/package.json +21 -20
- package/dist/src/actions/index.d.ts +0 -24
- package/dist/src/actions/index.d.ts.map +0 -1
- package/dist/src/actions/index.js +0 -76
- package/dist/src/actions/index.js.map +0 -1
- package/dist/src/cache/buffer/ring-buffer.d.ts +0 -37
- package/dist/src/cache/buffer/ring-buffer.d.ts.map +0 -1
- package/dist/src/cache/buffer/ring-buffer.js +0 -69
- package/dist/src/cache/buffer/ring-buffer.js.map +0 -1
- package/dist/src/cache/document-meta-cache-types.d.ts +0 -114
- package/dist/src/cache/document-meta-cache-types.d.ts.map +0 -1
- package/dist/src/cache/document-meta-cache-types.js +0 -2
- package/dist/src/cache/document-meta-cache-types.js.map +0 -1
- package/dist/src/cache/document-meta-cache.d.ts +0 -30
- package/dist/src/cache/document-meta-cache.d.ts.map +0 -1
- package/dist/src/cache/document-meta-cache.js +0 -128
- package/dist/src/cache/document-meta-cache.js.map +0 -1
- package/dist/src/cache/index.d.ts +0 -3
- package/dist/src/cache/index.d.ts.map +0 -1
- package/dist/src/cache/index.js +0 -2
- package/dist/src/cache/index.js.map +0 -1
- package/dist/src/cache/kysely-operation-index.d.ts +0 -15
- package/dist/src/cache/kysely-operation-index.d.ts.map +0 -1
- package/dist/src/cache/kysely-operation-index.js +0 -250
- package/dist/src/cache/kysely-operation-index.js.map +0 -1
- package/dist/src/cache/kysely-write-cache.d.ts +0 -134
- package/dist/src/cache/kysely-write-cache.d.ts.map +0 -1
- package/dist/src/cache/kysely-write-cache.js +0 -388
- package/dist/src/cache/kysely-write-cache.js.map +0 -1
- package/dist/src/cache/lru/lru-tracker.d.ts +0 -15
- package/dist/src/cache/lru/lru-tracker.d.ts.map +0 -1
- package/dist/src/cache/lru/lru-tracker.js +0 -96
- package/dist/src/cache/lru/lru-tracker.js.map +0 -1
- package/dist/src/cache/operation-index-types.d.ts +0 -50
- package/dist/src/cache/operation-index-types.d.ts.map +0 -1
- package/dist/src/cache/operation-index-types.js +0 -4
- package/dist/src/cache/operation-index-types.js.map +0 -1
- package/dist/src/cache/write/interfaces.d.ts +0 -83
- package/dist/src/cache/write/interfaces.d.ts.map +0 -1
- package/dist/src/cache/write/interfaces.js +0 -2
- package/dist/src/cache/write/interfaces.js.map +0 -1
- package/dist/src/cache/write-cache-types.d.ts +0 -42
- package/dist/src/cache/write-cache-types.d.ts.map +0 -1
- package/dist/src/cache/write-cache-types.js +0 -2
- package/dist/src/cache/write-cache-types.js.map +0 -1
- package/dist/src/client/reactor-client.d.ts +0 -117
- package/dist/src/client/reactor-client.d.ts.map +0 -1
- package/dist/src/client/reactor-client.js +0 -406
- package/dist/src/client/reactor-client.js.map +0 -1
- package/dist/src/client/types.d.ts +0 -241
- package/dist/src/client/types.d.ts.map +0 -1
- package/dist/src/client/types.js +0 -14
- package/dist/src/client/types.js.map +0 -1
- package/dist/src/core/reactor-builder.d.ts +0 -47
- package/dist/src/core/reactor-builder.d.ts.map +0 -1
- package/dist/src/core/reactor-builder.js +0 -231
- package/dist/src/core/reactor-builder.js.map +0 -1
- package/dist/src/core/reactor-client-builder.d.ts +0 -49
- package/dist/src/core/reactor-client-builder.d.ts.map +0 -1
- package/dist/src/core/reactor-client-builder.js +0 -123
- package/dist/src/core/reactor-client-builder.js.map +0 -1
- package/dist/src/core/reactor.d.ts +0 -116
- package/dist/src/core/reactor.d.ts.map +0 -1
- package/dist/src/core/reactor.js +0 -981
- package/dist/src/core/reactor.js.map +0 -1
- package/dist/src/core/types.d.ts +0 -276
- package/dist/src/core/types.d.ts.map +0 -1
- package/dist/src/core/types.js +0 -2
- package/dist/src/core/types.js.map +0 -1
- package/dist/src/core/utils.d.ts +0 -59
- package/dist/src/core/utils.d.ts.map +0 -1
- package/dist/src/core/utils.js +0 -171
- package/dist/src/core/utils.js.map +0 -1
- package/dist/src/events/event-bus.d.ts +0 -8
- package/dist/src/events/event-bus.d.ts.map +0 -1
- package/dist/src/events/event-bus.js +0 -53
- package/dist/src/events/event-bus.js.map +0 -1
- package/dist/src/events/interfaces.d.ts +0 -27
- package/dist/src/events/interfaces.d.ts.map +0 -1
- package/dist/src/events/interfaces.js +0 -2
- package/dist/src/events/interfaces.js.map +0 -1
- package/dist/src/events/types.d.ts +0 -67
- package/dist/src/events/types.d.ts.map +0 -1
- package/dist/src/events/types.js +0 -28
- package/dist/src/events/types.js.map +0 -1
- package/dist/src/executor/interfaces.d.ts +0 -49
- package/dist/src/executor/interfaces.d.ts.map +0 -1
- package/dist/src/executor/interfaces.js +0 -2
- package/dist/src/executor/interfaces.js.map +0 -1
- package/dist/src/executor/simple-job-executor-manager.d.ts +0 -34
- package/dist/src/executor/simple-job-executor-manager.d.ts.map +0 -1
- package/dist/src/executor/simple-job-executor-manager.js +0 -233
- package/dist/src/executor/simple-job-executor-manager.js.map +0 -1
- package/dist/src/executor/simple-job-executor.d.ts +0 -80
- package/dist/src/executor/simple-job-executor.d.ts.map +0 -1
- package/dist/src/executor/simple-job-executor.js +0 -898
- package/dist/src/executor/simple-job-executor.js.map +0 -1
- package/dist/src/executor/types.d.ts +0 -93
- package/dist/src/executor/types.d.ts.map +0 -1
- package/dist/src/executor/types.js +0 -11
- package/dist/src/executor/types.js.map +0 -1
- package/dist/src/executor/util.d.ts +0 -74
- package/dist/src/executor/util.d.ts.map +0 -1
- package/dist/src/executor/util.js +0 -184
- package/dist/src/executor/util.js.map +0 -1
- package/dist/src/index.d.ts +0 -53
- package/dist/src/index.d.ts.map +0 -1
- package/dist/src/index.js +0 -62
- package/dist/src/index.js.map +0 -1
- package/dist/src/job-tracker/in-memory-job-tracker.d.ts +0 -25
- package/dist/src/job-tracker/in-memory-job-tracker.d.ts.map +0 -1
- package/dist/src/job-tracker/in-memory-job-tracker.js +0 -112
- package/dist/src/job-tracker/in-memory-job-tracker.js.map +0 -1
- package/dist/src/job-tracker/index.d.ts +0 -3
- package/dist/src/job-tracker/index.d.ts.map +0 -1
- package/dist/src/job-tracker/index.js +0 -2
- package/dist/src/job-tracker/index.js.map +0 -1
- package/dist/src/job-tracker/interfaces.d.ts +0 -39
- package/dist/src/job-tracker/interfaces.d.ts.map +0 -1
- package/dist/src/job-tracker/interfaces.js +0 -2
- package/dist/src/job-tracker/interfaces.js.map +0 -1
- package/dist/src/logging/console.d.ts +0 -23
- package/dist/src/logging/console.d.ts.map +0 -1
- package/dist/src/logging/console.js +0 -108
- package/dist/src/logging/console.js.map +0 -1
- package/dist/src/logging/types.d.ts +0 -12
- package/dist/src/logging/types.d.ts.map +0 -1
- package/dist/src/logging/types.js +0 -2
- package/dist/src/logging/types.js.map +0 -1
- package/dist/src/processors/index.d.ts +0 -3
- package/dist/src/processors/index.d.ts.map +0 -1
- package/dist/src/processors/index.js +0 -2
- package/dist/src/processors/index.js.map +0 -1
- package/dist/src/processors/processor-manager.d.ts +0 -38
- package/dist/src/processors/processor-manager.d.ts.map +0 -1
- package/dist/src/processors/processor-manager.js +0 -165
- package/dist/src/processors/processor-manager.js.map +0 -1
- package/dist/src/processors/types.d.ts +0 -63
- package/dist/src/processors/types.d.ts.map +0 -1
- package/dist/src/processors/types.js +0 -2
- package/dist/src/processors/types.js.map +0 -1
- package/dist/src/processors/utils.d.ts +0 -10
- package/dist/src/processors/utils.d.ts.map +0 -1
- package/dist/src/processors/utils.js +0 -59
- package/dist/src/processors/utils.js.map +0 -1
- package/dist/src/queue/interfaces.d.ts +0 -103
- package/dist/src/queue/interfaces.d.ts.map +0 -1
- package/dist/src/queue/interfaces.js +0 -2
- package/dist/src/queue/interfaces.js.map +0 -1
- package/dist/src/queue/job-execution-handle.d.ts +0 -25
- package/dist/src/queue/job-execution-handle.d.ts.map +0 -1
- package/dist/src/queue/job-execution-handle.js +0 -62
- package/dist/src/queue/job-execution-handle.js.map +0 -1
- package/dist/src/queue/queue.d.ts +0 -81
- package/dist/src/queue/queue.d.ts.map +0 -1
- package/dist/src/queue/queue.js +0 -384
- package/dist/src/queue/queue.js.map +0 -1
- package/dist/src/queue/types.d.ts +0 -73
- package/dist/src/queue/types.d.ts.map +0 -1
- package/dist/src/queue/types.js +0 -19
- package/dist/src/queue/types.js.map +0 -1
- package/dist/src/read-models/base-read-model.d.ts +0 -60
- package/dist/src/read-models/base-read-model.d.ts.map +0 -1
- package/dist/src/read-models/base-read-model.js +0 -143
- package/dist/src/read-models/base-read-model.js.map +0 -1
- package/dist/src/read-models/coordinator.d.ts +0 -39
- package/dist/src/read-models/coordinator.d.ts.map +0 -1
- package/dist/src/read-models/coordinator.js +0 -72
- package/dist/src/read-models/coordinator.js.map +0 -1
- package/dist/src/read-models/document-view.d.ts +0 -24
- package/dist/src/read-models/document-view.d.ts.map +0 -1
- package/dist/src/read-models/document-view.js +0 -375
- package/dist/src/read-models/document-view.js.map +0 -1
- package/dist/src/read-models/interfaces.d.ts +0 -29
- package/dist/src/read-models/interfaces.d.ts.map +0 -1
- package/dist/src/read-models/interfaces.js +0 -2
- package/dist/src/read-models/interfaces.js.map +0 -1
- package/dist/src/read-models/types.d.ts +0 -47
- package/dist/src/read-models/types.d.ts.map +0 -1
- package/dist/src/read-models/types.js +0 -2
- package/dist/src/read-models/types.js.map +0 -1
- package/dist/src/registry/implementation.d.ts +0 -70
- package/dist/src/registry/implementation.d.ts.map +0 -1
- package/dist/src/registry/implementation.js +0 -216
- package/dist/src/registry/implementation.js.map +0 -1
- package/dist/src/registry/index.d.ts +0 -3
- package/dist/src/registry/index.d.ts.map +0 -1
- package/dist/src/registry/index.js +0 -2
- package/dist/src/registry/index.js.map +0 -1
- package/dist/src/registry/interfaces.d.ts +0 -100
- package/dist/src/registry/interfaces.d.ts.map +0 -1
- package/dist/src/registry/interfaces.js +0 -2
- package/dist/src/registry/interfaces.js.map +0 -1
- package/dist/src/shared/awaiter.d.ts +0 -35
- package/dist/src/shared/awaiter.d.ts.map +0 -1
- package/dist/src/shared/awaiter.js +0 -123
- package/dist/src/shared/awaiter.js.map +0 -1
- package/dist/src/shared/consistency-tracker.d.ts +0 -48
- package/dist/src/shared/consistency-tracker.d.ts.map +0 -1
- package/dist/src/shared/consistency-tracker.js +0 -123
- package/dist/src/shared/consistency-tracker.js.map +0 -1
- package/dist/src/shared/drive-url.d.ts +0 -15
- package/dist/src/shared/drive-url.d.ts.map +0 -1
- package/dist/src/shared/drive-url.js +0 -17
- package/dist/src/shared/drive-url.js.map +0 -1
- package/dist/src/shared/errors.d.ts +0 -41
- package/dist/src/shared/errors.d.ts.map +0 -1
- package/dist/src/shared/errors.js +0 -75
- package/dist/src/shared/errors.js.map +0 -1
- package/dist/src/shared/factories.d.ts +0 -16
- package/dist/src/shared/factories.d.ts.map +0 -1
- package/dist/src/shared/factories.js +0 -33
- package/dist/src/shared/factories.js.map +0 -1
- package/dist/src/shared/types.d.ts +0 -135
- package/dist/src/shared/types.d.ts.map +0 -1
- package/dist/src/shared/types.js +0 -38
- package/dist/src/shared/types.js.map +0 -1
- package/dist/src/shared/utils.d.ts +0 -3
- package/dist/src/shared/utils.d.ts.map +0 -1
- package/dist/src/shared/utils.js +0 -8
- package/dist/src/shared/utils.js.map +0 -1
- package/dist/src/signer/passthrough-signer.d.ts +0 -12
- package/dist/src/signer/passthrough-signer.d.ts.map +0 -1
- package/dist/src/signer/passthrough-signer.js +0 -19
- package/dist/src/signer/passthrough-signer.js.map +0 -1
- package/dist/src/signer/types.d.ts +0 -17
- package/dist/src/signer/types.d.ts.map +0 -1
- package/dist/src/signer/types.js +0 -2
- package/dist/src/signer/types.js.map +0 -1
- package/dist/src/storage/consistency-aware-legacy-storage.d.ts +0 -33
- package/dist/src/storage/consistency-aware-legacy-storage.d.ts.map +0 -1
- package/dist/src/storage/consistency-aware-legacy-storage.js +0 -65
- package/dist/src/storage/consistency-aware-legacy-storage.js.map +0 -1
- package/dist/src/storage/index.d.ts +0 -4
- package/dist/src/storage/index.d.ts.map +0 -1
- package/dist/src/storage/index.js +0 -3
- package/dist/src/storage/index.js.map +0 -1
- package/dist/src/storage/interfaces.d.ts +0 -439
- package/dist/src/storage/interfaces.d.ts.map +0 -1
- package/dist/src/storage/interfaces.js +0 -19
- package/dist/src/storage/interfaces.js.map +0 -1
- package/dist/src/storage/kysely/document-indexer.d.ts +0 -28
- package/dist/src/storage/kysely/document-indexer.d.ts.map +0 -1
- package/dist/src/storage/kysely/document-indexer.js +0 -350
- package/dist/src/storage/kysely/document-indexer.js.map +0 -1
- package/dist/src/storage/kysely/keyframe-store.d.ts +0 -15
- package/dist/src/storage/kysely/keyframe-store.d.ts.map +0 -1
- package/dist/src/storage/kysely/keyframe-store.js +0 -64
- package/dist/src/storage/kysely/keyframe-store.js.map +0 -1
- package/dist/src/storage/kysely/store.d.ts +0 -16
- package/dist/src/storage/kysely/store.d.ts.map +0 -1
- package/dist/src/storage/kysely/store.js +0 -233
- package/dist/src/storage/kysely/store.js.map +0 -1
- package/dist/src/storage/kysely/sync-cursor-storage.d.ts +0 -13
- package/dist/src/storage/kysely/sync-cursor-storage.d.ts.map +0 -1
- package/dist/src/storage/kysely/sync-cursor-storage.js +0 -93
- package/dist/src/storage/kysely/sync-cursor-storage.js.map +0 -1
- package/dist/src/storage/kysely/sync-remote-storage.d.ts +0 -13
- package/dist/src/storage/kysely/sync-remote-storage.d.ts.map +0 -1
- package/dist/src/storage/kysely/sync-remote-storage.js +0 -133
- package/dist/src/storage/kysely/sync-remote-storage.js.map +0 -1
- package/dist/src/storage/kysely/types.d.ts +0 -135
- package/dist/src/storage/kysely/types.d.ts.map +0 -1
- package/dist/src/storage/kysely/types.js +0 -2
- package/dist/src/storage/kysely/types.js.map +0 -1
- package/dist/src/storage/migrations/001_create_operation_table.d.ts +0 -3
- package/dist/src/storage/migrations/001_create_operation_table.d.ts.map +0 -1
- package/dist/src/storage/migrations/001_create_operation_table.js +0 -41
- package/dist/src/storage/migrations/001_create_operation_table.js.map +0 -1
- package/dist/src/storage/migrations/002_create_keyframe_table.d.ts +0 -3
- package/dist/src/storage/migrations/002_create_keyframe_table.d.ts.map +0 -1
- package/dist/src/storage/migrations/002_create_keyframe_table.js +0 -27
- package/dist/src/storage/migrations/002_create_keyframe_table.js.map +0 -1
- package/dist/src/storage/migrations/003_create_document_table.d.ts +0 -3
- package/dist/src/storage/migrations/003_create_document_table.d.ts.map +0 -1
- package/dist/src/storage/migrations/003_create_document_table.js +0 -10
- package/dist/src/storage/migrations/003_create_document_table.js.map +0 -1
- package/dist/src/storage/migrations/004_create_document_relationship_table.d.ts +0 -3
- package/dist/src/storage/migrations/004_create_document_relationship_table.d.ts.map +0 -1
- package/dist/src/storage/migrations/004_create_document_relationship_table.js +0 -35
- package/dist/src/storage/migrations/004_create_document_relationship_table.js.map +0 -1
- package/dist/src/storage/migrations/005_create_indexer_state_table.d.ts +0 -3
- package/dist/src/storage/migrations/005_create_indexer_state_table.d.ts.map +0 -1
- package/dist/src/storage/migrations/005_create_indexer_state_table.js +0 -10
- package/dist/src/storage/migrations/005_create_indexer_state_table.js.map +0 -1
- package/dist/src/storage/migrations/006_create_document_snapshot_table.d.ts +0 -3
- package/dist/src/storage/migrations/006_create_document_snapshot_table.d.ts.map +0 -1
- package/dist/src/storage/migrations/006_create_document_snapshot_table.js +0 -49
- package/dist/src/storage/migrations/006_create_document_snapshot_table.js.map +0 -1
- package/dist/src/storage/migrations/007_create_slug_mapping_table.d.ts +0 -3
- package/dist/src/storage/migrations/007_create_slug_mapping_table.d.ts.map +0 -1
- package/dist/src/storage/migrations/007_create_slug_mapping_table.js +0 -24
- package/dist/src/storage/migrations/007_create_slug_mapping_table.js.map +0 -1
- package/dist/src/storage/migrations/008_create_view_state_table.d.ts +0 -3
- package/dist/src/storage/migrations/008_create_view_state_table.d.ts.map +0 -1
- package/dist/src/storage/migrations/008_create_view_state_table.js +0 -10
- package/dist/src/storage/migrations/008_create_view_state_table.js.map +0 -1
- package/dist/src/storage/migrations/009_create_operation_index_tables.d.ts +0 -3
- package/dist/src/storage/migrations/009_create_operation_index_tables.d.ts.map +0 -1
- package/dist/src/storage/migrations/009_create_operation_index_tables.js +0 -50
- package/dist/src/storage/migrations/009_create_operation_index_tables.js.map +0 -1
- package/dist/src/storage/migrations/010_create_sync_tables.d.ts +0 -3
- package/dist/src/storage/migrations/010_create_sync_tables.d.ts.map +0 -1
- package/dist/src/storage/migrations/010_create_sync_tables.js +0 -43
- package/dist/src/storage/migrations/010_create_sync_tables.js.map +0 -1
- package/dist/src/storage/migrations/index.d.ts +0 -3
- package/dist/src/storage/migrations/index.d.ts.map +0 -1
- package/dist/src/storage/migrations/index.js +0 -3
- package/dist/src/storage/migrations/index.js.map +0 -1
- package/dist/src/storage/migrations/migrator.d.ts +0 -6
- package/dist/src/storage/migrations/migrator.d.ts.map +0 -1
- package/dist/src/storage/migrations/migrator.js +0 -78
- package/dist/src/storage/migrations/migrator.js.map +0 -1
- package/dist/src/storage/migrations/run-migrations.d.ts +0 -2
- package/dist/src/storage/migrations/run-migrations.d.ts.map +0 -1
- package/dist/src/storage/migrations/run-migrations.js +0 -58
- package/dist/src/storage/migrations/run-migrations.js.map +0 -1
- package/dist/src/storage/migrations/types.d.ts +0 -9
- package/dist/src/storage/migrations/types.d.ts.map +0 -1
- package/dist/src/storage/migrations/types.js +0 -2
- package/dist/src/storage/migrations/types.js.map +0 -1
- package/dist/src/storage/txn.d.ts +0 -15
- package/dist/src/storage/txn.d.ts.map +0 -1
- package/dist/src/storage/txn.js +0 -42
- package/dist/src/storage/txn.js.map +0 -1
- package/dist/src/subs/default-error-handler.d.ts +0 -13
- package/dist/src/subs/default-error-handler.d.ts.map +0 -1
- package/dist/src/subs/default-error-handler.js +0 -27
- package/dist/src/subs/default-error-handler.js.map +0 -1
- package/dist/src/subs/react-subscription-manager.d.ts +0 -45
- package/dist/src/subs/react-subscription-manager.d.ts.map +0 -1
- package/dist/src/subs/react-subscription-manager.js +0 -185
- package/dist/src/subs/react-subscription-manager.js.map +0 -1
- package/dist/src/subs/subscription-notification-read-model.d.ts +0 -17
- package/dist/src/subs/subscription-notification-read-model.d.ts.map +0 -1
- package/dist/src/subs/subscription-notification-read-model.js +0 -62
- package/dist/src/subs/subscription-notification-read-model.js.map +0 -1
- package/dist/src/subs/types.d.ts +0 -64
- package/dist/src/subs/types.d.ts.map +0 -1
- package/dist/src/subs/types.js +0 -2
- package/dist/src/subs/types.js.map +0 -1
- package/dist/src/sync/channels/composite-channel-factory.d.ts +0 -30
- package/dist/src/sync/channels/composite-channel-factory.d.ts.map +0 -1
- package/dist/src/sync/channels/composite-channel-factory.js +0 -87
- package/dist/src/sync/channels/composite-channel-factory.js.map +0 -1
- package/dist/src/sync/channels/gql-channel-factory.d.ts +0 -25
- package/dist/src/sync/channels/gql-channel-factory.d.ts.map +0 -1
- package/dist/src/sync/channels/gql-channel-factory.js +0 -76
- package/dist/src/sync/channels/gql-channel-factory.js.map +0 -1
- package/dist/src/sync/channels/gql-channel.d.ts +0 -118
- package/dist/src/sync/channels/gql-channel.d.ts.map +0 -1
- package/dist/src/sync/channels/gql-channel.js +0 -423
- package/dist/src/sync/channels/gql-channel.js.map +0 -1
- package/dist/src/sync/channels/index.d.ts +0 -6
- package/dist/src/sync/channels/index.d.ts.map +0 -1
- package/dist/src/sync/channels/index.js +0 -6
- package/dist/src/sync/channels/index.js.map +0 -1
- package/dist/src/sync/channels/polling-channel.d.ts +0 -39
- package/dist/src/sync/channels/polling-channel.d.ts.map +0 -1
- package/dist/src/sync/channels/polling-channel.js +0 -72
- package/dist/src/sync/channels/polling-channel.js.map +0 -1
- package/dist/src/sync/channels/utils.d.ts +0 -30
- package/dist/src/sync/channels/utils.d.ts.map +0 -1
- package/dist/src/sync/channels/utils.js +0 -96
- package/dist/src/sync/channels/utils.js.map +0 -1
- package/dist/src/sync/errors.d.ts +0 -10
- package/dist/src/sync/errors.d.ts.map +0 -1
- package/dist/src/sync/errors.js +0 -17
- package/dist/src/sync/errors.js.map +0 -1
- package/dist/src/sync/index.d.ts +0 -12
- package/dist/src/sync/index.d.ts.map +0 -1
- package/dist/src/sync/index.js +0 -9
- package/dist/src/sync/index.js.map +0 -1
- package/dist/src/sync/interfaces.d.ts +0 -180
- package/dist/src/sync/interfaces.d.ts.map +0 -1
- package/dist/src/sync/interfaces.js +0 -2
- package/dist/src/sync/interfaces.js.map +0 -1
- package/dist/src/sync/mailbox.d.ts +0 -21
- package/dist/src/sync/mailbox.d.ts.map +0 -1
- package/dist/src/sync/mailbox.js +0 -59
- package/dist/src/sync/mailbox.js.map +0 -1
- package/dist/src/sync/sync-builder.d.ts +0 -19
- package/dist/src/sync/sync-builder.d.ts.map +0 -1
- package/dist/src/sync/sync-builder.js +0 -39
- package/dist/src/sync/sync-builder.js.map +0 -1
- package/dist/src/sync/sync-manager.d.ts +0 -37
- package/dist/src/sync/sync-manager.d.ts.map +0 -1
- package/dist/src/sync/sync-manager.js +0 -266
- package/dist/src/sync/sync-manager.js.map +0 -1
- package/dist/src/sync/sync-operation.d.ts +0 -28
- package/dist/src/sync/sync-operation.d.ts.map +0 -1
- package/dist/src/sync/sync-operation.js +0 -63
- package/dist/src/sync/sync-operation.js.map +0 -1
- package/dist/src/sync/types.d.ts +0 -60
- package/dist/src/sync/types.d.ts.map +0 -1
- package/dist/src/sync/types.js +0 -16
- package/dist/src/sync/types.js.map +0 -1
- package/dist/src/sync/utils.d.ts +0 -36
- package/dist/src/sync/utils.d.ts.map +0 -1
- package/dist/src/sync/utils.js +0 -78
- package/dist/src/sync/utils.js.map +0 -1
- package/dist/src/utils/reshuffle.d.ts +0 -30
- package/dist/src/utils/reshuffle.d.ts.map +0 -1
- package/dist/src/utils/reshuffle.js +0 -47
- package/dist/src/utils/reshuffle.js.map +0 -1
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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"}
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
import type { Action, Operation } from "document-model";
|
|
2
|
-
import type { ErrorInfo } from "../shared/types.js";
|
|
3
|
-
export type JobKind = "mutation" | "load";
|
|
4
|
-
/**
|
|
5
|
-
* State of a job in the queue
|
|
6
|
-
*/
|
|
7
|
-
export declare enum JobQueueState {
|
|
8
|
-
UNKNOWN = -1,
|
|
9
|
-
PREPROCESSING = 0,
|
|
10
|
-
PENDING = 1,
|
|
11
|
-
READY = 2,
|
|
12
|
-
RUNNING = 3,
|
|
13
|
-
RESOLVED = 4
|
|
14
|
-
}
|
|
15
|
-
/**
|
|
16
|
-
* Interface for a job execution handle
|
|
17
|
-
*/
|
|
18
|
-
export interface IJobExecutionHandle {
|
|
19
|
-
readonly job: Job;
|
|
20
|
-
readonly state: JobQueueState;
|
|
21
|
-
start(): void;
|
|
22
|
-
complete(): void;
|
|
23
|
-
fail(error: ErrorInfo): void;
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* Represents a job to be executed by the job executor
|
|
27
|
-
*/
|
|
28
|
-
export type Job = {
|
|
29
|
-
/** Unique identifier for the job */
|
|
30
|
-
id: string;
|
|
31
|
-
/** Classification of the job so executors can switch behavior */
|
|
32
|
-
kind: JobKind;
|
|
33
|
-
/** The document ID this job operates on */
|
|
34
|
-
documentId: string;
|
|
35
|
-
/** The scope of the operations */
|
|
36
|
-
scope: string;
|
|
37
|
-
/** The branch of the operations */
|
|
38
|
-
branch: string;
|
|
39
|
-
/** The actions to be executed (processed sequentially) */
|
|
40
|
-
actions: Action[];
|
|
41
|
-
/** Pre-existing operations to import (used for load jobs) */
|
|
42
|
-
operations: Operation[];
|
|
43
|
-
/** Timestamp when the job was created */
|
|
44
|
-
createdAt: string;
|
|
45
|
-
/** The hint for the queue to use for ordering the job */
|
|
46
|
-
queueHint: string[];
|
|
47
|
-
/** Number of retry attempts */
|
|
48
|
-
retryCount?: number;
|
|
49
|
-
/** Maximum number of retries allowed */
|
|
50
|
-
maxRetries?: number;
|
|
51
|
-
/** Last error if job failed */
|
|
52
|
-
lastError?: ErrorInfo;
|
|
53
|
-
/** History of all errors from each attempt (ordered) */
|
|
54
|
-
errorHistory: ErrorInfo[];
|
|
55
|
-
/** Optional metadata that flows through the job lifecycle */
|
|
56
|
-
meta?: Record<string, unknown>;
|
|
57
|
-
};
|
|
58
|
-
/**
|
|
59
|
-
* Event types for the queue system
|
|
60
|
-
*/
|
|
61
|
-
export declare const QueueEventTypes: {
|
|
62
|
-
readonly JOB_AVAILABLE: 10000;
|
|
63
|
-
};
|
|
64
|
-
/**
|
|
65
|
-
* Event data for job available events
|
|
66
|
-
*/
|
|
67
|
-
export type JobAvailableEvent = {
|
|
68
|
-
documentId: string;
|
|
69
|
-
scope: string;
|
|
70
|
-
branch: string;
|
|
71
|
-
jobId: string;
|
|
72
|
-
};
|
|
73
|
-
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
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;AAEpD,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;CAC9B;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,6DAA6D;IAC7D,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC,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"}
|
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,60 +0,0 @@
|
|
|
1
|
-
import type { Kysely, Transaction } from "kysely";
|
|
2
|
-
import type { IOperationIndex } from "../cache/operation-index-types.js";
|
|
3
|
-
import type { IWriteCache } from "../cache/write/interfaces.js";
|
|
4
|
-
import type { IConsistencyTracker } from "../shared/consistency-tracker.js";
|
|
5
|
-
import type { ConsistencyToken } from "../shared/types.js";
|
|
6
|
-
import type { OperationWithContext } from "../storage/interfaces.js";
|
|
7
|
-
import type { IReadModel } from "./interfaces.js";
|
|
8
|
-
import type { DocumentViewDatabase } from "./types.js";
|
|
9
|
-
/**
|
|
10
|
-
* Base class for read models that provides catch-up/rewind functionality.
|
|
11
|
-
* Handles initialization, state tracking via ViewState table, and consistency tracking.
|
|
12
|
-
* Subclasses should override indexOperations() with their specific indexing logic.
|
|
13
|
-
*/
|
|
14
|
-
export declare class BaseReadModel implements IReadModel {
|
|
15
|
-
protected db: Kysely<DocumentViewDatabase>;
|
|
16
|
-
protected operationIndex: IOperationIndex;
|
|
17
|
-
protected writeCache: IWriteCache;
|
|
18
|
-
protected consistencyTracker: IConsistencyTracker;
|
|
19
|
-
protected readModelId: string;
|
|
20
|
-
protected lastOrdinal: number;
|
|
21
|
-
constructor(db: Kysely<DocumentViewDatabase>, operationIndex: IOperationIndex, writeCache: IWriteCache, consistencyTracker: IConsistencyTracker, readModelId: string);
|
|
22
|
-
/**
|
|
23
|
-
* Initializes the read model by loading state and catching up on missed operations.
|
|
24
|
-
*/
|
|
25
|
-
init(): Promise<void>;
|
|
26
|
-
/**
|
|
27
|
-
* Indexes operations into the read model.
|
|
28
|
-
* Subclasses should override this method to implement their specific indexing logic.
|
|
29
|
-
* The overriding method should call saveState() and updateConsistencyTracker() at the end.
|
|
30
|
-
*/
|
|
31
|
-
indexOperations(items: OperationWithContext[]): Promise<void>;
|
|
32
|
-
/**
|
|
33
|
-
* Waits for the read model to reach the specified consistency level.
|
|
34
|
-
*/
|
|
35
|
-
waitForConsistency(token: ConsistencyToken, timeoutMs?: number, signal?: AbortSignal): Promise<void>;
|
|
36
|
-
/**
|
|
37
|
-
* Rebuilds document state for each operation using the write cache.
|
|
38
|
-
*/
|
|
39
|
-
protected rebuildStateForOperations(operations: OperationWithContext[]): Promise<OperationWithContext[]>;
|
|
40
|
-
/**
|
|
41
|
-
* Loads the last processed ordinal from the ViewState table.
|
|
42
|
-
* Returns undefined if no state exists for this read model.
|
|
43
|
-
*/
|
|
44
|
-
protected loadState(): Promise<number | undefined>;
|
|
45
|
-
/**
|
|
46
|
-
* Initializes the ViewState row for this read model.
|
|
47
|
-
*/
|
|
48
|
-
protected initializeState(): Promise<void>;
|
|
49
|
-
/**
|
|
50
|
-
* Saves the last processed ordinal to the ViewState table.
|
|
51
|
-
* Should be called at the end of indexOperations() within a transaction.
|
|
52
|
-
*/
|
|
53
|
-
protected saveState(trx: Transaction<DocumentViewDatabase>, items: OperationWithContext[]): Promise<void>;
|
|
54
|
-
/**
|
|
55
|
-
* Updates the consistency tracker with the processed operations.
|
|
56
|
-
* Should be called at the end of indexOperations() after the transaction commits.
|
|
57
|
-
*/
|
|
58
|
-
protected updateConsistencyTracker(items: OperationWithContext[]): void;
|
|
59
|
-
}
|
|
60
|
-
//# sourceMappingURL=base-read-model.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
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,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAEvD;;;;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,WAAW,EAAE,MAAM;IAP/B,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,WAAW,EAAE,MAAM;IAG/B;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IA4B3B;;;;OAIG;IACG,eAAe,CAAC,KAAK,EAAE,oBAAoB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAUnE;;OAEG;IACG,kBAAkB,CACtB,KAAK,EAAE,gBAAgB,EACvB,SAAS,CAAC,EAAE,MAAM,EAClB,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,IAAI,CAAC;IAOhB;;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;;;OAGG;cACa,SAAS,CACvB,GAAG,EAAE,WAAW,CAAC,oBAAoB,CAAC,EACtC,KAAK,EAAE,oBAAoB,EAAE,GAC5B,OAAO,CAAC,IAAI,CAAC;IAchB;;;OAGG;IACH,SAAS,CAAC,wBAAwB,CAAC,KAAK,EAAE,oBAAoB,EAAE,GAAG,IAAI;CAexE"}
|