@powerhousedao/reactor 6.0.0-dev.105 → 6.0.0-dev.107
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 +4306 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +9433 -0
- package/dist/index.js.map +1 -0
- package/package.json +16 -18
- package/dist/src/actions/index.d.ts +0 -24
- package/dist/src/actions/index.d.ts.map +0 -1
- package/dist/src/admin/document-integrity-service.d.ts +0 -17
- package/dist/src/admin/document-integrity-service.d.ts.map +0 -1
- package/dist/src/admin/types.d.ts +0 -30
- package/dist/src/admin/types.d.ts.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/collection-membership-cache.d.ts +0 -14
- package/dist/src/cache/collection-membership-cache.d.ts.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.d.ts +0 -31
- package/dist/src/cache/document-meta-cache.d.ts.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/kysely-operation-index.d.ts +0 -24
- package/dist/src/cache/kysely-operation-index.d.ts.map +0 -1
- package/dist/src/cache/kysely-write-cache.d.ts +0 -142
- package/dist/src/cache/kysely-write-cache.d.ts.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/operation-index-types.d.ts +0 -64
- package/dist/src/cache/operation-index-types.d.ts.map +0 -1
- package/dist/src/cache/write/interfaces.d.ts +0 -88
- package/dist/src/cache/write/interfaces.d.ts.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/client/reactor-client.d.ts +0 -121
- package/dist/src/client/reactor-client.d.ts.map +0 -1
- package/dist/src/client/types.d.ts +0 -260
- package/dist/src/client/types.d.ts.map +0 -1
- package/dist/src/core/reactor-builder.d.ts +0 -60
- package/dist/src/core/reactor-builder.d.ts.map +0 -1
- package/dist/src/core/reactor-client-builder.d.ts +0 -53
- package/dist/src/core/reactor-client-builder.d.ts.map +0 -1
- package/dist/src/core/reactor.d.ts +0 -56
- package/dist/src/core/reactor.d.ts.map +0 -1
- package/dist/src/core/types.d.ts +0 -312
- package/dist/src/core/types.d.ts.map +0 -1
- package/dist/src/core/utils.d.ts +0 -95
- package/dist/src/core/utils.d.ts.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/interfaces.d.ts +0 -27
- package/dist/src/events/interfaces.d.ts.map +0 -1
- package/dist/src/events/types.d.ts +0 -92
- package/dist/src/events/types.d.ts.map +0 -1
- package/dist/src/executor/document-action-handler.d.ts +0 -30
- package/dist/src/executor/document-action-handler.d.ts.map +0 -1
- package/dist/src/executor/execution-scope.d.ts +0 -44
- package/dist/src/executor/execution-scope.d.ts.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/signature-verifier.d.ts +0 -9
- package/dist/src/executor/signature-verifier.d.ts.map +0 -1
- package/dist/src/executor/simple-job-executor-manager.d.ts +0 -40
- package/dist/src/executor/simple-job-executor-manager.d.ts.map +0 -1
- package/dist/src/executor/simple-job-executor.d.ts +0 -42
- package/dist/src/executor/simple-job-executor.d.ts.map +0 -1
- package/dist/src/executor/types.d.ts +0 -91
- package/dist/src/executor/types.d.ts.map +0 -1
- package/dist/src/executor/util.d.ts +0 -84
- package/dist/src/executor/util.d.ts.map +0 -1
- package/dist/src/index.d.ts +0 -56
- package/dist/src/index.d.ts.map +0 -1
- package/dist/src/index.js +0 -20714
- package/dist/src/job-tracker/in-memory-job-tracker.d.ts +0 -26
- package/dist/src/job-tracker/in-memory-job-tracker.d.ts.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/interfaces.d.ts +0 -41
- package/dist/src/job-tracker/interfaces.d.ts.map +0 -1
- package/dist/src/logging/console.d.ts +0 -2
- package/dist/src/logging/console.d.ts.map +0 -1
- package/dist/src/logging/types.d.ts +0 -2
- package/dist/src/logging/types.d.ts.map +0 -1
- package/dist/src/processors/index.d.ts +0 -2
- package/dist/src/processors/index.d.ts.map +0 -1
- package/dist/src/processors/processor-manager.d.ts +0 -51
- package/dist/src/processors/processor-manager.d.ts.map +0 -1
- package/dist/src/processors/utils.d.ts +0 -11
- package/dist/src/processors/utils.d.ts.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/job-execution-handle.d.ts +0 -28
- package/dist/src/queue/job-execution-handle.d.ts.map +0 -1
- package/dist/src/queue/queue.d.ts +0 -110
- package/dist/src/queue/queue.d.ts.map +0 -1
- package/dist/src/queue/types.d.ts +0 -74
- package/dist/src/queue/types.d.ts.map +0 -1
- package/dist/src/read-models/base-read-model.d.ts +0 -62
- package/dist/src/read-models/base-read-model.d.ts.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/document-view.d.ts +0 -27
- package/dist/src/read-models/document-view.d.ts.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/types.d.ts +0 -63
- package/dist/src/read-models/types.d.ts.map +0 -1
- package/dist/src/registry/document-model-resolver.d.ts +0 -29
- package/dist/src/registry/document-model-resolver.d.ts.map +0 -1
- package/dist/src/registry/implementation.d.ts +0 -74
- package/dist/src/registry/implementation.d.ts.map +0 -1
- package/dist/src/registry/index.d.ts +0 -5
- package/dist/src/registry/index.d.ts.map +0 -1
- package/dist/src/registry/interfaces.d.ts +0 -108
- package/dist/src/registry/interfaces.d.ts.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/collect-all-pages.d.ts +0 -7
- package/dist/src/shared/collect-all-pages.d.ts.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/drive-url.d.ts +0 -15
- package/dist/src/shared/drive-url.d.ts.map +0 -1
- package/dist/src/shared/errors.d.ts +0 -50
- package/dist/src/shared/errors.d.ts.map +0 -1
- package/dist/src/shared/factories.d.ts +0 -20
- package/dist/src/shared/factories.d.ts.map +0 -1
- package/dist/src/shared/types.d.ts +0 -161
- package/dist/src/shared/types.d.ts.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/signer/passthrough-signer.d.ts +0 -12
- package/dist/src/signer/passthrough-signer.d.ts.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/storage/index.d.ts +0 -4
- package/dist/src/storage/index.d.ts.map +0 -1
- package/dist/src/storage/interfaces.d.ts +0 -574
- package/dist/src/storage/interfaces.d.ts.map +0 -1
- package/dist/src/storage/kysely/document-indexer.d.ts +0 -27
- package/dist/src/storage/kysely/document-indexer.d.ts.map +0 -1
- package/dist/src/storage/kysely/keyframe-store.d.ts +0 -24
- package/dist/src/storage/kysely/keyframe-store.d.ts.map +0 -1
- package/dist/src/storage/kysely/store.d.ts +0 -21
- package/dist/src/storage/kysely/store.d.ts.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-dead-letter-storage.d.ts +0 -18
- package/dist/src/storage/kysely/sync-dead-letter-storage.d.ts.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/types.d.ts +0 -157
- package/dist/src/storage/kysely/types.d.ts.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/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/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/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/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/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/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/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/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/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/011_add_cursor_type_column.d.ts +0 -3
- package/dist/src/storage/migrations/011_add_cursor_type_column.d.ts.map +0 -1
- package/dist/src/storage/migrations/012_add_source_remote_column.d.ts +0 -3
- package/dist/src/storage/migrations/012_add_source_remote_column.d.ts.map +0 -1
- package/dist/src/storage/migrations/013_create_sync_dead_letters_table.d.ts +0 -3
- package/dist/src/storage/migrations/013_create_sync_dead_letters_table.d.ts.map +0 -1
- package/dist/src/storage/migrations/014_create_processor_cursor_table.d.ts +0 -3
- package/dist/src/storage/migrations/014_create_processor_cursor_table.d.ts.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/migrator.d.ts +0 -6
- package/dist/src/storage/migrations/migrator.d.ts.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/types.d.ts +0 -9
- package/dist/src/storage/migrations/types.d.ts.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/subs/default-error-handler.d.ts +0 -13
- package/dist/src/subs/default-error-handler.d.ts.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/subscription-notification-read-model.d.ts +0 -18
- package/dist/src/subs/subscription-notification-read-model.d.ts.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/sync/batch-aggregator.d.ts +0 -25
- package/dist/src/sync/batch-aggregator.d.ts.map +0 -1
- package/dist/src/sync/buffered-mailbox.d.ts +0 -37
- package/dist/src/sync/buffered-mailbox.d.ts.map +0 -1
- package/dist/src/sync/channels/gql-req-channel.d.ts +0 -133
- package/dist/src/sync/channels/gql-req-channel.d.ts.map +0 -1
- package/dist/src/sync/channels/gql-request-channel-factory.d.ts +0 -32
- package/dist/src/sync/channels/gql-request-channel-factory.d.ts.map +0 -1
- package/dist/src/sync/channels/gql-res-channel.d.ts +0 -31
- package/dist/src/sync/channels/gql-res-channel.d.ts.map +0 -1
- package/dist/src/sync/channels/gql-response-channel-factory.d.ts +0 -13
- package/dist/src/sync/channels/gql-response-channel-factory.d.ts.map +0 -1
- package/dist/src/sync/channels/index.d.ts +0 -8
- package/dist/src/sync/channels/index.d.ts.map +0 -1
- package/dist/src/sync/channels/interval-poll-timer.d.ts +0 -40
- package/dist/src/sync/channels/interval-poll-timer.d.ts.map +0 -1
- package/dist/src/sync/channels/poll-timer.d.ts +0 -14
- package/dist/src/sync/channels/poll-timer.d.ts.map +0 -1
- package/dist/src/sync/channels/utils.d.ts +0 -44
- package/dist/src/sync/channels/utils.d.ts.map +0 -1
- package/dist/src/sync/errors.d.ts +0 -16
- package/dist/src/sync/errors.d.ts.map +0 -1
- package/dist/src/sync/index.d.ts +0 -16
- package/dist/src/sync/index.d.ts.map +0 -1
- package/dist/src/sync/interfaces.d.ts +0 -203
- package/dist/src/sync/interfaces.d.ts.map +0 -1
- package/dist/src/sync/mailbox.d.ts +0 -62
- package/dist/src/sync/mailbox.d.ts.map +0 -1
- package/dist/src/sync/sync-awaiter.d.ts +0 -34
- package/dist/src/sync/sync-awaiter.d.ts.map +0 -1
- package/dist/src/sync/sync-builder.d.ts +0 -23
- package/dist/src/sync/sync-builder.d.ts.map +0 -1
- package/dist/src/sync/sync-manager.d.ts +0 -51
- package/dist/src/sync/sync-manager.d.ts.map +0 -1
- package/dist/src/sync/sync-operation.d.ts +0 -30
- package/dist/src/sync/sync-operation.d.ts.map +0 -1
- package/dist/src/sync/sync-status-tracker.d.ts +0 -31
- package/dist/src/sync/sync-status-tracker.d.ts.map +0 -1
- package/dist/src/sync/types.d.ts +0 -165
- package/dist/src/sync/types.d.ts.map +0 -1
- package/dist/src/sync/utils.d.ts +0 -71
- package/dist/src/sync/utils.d.ts.map +0 -1
- package/dist/src/utils/reshuffle.d.ts +0 -47
- package/dist/src/utils/reshuffle.d.ts.map +0 -1
package/dist/src/sync/utils.d.ts
DELETED
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
import type { OperationWithContext } from "@powerhousedao/shared/document-model";
|
|
2
|
-
import { type OperationIndexEntry } from "../cache/operation-index-types.js";
|
|
3
|
-
import type { JobWriteReadyEvent } from "../events/types.js";
|
|
4
|
-
import type { PreparedBatch } from "./batch-aggregator.js";
|
|
5
|
-
import type { IMailbox } from "./mailbox.js";
|
|
6
|
-
import { SyncOperation } from "./sync-operation.js";
|
|
7
|
-
import { type ChannelHealth, type RemoteFilter } from "./types.js";
|
|
8
|
-
export type OperationBatch = {
|
|
9
|
-
documentId: string;
|
|
10
|
-
branch: string;
|
|
11
|
-
scope: string;
|
|
12
|
-
operations: OperationWithContext[];
|
|
13
|
-
};
|
|
14
|
-
/**
|
|
15
|
-
* Trims a mailbox using the jobIds from a batch.
|
|
16
|
-
*/
|
|
17
|
-
export declare function trimMailboxFromBatch(mailbox: IMailbox, batch: PreparedBatch): void;
|
|
18
|
-
/**
|
|
19
|
-
* Trims a mailbox using the ack ordinal.
|
|
20
|
-
*/
|
|
21
|
-
export declare function trimMailboxFromAckOrdinal(mailbox: IMailbox, ackOrdinal: number): void;
|
|
22
|
-
/**
|
|
23
|
-
* Filters operations based on a remote's filter criteria.
|
|
24
|
-
*
|
|
25
|
-
* @param operations - The operations to filter
|
|
26
|
-
* @param filter - The filter criteria to apply
|
|
27
|
-
* @returns The filtered operations that match the criteria
|
|
28
|
-
*/
|
|
29
|
-
export declare function filterOperations(operations: OperationWithContext[], filter: RemoteFilter): OperationWithContext[];
|
|
30
|
-
/**
|
|
31
|
-
* Creates an idle channel health status.
|
|
32
|
-
*
|
|
33
|
-
* @returns A new idle channel health object
|
|
34
|
-
*/
|
|
35
|
-
export declare function createIdleHealth(): ChannelHealth;
|
|
36
|
-
/**
|
|
37
|
-
* Batches consecutive operations by documentId and scope, preserving ordering.
|
|
38
|
-
*
|
|
39
|
-
* For operations [a1_doc, a1_global, a2_doc, b1_global], this returns:
|
|
40
|
-
* - Batch 1: [a1_doc] for doc-a, document scope
|
|
41
|
-
* - Batch 2: [a1_global] for doc-a, global scope
|
|
42
|
-
* - Batch 3: [a2_doc] for doc-a, document scope
|
|
43
|
-
* - Batch 4: [b1_global] for doc-b, global scope
|
|
44
|
-
*
|
|
45
|
-
* This ensures operations are grouped for efficient processing while maintaining
|
|
46
|
-
* causality across documents and scopes.
|
|
47
|
-
*/
|
|
48
|
-
/**
|
|
49
|
-
* Sorts envelopes by the timestamp of their first operation.
|
|
50
|
-
* Envelopes without operations are placed at the end.
|
|
51
|
-
*/
|
|
52
|
-
export declare function sortEnvelopesByFirstOperationTimestamp<T extends {
|
|
53
|
-
operations?: ReadonlyArray<{
|
|
54
|
-
operation: {
|
|
55
|
-
timestampUtcMs: string;
|
|
56
|
-
};
|
|
57
|
-
}> | null | undefined;
|
|
58
|
-
}>(envelopes: T[]): T[];
|
|
59
|
-
export declare function batchOperationsByDocument(operations: OperationWithContext[]): OperationBatch[];
|
|
60
|
-
export declare function getMaxOrdinal(operations: OperationWithContext[]): number;
|
|
61
|
-
export declare function filterByCollectionMembership(operations: OperationWithContext[], collectionId: string, collectionMemberships?: Record<string, string[]>): OperationWithContext[];
|
|
62
|
-
export declare function toOperationWithContext(entry: OperationIndexEntry): OperationWithContext;
|
|
63
|
-
/**
|
|
64
|
-
* Merges SyncOperations that share the same (documentId, scope, branch) into
|
|
65
|
-
* a single SyncOperation per group. Within each group, operations are sorted
|
|
66
|
-
* by context.ordinal. The merged SyncOperation keeps the first group member's
|
|
67
|
-
* jobId; all other jobIds are remapped so external dependencies still resolve.
|
|
68
|
-
*/
|
|
69
|
-
export declare function consolidateSyncOperations(syncOps: SyncOperation[]): SyncOperation[];
|
|
70
|
-
export declare function mergeCollectionMemberships(events: JobWriteReadyEvent[]): Record<string, string[]>;
|
|
71
|
-
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/sync/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAEjF,OAAO,EAEL,KAAK,mBAAmB,EACzB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,YAAY,EAClB,MAAM,YAAY,CAAC;AAEpB,MAAM,MAAM,cAAc,GAAG;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,oBAAoB,EAAE,CAAC;CACpC,CAAC;AAEF;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,QAAQ,EACjB,KAAK,EAAE,aAAa,GACnB,IAAI,CAuBN;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,QAAQ,EACjB,UAAU,EAAE,MAAM,QA0BnB;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,oBAAoB,EAAE,EAClC,MAAM,EAAE,YAAY,GACnB,oBAAoB,EAAE,CAmBxB;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,IAAI,aAAa,CAKhD;AAED;;;;;;;;;;;GAWG;AACH;;;GAGG;AACH,wBAAgB,sCAAsC,CACpD,CAAC,SAAS;IACR,UAAU,CAAC,EACP,aAAa,CAAC;QAAE,SAAS,EAAE;YAAE,cAAc,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAC,GACxD,IAAI,GACJ,SAAS,CAAC;CACf,EACD,SAAS,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,CAWrB;AAED,wBAAgB,yBAAyB,CACvC,UAAU,EAAE,oBAAoB,EAAE,GACjC,cAAc,EAAE,CAsClB;AAED,wBAAgB,aAAa,CAAC,UAAU,EAAE,oBAAoB,EAAE,GAAG,MAAM,CAKxE;AAED,wBAAgB,4BAA4B,CAC1C,UAAU,EAAE,oBAAoB,EAAE,EAClC,YAAY,EAAE,MAAM,EACpB,qBAAqB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GAC/C,oBAAoB,EAAE,CAYxB;AAED,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,mBAAmB,GACzB,oBAAoB,CAkBtB;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,aAAa,EAAE,GACvB,aAAa,EAAE,CAiFjB;AAED,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,kBAAkB,EAAE,GAC3B,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CA2C1B"}
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
type OperationIndex = {
|
|
2
|
-
index: number;
|
|
3
|
-
skip: number;
|
|
4
|
-
id: string;
|
|
5
|
-
timestampUtcMs: string;
|
|
6
|
-
action?: {
|
|
7
|
-
id?: string;
|
|
8
|
-
type?: string;
|
|
9
|
-
};
|
|
10
|
-
};
|
|
11
|
-
/**
|
|
12
|
-
* Sorts operations by index and skip number.
|
|
13
|
-
* [0:0 2:0 1:0 3:3 3:1] => [0:0 1:0 2:0 3:1 3:3]
|
|
14
|
-
*/
|
|
15
|
-
export declare function sortOperations<TOpIndex extends OperationIndex>(operations: TOpIndex[]): TOpIndex[];
|
|
16
|
-
/**
|
|
17
|
-
* Reshuffles operations by timestamp, then applies deterministic tie-breaking.
|
|
18
|
-
* Used for merging concurrent operations from different branches.
|
|
19
|
-
*
|
|
20
|
-
* For strict document-structure actions (e.g., CREATE_DOCUMENT/UPGRADE_DOCUMENT),
|
|
21
|
-
* logical index (index - skip) is prioritized to preserve causal replay order.
|
|
22
|
-
*
|
|
23
|
-
* For other actions, action ID is prioritized to ensure a canonical cross-reactor order
|
|
24
|
-
* for concurrent operations that may have diverged local indices due to prior reshuffles.
|
|
25
|
-
* Logical index and operation ID are then used as deterministic tie-breakers.
|
|
26
|
-
*
|
|
27
|
-
* Example:
|
|
28
|
-
* [0:0, 1:0, 2:0, A3:0, A4:0, A5:0] + [0:0, 1:0, 2:0, B3:0, B4:2, B5:0]
|
|
29
|
-
* GC => [0:0, 1:0, 2:0, A3:0, A4:0, A5:0] + [0:0, 1:0, B4:2, B5:0]
|
|
30
|
-
* Split => [0:0, 1:0] + [2:0, A3:0, A4:0, A5:0] + [B4:2, B5:0]
|
|
31
|
-
* Reshuffle(6:4) => [6:4, 7:0, 8:0, 9:0, 10:0, 11:0]
|
|
32
|
-
* merge => [0:0, 1:0, 6:4, 7:0, 8:0, 9:0, 10:0, 11:0]
|
|
33
|
-
*/
|
|
34
|
-
export declare function reshuffleByTimestamp<TOp extends OperationIndex>(startIndex: {
|
|
35
|
-
index: number;
|
|
36
|
-
skip: number;
|
|
37
|
-
}, opsA: TOp[], opsB: TOp[]): TOp[];
|
|
38
|
-
/**
|
|
39
|
-
* Reshuffles operations by timestamp first, then by original index value.
|
|
40
|
-
* Used for merging concurrent operations while preserving index ordering for operations with same timestamp.
|
|
41
|
-
*/
|
|
42
|
-
export declare function reshuffleByTimestampAndIndex<TOp extends OperationIndex>(startIndex: {
|
|
43
|
-
index: number;
|
|
44
|
-
skip: number;
|
|
45
|
-
}, opsA: TOp[], opsB: TOp[]): TOp[];
|
|
46
|
-
export {};
|
|
47
|
-
//# sourceMappingURL=reshuffle.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"reshuffle.d.ts","sourceRoot":"","sources":["../../../src/utils/reshuffle.ts"],"names":[],"mappings":"AAAA,KAAK,cAAc,GAAG;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE;QACP,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;CACH,CAAC;AAUF;;;GAGG;AACH,wBAAgB,cAAc,CAAC,QAAQ,SAAS,cAAc,EAC5D,UAAU,EAAE,QAAQ,EAAE,GACrB,QAAQ,EAAE,CAKZ;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,SAAS,cAAc,EAC7D,UAAU,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAC3C,IAAI,EAAE,GAAG,EAAE,EACX,IAAI,EAAE,GAAG,EAAE,GACV,GAAG,EAAE,CAuCP;AAED;;;GAGG;AACH,wBAAgB,4BAA4B,CAAC,GAAG,SAAS,cAAc,EACrE,UAAU,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAC3C,IAAI,EAAE,GAAG,EAAE,EACX,IAAI,EAAE,GAAG,EAAE,GACV,GAAG,EAAE,CAoBP"}
|