@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
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
import { EventBusAggregateError } from "./types.js";
|
|
2
|
-
export class EventBus {
|
|
3
|
-
eventTypeToSubscribers = new Map();
|
|
4
|
-
subscribe(type, subscriber) {
|
|
5
|
-
let list = this.eventTypeToSubscribers.get(type);
|
|
6
|
-
if (!list) {
|
|
7
|
-
list = [];
|
|
8
|
-
this.eventTypeToSubscribers.set(type, list);
|
|
9
|
-
}
|
|
10
|
-
list.push(subscriber);
|
|
11
|
-
let done = false;
|
|
12
|
-
return () => {
|
|
13
|
-
if (done) {
|
|
14
|
-
return;
|
|
15
|
-
}
|
|
16
|
-
done = true;
|
|
17
|
-
const arr = this.eventTypeToSubscribers.get(type);
|
|
18
|
-
if (!arr) {
|
|
19
|
-
return;
|
|
20
|
-
}
|
|
21
|
-
const idx = arr.indexOf(subscriber);
|
|
22
|
-
if (idx !== -1) {
|
|
23
|
-
arr.splice(idx, 1);
|
|
24
|
-
}
|
|
25
|
-
if (arr.length === 0) {
|
|
26
|
-
this.eventTypeToSubscribers.delete(type);
|
|
27
|
-
}
|
|
28
|
-
};
|
|
29
|
-
}
|
|
30
|
-
async emit(type, data) {
|
|
31
|
-
const list = this.eventTypeToSubscribers.get(type);
|
|
32
|
-
if (!list || list.length === 0) {
|
|
33
|
-
return;
|
|
34
|
-
}
|
|
35
|
-
// Snapshot ensures subscribers added/removed during emit don't affect this cycle.
|
|
36
|
-
const snapshot = list.slice();
|
|
37
|
-
// Call each subscriber sequentially and collect any errors
|
|
38
|
-
const errors = [];
|
|
39
|
-
for (const fn of snapshot) {
|
|
40
|
-
try {
|
|
41
|
-
await Promise.resolve(fn(type, data));
|
|
42
|
-
}
|
|
43
|
-
catch (err) {
|
|
44
|
-
errors.push(err);
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
// If any errors occurred, throw an aggregate error containing all of them
|
|
48
|
-
if (errors.length > 0) {
|
|
49
|
-
throw new EventBusAggregateError(errors);
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
//# sourceMappingURL=event-bus.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"event-bus.js","sourceRoot":"","sources":["../../../src/events/event-bus.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAEpD,MAAM,OAAO,QAAQ;IACH,sBAAsB,GAAG,IAAI,GAAG,EAAwB,CAAC;IAEzE,SAAS,CACP,IAAY,EACZ,UAA4D;QAE5D,IAAI,IAAI,GAAG,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACjD,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,IAAI,GAAG,EAAE,CAAC;YACV,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC9C,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,UAAwB,CAAC,CAAC;QAEpC,IAAI,IAAI,GAAG,KAAK,CAAC;QACjB,OAAO,GAAG,EAAE;YACV,IAAI,IAAI,EAAE,CAAC;gBACT,OAAO;YACT,CAAC;YACD,IAAI,GAAG,IAAI,CAAC;YAEZ,MAAM,GAAG,GAAG,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAClD,IAAI,CAAC,GAAG,EAAE,CAAC;gBACT,OAAO;YACT,CAAC;YAED,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,UAAwB,CAAC,CAAC;YAClD,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC;gBACf,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YACrB,CAAC;YACD,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACrB,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,IAAY,EAAE,IAAS;QAChC,MAAM,IAAI,GAAG,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACnD,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/B,OAAO;QACT,CAAC;QAED,kFAAkF;QAClF,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAE9B,2DAA2D;QAC3D,MAAM,MAAM,GAAU,EAAE,CAAC;QACzB,KAAK,MAAM,EAAE,IAAI,QAAQ,EAAE,CAAC;YAC1B,IAAI,CAAC;gBACH,MAAM,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;YACxC,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACnB,CAAC;QACH,CAAC;QAED,0EAA0E;QAC1E,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,sBAAsB,CAAC,MAAM,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;CACF"}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import type { Unsubscribe } from "./types.js";
|
|
2
|
-
/**
|
|
3
|
-
* Describes an object that manages event subscriptions and emissions.
|
|
4
|
-
*/
|
|
5
|
-
export interface IEventBus {
|
|
6
|
-
/**
|
|
7
|
-
* Register a new subscriber.
|
|
8
|
-
* Order is preserved by pushing to the end of the per-type array.
|
|
9
|
-
*
|
|
10
|
-
* @param type - The type of event to subscribe to.
|
|
11
|
-
* @param subscriber - The subscriber function to call when the event is emitted.
|
|
12
|
-
*
|
|
13
|
-
* @returns A function to unsubscribe from the event.
|
|
14
|
-
*/
|
|
15
|
-
subscribe<K>(type: number, subscriber: (type: number, event: K) => void | Promise<void>): Unsubscribe;
|
|
16
|
-
/**
|
|
17
|
-
* Emits an event and waits until **all** subscribers finish.
|
|
18
|
-
* - Every subscriber present at emit-start is called, in registration order.
|
|
19
|
-
* - Calls are invoked and settled sequentially.
|
|
20
|
-
* - If subscribers throw/reject, `emit` rejects with an aggregate error of all errors.
|
|
21
|
-
*
|
|
22
|
-
* @param type - The type of event to emit.
|
|
23
|
-
* @param data - The data to pass to the subscribers.
|
|
24
|
-
*/
|
|
25
|
-
emit(type: number, data: any): Promise<void>;
|
|
26
|
-
}
|
|
27
|
-
//# sourceMappingURL=interfaces.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../src/events/interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB;;;;;;;;OAQG;IACH,SAAS,CAAC,CAAC,EACT,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAC3D,WAAW,CAAC;IAEf;;;;;;;;OAQG;IACH,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9C"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../src/events/interfaces.ts"],"names":[],"mappings":""}
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
import type { OperationWithContext } from "#storage/interfaces.js";
|
|
2
|
-
/**
|
|
3
|
-
* Describes a function to unsubscribe from an event.
|
|
4
|
-
*/
|
|
5
|
-
export type Unsubscribe = () => void;
|
|
6
|
-
/**
|
|
7
|
-
* A subscriber is a function that is called when an event is emitted.
|
|
8
|
-
*
|
|
9
|
-
* It is passed the event type and the data.
|
|
10
|
-
* It can return a promise or a value.
|
|
11
|
-
* If it returns a promise, the event bus will wait for the promise to resolve before calling the next subscriber.
|
|
12
|
-
* If it throws an error, the event bus will reject with an aggregate error of all errors.
|
|
13
|
-
*
|
|
14
|
-
* @param type - The type of event to emit.
|
|
15
|
-
* @param data - The data to pass to the subscriber.
|
|
16
|
-
*/
|
|
17
|
-
export type Subscriber = (type: number, data: any) => void | Promise<void>;
|
|
18
|
-
/**
|
|
19
|
-
* Custom error class that aggregates multiple errors from event subscribers.
|
|
20
|
-
*/
|
|
21
|
-
export declare class EventBusAggregateError extends Error {
|
|
22
|
-
readonly errors: any[];
|
|
23
|
-
constructor(errors: unknown[]);
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* Event types for operation-related events.
|
|
27
|
-
*/
|
|
28
|
-
export declare const OperationEventTypes: {
|
|
29
|
-
readonly OPERATION_WRITTEN: 10001;
|
|
30
|
-
readonly OPERATIONS_READY: 10002;
|
|
31
|
-
readonly JOB_FAILED: 10003;
|
|
32
|
-
};
|
|
33
|
-
/**
|
|
34
|
-
* Event emitted when operations are written to IOperationStore.
|
|
35
|
-
* Contains the operations directly to avoid round-trip queries.
|
|
36
|
-
*/
|
|
37
|
-
export type OperationWrittenEvent = {
|
|
38
|
-
jobId: string;
|
|
39
|
-
operations: OperationWithContext[];
|
|
40
|
-
jobMeta?: Record<string, unknown>;
|
|
41
|
-
};
|
|
42
|
-
/**
|
|
43
|
-
* Event emitted after all read models have finished processing operations.
|
|
44
|
-
* This event fires after OPERATION_WRITTEN and guarantees that:
|
|
45
|
-
* - All read models (DocumentView, DocumentIndexer, etc.) have indexed the operations
|
|
46
|
-
* - All consistency trackers have been updated with the new operation indices
|
|
47
|
-
* - Queries without consistency tokens will now see the updated data
|
|
48
|
-
*
|
|
49
|
-
* This event is useful for:
|
|
50
|
-
* - Test synchronization (knowing when read models are ready)
|
|
51
|
-
* - Observability (measuring read model latency)
|
|
52
|
-
* - Event-driven workflows (triggering downstream processes)
|
|
53
|
-
*/
|
|
54
|
-
export type OperationsReadyEvent = {
|
|
55
|
-
jobId: string;
|
|
56
|
-
operations: OperationWithContext[];
|
|
57
|
-
};
|
|
58
|
-
/**
|
|
59
|
-
* Event emitted when a job fails with an unrecoverable error.
|
|
60
|
-
* This event allows the JobAwaiter and other subscribers to react to job failures
|
|
61
|
-
* without polling.
|
|
62
|
-
*/
|
|
63
|
-
export type JobFailedEvent = {
|
|
64
|
-
jobId: string;
|
|
65
|
-
error: Error;
|
|
66
|
-
};
|
|
67
|
-
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/events/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAEnE;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC;AAErC;;;;;;;;;;GAUG;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAE3E;;GAEG;AACH,qBAAa,sBAAuB,SAAQ,KAAK;IAC/C,SAAgB,MAAM,EAAE,GAAG,EAAE,CAAC;gBAElB,MAAM,EAAE,OAAO,EAAE;CAc9B;AAED;;GAEG;AACH,eAAO,MAAM,mBAAmB;;;;CAItB,CAAC;AAEX;;;GAGG;AACH,MAAM,MAAM,qBAAqB,GAAG;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,oBAAoB,EAAE,CAAC;IACnC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,oBAAoB,GAAG;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,oBAAoB,EAAE,CAAC;CACpC,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,KAAK,CAAC;CACd,CAAC"}
|
package/dist/src/events/types.js
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Custom error class that aggregates multiple errors from event subscribers.
|
|
3
|
-
*/
|
|
4
|
-
export class EventBusAggregateError extends Error {
|
|
5
|
-
errors;
|
|
6
|
-
constructor(errors) {
|
|
7
|
-
const message = `EventBus emit failed with ${errors.length} error(s): ${errors
|
|
8
|
-
.map((e) => {
|
|
9
|
-
if (e && typeof e === "object" && "message" in e) {
|
|
10
|
-
return e.message;
|
|
11
|
-
}
|
|
12
|
-
return String(e);
|
|
13
|
-
})
|
|
14
|
-
.join("; ")}`;
|
|
15
|
-
super(message);
|
|
16
|
-
this.name = "EventBusAggregateError";
|
|
17
|
-
this.errors = errors;
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* Event types for operation-related events.
|
|
22
|
-
*/
|
|
23
|
-
export const OperationEventTypes = {
|
|
24
|
-
OPERATION_WRITTEN: 10001,
|
|
25
|
-
OPERATIONS_READY: 10002,
|
|
26
|
-
JOB_FAILED: 10003,
|
|
27
|
-
};
|
|
28
|
-
//# sourceMappingURL=types.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/events/types.ts"],"names":[],"mappings":"AAoBA;;GAEG;AACH,MAAM,OAAO,sBAAuB,SAAQ,KAAK;IAC/B,MAAM,CAAQ;IAE9B,YAAY,MAAiB;QAC3B,MAAM,OAAO,GAAG,6BAA6B,MAAM,CAAC,MAAM,cAAc,MAAM;aAC3E,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACT,IAAI,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;gBACjD,OAAQ,CAAW,CAAC,OAAO,CAAC;YAC9B,CAAC;YACD,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;QACnB,CAAC,CAAC;aACD,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAChB,KAAK,CAAC,OAAO,CAAC,CAAC;QAEf,IAAI,CAAC,IAAI,GAAG,wBAAwB,CAAC;QACrC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;CACF;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,iBAAiB,EAAE,KAAK;IACxB,gBAAgB,EAAE,KAAK;IACvB,UAAU,EAAE,KAAK;CACT,CAAC"}
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import type { Job } from "../queue/types.js";
|
|
2
|
-
import type { ExecutorManagerStatus, JobResult } from "./types.js";
|
|
3
|
-
/**
|
|
4
|
-
* Simple interface for executing a job.
|
|
5
|
-
* A JobExecutor simply takes a job and executes it - nothing more.
|
|
6
|
-
*/
|
|
7
|
-
export interface IJobExecutor {
|
|
8
|
-
/**
|
|
9
|
-
* Execute a single job.
|
|
10
|
-
* @param job - The job to execute
|
|
11
|
-
* @returns Promise that resolves to the job result
|
|
12
|
-
*/
|
|
13
|
-
executeJob(job: Job): Promise<JobResult>;
|
|
14
|
-
}
|
|
15
|
-
/**
|
|
16
|
-
* Interface for managing multiple job executors.
|
|
17
|
-
* Listens for 'jobAvailable' events from the event bus, pulls jobs from the queue,
|
|
18
|
-
* and coordinates the distribution of jobs across multiple executor instances.
|
|
19
|
-
*/
|
|
20
|
-
export interface IJobExecutorManager {
|
|
21
|
-
/**
|
|
22
|
-
* Start the executor manager.
|
|
23
|
-
* Begins listening for 'jobAvailable' events and dispatching to executors.
|
|
24
|
-
*
|
|
25
|
-
* @param numExecutors - Number of executor instances to create
|
|
26
|
-
* @returns Promise that resolves when the manager is started
|
|
27
|
-
*/
|
|
28
|
-
start(numExecutors: number): Promise<void>;
|
|
29
|
-
/**
|
|
30
|
-
* Stop the executor manager.
|
|
31
|
-
*
|
|
32
|
-
* @param graceful - Whether to wait for current jobs to complete
|
|
33
|
-
* @returns Promise that resolves when the manager is stopped
|
|
34
|
-
*/
|
|
35
|
-
stop(graceful?: boolean): Promise<void>;
|
|
36
|
-
/**
|
|
37
|
-
* Get all managed executor instances.
|
|
38
|
-
*
|
|
39
|
-
* @returns Array of executor instances
|
|
40
|
-
*/
|
|
41
|
-
getExecutors(): IJobExecutor[];
|
|
42
|
-
/**
|
|
43
|
-
* Get the current status of the manager.
|
|
44
|
-
*
|
|
45
|
-
* @returns The current manager status
|
|
46
|
-
*/
|
|
47
|
-
getStatus(): ExecutorManagerStatus;
|
|
48
|
-
}
|
|
49
|
-
//# sourceMappingURL=interfaces.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../src/executor/interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,KAAK,EAAE,qBAAqB,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEnE;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B;;;;OAIG;IACH,UAAU,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;CAC1C;AAED;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC;;;;;;OAMG;IACH,KAAK,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE3C;;;;;OAKG;IACH,IAAI,CAAC,QAAQ,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAExC;;;;OAIG;IACH,YAAY,IAAI,YAAY,EAAE,CAAC;IAE/B;;;;OAIG;IACH,SAAS,IAAI,qBAAqB,CAAC;CACpC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../src/executor/interfaces.ts"],"names":[],"mappings":""}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import type { IEventBus } from "../events/interfaces.js";
|
|
2
|
-
import type { IJobTracker } from "../job-tracker/interfaces.js";
|
|
3
|
-
import type { ILogger } from "../logging/types.js";
|
|
4
|
-
import type { IQueue } from "../queue/interfaces.js";
|
|
5
|
-
import type { IJobExecutor, IJobExecutorManager } from "./interfaces.js";
|
|
6
|
-
import type { ExecutorManagerStatus } from "./types.js";
|
|
7
|
-
export type JobExecutorFactory = () => IJobExecutor;
|
|
8
|
-
/**
|
|
9
|
-
* Manages multiple job executors and coordinates job distribution.
|
|
10
|
-
* Listens for job available events and dispatches jobs to executors.
|
|
11
|
-
*/
|
|
12
|
-
export declare class SimpleJobExecutorManager implements IJobExecutorManager {
|
|
13
|
-
private executorFactory;
|
|
14
|
-
private eventBus;
|
|
15
|
-
private queue;
|
|
16
|
-
private jobTracker;
|
|
17
|
-
private logger;
|
|
18
|
-
private executors;
|
|
19
|
-
private isRunning;
|
|
20
|
-
private activeJobs;
|
|
21
|
-
private totalJobsProcessed;
|
|
22
|
-
private unsubscribe?;
|
|
23
|
-
constructor(executorFactory: JobExecutorFactory, eventBus: IEventBus, queue: IQueue, jobTracker: IJobTracker, logger: ILogger);
|
|
24
|
-
start(numExecutors: number): Promise<void>;
|
|
25
|
-
stop(graceful?: boolean): Promise<void>;
|
|
26
|
-
getExecutors(): IJobExecutor[];
|
|
27
|
-
getStatus(): ExecutorManagerStatus;
|
|
28
|
-
private processNextJob;
|
|
29
|
-
private checkForMoreJobs;
|
|
30
|
-
private processExistingJobs;
|
|
31
|
-
private toErrorInfo;
|
|
32
|
-
private formatErrorHistory;
|
|
33
|
-
}
|
|
34
|
-
//# sourceMappingURL=simple-job-executor-manager.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"simple-job-executor-manager.d.ts","sourceRoot":"","sources":["../../../src/executor/simple-job-executor-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAIrD,OAAO,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACzE,OAAO,KAAK,EAAE,qBAAqB,EAAa,MAAM,YAAY,CAAC;AAEnE,MAAM,MAAM,kBAAkB,GAAG,MAAM,YAAY,CAAC;AAEpD;;;GAGG;AACH,qBAAa,wBAAyB,YAAW,mBAAmB;IAQhE,OAAO,CAAC,eAAe;IACvB,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,MAAM;IAXhB,OAAO,CAAC,SAAS,CAAsB;IACvC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,kBAAkB,CAAK;IAC/B,OAAO,CAAC,WAAW,CAAC,CAAa;gBAGvB,eAAe,EAAE,kBAAkB,EACnC,QAAQ,EAAE,SAAS,EACnB,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,WAAW,EACvB,MAAM,EAAE,OAAO;IAGnB,KAAK,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgC1C,IAAI,CAAC,QAAQ,UAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAsB1C,YAAY,IAAI,YAAY,EAAE;IAI9B,SAAS,IAAI,qBAAqB;YASpB,cAAc;YA6Hd,gBAAgB;YAkBhB,mBAAmB;IAwBjC,OAAO,CAAC,WAAW;IAanB,OAAO,CAAC,kBAAkB;CAwB3B"}
|
|
@@ -1,233 +0,0 @@
|
|
|
1
|
-
import { OperationEventTypes } from "../events/types.js";
|
|
2
|
-
import { QueueEventTypes } from "../queue/types.js";
|
|
3
|
-
/**
|
|
4
|
-
* Manages multiple job executors and coordinates job distribution.
|
|
5
|
-
* Listens for job available events and dispatches jobs to executors.
|
|
6
|
-
*/
|
|
7
|
-
export class SimpleJobExecutorManager {
|
|
8
|
-
executorFactory;
|
|
9
|
-
eventBus;
|
|
10
|
-
queue;
|
|
11
|
-
jobTracker;
|
|
12
|
-
logger;
|
|
13
|
-
executors = [];
|
|
14
|
-
isRunning = false;
|
|
15
|
-
activeJobs = 0;
|
|
16
|
-
totalJobsProcessed = 0;
|
|
17
|
-
unsubscribe;
|
|
18
|
-
constructor(executorFactory, eventBus, queue, jobTracker, logger) {
|
|
19
|
-
this.executorFactory = executorFactory;
|
|
20
|
-
this.eventBus = eventBus;
|
|
21
|
-
this.queue = queue;
|
|
22
|
-
this.jobTracker = jobTracker;
|
|
23
|
-
this.logger = logger;
|
|
24
|
-
}
|
|
25
|
-
async start(numExecutors) {
|
|
26
|
-
if (this.isRunning) {
|
|
27
|
-
throw new Error("JobExecutorManager is already running");
|
|
28
|
-
}
|
|
29
|
-
if (numExecutors < 1) {
|
|
30
|
-
throw new Error("Number of executors must be at least 1");
|
|
31
|
-
}
|
|
32
|
-
// Create executors
|
|
33
|
-
this.executors = [];
|
|
34
|
-
for (let i = 0; i < numExecutors; i++) {
|
|
35
|
-
this.executors.push(this.executorFactory());
|
|
36
|
-
}
|
|
37
|
-
// Start listening for job available events
|
|
38
|
-
this.unsubscribe = this.eventBus.subscribe(QueueEventTypes.JOB_AVAILABLE, async () => {
|
|
39
|
-
// Only process if we have capacity (simple round-robin for now)
|
|
40
|
-
if (this.activeJobs < this.executors.length) {
|
|
41
|
-
await this.processNextJob();
|
|
42
|
-
}
|
|
43
|
-
});
|
|
44
|
-
this.isRunning = true;
|
|
45
|
-
// Process any existing jobs in the queue
|
|
46
|
-
await this.processExistingJobs();
|
|
47
|
-
}
|
|
48
|
-
async stop(graceful = true) {
|
|
49
|
-
if (!this.isRunning) {
|
|
50
|
-
return;
|
|
51
|
-
}
|
|
52
|
-
// Stop listening for new jobs
|
|
53
|
-
if (this.unsubscribe) {
|
|
54
|
-
this.unsubscribe();
|
|
55
|
-
this.unsubscribe = undefined;
|
|
56
|
-
}
|
|
57
|
-
if (graceful) {
|
|
58
|
-
// Wait for active jobs to complete
|
|
59
|
-
while (this.activeJobs > 0) {
|
|
60
|
-
await new Promise((resolve) => setTimeout(resolve, 100));
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
this.executors = [];
|
|
64
|
-
this.isRunning = false;
|
|
65
|
-
}
|
|
66
|
-
getExecutors() {
|
|
67
|
-
return [...this.executors];
|
|
68
|
-
}
|
|
69
|
-
getStatus() {
|
|
70
|
-
return {
|
|
71
|
-
isRunning: this.isRunning,
|
|
72
|
-
numExecutors: this.executors.length,
|
|
73
|
-
activeJobs: this.activeJobs,
|
|
74
|
-
totalJobsProcessed: this.totalJobsProcessed,
|
|
75
|
-
};
|
|
76
|
-
}
|
|
77
|
-
async processNextJob() {
|
|
78
|
-
// dequeue next available job
|
|
79
|
-
let handle;
|
|
80
|
-
try {
|
|
81
|
-
handle = await this.queue.dequeueNext();
|
|
82
|
-
}
|
|
83
|
-
catch (error) {
|
|
84
|
-
this.logger.error("Error dequeueing next job: @Error", error);
|
|
85
|
-
return;
|
|
86
|
-
}
|
|
87
|
-
if (!handle) {
|
|
88
|
-
return;
|
|
89
|
-
}
|
|
90
|
-
// start the job execution
|
|
91
|
-
handle.start();
|
|
92
|
-
this.activeJobs++;
|
|
93
|
-
this.jobTracker.markRunning(handle.job.id);
|
|
94
|
-
// Find an available executor (simple round-robin)
|
|
95
|
-
const executorIndex = this.totalJobsProcessed % this.executors.length;
|
|
96
|
-
const executor = this.executors[executorIndex];
|
|
97
|
-
// execute the job
|
|
98
|
-
let result;
|
|
99
|
-
try {
|
|
100
|
-
result = await executor.executeJob(handle.job);
|
|
101
|
-
}
|
|
102
|
-
catch (error) {
|
|
103
|
-
const errorInfo = this.toErrorInfo(error instanceof Error ? error : String(error));
|
|
104
|
-
this.logger.error("Error executing job @JobId: @Error", handle.job.id, errorInfo);
|
|
105
|
-
handle.fail(errorInfo);
|
|
106
|
-
this.activeJobs--;
|
|
107
|
-
this.jobTracker.markFailed(handle.job.id, errorInfo);
|
|
108
|
-
this.eventBus
|
|
109
|
-
.emit(OperationEventTypes.JOB_FAILED, {
|
|
110
|
-
jobId: handle.job.id,
|
|
111
|
-
error: new Error(errorInfo.message),
|
|
112
|
-
})
|
|
113
|
-
.catch(() => { });
|
|
114
|
-
await this.checkForMoreJobs();
|
|
115
|
-
return;
|
|
116
|
-
}
|
|
117
|
-
// handle the result
|
|
118
|
-
if (result.success) {
|
|
119
|
-
handle.complete();
|
|
120
|
-
this.totalJobsProcessed++;
|
|
121
|
-
}
|
|
122
|
-
else {
|
|
123
|
-
// Handle retry logic
|
|
124
|
-
const retryCount = handle.job.retryCount || 0;
|
|
125
|
-
const maxRetries = handle.job.maxRetries || 0;
|
|
126
|
-
if (retryCount < maxRetries) {
|
|
127
|
-
const currentErrorInfo = result.error
|
|
128
|
-
? this.toErrorInfo(result.error)
|
|
129
|
-
: this.toErrorInfo("Unknown error");
|
|
130
|
-
try {
|
|
131
|
-
await this.queue.retryJob(handle.job.id, currentErrorInfo);
|
|
132
|
-
}
|
|
133
|
-
catch (error) {
|
|
134
|
-
const retryErrorInfo = this.toErrorInfo(error instanceof Error ? error : "Failed to retry job");
|
|
135
|
-
this.logger.error("Failed to retry job @JobId: @Error", handle.job.id, retryErrorInfo.message);
|
|
136
|
-
this.jobTracker.markFailed(handle.job.id, retryErrorInfo);
|
|
137
|
-
this.eventBus
|
|
138
|
-
.emit(OperationEventTypes.JOB_FAILED, {
|
|
139
|
-
jobId: handle.job.id,
|
|
140
|
-
error: new Error(retryErrorInfo.message),
|
|
141
|
-
})
|
|
142
|
-
.catch(() => { });
|
|
143
|
-
handle.fail(retryErrorInfo);
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
else {
|
|
147
|
-
const currentErrorInfo = result.error
|
|
148
|
-
? this.toErrorInfo(result.error)
|
|
149
|
-
: this.toErrorInfo("Unknown error");
|
|
150
|
-
const fullErrorInfo = this.formatErrorHistory(handle.job.errorHistory, currentErrorInfo, retryCount + 1);
|
|
151
|
-
this.logger.error("Job @JobId failed after @Attempts attempts: @Error", handle.job.id, retryCount + 1, fullErrorInfo.message);
|
|
152
|
-
this.jobTracker.markFailed(handle.job.id, fullErrorInfo);
|
|
153
|
-
this.eventBus
|
|
154
|
-
.emit(OperationEventTypes.JOB_FAILED, {
|
|
155
|
-
jobId: handle.job.id,
|
|
156
|
-
error: new Error(fullErrorInfo.message),
|
|
157
|
-
})
|
|
158
|
-
.catch(() => { });
|
|
159
|
-
handle.fail(fullErrorInfo);
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
this.activeJobs--;
|
|
163
|
-
await this.checkForMoreJobs();
|
|
164
|
-
}
|
|
165
|
-
async checkForMoreJobs() {
|
|
166
|
-
if (!this.isRunning) {
|
|
167
|
-
return;
|
|
168
|
-
}
|
|
169
|
-
let hasMore;
|
|
170
|
-
try {
|
|
171
|
-
hasMore = await this.queue.hasJobs();
|
|
172
|
-
}
|
|
173
|
-
catch (error) {
|
|
174
|
-
this.logger.error("Error checking for more jobs: @Error", error);
|
|
175
|
-
return;
|
|
176
|
-
}
|
|
177
|
-
if (hasMore) {
|
|
178
|
-
await this.processNextJob();
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
async processExistingJobs() {
|
|
182
|
-
let hasJobs;
|
|
183
|
-
try {
|
|
184
|
-
hasJobs = await this.queue.hasJobs();
|
|
185
|
-
}
|
|
186
|
-
catch (error) {
|
|
187
|
-
this.logger.error("Error checking for existing jobs: @Error", error);
|
|
188
|
-
return;
|
|
189
|
-
}
|
|
190
|
-
if (hasJobs) {
|
|
191
|
-
// Start processing up to the number of executors
|
|
192
|
-
const promises = [];
|
|
193
|
-
for (let i = 0; i < Math.min(this.executors.length, 5); i++) {
|
|
194
|
-
promises.push(this.processNextJob());
|
|
195
|
-
}
|
|
196
|
-
try {
|
|
197
|
-
await Promise.all(promises);
|
|
198
|
-
}
|
|
199
|
-
catch (error) {
|
|
200
|
-
this.logger.error("Error processing existing jobs: @Error", error);
|
|
201
|
-
}
|
|
202
|
-
}
|
|
203
|
-
}
|
|
204
|
-
toErrorInfo(error) {
|
|
205
|
-
if (error instanceof Error) {
|
|
206
|
-
return {
|
|
207
|
-
message: error.message,
|
|
208
|
-
stack: error.stack || new Error().stack || "",
|
|
209
|
-
};
|
|
210
|
-
}
|
|
211
|
-
return {
|
|
212
|
-
message: error,
|
|
213
|
-
stack: new Error().stack || "",
|
|
214
|
-
};
|
|
215
|
-
}
|
|
216
|
-
formatErrorHistory(errorHistory, currentError, totalAttempts) {
|
|
217
|
-
const allErrors = [...errorHistory, currentError];
|
|
218
|
-
if (allErrors.length === 1) {
|
|
219
|
-
return currentError;
|
|
220
|
-
}
|
|
221
|
-
const messageLines = [`Job failed after ${totalAttempts} attempts:`];
|
|
222
|
-
const stackLines = [];
|
|
223
|
-
allErrors.forEach((error, index) => {
|
|
224
|
-
messageLines.push(`[Attempt ${index + 1}] ${error.message}`);
|
|
225
|
-
stackLines.push(`[Attempt ${index + 1}] Stack trace:\n${error.stack}`);
|
|
226
|
-
});
|
|
227
|
-
return {
|
|
228
|
-
message: messageLines.join("\n"),
|
|
229
|
-
stack: stackLines.join("\n\n"),
|
|
230
|
-
};
|
|
231
|
-
}
|
|
232
|
-
}
|
|
233
|
-
//# sourceMappingURL=simple-job-executor-manager.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"simple-job-executor-manager.js","sourceRoot":"","sources":["../../../src/executor/simple-job-executor-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
import type { IDocumentOperationStorage, IDocumentStorage } from "document-drive";
|
|
2
|
-
import type { IDocumentMetaCache } from "../cache/document-meta-cache-types.js";
|
|
3
|
-
import type { IOperationIndex } from "../cache/operation-index-types.js";
|
|
4
|
-
import type { IWriteCache } from "../cache/write/interfaces.js";
|
|
5
|
-
import type { IEventBus } from "../events/interfaces.js";
|
|
6
|
-
import type { ILogger } from "../logging/types.js";
|
|
7
|
-
import type { Job } from "../queue/types.js";
|
|
8
|
-
import type { IDocumentModelRegistry } from "../registry/interfaces.js";
|
|
9
|
-
import type { SignatureVerificationHandler } from "../signer/types.js";
|
|
10
|
-
import type { IOperationStore } from "../storage/interfaces.js";
|
|
11
|
-
import type { IJobExecutor } from "./interfaces.js";
|
|
12
|
-
import type { JobExecutorConfig, JobResult } from "./types.js";
|
|
13
|
-
/**
|
|
14
|
-
* Simple job executor that processes a job by applying actions through document model reducers.
|
|
15
|
-
*
|
|
16
|
-
* @see docs/planning/Storage/IOperationStore.md for storage schema
|
|
17
|
-
* @see docs/planning/Operations/index.md for operation structure
|
|
18
|
-
* @see docs/planning/Jobs/reshuffle.md for skip mechanism details
|
|
19
|
-
*/
|
|
20
|
-
export declare class SimpleJobExecutor implements IJobExecutor {
|
|
21
|
-
private logger;
|
|
22
|
-
private registry;
|
|
23
|
-
private documentStorage;
|
|
24
|
-
private operationStorage;
|
|
25
|
-
private operationStore;
|
|
26
|
-
private eventBus;
|
|
27
|
-
private writeCache;
|
|
28
|
-
private operationIndex;
|
|
29
|
-
private documentMetaCache;
|
|
30
|
-
private signatureVerifier?;
|
|
31
|
-
private config;
|
|
32
|
-
constructor(logger: ILogger, registry: IDocumentModelRegistry, documentStorage: IDocumentStorage, operationStorage: IDocumentOperationStorage, operationStore: IOperationStore, eventBus: IEventBus, writeCache: IWriteCache, operationIndex: IOperationIndex, documentMetaCache: IDocumentMetaCache, config: JobExecutorConfig, signatureVerifier?: SignatureVerificationHandler | undefined);
|
|
33
|
-
/**
|
|
34
|
-
* Execute a single job by applying all its actions through the appropriate reducers.
|
|
35
|
-
* Actions are processed sequentially in order.
|
|
36
|
-
*/
|
|
37
|
-
executeJob(job: Job): Promise<JobResult>;
|
|
38
|
-
private processActions;
|
|
39
|
-
/**
|
|
40
|
-
* Execute a document scope action (CREATE_DOCUMENT, DELETE_DOCUMENT, UPGRADE_DOCUMENT,
|
|
41
|
-
* ADD_RELATIONSHIP, REMOVE_RELATIONSHIP) by dispatching to the appropriate handler.
|
|
42
|
-
*/
|
|
43
|
-
private executeDocumentAction;
|
|
44
|
-
/**
|
|
45
|
-
* Execute a CREATE_DOCUMENT system action.
|
|
46
|
-
* This creates a new document in storage along with its initial operation.
|
|
47
|
-
* For a new document, the operation index is always 0.
|
|
48
|
-
*/
|
|
49
|
-
private executeCreateDocumentAction;
|
|
50
|
-
/**
|
|
51
|
-
* Execute a DELETE_DOCUMENT system action.
|
|
52
|
-
* This deletes a document from legacy storage and writes the operation to IOperationStore.
|
|
53
|
-
* The operation index is determined from the document's current operation count.
|
|
54
|
-
*/
|
|
55
|
-
private executeDeleteDocumentAction;
|
|
56
|
-
/**
|
|
57
|
-
* Execute an UPGRADE_DOCUMENT system action.
|
|
58
|
-
* Handles initial upgrades (version 0 to N), same-version no-ops, and multi-step upgrade chains.
|
|
59
|
-
* The operation index is determined from the document's current operation count.
|
|
60
|
-
*/
|
|
61
|
-
private executeUpgradeDocumentAction;
|
|
62
|
-
private executeAddRelationshipAction;
|
|
63
|
-
private executeRemoveRelationshipAction;
|
|
64
|
-
/**
|
|
65
|
-
* Execute a regular document action by applying it through the document model reducer.
|
|
66
|
-
* If sourceOperation is provided (for load jobs), its id and timestamp are preserved.
|
|
67
|
-
*/
|
|
68
|
-
private executeRegularAction;
|
|
69
|
-
private createOperation;
|
|
70
|
-
private executeLoadJob;
|
|
71
|
-
private writeOperationToStore;
|
|
72
|
-
private updateDocumentRevision;
|
|
73
|
-
private writeCacheState;
|
|
74
|
-
private buildSuccessResult;
|
|
75
|
-
private buildErrorResult;
|
|
76
|
-
private verifyOperationSignatures;
|
|
77
|
-
private verifyActionSignatures;
|
|
78
|
-
private accumulateResultOrReturnError;
|
|
79
|
-
}
|
|
80
|
-
//# sourceMappingURL=simple-job-executor.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"simple-job-executor.d.ts","sourceRoot":"","sources":["../../../src/executor/simple-job-executor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,yBAAyB,EACzB,gBAAgB,EACjB,MAAM,gBAAgB,CAAC;AAexB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAChF,OAAO,KAAK,EACV,eAAe,EAEhB,MAAM,mCAAmC,CAAC;AAE3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAKzD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAKxE,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,oBAAoB,CAAC;AACvE,OAAO,KAAK,EACV,eAAe,EAEhB,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,KAAK,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAyB/D;;;;;;GAMG;AACH,qBAAa,iBAAkB,YAAW,YAAY;IAIlD,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,eAAe;IACvB,OAAO,CAAC,gBAAgB;IACxB,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,iBAAiB;IAEzB,OAAO,CAAC,iBAAiB,CAAC;IAb5B,OAAO,CAAC,MAAM,CAA8B;gBAGlC,MAAM,EAAE,OAAO,EACf,QAAQ,EAAE,sBAAsB,EAChC,eAAe,EAAE,gBAAgB,EACjC,gBAAgB,EAAE,yBAAyB,EAC3C,cAAc,EAAE,eAAe,EAC/B,QAAQ,EAAE,SAAS,EACnB,UAAU,EAAE,WAAW,EACvB,cAAc,EAAE,eAAe,EAC/B,iBAAiB,EAAE,kBAAkB,EAC7C,MAAM,EAAE,iBAAiB,EACjB,iBAAiB,CAAC,EAAE,4BAA4B,YAAA;IAY1D;;;OAGG;IACG,UAAU,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,SAAS,CAAC;YAsEhC,cAAc;IAmE5B;;;OAGG;YACW,qBAAqB;IAkEnC;;;;OAIG;YACW,2BAA2B;IA0IzC;;;;OAIG;YACW,2BAA2B;IAiIzC;;;;OAIG;YACW,4BAA4B;YAwL5B,4BAA4B;YAkJ5B,+BAA+B;IAwI7C;;;OAGG;YACW,oBAAoB;IAsMlC,OAAO,CAAC,eAAe;YAuBT,cAAc;YAoKd,qBAAqB;IAyCnC,OAAO,CAAC,sBAAsB;IAW9B,OAAO,CAAC,eAAe;IAgBvB,OAAO,CAAC,kBAAkB;IA6B1B,OAAO,CAAC,gBAAgB;YAaV,yBAAyB;YA8CzB,sBAAsB;IA2DpC,OAAO,CAAC,6BAA6B;CAgBtC"}
|