@powerhousedao/reactor 6.0.0-dev.7 → 6.0.0-dev.77
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/cache/collection-membership-cache.d.ts +13 -0
- package/dist/src/cache/collection-membership-cache.d.ts.map +1 -0
- package/dist/src/cache/document-meta-cache.d.ts.map +1 -1
- package/dist/src/cache/kysely-operation-index.d.ts +6 -1
- package/dist/src/cache/kysely-operation-index.d.ts.map +1 -1
- package/dist/src/cache/kysely-write-cache.d.ts +9 -2
- package/dist/src/cache/kysely-write-cache.d.ts.map +1 -1
- package/dist/src/cache/operation-index-types.d.ts +16 -2
- package/dist/src/cache/operation-index-types.d.ts.map +1 -1
- package/dist/src/cache/write/interfaces.d.ts +7 -2
- package/dist/src/cache/write/interfaces.d.ts.map +1 -1
- package/dist/src/client/reactor-client.d.ts +13 -10
- package/dist/src/client/reactor-client.d.ts.map +1 -1
- package/dist/src/client/types.d.ts +25 -6
- package/dist/src/client/types.d.ts.map +1 -1
- package/dist/src/core/reactor-builder.d.ts +23 -7
- package/dist/src/core/reactor-builder.d.ts.map +1 -1
- package/dist/src/core/reactor-client-builder.d.ts +5 -4
- package/dist/src/core/reactor-client-builder.d.ts.map +1 -1
- package/dist/src/core/reactor.d.ts +20 -80
- package/dist/src/core/reactor.d.ts.map +1 -1
- package/dist/src/core/types.d.ts +64 -28
- package/dist/src/core/types.d.ts.map +1 -1
- package/dist/src/core/utils.d.ts +39 -3
- package/dist/src/core/utils.d.ts.map +1 -1
- package/dist/src/events/types.d.ts +35 -10
- package/dist/src/events/types.d.ts.map +1 -1
- package/dist/src/executor/document-action-handler.d.ts +37 -0
- package/dist/src/executor/document-action-handler.d.ts.map +1 -0
- package/dist/src/executor/signature-verifier.d.ts +9 -0
- package/dist/src/executor/signature-verifier.d.ts.map +1 -0
- package/dist/src/executor/simple-job-executor-manager.d.ts +6 -1
- package/dist/src/executor/simple-job-executor-manager.d.ts.map +1 -1
- package/dist/src/executor/simple-job-executor.d.ts +6 -46
- package/dist/src/executor/simple-job-executor.d.ts.map +1 -1
- package/dist/src/executor/types.d.ts +1 -3
- package/dist/src/executor/types.d.ts.map +1 -1
- package/dist/src/executor/util.d.ts +12 -2
- package/dist/src/executor/util.d.ts.map +1 -1
- package/dist/src/index.d.ts +11 -9
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +19998 -61
- package/dist/src/job-tracker/in-memory-job-tracker.d.ts +4 -3
- package/dist/src/job-tracker/in-memory-job-tracker.d.ts.map +1 -1
- package/dist/src/job-tracker/interfaces.d.ts +3 -1
- package/dist/src/job-tracker/interfaces.d.ts.map +1 -1
- package/dist/src/logging/console.d.ts +1 -22
- package/dist/src/logging/console.d.ts.map +1 -1
- package/dist/src/logging/types.d.ts +1 -11
- package/dist/src/logging/types.d.ts.map +1 -1
- package/dist/src/processors/index.d.ts +1 -1
- package/dist/src/processors/index.d.ts.map +1 -1
- package/dist/src/processors/processor-manager.d.ts +2 -2
- package/dist/src/processors/processor-manager.d.ts.map +1 -1
- package/dist/src/processors/relational/types.d.ts +2 -0
- package/dist/src/processors/relational/types.d.ts.map +1 -0
- package/dist/src/processors/relational/utils.d.ts +2 -0
- package/dist/src/processors/relational/utils.d.ts.map +1 -0
- package/dist/src/processors/utils.d.ts +2 -2
- package/dist/src/processors/utils.d.ts.map +1 -1
- package/dist/src/queue/job-execution-handle.d.ts +3 -0
- package/dist/src/queue/job-execution-handle.d.ts.map +1 -1
- package/dist/src/queue/queue.d.ts +30 -1
- package/dist/src/queue/queue.d.ts.map +1 -1
- package/dist/src/queue/types.d.ts +4 -3
- package/dist/src/queue/types.d.ts.map +1 -1
- package/dist/src/read-models/base-read-model.d.ts +1 -1
- package/dist/src/read-models/base-read-model.d.ts.map +1 -1
- package/dist/src/read-models/coordinator.d.ts +2 -2
- package/dist/src/read-models/coordinator.d.ts.map +1 -1
- package/dist/src/read-models/document-view.d.ts +6 -3
- package/dist/src/read-models/document-view.d.ts.map +1 -1
- package/dist/src/read-models/interfaces.d.ts +1 -1
- package/dist/src/read-models/interfaces.d.ts.map +1 -1
- package/dist/src/registry/document-model-resolver.d.ts +29 -0
- package/dist/src/registry/document-model-resolver.d.ts.map +1 -0
- package/dist/src/registry/implementation.d.ts +4 -0
- package/dist/src/registry/implementation.d.ts.map +1 -1
- package/dist/src/registry/index.d.ts +3 -1
- package/dist/src/registry/index.d.ts.map +1 -1
- package/dist/src/registry/interfaces.d.ts +8 -0
- package/dist/src/registry/interfaces.d.ts.map +1 -1
- package/dist/src/shared/awaiter.d.ts +2 -2
- package/dist/src/shared/awaiter.d.ts.map +1 -1
- package/dist/src/shared/collect-all-pages.d.ts +7 -0
- package/dist/src/shared/collect-all-pages.d.ts.map +1 -0
- package/dist/src/shared/drive-url.d.ts +15 -0
- package/dist/src/shared/drive-url.d.ts.map +1 -0
- package/dist/src/shared/errors.d.ts +9 -0
- package/dist/src/shared/errors.d.ts.map +1 -1
- package/dist/src/shared/factories.d.ts +6 -2
- package/dist/src/shared/factories.d.ts.map +1 -1
- package/dist/src/shared/types.d.ts +32 -6
- package/dist/src/shared/types.d.ts.map +1 -1
- package/dist/src/signer/passthrough-signer.d.ts +1 -1
- package/dist/src/signer/passthrough-signer.d.ts.map +1 -1
- package/dist/src/storage/interfaces.d.ts +238 -124
- package/dist/src/storage/interfaces.d.ts.map +1 -1
- package/dist/src/storage/kysely/document-indexer.d.ts +8 -7
- package/dist/src/storage/kysely/document-indexer.d.ts.map +1 -1
- package/dist/src/storage/kysely/store.d.ts +5 -4
- package/dist/src/storage/kysely/store.d.ts.map +1 -1
- package/dist/src/storage/kysely/sync-cursor-storage.d.ts +1 -1
- package/dist/src/storage/kysely/sync-cursor-storage.d.ts.map +1 -1
- package/dist/src/storage/kysely/sync-dead-letter-storage.d.ts +17 -0
- package/dist/src/storage/kysely/sync-dead-letter-storage.d.ts.map +1 -0
- package/dist/src/storage/kysely/types.d.ts +22 -0
- package/dist/src/storage/kysely/types.d.ts.map +1 -1
- package/dist/src/storage/migrations/011_add_cursor_type_column.d.ts +3 -0
- package/dist/src/storage/migrations/011_add_cursor_type_column.d.ts.map +1 -0
- package/dist/src/storage/migrations/012_add_source_remote_column.d.ts +3 -0
- package/dist/src/storage/migrations/012_add_source_remote_column.d.ts.map +1 -0
- package/dist/src/storage/migrations/013_create_sync_dead_letters_table.d.ts +3 -0
- package/dist/src/storage/migrations/013_create_sync_dead_letters_table.d.ts.map +1 -0
- package/dist/src/storage/migrations/migrator.d.ts.map +1 -1
- package/dist/src/subs/default-error-handler.d.ts.map +1 -1
- package/dist/src/subs/subscription-notification-read-model.d.ts +3 -2
- package/dist/src/subs/subscription-notification-read-model.d.ts.map +1 -1
- package/dist/src/sync/batch-aggregator.d.ts +25 -0
- package/dist/src/sync/batch-aggregator.d.ts.map +1 -0
- package/dist/src/sync/buffered-mailbox.d.ts +36 -0
- package/dist/src/sync/buffered-mailbox.d.ts.map +1 -0
- package/dist/src/sync/channels/{gql-channel.d.ts → gql-req-channel.d.ts} +49 -42
- package/dist/src/sync/channels/gql-req-channel.d.ts.map +1 -0
- package/dist/src/sync/channels/gql-request-channel-factory.d.ts +32 -0
- package/dist/src/sync/channels/gql-request-channel-factory.d.ts.map +1 -0
- package/dist/src/sync/channels/gql-res-channel.d.ts +25 -0
- package/dist/src/sync/channels/gql-res-channel.d.ts.map +1 -0
- package/dist/src/sync/channels/gql-response-channel-factory.d.ts +13 -0
- package/dist/src/sync/channels/gql-response-channel-factory.d.ts.map +1 -0
- package/dist/src/sync/channels/index.d.ts +6 -4
- package/dist/src/sync/channels/index.d.ts.map +1 -1
- package/dist/src/sync/channels/interval-poll-timer.d.ts +40 -0
- package/dist/src/sync/channels/interval-poll-timer.d.ts.map +1 -0
- package/dist/src/sync/channels/poll-timer.d.ts +14 -0
- package/dist/src/sync/channels/poll-timer.d.ts.map +1 -0
- package/dist/src/sync/channels/utils.d.ts +15 -1
- package/dist/src/sync/channels/utils.d.ts.map +1 -1
- package/dist/src/sync/index.d.ts +10 -6
- package/dist/src/sync/index.d.ts.map +1 -1
- package/dist/src/sync/interfaces.d.ts +34 -21
- package/dist/src/sync/interfaces.d.ts.map +1 -1
- package/dist/src/sync/mailbox.d.ts +51 -12
- package/dist/src/sync/mailbox.d.ts.map +1 -1
- package/dist/src/sync/sync-awaiter.d.ts +34 -0
- package/dist/src/sync/sync-awaiter.d.ts.map +1 -0
- package/dist/src/sync/sync-builder.d.ts +5 -1
- package/dist/src/sync/sync-builder.d.ts.map +1 -1
- package/dist/src/sync/sync-manager.d.ts +21 -8
- package/dist/src/sync/sync-manager.d.ts.map +1 -1
- package/dist/src/sync/sync-operation.d.ts +4 -2
- package/dist/src/sync/sync-operation.d.ts.map +1 -1
- package/dist/src/sync/sync-status-tracker.d.ts +31 -0
- package/dist/src/sync/sync-status-tracker.d.ts.map +1 -0
- package/dist/src/sync/types.d.ts +90 -2
- package/dist/src/sync/types.d.ts.map +1 -1
- package/dist/src/sync/utils.d.ts +37 -2
- package/dist/src/sync/utils.d.ts.map +1 -1
- package/dist/src/utils/reshuffle.d.ts +22 -5
- package/dist/src/utils/reshuffle.d.ts.map +1 -1
- package/package.json +24 -20
- package/dist/src/actions/index.js +0 -76
- package/dist/src/actions/index.js.map +0 -1
- package/dist/src/cache/buffer/ring-buffer.js +0 -69
- package/dist/src/cache/buffer/ring-buffer.js.map +0 -1
- package/dist/src/cache/document-meta-cache-types.js +0 -2
- package/dist/src/cache/document-meta-cache-types.js.map +0 -1
- package/dist/src/cache/document-meta-cache.js +0 -128
- package/dist/src/cache/document-meta-cache.js.map +0 -1
- package/dist/src/cache/index.js +0 -2
- package/dist/src/cache/index.js.map +0 -1
- package/dist/src/cache/kysely-operation-index.js +0 -250
- package/dist/src/cache/kysely-operation-index.js.map +0 -1
- package/dist/src/cache/kysely-write-cache.js +0 -388
- package/dist/src/cache/kysely-write-cache.js.map +0 -1
- package/dist/src/cache/lru/lru-tracker.js +0 -96
- package/dist/src/cache/lru/lru-tracker.js.map +0 -1
- package/dist/src/cache/operation-index-types.js +0 -4
- package/dist/src/cache/operation-index-types.js.map +0 -1
- package/dist/src/cache/write/interfaces.js +0 -2
- package/dist/src/cache/write/interfaces.js.map +0 -1
- package/dist/src/cache/write-cache-types.js +0 -2
- package/dist/src/cache/write-cache-types.js.map +0 -1
- package/dist/src/client/reactor-client.js +0 -406
- package/dist/src/client/reactor-client.js.map +0 -1
- package/dist/src/client/types.js +0 -14
- package/dist/src/client/types.js.map +0 -1
- package/dist/src/core/reactor-builder.js +0 -231
- package/dist/src/core/reactor-builder.js.map +0 -1
- package/dist/src/core/reactor-client-builder.js +0 -123
- package/dist/src/core/reactor-client-builder.js.map +0 -1
- package/dist/src/core/reactor.js +0 -981
- package/dist/src/core/reactor.js.map +0 -1
- package/dist/src/core/types.js +0 -2
- package/dist/src/core/types.js.map +0 -1
- package/dist/src/core/utils.js +0 -171
- package/dist/src/core/utils.js.map +0 -1
- package/dist/src/events/event-bus.js +0 -53
- package/dist/src/events/event-bus.js.map +0 -1
- package/dist/src/events/interfaces.js +0 -2
- package/dist/src/events/interfaces.js.map +0 -1
- package/dist/src/events/types.js +0 -28
- package/dist/src/events/types.js.map +0 -1
- package/dist/src/executor/interfaces.js +0 -2
- package/dist/src/executor/interfaces.js.map +0 -1
- package/dist/src/executor/simple-job-executor-manager.js +0 -233
- package/dist/src/executor/simple-job-executor-manager.js.map +0 -1
- package/dist/src/executor/simple-job-executor.js +0 -898
- package/dist/src/executor/simple-job-executor.js.map +0 -1
- package/dist/src/executor/types.js +0 -11
- package/dist/src/executor/types.js.map +0 -1
- package/dist/src/executor/util.js +0 -184
- package/dist/src/executor/util.js.map +0 -1
- package/dist/src/index.js.map +0 -1
- package/dist/src/job-tracker/in-memory-job-tracker.js +0 -112
- package/dist/src/job-tracker/in-memory-job-tracker.js.map +0 -1
- package/dist/src/job-tracker/index.js +0 -2
- package/dist/src/job-tracker/index.js.map +0 -1
- package/dist/src/job-tracker/interfaces.js +0 -2
- package/dist/src/job-tracker/interfaces.js.map +0 -1
- package/dist/src/logging/console.js +0 -108
- package/dist/src/logging/console.js.map +0 -1
- package/dist/src/logging/types.js +0 -2
- package/dist/src/logging/types.js.map +0 -1
- package/dist/src/processors/index.js +0 -2
- package/dist/src/processors/index.js.map +0 -1
- package/dist/src/processors/processor-manager.js +0 -165
- package/dist/src/processors/processor-manager.js.map +0 -1
- package/dist/src/processors/types.d.ts +0 -63
- package/dist/src/processors/types.d.ts.map +0 -1
- package/dist/src/processors/types.js +0 -2
- package/dist/src/processors/types.js.map +0 -1
- package/dist/src/processors/utils.js +0 -58
- package/dist/src/processors/utils.js.map +0 -1
- package/dist/src/queue/interfaces.js +0 -2
- package/dist/src/queue/interfaces.js.map +0 -1
- package/dist/src/queue/job-execution-handle.js +0 -62
- package/dist/src/queue/job-execution-handle.js.map +0 -1
- package/dist/src/queue/queue.js +0 -384
- package/dist/src/queue/queue.js.map +0 -1
- package/dist/src/queue/types.js +0 -19
- package/dist/src/queue/types.js.map +0 -1
- package/dist/src/read-models/base-read-model.js +0 -143
- package/dist/src/read-models/base-read-model.js.map +0 -1
- package/dist/src/read-models/coordinator.js +0 -72
- package/dist/src/read-models/coordinator.js.map +0 -1
- package/dist/src/read-models/document-view.js +0 -375
- package/dist/src/read-models/document-view.js.map +0 -1
- package/dist/src/read-models/interfaces.js +0 -2
- package/dist/src/read-models/interfaces.js.map +0 -1
- package/dist/src/read-models/types.js +0 -2
- package/dist/src/read-models/types.js.map +0 -1
- package/dist/src/registry/implementation.js +0 -216
- package/dist/src/registry/implementation.js.map +0 -1
- package/dist/src/registry/index.js +0 -2
- package/dist/src/registry/index.js.map +0 -1
- package/dist/src/registry/interfaces.js +0 -2
- package/dist/src/registry/interfaces.js.map +0 -1
- package/dist/src/shared/awaiter.js +0 -123
- package/dist/src/shared/awaiter.js.map +0 -1
- package/dist/src/shared/consistency-tracker.js +0 -123
- package/dist/src/shared/consistency-tracker.js.map +0 -1
- package/dist/src/shared/errors.js +0 -75
- package/dist/src/shared/errors.js.map +0 -1
- package/dist/src/shared/factories.js +0 -33
- package/dist/src/shared/factories.js.map +0 -1
- package/dist/src/shared/types.js +0 -38
- package/dist/src/shared/types.js.map +0 -1
- package/dist/src/shared/utils.js +0 -8
- package/dist/src/shared/utils.js.map +0 -1
- package/dist/src/signer/passthrough-signer.js +0 -19
- package/dist/src/signer/passthrough-signer.js.map +0 -1
- package/dist/src/signer/types.js +0 -2
- package/dist/src/signer/types.js.map +0 -1
- package/dist/src/storage/consistency-aware-legacy-storage.d.ts +0 -33
- package/dist/src/storage/consistency-aware-legacy-storage.d.ts.map +0 -1
- package/dist/src/storage/consistency-aware-legacy-storage.js +0 -65
- package/dist/src/storage/consistency-aware-legacy-storage.js.map +0 -1
- package/dist/src/storage/index.js +0 -3
- package/dist/src/storage/index.js.map +0 -1
- package/dist/src/storage/interfaces.js +0 -19
- package/dist/src/storage/interfaces.js.map +0 -1
- package/dist/src/storage/kysely/document-indexer.js +0 -350
- package/dist/src/storage/kysely/document-indexer.js.map +0 -1
- package/dist/src/storage/kysely/keyframe-store.js +0 -64
- package/dist/src/storage/kysely/keyframe-store.js.map +0 -1
- package/dist/src/storage/kysely/store.js +0 -233
- package/dist/src/storage/kysely/store.js.map +0 -1
- package/dist/src/storage/kysely/sync-cursor-storage.js +0 -93
- package/dist/src/storage/kysely/sync-cursor-storage.js.map +0 -1
- package/dist/src/storage/kysely/sync-remote-storage.js +0 -133
- package/dist/src/storage/kysely/sync-remote-storage.js.map +0 -1
- package/dist/src/storage/kysely/types.js +0 -2
- package/dist/src/storage/kysely/types.js.map +0 -1
- package/dist/src/storage/migrations/001_create_operation_table.js +0 -41
- package/dist/src/storage/migrations/001_create_operation_table.js.map +0 -1
- package/dist/src/storage/migrations/002_create_keyframe_table.js +0 -27
- package/dist/src/storage/migrations/002_create_keyframe_table.js.map +0 -1
- package/dist/src/storage/migrations/003_create_document_table.js +0 -10
- package/dist/src/storage/migrations/003_create_document_table.js.map +0 -1
- package/dist/src/storage/migrations/004_create_document_relationship_table.js +0 -35
- package/dist/src/storage/migrations/004_create_document_relationship_table.js.map +0 -1
- package/dist/src/storage/migrations/005_create_indexer_state_table.js +0 -10
- package/dist/src/storage/migrations/005_create_indexer_state_table.js.map +0 -1
- package/dist/src/storage/migrations/006_create_document_snapshot_table.js +0 -49
- package/dist/src/storage/migrations/006_create_document_snapshot_table.js.map +0 -1
- package/dist/src/storage/migrations/007_create_slug_mapping_table.js +0 -24
- package/dist/src/storage/migrations/007_create_slug_mapping_table.js.map +0 -1
- package/dist/src/storage/migrations/008_create_view_state_table.js +0 -10
- package/dist/src/storage/migrations/008_create_view_state_table.js.map +0 -1
- package/dist/src/storage/migrations/009_create_operation_index_tables.js +0 -50
- package/dist/src/storage/migrations/009_create_operation_index_tables.js.map +0 -1
- package/dist/src/storage/migrations/010_create_sync_tables.js +0 -43
- package/dist/src/storage/migrations/010_create_sync_tables.js.map +0 -1
- package/dist/src/storage/migrations/index.js +0 -3
- package/dist/src/storage/migrations/index.js.map +0 -1
- package/dist/src/storage/migrations/migrator.js +0 -78
- package/dist/src/storage/migrations/migrator.js.map +0 -1
- package/dist/src/storage/migrations/run-migrations.js +0 -58
- package/dist/src/storage/migrations/run-migrations.js.map +0 -1
- package/dist/src/storage/migrations/types.js +0 -2
- package/dist/src/storage/migrations/types.js.map +0 -1
- package/dist/src/storage/txn.js +0 -42
- package/dist/src/storage/txn.js.map +0 -1
- package/dist/src/subs/default-error-handler.js +0 -27
- package/dist/src/subs/default-error-handler.js.map +0 -1
- package/dist/src/subs/react-subscription-manager.js +0 -185
- package/dist/src/subs/react-subscription-manager.js.map +0 -1
- package/dist/src/subs/subscription-notification-read-model.js +0 -62
- package/dist/src/subs/subscription-notification-read-model.js.map +0 -1
- package/dist/src/subs/types.js +0 -2
- package/dist/src/subs/types.js.map +0 -1
- package/dist/src/sync/channels/composite-channel-factory.d.ts +0 -30
- package/dist/src/sync/channels/composite-channel-factory.d.ts.map +0 -1
- package/dist/src/sync/channels/composite-channel-factory.js +0 -87
- package/dist/src/sync/channels/composite-channel-factory.js.map +0 -1
- package/dist/src/sync/channels/gql-channel-factory.d.ts +0 -25
- package/dist/src/sync/channels/gql-channel-factory.d.ts.map +0 -1
- package/dist/src/sync/channels/gql-channel-factory.js +0 -76
- package/dist/src/sync/channels/gql-channel-factory.js.map +0 -1
- package/dist/src/sync/channels/gql-channel.d.ts.map +0 -1
- package/dist/src/sync/channels/gql-channel.js +0 -423
- package/dist/src/sync/channels/gql-channel.js.map +0 -1
- package/dist/src/sync/channels/index.js +0 -6
- package/dist/src/sync/channels/index.js.map +0 -1
- package/dist/src/sync/channels/polling-channel.d.ts +0 -39
- package/dist/src/sync/channels/polling-channel.d.ts.map +0 -1
- package/dist/src/sync/channels/polling-channel.js +0 -72
- package/dist/src/sync/channels/polling-channel.js.map +0 -1
- package/dist/src/sync/channels/utils.js +0 -96
- package/dist/src/sync/channels/utils.js.map +0 -1
- package/dist/src/sync/errors.js +0 -17
- package/dist/src/sync/errors.js.map +0 -1
- package/dist/src/sync/index.js +0 -9
- package/dist/src/sync/index.js.map +0 -1
- package/dist/src/sync/interfaces.js +0 -2
- package/dist/src/sync/interfaces.js.map +0 -1
- package/dist/src/sync/mailbox.js +0 -59
- package/dist/src/sync/mailbox.js.map +0 -1
- package/dist/src/sync/sync-builder.js +0 -39
- package/dist/src/sync/sync-builder.js.map +0 -1
- package/dist/src/sync/sync-manager.js +0 -266
- package/dist/src/sync/sync-manager.js.map +0 -1
- package/dist/src/sync/sync-operation.js +0 -63
- package/dist/src/sync/sync-operation.js.map +0 -1
- package/dist/src/sync/types.js +0 -16
- package/dist/src/sync/types.js.map +0 -1
- package/dist/src/sync/utils.js +0 -78
- package/dist/src/sync/utils.js.map +0 -1
- package/dist/src/utils/reshuffle.js +0 -47
- package/dist/src/utils/reshuffle.js.map +0 -1
|
@@ -1,123 +0,0 @@
|
|
|
1
|
-
import { OperationEventTypes, } from "../events/types.js";
|
|
2
|
-
import { JobStatus } from "./types.js";
|
|
3
|
-
/**
|
|
4
|
-
* Checks if a job status is terminal (job has finished).
|
|
5
|
-
* WRITE_COMPLETED is not terminal - it's an intermediate state.
|
|
6
|
-
* Only READ_MODELS_READY and FAILED are truly terminal.
|
|
7
|
-
*/
|
|
8
|
-
function isTerminalStatus(status) {
|
|
9
|
-
return status === JobStatus.READ_MODELS_READY || status === JobStatus.FAILED;
|
|
10
|
-
}
|
|
11
|
-
/**
|
|
12
|
-
* Event-driven implementation of IJobAwaiter.
|
|
13
|
-
* Subscribes to operation events to detect job completion without polling.
|
|
14
|
-
*/
|
|
15
|
-
export class JobAwaiter {
|
|
16
|
-
eventBus;
|
|
17
|
-
getJobStatus;
|
|
18
|
-
pendingJobs = new Map();
|
|
19
|
-
unsubscribers = [];
|
|
20
|
-
constructor(eventBus, getJobStatus) {
|
|
21
|
-
this.eventBus = eventBus;
|
|
22
|
-
this.getJobStatus = getJobStatus;
|
|
23
|
-
this.subscribeToEvents();
|
|
24
|
-
}
|
|
25
|
-
subscribeToEvents() {
|
|
26
|
-
this.unsubscribers.push(this.eventBus.subscribe(OperationEventTypes.OPERATION_WRITTEN, async (_type, event) => {
|
|
27
|
-
await this.handleOperationWritten(event);
|
|
28
|
-
}));
|
|
29
|
-
this.unsubscribers.push(this.eventBus.subscribe(OperationEventTypes.OPERATIONS_READY, async (_type, event) => {
|
|
30
|
-
await this.handleOperationsReady(event);
|
|
31
|
-
}));
|
|
32
|
-
this.unsubscribers.push(this.eventBus.subscribe(OperationEventTypes.JOB_FAILED, async (_type, event) => {
|
|
33
|
-
await this.handleJobFailed(event);
|
|
34
|
-
}));
|
|
35
|
-
}
|
|
36
|
-
shutdown() {
|
|
37
|
-
for (const unsubscribe of this.unsubscribers) {
|
|
38
|
-
unsubscribe();
|
|
39
|
-
}
|
|
40
|
-
this.unsubscribers = [];
|
|
41
|
-
for (const [, waiters] of this.pendingJobs) {
|
|
42
|
-
for (const waiter of waiters) {
|
|
43
|
-
waiter.reject(new Error("JobAwaiter destroyed"));
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
this.pendingJobs.clear();
|
|
47
|
-
}
|
|
48
|
-
async waitForJob(jobId, signal) {
|
|
49
|
-
if (signal?.aborted) {
|
|
50
|
-
throw new Error("Operation aborted");
|
|
51
|
-
}
|
|
52
|
-
const currentStatus = await this.getJobStatus(jobId, signal);
|
|
53
|
-
if (isTerminalStatus(currentStatus.status)) {
|
|
54
|
-
return currentStatus;
|
|
55
|
-
}
|
|
56
|
-
const promise = new Promise((resolve, reject) => {
|
|
57
|
-
const waiter = { resolve, reject, signal };
|
|
58
|
-
const existingWaiters = this.pendingJobs.get(jobId) || [];
|
|
59
|
-
existingWaiters.push(waiter);
|
|
60
|
-
this.pendingJobs.set(jobId, existingWaiters);
|
|
61
|
-
if (signal) {
|
|
62
|
-
const abortHandler = () => {
|
|
63
|
-
const waiters = this.pendingJobs.get(jobId);
|
|
64
|
-
if (waiters) {
|
|
65
|
-
const index = waiters.indexOf(waiter);
|
|
66
|
-
if (index !== -1) {
|
|
67
|
-
waiters.splice(index, 1);
|
|
68
|
-
if (waiters.length === 0) {
|
|
69
|
-
this.pendingJobs.delete(jobId);
|
|
70
|
-
}
|
|
71
|
-
waiter.reject(new Error("Operation aborted"));
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
};
|
|
75
|
-
signal.addEventListener("abort", abortHandler, { once: true });
|
|
76
|
-
}
|
|
77
|
-
});
|
|
78
|
-
return promise;
|
|
79
|
-
}
|
|
80
|
-
async handleOperationWritten(event) {
|
|
81
|
-
const jobId = event.jobId;
|
|
82
|
-
await this.checkAndResolveWaiters(jobId);
|
|
83
|
-
}
|
|
84
|
-
async handleOperationsReady(event) {
|
|
85
|
-
const jobId = event.jobId;
|
|
86
|
-
await this.checkAndResolveWaiters(jobId);
|
|
87
|
-
}
|
|
88
|
-
async handleJobFailed(event) {
|
|
89
|
-
await this.checkAndResolveWaiters(event.jobId);
|
|
90
|
-
}
|
|
91
|
-
async checkAndResolveWaiters(jobId) {
|
|
92
|
-
const waiters = this.pendingJobs.get(jobId);
|
|
93
|
-
if (!waiters || waiters.length === 0) {
|
|
94
|
-
return;
|
|
95
|
-
}
|
|
96
|
-
try {
|
|
97
|
-
const activeWaiters = waiters.filter((w) => !w.signal?.aborted);
|
|
98
|
-
if (activeWaiters.length === 0) {
|
|
99
|
-
this.pendingJobs.delete(jobId);
|
|
100
|
-
return;
|
|
101
|
-
}
|
|
102
|
-
const jobInfo = await this.getJobStatus(jobId, activeWaiters[0].signal);
|
|
103
|
-
if (isTerminalStatus(jobInfo.status)) {
|
|
104
|
-
this.pendingJobs.delete(jobId);
|
|
105
|
-
for (const waiter of activeWaiters) {
|
|
106
|
-
waiter.resolve(jobInfo);
|
|
107
|
-
}
|
|
108
|
-
for (const waiter of waiters) {
|
|
109
|
-
if (waiter.signal?.aborted) {
|
|
110
|
-
waiter.reject(new Error("Operation aborted"));
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
catch (error) {
|
|
116
|
-
this.pendingJobs.delete(jobId);
|
|
117
|
-
for (const waiter of waiters) {
|
|
118
|
-
waiter.reject(error instanceof Error ? error : new Error(String(error)));
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
//# sourceMappingURL=awaiter.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"awaiter.js","sourceRoot":"","sources":["../../../src/shared/awaiter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,123 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Creates a consistency key from documentId, scope, and branch.
|
|
3
|
-
*/
|
|
4
|
-
export function makeConsistencyKey(documentId, scope, branch) {
|
|
5
|
-
return `${documentId}:${scope}:${branch}`;
|
|
6
|
-
}
|
|
7
|
-
/**
|
|
8
|
-
* Tracks operation indexes for documents and provides read-after-write consistency guarantees.
|
|
9
|
-
* Maintains an in-memory map of the latest operation index for each (documentId, scope, branch) tuple.
|
|
10
|
-
*/
|
|
11
|
-
export class ConsistencyTracker {
|
|
12
|
-
state = new Map();
|
|
13
|
-
waiters = [];
|
|
14
|
-
update(coordinates) {
|
|
15
|
-
const deduplicated = this.deduplicateCoordinates(coordinates);
|
|
16
|
-
for (let i = 0; i < deduplicated.length; i++) {
|
|
17
|
-
const coord = deduplicated[i];
|
|
18
|
-
const key = makeConsistencyKey(coord.documentId, coord.scope, coord.branch);
|
|
19
|
-
const current = this.state.get(key);
|
|
20
|
-
if (current === undefined || coord.operationIndex > current) {
|
|
21
|
-
this.state.set(key, coord.operationIndex);
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
this.checkWaiters();
|
|
25
|
-
}
|
|
26
|
-
getLatest(key) {
|
|
27
|
-
return this.state.get(key);
|
|
28
|
-
}
|
|
29
|
-
waitFor(coordinates, timeoutMs, signal) {
|
|
30
|
-
if (signal?.aborted) {
|
|
31
|
-
return Promise.reject(new Error("Operation aborted"));
|
|
32
|
-
}
|
|
33
|
-
if (this.areCoordinatesSatisfied(coordinates)) {
|
|
34
|
-
return Promise.resolve();
|
|
35
|
-
}
|
|
36
|
-
return new Promise((resolve, reject) => {
|
|
37
|
-
const waiter = {
|
|
38
|
-
coordinates,
|
|
39
|
-
resolve,
|
|
40
|
-
reject,
|
|
41
|
-
signal,
|
|
42
|
-
};
|
|
43
|
-
if (timeoutMs !== undefined) {
|
|
44
|
-
waiter.timeoutId = setTimeout(() => {
|
|
45
|
-
this.removeWaiter(waiter);
|
|
46
|
-
reject(new Error(`Consistency wait timed out after ${timeoutMs}ms`));
|
|
47
|
-
}, timeoutMs);
|
|
48
|
-
}
|
|
49
|
-
if (signal) {
|
|
50
|
-
const abortHandler = () => {
|
|
51
|
-
this.removeWaiter(waiter);
|
|
52
|
-
reject(new Error("Operation aborted"));
|
|
53
|
-
};
|
|
54
|
-
signal.addEventListener("abort", abortHandler, { once: true });
|
|
55
|
-
}
|
|
56
|
-
this.waiters.push(waiter);
|
|
57
|
-
});
|
|
58
|
-
}
|
|
59
|
-
serialize() {
|
|
60
|
-
return Array.from(this.state.entries());
|
|
61
|
-
}
|
|
62
|
-
hydrate(entries) {
|
|
63
|
-
this.state.clear();
|
|
64
|
-
for (const [key, index] of entries) {
|
|
65
|
-
this.state.set(key, index);
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
deduplicateCoordinates(coordinates) {
|
|
69
|
-
const map = new Map();
|
|
70
|
-
for (let i = 0; i < coordinates.length; i++) {
|
|
71
|
-
const coord = coordinates[i];
|
|
72
|
-
const key = makeConsistencyKey(coord.documentId, coord.scope, coord.branch);
|
|
73
|
-
const existing = map.get(key);
|
|
74
|
-
if (!existing || coord.operationIndex > existing.operationIndex) {
|
|
75
|
-
map.set(key, coord);
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
return Array.from(map.values());
|
|
79
|
-
}
|
|
80
|
-
areCoordinatesSatisfied(coordinates) {
|
|
81
|
-
for (let i = 0; i < coordinates.length; i++) {
|
|
82
|
-
const coord = coordinates[i];
|
|
83
|
-
const key = makeConsistencyKey(coord.documentId, coord.scope, coord.branch);
|
|
84
|
-
const latest = this.state.get(key);
|
|
85
|
-
if (latest === undefined || latest < coord.operationIndex) {
|
|
86
|
-
return false;
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
return true;
|
|
90
|
-
}
|
|
91
|
-
checkWaiters() {
|
|
92
|
-
const satisfiedWaiters = [];
|
|
93
|
-
const unsatisfiedWaiters = [];
|
|
94
|
-
for (const waiter of this.waiters) {
|
|
95
|
-
if (waiter.signal?.aborted) {
|
|
96
|
-
continue;
|
|
97
|
-
}
|
|
98
|
-
if (this.areCoordinatesSatisfied(waiter.coordinates)) {
|
|
99
|
-
satisfiedWaiters.push(waiter);
|
|
100
|
-
}
|
|
101
|
-
else {
|
|
102
|
-
unsatisfiedWaiters.push(waiter);
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
this.waiters = unsatisfiedWaiters;
|
|
106
|
-
for (const waiter of satisfiedWaiters) {
|
|
107
|
-
if (waiter.timeoutId !== undefined) {
|
|
108
|
-
clearTimeout(waiter.timeoutId);
|
|
109
|
-
}
|
|
110
|
-
waiter.resolve();
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
removeWaiter(waiter) {
|
|
114
|
-
const index = this.waiters.indexOf(waiter);
|
|
115
|
-
if (index !== -1) {
|
|
116
|
-
this.waiters.splice(index, 1);
|
|
117
|
-
}
|
|
118
|
-
if (waiter.timeoutId !== undefined) {
|
|
119
|
-
clearTimeout(waiter.timeoutId);
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
//# sourceMappingURL=consistency-tracker.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"consistency-tracker.js","sourceRoot":"","sources":["../../../src/shared/consistency-tracker.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Error thrown when attempting to access a deleted document.
|
|
3
|
-
*/
|
|
4
|
-
export class DocumentDeletedError extends Error {
|
|
5
|
-
documentId;
|
|
6
|
-
deletedAtUtcIso;
|
|
7
|
-
constructor(documentId, deletedAtUtcIso = null) {
|
|
8
|
-
const message = deletedAtUtcIso
|
|
9
|
-
? `Document ${documentId} was deleted at ${deletedAtUtcIso}`
|
|
10
|
-
: `Document ${documentId} has been deleted`;
|
|
11
|
-
super(message);
|
|
12
|
-
this.name = "DocumentDeletedError";
|
|
13
|
-
this.documentId = documentId;
|
|
14
|
-
this.deletedAtUtcIso = deletedAtUtcIso;
|
|
15
|
-
Error.captureStackTrace(this, DocumentDeletedError);
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* Error thrown when attempting to add operations before CREATE_DOCUMENT.
|
|
20
|
-
*/
|
|
21
|
-
export class CreateDocumentRequiredError extends Error {
|
|
22
|
-
documentId;
|
|
23
|
-
scope;
|
|
24
|
-
constructor(documentId, scope) {
|
|
25
|
-
const message = `Document ${documentId} requires a CREATE_DOCUMENT operation at revision 0 in the "document" scope before operations can be added to scope "${scope}"`;
|
|
26
|
-
super(message);
|
|
27
|
-
this.name = "CreateDocumentRequiredError";
|
|
28
|
-
this.documentId = documentId;
|
|
29
|
-
this.scope = scope;
|
|
30
|
-
Error.captureStackTrace(this, CreateDocumentRequiredError);
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* Error thrown when an operation has an invalid signature.
|
|
35
|
-
*/
|
|
36
|
-
export class InvalidSignatureError extends Error {
|
|
37
|
-
documentId;
|
|
38
|
-
reason;
|
|
39
|
-
constructor(documentId, reason) {
|
|
40
|
-
super(`Invalid signature in document ${documentId}: ${reason}`);
|
|
41
|
-
this.name = "InvalidSignatureError";
|
|
42
|
-
this.documentId = documentId;
|
|
43
|
-
this.reason = reason;
|
|
44
|
-
Error.captureStackTrace(this, InvalidSignatureError);
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
/**
|
|
48
|
-
* Error thrown when attempting to downgrade a document version.
|
|
49
|
-
*/
|
|
50
|
-
export class DowngradeNotSupportedError extends Error {
|
|
51
|
-
documentType;
|
|
52
|
-
fromVersion;
|
|
53
|
-
toVersion;
|
|
54
|
-
constructor(documentType, fromVersion, toVersion) {
|
|
55
|
-
super(`Downgrade not supported for ${documentType}: cannot upgrade from version ${fromVersion} to ${toVersion}`);
|
|
56
|
-
this.name = "DowngradeNotSupportedError";
|
|
57
|
-
this.documentType = documentType;
|
|
58
|
-
this.fromVersion = fromVersion;
|
|
59
|
-
this.toVersion = toVersion;
|
|
60
|
-
Error.captureStackTrace(this, DowngradeNotSupportedError);
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
/**
|
|
64
|
-
* Error thrown when an upgrade manifest is required but not registered.
|
|
65
|
-
*/
|
|
66
|
-
export class UpgradeManifestNotFoundError extends Error {
|
|
67
|
-
documentType;
|
|
68
|
-
constructor(documentType) {
|
|
69
|
-
super(`No upgrade manifest registered for document type: ${documentType}`);
|
|
70
|
-
this.name = "UpgradeManifestNotFoundError";
|
|
71
|
-
this.documentType = documentType;
|
|
72
|
-
Error.captureStackTrace(this, UpgradeManifestNotFoundError);
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
//# sourceMappingURL=errors.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/shared/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,OAAO,oBAAqB,SAAQ,KAAK;IAC7B,UAAU,CAAS;IACnB,eAAe,CAAgB;IAE/C,YAAY,UAAkB,EAAE,kBAAiC,IAAI;QACnE,MAAM,OAAO,GAAG,eAAe;YAC7B,CAAC,CAAC,YAAY,UAAU,mBAAmB,eAAe,EAAE;YAC5D,CAAC,CAAC,YAAY,UAAU,mBAAmB,CAAC;QAE9C,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;QACnC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;QAEvC,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC;IACtD,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,2BAA4B,SAAQ,KAAK;IACpC,UAAU,CAAS;IACnB,KAAK,CAAS;IAE9B,YAAY,UAAkB,EAAE,KAAa;QAC3C,MAAM,OAAO,GAAG,YAAY,UAAU,wHAAwH,KAAK,GAAG,CAAC;QAEvK,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,6BAA6B,CAAC;QAC1C,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QAEnB,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,2BAA2B,CAAC,CAAC;IAC7D,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,qBAAsB,SAAQ,KAAK;IAC9B,UAAU,CAAS;IACnB,MAAM,CAAS;IAE/B,YAAY,UAAkB,EAAE,MAAc;QAC5C,KAAK,CAAC,iCAAiC,UAAU,KAAK,MAAM,EAAE,CAAC,CAAC;QAChE,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;QACpC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QAErB,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,qBAAqB,CAAC,CAAC;IACvD,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,0BAA2B,SAAQ,KAAK;IACnC,YAAY,CAAS;IACrB,WAAW,CAAS;IACpB,SAAS,CAAS;IAElC,YAAY,YAAoB,EAAE,WAAmB,EAAE,SAAiB;QACtE,KAAK,CACH,+BAA+B,YAAY,iCAAiC,WAAW,OAAO,SAAS,EAAE,CAC1G,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,4BAA4B,CAAC;QACzC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAE3B,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,0BAA0B,CAAC,CAAC;IAC5D,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,4BAA6B,SAAQ,KAAK;IACrC,YAAY,CAAS;IAErC,YAAY,YAAoB;QAC9B,KAAK,CAAC,qDAAqD,YAAY,EAAE,CAAC,CAAC;QAC3E,IAAI,CAAC,IAAI,GAAG,8BAA8B,CAAC;QAC3C,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QAEjC,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,4BAA4B,CAAC,CAAC;IAC9D,CAAC;CACF"}
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Factory method to create a ShutdownStatus object
|
|
3
|
-
*
|
|
4
|
-
* @param isShutdown - Initial shutdown state
|
|
5
|
-
* @returns A ShutdownStatus object with a getter for the shutdown state
|
|
6
|
-
*/
|
|
7
|
-
export function createShutdownStatus(isShutdown) {
|
|
8
|
-
const shutdownState = isShutdown;
|
|
9
|
-
return {
|
|
10
|
-
get isShutdown() {
|
|
11
|
-
return shutdownState;
|
|
12
|
-
},
|
|
13
|
-
};
|
|
14
|
-
}
|
|
15
|
-
/**
|
|
16
|
-
* Factory method to create a ShutdownStatus that can be updated
|
|
17
|
-
*
|
|
18
|
-
* @param initialState - Initial shutdown state (default: false)
|
|
19
|
-
* @returns A tuple of [ShutdownStatus, setter function]
|
|
20
|
-
*/
|
|
21
|
-
export function createMutableShutdownStatus(initialState = false) {
|
|
22
|
-
let shutdownState = initialState;
|
|
23
|
-
const status = {
|
|
24
|
-
get isShutdown() {
|
|
25
|
-
return shutdownState;
|
|
26
|
-
},
|
|
27
|
-
};
|
|
28
|
-
const setShutdown = (value) => {
|
|
29
|
-
shutdownState = value;
|
|
30
|
-
};
|
|
31
|
-
return [status, setShutdown];
|
|
32
|
-
}
|
|
33
|
-
//# sourceMappingURL=factories.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"factories.js","sourceRoot":"","sources":["../../../src/shared/factories.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAC,UAAmB;IACtD,MAAM,aAAa,GAAG,UAAU,CAAC;IAEjC,OAAO;QACL,IAAI,UAAU;YACZ,OAAO,aAAa,CAAC;QACvB,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,2BAA2B,CACzC,YAAY,GAAG,KAAK;IAEpB,IAAI,aAAa,GAAG,YAAY,CAAC;IAEjC,MAAM,MAAM,GAAmB;QAC7B,IAAI,UAAU;YACZ,OAAO,aAAa,CAAC;QACvB,CAAC;KACF,CAAC;IAEF,MAAM,WAAW,GAAG,CAAC,KAAc,EAAE,EAAE;QACrC,aAAa,GAAG,KAAK,CAAC;IACxB,CAAC,CAAC;IAEF,OAAO,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AAC/B,CAAC"}
|
package/dist/src/shared/types.js
DELETED
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The document ID used for system operations (CREATE_DOCUMENT, DELETE_DOCUMENT, etc.)
|
|
3
|
-
* System operations use this special ID along with the "system" scope.
|
|
4
|
-
*/
|
|
5
|
-
export const SYSTEM_DOCUMENT_ID = "00000000-0000-0000-0000-000000000000";
|
|
6
|
-
/**
|
|
7
|
-
* Enum that determines deletion propagation.
|
|
8
|
-
*/
|
|
9
|
-
export var PropagationMode;
|
|
10
|
-
(function (PropagationMode) {
|
|
11
|
-
PropagationMode["None"] = "none";
|
|
12
|
-
PropagationMode["Cascade"] = "cascade";
|
|
13
|
-
})(PropagationMode || (PropagationMode = {}));
|
|
14
|
-
/**
|
|
15
|
-
* Enum that describes the type of relationship change.
|
|
16
|
-
*/
|
|
17
|
-
export var RelationshipChangeType;
|
|
18
|
-
(function (RelationshipChangeType) {
|
|
19
|
-
RelationshipChangeType["Added"] = "added";
|
|
20
|
-
RelationshipChangeType["Removed"] = "removed";
|
|
21
|
-
})(RelationshipChangeType || (RelationshipChangeType = {}));
|
|
22
|
-
/**
|
|
23
|
-
* Job execution statuses
|
|
24
|
-
*/
|
|
25
|
-
export var JobStatus;
|
|
26
|
-
(function (JobStatus) {
|
|
27
|
-
/** Job is queued but not yet started */
|
|
28
|
-
JobStatus["PENDING"] = "PENDING";
|
|
29
|
-
/** Job is currently being executed */
|
|
30
|
-
JobStatus["RUNNING"] = "RUNNING";
|
|
31
|
-
/** Operations have been written to the operation store (OPERATION_WRITTEN event) */
|
|
32
|
-
JobStatus["WRITE_COMPLETED"] = "WRITE_COMPLETED";
|
|
33
|
-
/** Read models have finished indexing operations (OPERATIONS_READY event) */
|
|
34
|
-
JobStatus["READ_MODELS_READY"] = "READ_MODELS_READY";
|
|
35
|
-
/** Job failed (may be retried) */
|
|
36
|
-
JobStatus["FAILED"] = "FAILED";
|
|
37
|
-
})(JobStatus || (JobStatus = {}));
|
|
38
|
-
//# sourceMappingURL=types.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/shared/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,sCAAsC,CAAC;AA0BzE;;GAEG;AACH,MAAM,CAAN,IAAY,eAGX;AAHD,WAAY,eAAe;IACzB,gCAAa,CAAA;IACb,sCAAmB,CAAA;AACrB,CAAC,EAHW,eAAe,KAAf,eAAe,QAG1B;AAED;;GAEG;AACH,MAAM,CAAN,IAAY,sBAGX;AAHD,WAAY,sBAAsB;IAChC,yCAAe,CAAA;IACf,6CAAmB,CAAA;AACrB,CAAC,EAHW,sBAAsB,KAAtB,sBAAsB,QAGjC;AAyBD;;GAEG;AACH,MAAM,CAAN,IAAY,SAWX;AAXD,WAAY,SAAS;IACnB,wCAAwC;IACxC,gCAAmB,CAAA;IACnB,sCAAsC;IACtC,gCAAmB,CAAA;IACnB,oFAAoF;IACpF,gDAAmC,CAAA;IACnC,6EAA6E;IAC7E,oDAAuC,CAAA;IACvC,kCAAkC;IAClC,8BAAiB,CAAA;AACnB,CAAC,EAXW,SAAS,KAAT,SAAS,QAWpB"}
|
package/dist/src/shared/utils.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/shared/utils.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,YAAY,CAAC,OAAmB,EAAE,EAAE,KAAa;IAC/D,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC;IAED,wDAAwD;IACxD,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* A no-op signer that returns empty values for all methods.
|
|
3
|
-
* Used when signing is not required.
|
|
4
|
-
*/
|
|
5
|
-
export class PassthroughSigner {
|
|
6
|
-
publicKey() {
|
|
7
|
-
return Promise.resolve({});
|
|
8
|
-
}
|
|
9
|
-
sign() {
|
|
10
|
-
return Promise.resolve(new Uint8Array(0));
|
|
11
|
-
}
|
|
12
|
-
verify() {
|
|
13
|
-
return Promise.resolve();
|
|
14
|
-
}
|
|
15
|
-
signAction() {
|
|
16
|
-
return Promise.resolve(["", "", "", "", ""]);
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
//# sourceMappingURL=passthrough-signer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"passthrough-signer.js","sourceRoot":"","sources":["../../../src/signer/passthrough-signer.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,OAAO,iBAAiB;IAC5B,SAAS;QACP,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC7B,CAAC;IAED,IAAI;QACF,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5C,CAAC;IAED,MAAM;QACJ,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED,UAAU;QACR,OAAO,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IAC/C,CAAC;CACF"}
|
package/dist/src/signer/types.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/signer/types.ts"],"names":[],"mappings":""}
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import type { IDocumentStorage } from "document-drive";
|
|
2
|
-
import type { PHDocument } from "document-model";
|
|
3
|
-
import type { IEventBus } from "../events/interfaces.js";
|
|
4
|
-
import type { IConsistencyTracker } from "../shared/consistency-tracker.js";
|
|
5
|
-
import type { ConsistencyToken } from "../shared/types.js";
|
|
6
|
-
import type { IConsistencyAwareStorage } from "./interfaces.js";
|
|
7
|
-
/**
|
|
8
|
-
* A wrapper around IDocumentStorage that provides read-after-write consistency
|
|
9
|
-
* by waiting for the consistency tracker to be updated before delegating reads
|
|
10
|
-
* to the inner storage.
|
|
11
|
-
*
|
|
12
|
-
* This is used when legacy storage mode is enabled with async persistence
|
|
13
|
-
* (e.g., BrowserStorage with IndexedDB) to ensure documents are available
|
|
14
|
-
* for reading after being written.
|
|
15
|
-
*/
|
|
16
|
-
export declare class ConsistencyAwareLegacyStorage implements IConsistencyAwareStorage {
|
|
17
|
-
private inner;
|
|
18
|
-
private consistencyTracker;
|
|
19
|
-
constructor(inner: IDocumentStorage, consistencyTracker: IConsistencyTracker, eventBus: IEventBus);
|
|
20
|
-
private waitForConsistency;
|
|
21
|
-
get<TDocument extends PHDocument>(id: string, consistencyToken?: ConsistencyToken, signal?: AbortSignal): Promise<TDocument>;
|
|
22
|
-
getBySlug<TDocument extends PHDocument>(slug: string, consistencyToken?: ConsistencyToken, signal?: AbortSignal): Promise<TDocument>;
|
|
23
|
-
exists(id: string, consistencyToken?: ConsistencyToken, signal?: AbortSignal): Promise<boolean>;
|
|
24
|
-
findByType(type: string, limit?: number, cursor?: string, consistencyToken?: ConsistencyToken, signal?: AbortSignal): Promise<{
|
|
25
|
-
documents: string[];
|
|
26
|
-
nextCursor: string | undefined;
|
|
27
|
-
}>;
|
|
28
|
-
getChildren(id: string, consistencyToken?: ConsistencyToken, signal?: AbortSignal): Promise<string[]>;
|
|
29
|
-
resolveIds(slugs: string[], consistencyToken?: ConsistencyToken, signal?: AbortSignal): Promise<string[]>;
|
|
30
|
-
resolveSlugs(ids: string[], consistencyToken?: ConsistencyToken, signal?: AbortSignal): Promise<string[]>;
|
|
31
|
-
getParents(childId: string, consistencyToken?: ConsistencyToken, signal?: AbortSignal): Promise<string[]>;
|
|
32
|
-
}
|
|
33
|
-
//# sourceMappingURL=consistency-aware-legacy-storage.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"consistency-aware-legacy-storage.d.ts","sourceRoot":"","sources":["../../../src/storage/consistency-aware-legacy-storage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAGzD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAEhE;;;;;;;;GAQG;AACH,qBAAa,6BAA8B,YAAW,wBAAwB;IAE1E,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,kBAAkB;gBADlB,KAAK,EAAE,gBAAgB,EACvB,kBAAkB,EAAE,mBAAmB,EAC/C,QAAQ,EAAE,SAAS;YAgBP,kBAAkB;IAa1B,GAAG,CAAC,SAAS,SAAS,UAAU,EACpC,EAAE,EAAE,MAAM,EACV,gBAAgB,CAAC,EAAE,gBAAgB,EACnC,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,SAAS,CAAC;IAKf,SAAS,CAAC,SAAS,SAAS,UAAU,EAC1C,IAAI,EAAE,MAAM,EACZ,gBAAgB,CAAC,EAAE,gBAAgB,EACnC,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,SAAS,CAAC;IAKf,MAAM,CACV,EAAE,EAAE,MAAM,EACV,gBAAgB,CAAC,EAAE,gBAAgB,EACnC,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,OAAO,CAAC;IAKb,UAAU,CACd,IAAI,EAAE,MAAM,EACZ,KAAK,CAAC,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,MAAM,EACf,gBAAgB,CAAC,EAAE,gBAAgB,EACnC,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,EAAE,CAAC;QAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,CAAC;IAK7D,WAAW,CACf,EAAE,EAAE,MAAM,EACV,gBAAgB,CAAC,EAAE,gBAAgB,EACnC,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,MAAM,EAAE,CAAC;IAKd,UAAU,CACd,KAAK,EAAE,MAAM,EAAE,EACf,gBAAgB,CAAC,EAAE,gBAAgB,EACnC,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,MAAM,EAAE,CAAC;IAKd,YAAY,CAChB,GAAG,EAAE,MAAM,EAAE,EACb,gBAAgB,CAAC,EAAE,gBAAgB,EACnC,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,MAAM,EAAE,CAAC;IAKd,UAAU,CACd,OAAO,EAAE,MAAM,EACf,gBAAgB,CAAC,EAAE,gBAAgB,EACnC,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,MAAM,EAAE,CAAC;CAIrB"}
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
import { OperationEventTypes } from "../events/types.js";
|
|
2
|
-
/**
|
|
3
|
-
* A wrapper around IDocumentStorage that provides read-after-write consistency
|
|
4
|
-
* by waiting for the consistency tracker to be updated before delegating reads
|
|
5
|
-
* to the inner storage.
|
|
6
|
-
*
|
|
7
|
-
* This is used when legacy storage mode is enabled with async persistence
|
|
8
|
-
* (e.g., BrowserStorage with IndexedDB) to ensure documents are available
|
|
9
|
-
* for reading after being written.
|
|
10
|
-
*/
|
|
11
|
-
export class ConsistencyAwareLegacyStorage {
|
|
12
|
-
inner;
|
|
13
|
-
consistencyTracker;
|
|
14
|
-
constructor(inner, consistencyTracker, eventBus) {
|
|
15
|
-
this.inner = inner;
|
|
16
|
-
this.consistencyTracker = consistencyTracker;
|
|
17
|
-
eventBus.subscribe(OperationEventTypes.OPERATION_WRITTEN, (_type, event) => {
|
|
18
|
-
const coordinates = event.operations.map((op) => ({
|
|
19
|
-
documentId: op.context.documentId,
|
|
20
|
-
scope: op.context.scope,
|
|
21
|
-
branch: op.context.branch,
|
|
22
|
-
operationIndex: op.operation.index,
|
|
23
|
-
}));
|
|
24
|
-
this.consistencyTracker.update(coordinates);
|
|
25
|
-
});
|
|
26
|
-
}
|
|
27
|
-
async waitForConsistency(consistencyToken, signal) {
|
|
28
|
-
if (consistencyToken && consistencyToken.coordinates.length > 0) {
|
|
29
|
-
await this.consistencyTracker.waitFor(consistencyToken.coordinates, undefined, signal);
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
async get(id, consistencyToken, signal) {
|
|
33
|
-
await this.waitForConsistency(consistencyToken, signal);
|
|
34
|
-
return this.inner.get(id);
|
|
35
|
-
}
|
|
36
|
-
async getBySlug(slug, consistencyToken, signal) {
|
|
37
|
-
await this.waitForConsistency(consistencyToken, signal);
|
|
38
|
-
return this.inner.getBySlug(slug);
|
|
39
|
-
}
|
|
40
|
-
async exists(id, consistencyToken, signal) {
|
|
41
|
-
await this.waitForConsistency(consistencyToken, signal);
|
|
42
|
-
return this.inner.exists(id);
|
|
43
|
-
}
|
|
44
|
-
async findByType(type, limit, cursor, consistencyToken, signal) {
|
|
45
|
-
await this.waitForConsistency(consistencyToken, signal);
|
|
46
|
-
return this.inner.findByType(type, limit, cursor);
|
|
47
|
-
}
|
|
48
|
-
async getChildren(id, consistencyToken, signal) {
|
|
49
|
-
await this.waitForConsistency(consistencyToken, signal);
|
|
50
|
-
return this.inner.getChildren(id);
|
|
51
|
-
}
|
|
52
|
-
async resolveIds(slugs, consistencyToken, signal) {
|
|
53
|
-
await this.waitForConsistency(consistencyToken, signal);
|
|
54
|
-
return this.inner.resolveIds(slugs, signal);
|
|
55
|
-
}
|
|
56
|
-
async resolveSlugs(ids, consistencyToken, signal) {
|
|
57
|
-
await this.waitForConsistency(consistencyToken, signal);
|
|
58
|
-
return this.inner.resolveSlugs(ids, signal);
|
|
59
|
-
}
|
|
60
|
-
async getParents(childId, consistencyToken, signal) {
|
|
61
|
-
await this.waitForConsistency(consistencyToken, signal);
|
|
62
|
-
return this.inner.getParents(childId);
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
//# sourceMappingURL=consistency-aware-legacy-storage.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"consistency-aware-legacy-storage.js","sourceRoot":"","sources":["../../../src/storage/consistency-aware-legacy-storage.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/storage/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
export class DuplicateOperationError extends Error {
|
|
2
|
-
constructor(description) {
|
|
3
|
-
super(`Duplicate operation: ${description}`);
|
|
4
|
-
this.name = "DuplicateOperationError";
|
|
5
|
-
}
|
|
6
|
-
}
|
|
7
|
-
export class OptimisticLockError extends Error {
|
|
8
|
-
constructor(message) {
|
|
9
|
-
super(message);
|
|
10
|
-
this.name = "OptimisticLockError";
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
export class RevisionMismatchError extends Error {
|
|
14
|
-
constructor(expected, actual) {
|
|
15
|
-
super(`Revision mismatch: expected ${expected}, got ${actual}`);
|
|
16
|
-
this.name = "RevisionMismatchError";
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
//# sourceMappingURL=interfaces.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../src/storage/interfaces.ts"],"names":[],"mappings":"AAoBA,MAAM,OAAO,uBAAwB,SAAQ,KAAK;IAChD,YAAY,WAAmB;QAC7B,KAAK,CAAC,wBAAwB,WAAW,EAAE,CAAC,CAAC;QAC7C,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC;IACxC,CAAC;CACF;AAED,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IAC5C,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACpC,CAAC;CACF;AAED,MAAM,OAAO,qBAAsB,SAAQ,KAAK;IAC9C,YAAY,QAAgB,EAAE,MAAc;QAC1C,KAAK,CAAC,+BAA+B,QAAQ,SAAS,MAAM,EAAE,CAAC,CAAC;QAChE,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;IACtC,CAAC;CACF"}
|