@powerhousedao/reactor 6.0.0-dev.69 → 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/index.d.ts +1 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +19998 -62
- package/dist/src/sync/index.d.ts +1 -1
- package/dist/src/sync/index.d.ts.map +1 -1
- package/dist/src/sync/sync-manager.d.ts.map +1 -1
- package/dist/src/sync/types.d.ts +11 -0
- package/dist/src/sync/types.d.ts.map +1 -1
- package/package.json +17 -10
- 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/collection-membership-cache.js +0 -33
- package/dist/src/cache/collection-membership-cache.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 -129
- 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 -345
- package/dist/src/cache/kysely-operation-index.js.map +0 -1
- package/dist/src/cache/kysely-write-cache.js +0 -411
- 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 -497
- 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 -306
- package/dist/src/core/reactor-builder.js.map +0 -1
- package/dist/src/core/reactor-client-builder.js +0 -132
- package/dist/src/core/reactor-client-builder.js.map +0 -1
- package/dist/src/core/reactor.js +0 -640
- 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 -225
- 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 -30
- package/dist/src/events/types.js.map +0 -1
- package/dist/src/executor/document-action-handler.js +0 -356
- package/dist/src/executor/document-action-handler.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/signature-verifier.js +0 -70
- package/dist/src/executor/signature-verifier.js.map +0 -1
- package/dist/src/executor/simple-job-executor-manager.js +0 -345
- package/dist/src/executor/simple-job-executor-manager.js.map +0 -1
- package/dist/src/executor/simple-job-executor.js +0 -423
- 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 -230
- 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 -114
- 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 -2
- 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/relational/types.js +0 -2
- package/dist/src/processors/relational/types.js.map +0 -1
- package/dist/src/processors/relational/utils.js +0 -2
- package/dist/src/processors/relational/utils.js.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.js +0 -2
- package/dist/src/queue/interfaces.js.map +0 -1
- package/dist/src/queue/job-execution-handle.js +0 -71
- package/dist/src/queue/job-execution-handle.js.map +0 -1
- package/dist/src/queue/queue.js +0 -493
- 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 -457
- 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/document-model-resolver.js +0 -81
- package/dist/src/registry/document-model-resolver.js.map +0 -1
- package/dist/src/registry/implementation.js +0 -226
- package/dist/src/registry/implementation.js.map +0 -1
- package/dist/src/registry/index.js +0 -3
- 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/collect-all-pages.js +0 -17
- package/dist/src/shared/collect-all-pages.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/drive-url.js +0 -17
- package/dist/src/shared/drive-url.js.map +0 -1
- package/dist/src/shared/errors.js +0 -93
- package/dist/src/shared/errors.js.map +0 -1
- package/dist/src/shared/factories.js +0 -41
- 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 -17
- 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/index.js +0 -3
- package/dist/src/storage/index.js.map +0 -1
- package/dist/src/storage/interfaces.js +0 -29
- package/dist/src/storage/interfaces.js.map +0 -1
- package/dist/src/storage/kysely/document-indexer.js +0 -421
- 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 -264
- package/dist/src/storage/kysely/store.js.map +0 -1
- package/dist/src/storage/kysely/sync-cursor-storage.js +0 -97
- package/dist/src/storage/kysely/sync-cursor-storage.js.map +0 -1
- package/dist/src/storage/kysely/sync-dead-letter-storage.js +0 -110
- package/dist/src/storage/kysely/sync-dead-letter-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/011_add_cursor_type_column.js +0 -29
- package/dist/src/storage/migrations/011_add_cursor_type_column.js.map +0 -1
- package/dist/src/storage/migrations/012_add_source_remote_column.js +0 -7
- package/dist/src/storage/migrations/012_add_source_remote_column.js.map +0 -1
- package/dist/src/storage/migrations/013_create_sync_dead_letters_table.js +0 -24
- package/dist/src/storage/migrations/013_create_sync_dead_letters_table.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 -84
- 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/batch-aggregator.js +0 -94
- package/dist/src/sync/batch-aggregator.js.map +0 -1
- package/dist/src/sync/buffered-mailbox.js +0 -164
- package/dist/src/sync/buffered-mailbox.js.map +0 -1
- package/dist/src/sync/channels/gql-req-channel.js +0 -548
- package/dist/src/sync/channels/gql-req-channel.js.map +0 -1
- package/dist/src/sync/channels/gql-request-channel-factory.js +0 -105
- package/dist/src/sync/channels/gql-request-channel-factory.js.map +0 -1
- package/dist/src/sync/channels/gql-res-channel.js +0 -79
- package/dist/src/sync/channels/gql-res-channel.js.map +0 -1
- package/dist/src/sync/channels/gql-response-channel-factory.js +0 -14
- package/dist/src/sync/channels/gql-response-channel-factory.js.map +0 -1
- package/dist/src/sync/channels/index.js +0 -8
- package/dist/src/sync/channels/index.js.map +0 -1
- package/dist/src/sync/channels/interval-poll-timer.js +0 -123
- package/dist/src/sync/channels/interval-poll-timer.js.map +0 -1
- package/dist/src/sync/channels/poll-timer.js +0 -2
- package/dist/src/sync/channels/poll-timer.js.map +0 -1
- package/dist/src/sync/channels/utils.js +0 -161
- 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 -11
- 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 -142
- package/dist/src/sync/mailbox.js.map +0 -1
- package/dist/src/sync/sync-awaiter.js +0 -124
- package/dist/src/sync/sync-awaiter.js.map +0 -1
- package/dist/src/sync/sync-builder.js +0 -52
- package/dist/src/sync/sync-builder.js.map +0 -1
- package/dist/src/sync/sync-manager.js +0 -447
- package/dist/src/sync/sync-manager.js.map +0 -1
- package/dist/src/sync/sync-operation.js +0 -70
- package/dist/src/sync/sync-operation.js.map +0 -1
- package/dist/src/sync/sync-status-tracker.js +0 -137
- package/dist/src/sync/sync-status-tracker.js.map +0 -1
- package/dist/src/sync/types.js +0 -31
- package/dist/src/sync/types.js.map +0 -1
- package/dist/src/sync/utils.js +0 -283
- package/dist/src/sync/utils.js.map +0 -1
- package/dist/src/utils/reshuffle.js +0 -91
- package/dist/src/utils/reshuffle.js.map +0 -1
|
@@ -1,230 +0,0 @@
|
|
|
1
|
-
import { createPresignedHeader, defaultBaseState, deriveOperationId, } from "document-model/core";
|
|
2
|
-
import { DowngradeNotSupportedError } from "../shared/errors.js";
|
|
3
|
-
/**
|
|
4
|
-
* Creates a PHDocument from a CREATE_DOCUMENT action input.
|
|
5
|
-
* Reconstructs the document header and initializes the base state.
|
|
6
|
-
*
|
|
7
|
-
* @param action - The CREATE_DOCUMENT action containing the document parameters
|
|
8
|
-
* @returns A newly constructed PHDocument with initialized header and base state
|
|
9
|
-
*/
|
|
10
|
-
export function createDocumentFromAction(action) {
|
|
11
|
-
const input = action.input;
|
|
12
|
-
// Reconstruct the document from CreateDocumentActionInput
|
|
13
|
-
const header = createPresignedHeader();
|
|
14
|
-
header.id = input.documentId;
|
|
15
|
-
header.documentType = input.model;
|
|
16
|
-
// If signing info is present, populate the header signature fields
|
|
17
|
-
if (input.signing) {
|
|
18
|
-
header.createdAtUtcIso = input.signing.createdAtUtcIso;
|
|
19
|
-
header.lastModifiedAtUtcIso = input.signing.createdAtUtcIso;
|
|
20
|
-
header.sig = {
|
|
21
|
-
publicKey: input.signing.publicKey,
|
|
22
|
-
nonce: input.signing.nonce,
|
|
23
|
-
};
|
|
24
|
-
}
|
|
25
|
-
// Populate optional mutable header fields
|
|
26
|
-
if (input.slug !== undefined) {
|
|
27
|
-
header.slug = input.slug;
|
|
28
|
-
}
|
|
29
|
-
// Default slug to document ID if empty (matching legacy behavior)
|
|
30
|
-
if (!header.slug) {
|
|
31
|
-
header.slug = input.documentId;
|
|
32
|
-
}
|
|
33
|
-
if (input.name !== undefined) {
|
|
34
|
-
header.name = input.name;
|
|
35
|
-
}
|
|
36
|
-
if (input.branch !== undefined) {
|
|
37
|
-
header.branch = input.branch;
|
|
38
|
-
}
|
|
39
|
-
if (input.meta !== undefined) {
|
|
40
|
-
header.meta = input.meta;
|
|
41
|
-
}
|
|
42
|
-
if (input.protocolVersions !== undefined) {
|
|
43
|
-
header.protocolVersions = input.protocolVersions;
|
|
44
|
-
}
|
|
45
|
-
// Construct the document with default base state (UPGRADE_DOCUMENT will set the full state)
|
|
46
|
-
const baseState = defaultBaseState();
|
|
47
|
-
const document = {
|
|
48
|
-
header,
|
|
49
|
-
operations: {},
|
|
50
|
-
state: baseState,
|
|
51
|
-
initialState: baseState,
|
|
52
|
-
clipboard: [],
|
|
53
|
-
};
|
|
54
|
-
return document;
|
|
55
|
-
}
|
|
56
|
-
/**
|
|
57
|
-
* Applies an UPGRADE_DOCUMENT action to a document.
|
|
58
|
-
* Handles all upgrade scenarios including initial upgrades, no-ops, and multi-step upgrades.
|
|
59
|
-
*
|
|
60
|
-
* Behavior based on fromVersion/toVersion:
|
|
61
|
-
* - fromVersion === toVersion (and fromVersion > 0): No-op - return unchanged document
|
|
62
|
-
* - fromVersion > toVersion: Throw DowngradeNotSupportedError
|
|
63
|
-
* - All other cases: Apply upgradePath transitions (if provided), then apply initialState, set version
|
|
64
|
-
*
|
|
65
|
-
* The initialState from the action is always applied (if provided) to maintain backward
|
|
66
|
-
* compatibility with the original implementation.
|
|
67
|
-
*
|
|
68
|
-
* @param document - The document to upgrade
|
|
69
|
-
* @param action - The UPGRADE_DOCUMENT action
|
|
70
|
-
* @param upgradePath - Optional pre-computed upgrade path for multi-step upgrades
|
|
71
|
-
* @returns The upgraded document (unchanged if no-op)
|
|
72
|
-
* @throws DowngradeNotSupportedError if attempting to downgrade
|
|
73
|
-
*/
|
|
74
|
-
export function applyUpgradeDocumentAction(document, action, upgradePath) {
|
|
75
|
-
const fromVersion = action.input.fromVersion;
|
|
76
|
-
const toVersion = action.input.toVersion;
|
|
77
|
-
if (fromVersion === toVersion && fromVersion > 0) {
|
|
78
|
-
return document;
|
|
79
|
-
}
|
|
80
|
-
if (fromVersion > toVersion) {
|
|
81
|
-
throw new DowngradeNotSupportedError(document.header.documentType, fromVersion, toVersion);
|
|
82
|
-
}
|
|
83
|
-
if (upgradePath) {
|
|
84
|
-
for (const transition of upgradePath) {
|
|
85
|
-
document = transition.upgradeReducer(document, action);
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
applyInitialState(document, action);
|
|
89
|
-
document.state.document = {
|
|
90
|
-
...document.state.document,
|
|
91
|
-
version: toVersion,
|
|
92
|
-
};
|
|
93
|
-
return document;
|
|
94
|
-
}
|
|
95
|
-
function applyInitialState(document, action) {
|
|
96
|
-
const input = action.input;
|
|
97
|
-
const newState = input.initialState || input.state;
|
|
98
|
-
if (newState) {
|
|
99
|
-
document.state = { ...document.state, ...newState };
|
|
100
|
-
document.initialState = document.state;
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
/**
|
|
104
|
-
* Applies a DELETE_DOCUMENT action to a document.
|
|
105
|
-
* Marks the document as deleted in the document scope state.
|
|
106
|
-
*
|
|
107
|
-
* @param document - The document to mark as deleted
|
|
108
|
-
* @param action - The DELETE_DOCUMENT action
|
|
109
|
-
* @returns The updated document (mutates in place and returns for convenience)
|
|
110
|
-
*/
|
|
111
|
-
export function applyDeleteDocumentAction(document, action) {
|
|
112
|
-
const deletedAt = action.timestampUtcMs || new Date().toISOString();
|
|
113
|
-
document.state = {
|
|
114
|
-
...document.state,
|
|
115
|
-
document: {
|
|
116
|
-
...document.state.document,
|
|
117
|
-
isDeleted: true,
|
|
118
|
-
deletedAtUtcIso: deletedAt,
|
|
119
|
-
},
|
|
120
|
-
};
|
|
121
|
-
return document;
|
|
122
|
-
}
|
|
123
|
-
/**
|
|
124
|
-
* Calculate the next operation index for a specific scope.
|
|
125
|
-
* Each scope maintains its own independent index sequence.
|
|
126
|
-
*
|
|
127
|
-
* Per-scope indexing means:
|
|
128
|
-
* - Each scope (document, global, local, etc.) has independent indexes
|
|
129
|
-
* - Indexes start at 0 for each scope
|
|
130
|
-
* - Different scopes can have operations with the same index value
|
|
131
|
-
*
|
|
132
|
-
* This function uses header.revision which is populated by the cache/storage layer
|
|
133
|
-
* and contains the next available index for each scope. This design avoids requiring
|
|
134
|
-
* the full operation history to be loaded, which is crucial for snapshot-based caching.
|
|
135
|
-
*
|
|
136
|
-
* @param document - The document whose header.revision to inspect
|
|
137
|
-
* @param scope - The scope to calculate the next index for
|
|
138
|
-
* @returns The next available index in the specified scope
|
|
139
|
-
*/
|
|
140
|
-
export const getNextIndexForScope = (document, scope) => {
|
|
141
|
-
return document.header.revision[scope] || 0;
|
|
142
|
-
};
|
|
143
|
-
/**
|
|
144
|
-
* Creates an empty consistency token with no coordinates.
|
|
145
|
-
* Used when a job is registered or fails without writing operations.
|
|
146
|
-
*
|
|
147
|
-
* @returns A consistency token with an empty coordinates array
|
|
148
|
-
*/
|
|
149
|
-
export function createEmptyConsistencyToken() {
|
|
150
|
-
return {
|
|
151
|
-
version: 1,
|
|
152
|
-
createdAtUtcIso: new Date().toISOString(),
|
|
153
|
-
coordinates: [],
|
|
154
|
-
};
|
|
155
|
-
}
|
|
156
|
-
/**
|
|
157
|
-
* Creates a consistency token from operations written during job execution.
|
|
158
|
-
* Maps each operation to a consistency coordinate tracking (documentId, scope, branch, operationIndex).
|
|
159
|
-
* If no operations are provided, returns an empty token.
|
|
160
|
-
*
|
|
161
|
-
* @param operationsWithContext - Array of operations with their execution context
|
|
162
|
-
* @returns A consistency token representing all operations written
|
|
163
|
-
*/
|
|
164
|
-
export function createConsistencyToken(operationsWithContext) {
|
|
165
|
-
if (operationsWithContext.length === 0) {
|
|
166
|
-
return createEmptyConsistencyToken();
|
|
167
|
-
}
|
|
168
|
-
const coordinates = [];
|
|
169
|
-
for (let i = 0; i < operationsWithContext.length; i++) {
|
|
170
|
-
const opWithContext = operationsWithContext[i];
|
|
171
|
-
coordinates.push({
|
|
172
|
-
documentId: opWithContext.context.documentId,
|
|
173
|
-
scope: opWithContext.context.scope,
|
|
174
|
-
branch: opWithContext.context.branch,
|
|
175
|
-
operationIndex: opWithContext.operation.index,
|
|
176
|
-
});
|
|
177
|
-
}
|
|
178
|
-
return {
|
|
179
|
-
version: 1,
|
|
180
|
-
createdAtUtcIso: new Date().toISOString(),
|
|
181
|
-
coordinates,
|
|
182
|
-
};
|
|
183
|
-
}
|
|
184
|
-
export function createOperation(action, index, skip, context) {
|
|
185
|
-
const id = deriveOperationId(context.documentId, context.scope, context.branch, action.id);
|
|
186
|
-
return {
|
|
187
|
-
id,
|
|
188
|
-
index: index,
|
|
189
|
-
timestampUtcMs: action.timestampUtcMs || new Date().toISOString(),
|
|
190
|
-
hash: "",
|
|
191
|
-
skip: skip,
|
|
192
|
-
action: action,
|
|
193
|
-
};
|
|
194
|
-
}
|
|
195
|
-
export function updateDocumentRevision(document, scope, operationIndex) {
|
|
196
|
-
document.header.revision = {
|
|
197
|
-
...document.header.revision,
|
|
198
|
-
[scope]: operationIndex + 1,
|
|
199
|
-
};
|
|
200
|
-
}
|
|
201
|
-
export function buildSuccessResult(job, operation, documentId, documentType, resultingState, startTime) {
|
|
202
|
-
return {
|
|
203
|
-
job,
|
|
204
|
-
success: true,
|
|
205
|
-
operations: [operation],
|
|
206
|
-
operationsWithContext: [
|
|
207
|
-
{
|
|
208
|
-
operation,
|
|
209
|
-
context: {
|
|
210
|
-
documentId: documentId,
|
|
211
|
-
scope: job.scope,
|
|
212
|
-
branch: job.branch,
|
|
213
|
-
documentType: documentType,
|
|
214
|
-
resultingState,
|
|
215
|
-
ordinal: 0,
|
|
216
|
-
},
|
|
217
|
-
},
|
|
218
|
-
],
|
|
219
|
-
duration: Date.now() - startTime,
|
|
220
|
-
};
|
|
221
|
-
}
|
|
222
|
-
export function buildErrorResult(job, error, startTime) {
|
|
223
|
-
return {
|
|
224
|
-
job,
|
|
225
|
-
success: false,
|
|
226
|
-
error: error,
|
|
227
|
-
duration: Date.now() - startTime,
|
|
228
|
-
};
|
|
229
|
-
}
|
|
230
|
-
//# sourceMappingURL=util.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../../src/executor/util.ts"],"names":[],"mappings":"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"}
|
package/dist/src/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,114 +0,0 @@
|
|
|
1
|
-
import { ReactorEventTypes, } from "../events/types.js";
|
|
2
|
-
import { createConsistencyToken, createEmptyConsistencyToken, } from "../executor/util.js";
|
|
3
|
-
import { JobStatus } from "../shared/types.js";
|
|
4
|
-
/**
|
|
5
|
-
* In-memory implementation of IJobTracker.
|
|
6
|
-
* Maintains job status in a Map for synchronous access.
|
|
7
|
-
* Subscribes to operation events to update job states.
|
|
8
|
-
*/
|
|
9
|
-
export class InMemoryJobTracker {
|
|
10
|
-
eventBus;
|
|
11
|
-
jobs = new Map();
|
|
12
|
-
unsubscribers = [];
|
|
13
|
-
constructor(eventBus) {
|
|
14
|
-
this.eventBus = eventBus;
|
|
15
|
-
this.subscribeToEvents();
|
|
16
|
-
}
|
|
17
|
-
subscribeToEvents() {
|
|
18
|
-
this.unsubscribers.push(this.eventBus.subscribe(ReactorEventTypes.JOB_WRITE_READY, (_type, event) => {
|
|
19
|
-
this.handleWriteReady(event);
|
|
20
|
-
}));
|
|
21
|
-
this.unsubscribers.push(this.eventBus.subscribe(ReactorEventTypes.JOB_READ_READY, (_type, event) => {
|
|
22
|
-
this.handleReadReady(event);
|
|
23
|
-
}));
|
|
24
|
-
this.unsubscribers.push(this.eventBus.subscribe(ReactorEventTypes.JOB_FAILED, (_type, event) => {
|
|
25
|
-
this.handleJobFailed(event);
|
|
26
|
-
}));
|
|
27
|
-
}
|
|
28
|
-
handleWriteReady(event) {
|
|
29
|
-
const jobId = event.jobId;
|
|
30
|
-
const job = this.jobs.get(jobId);
|
|
31
|
-
if (job && job.status === JobStatus.RUNNING) {
|
|
32
|
-
const consistencyToken = createConsistencyToken(event.operations);
|
|
33
|
-
this.jobs.set(jobId, {
|
|
34
|
-
...job,
|
|
35
|
-
status: JobStatus.WRITE_READY,
|
|
36
|
-
consistencyToken,
|
|
37
|
-
});
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
handleReadReady(event) {
|
|
41
|
-
const jobId = event.jobId;
|
|
42
|
-
const job = this.jobs.get(jobId);
|
|
43
|
-
if (job && job.status === JobStatus.WRITE_READY) {
|
|
44
|
-
this.jobs.set(jobId, {
|
|
45
|
-
...job,
|
|
46
|
-
status: JobStatus.READ_READY,
|
|
47
|
-
});
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
handleJobFailed(event) {
|
|
51
|
-
this.markFailed(event.jobId, {
|
|
52
|
-
message: event.error.message,
|
|
53
|
-
stack: event.error.stack || "",
|
|
54
|
-
}, event.job);
|
|
55
|
-
}
|
|
56
|
-
shutdown() {
|
|
57
|
-
for (const unsubscribe of this.unsubscribers) {
|
|
58
|
-
unsubscribe();
|
|
59
|
-
}
|
|
60
|
-
this.unsubscribers = [];
|
|
61
|
-
}
|
|
62
|
-
registerJob(jobInfo) {
|
|
63
|
-
this.jobs.set(jobInfo.id, { ...jobInfo });
|
|
64
|
-
}
|
|
65
|
-
markRunning(jobId) {
|
|
66
|
-
const job = this.jobs.get(jobId);
|
|
67
|
-
if (!job) {
|
|
68
|
-
// Job not found - might have been registered elsewhere
|
|
69
|
-
// Create minimal job entry
|
|
70
|
-
this.jobs.set(jobId, {
|
|
71
|
-
id: jobId,
|
|
72
|
-
status: JobStatus.RUNNING,
|
|
73
|
-
createdAtUtcIso: new Date().toISOString(),
|
|
74
|
-
consistencyToken: createEmptyConsistencyToken(),
|
|
75
|
-
meta: { batchId: jobId, batchJobIds: [jobId] },
|
|
76
|
-
});
|
|
77
|
-
return;
|
|
78
|
-
}
|
|
79
|
-
// Update existing job
|
|
80
|
-
this.jobs.set(jobId, {
|
|
81
|
-
...job,
|
|
82
|
-
status: JobStatus.RUNNING,
|
|
83
|
-
});
|
|
84
|
-
}
|
|
85
|
-
markFailed(jobId, error, job) {
|
|
86
|
-
const existing = this.jobs.get(jobId);
|
|
87
|
-
if (!existing) {
|
|
88
|
-
this.jobs.set(jobId, {
|
|
89
|
-
id: jobId,
|
|
90
|
-
status: JobStatus.FAILED,
|
|
91
|
-
createdAtUtcIso: new Date().toISOString(),
|
|
92
|
-
completedAtUtcIso: new Date().toISOString(),
|
|
93
|
-
error,
|
|
94
|
-
job,
|
|
95
|
-
consistencyToken: createEmptyConsistencyToken(),
|
|
96
|
-
meta: { batchId: jobId, batchJobIds: [jobId] },
|
|
97
|
-
});
|
|
98
|
-
return;
|
|
99
|
-
}
|
|
100
|
-
this.jobs.set(jobId, {
|
|
101
|
-
...existing,
|
|
102
|
-
status: JobStatus.FAILED,
|
|
103
|
-
completedAtUtcIso: new Date().toISOString(),
|
|
104
|
-
error,
|
|
105
|
-
job,
|
|
106
|
-
consistencyToken: createEmptyConsistencyToken(),
|
|
107
|
-
});
|
|
108
|
-
}
|
|
109
|
-
getJobStatus(jobId) {
|
|
110
|
-
const job = this.jobs.get(jobId);
|
|
111
|
-
return job ? { ...job } : null;
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
//# sourceMappingURL=in-memory-job-tracker.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"in-memory-job-tracker.js","sourceRoot":"","sources":["../../../src/job-tracker/in-memory-job-tracker.ts"],"names":[],"mappings":"AACA,OAAO,EACL,iBAAiB,GAKlB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,sBAAsB,EACtB,2BAA2B,GAC5B,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EAAE,SAAS,EAAgB,MAAM,oBAAoB,CAAC;AAG7D;;;;GAIG;AACH,MAAM,OAAO,kBAAkB;IAIT;IAHZ,IAAI,GAAG,IAAI,GAAG,EAAmB,CAAC;IAClC,aAAa,GAAkB,EAAE,CAAC;IAE1C,YAAoB,QAAmB;QAAnB,aAAQ,GAAR,QAAQ,CAAW;QACrC,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC3B,CAAC;IAEO,iBAAiB;QACvB,IAAI,CAAC,aAAa,CAAC,IAAI,CACrB,IAAI,CAAC,QAAQ,CAAC,SAAS,CACrB,iBAAiB,CAAC,eAAe,EACjC,CAAC,KAAK,EAAE,KAAyB,EAAE,EAAE;YACnC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC,CACF,CACF,CAAC;QAEF,IAAI,CAAC,aAAa,CAAC,IAAI,CACrB,IAAI,CAAC,QAAQ,CAAC,SAAS,CACrB,iBAAiB,CAAC,cAAc,EAChC,CAAC,KAAK,EAAE,KAAwB,EAAE,EAAE;YAClC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC,CACF,CACF,CAAC;QAEF,IAAI,CAAC,aAAa,CAAC,IAAI,CACrB,IAAI,CAAC,QAAQ,CAAC,SAAS,CACrB,iBAAiB,CAAC,UAAU,EAC5B,CAAC,KAAK,EAAE,KAAqB,EAAE,EAAE;YAC/B,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC,CACF,CACF,CAAC;IACJ,CAAC;IAEO,gBAAgB,CAAC,KAAyB;QAChD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;QAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACjC,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,OAAO,EAAE,CAAC;YAC5C,MAAM,gBAAgB,GAAG,sBAAsB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YAClE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE;gBACnB,GAAG,GAAG;gBACN,MAAM,EAAE,SAAS,CAAC,WAAW;gBAC7B,gBAAgB;aACjB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAEO,eAAe,CAAC,KAAwB;QAC9C,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;QAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACjC,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,WAAW,EAAE,CAAC;YAChD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE;gBACnB,GAAG,GAAG;gBACN,MAAM,EAAE,SAAS,CAAC,UAAU;aAC7B,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAEO,eAAe,CAAC,KAAqB;QAC3C,IAAI,CAAC,UAAU,CACb,KAAK,CAAC,KAAK,EACX;YACE,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,OAAO;YAC5B,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE;SAC/B,EACD,KAAK,CAAC,GAAG,CACV,CAAC;IACJ,CAAC;IAED,QAAQ;QACN,KAAK,MAAM,WAAW,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YAC7C,WAAW,EAAE,CAAC;QAChB,CAAC;QACD,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;IAC1B,CAAC;IAED,WAAW,CAAC,OAAgB;QAC1B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED,WAAW,CAAC,KAAa;QACvB,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACjC,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,uDAAuD;YACvD,2BAA2B;YAC3B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE;gBACnB,EAAE,EAAE,KAAK;gBACT,MAAM,EAAE,SAAS,CAAC,OAAO;gBACzB,eAAe,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACzC,gBAAgB,EAAE,2BAA2B,EAAE;gBAC/C,IAAI,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,KAAK,CAAC,EAAE;aAC/C,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QAED,sBAAsB;QACtB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE;YACnB,GAAG,GAAG;YACN,MAAM,EAAE,SAAS,CAAC,OAAO;SAC1B,CAAC,CAAC;IACL,CAAC;IAED,UAAU,CAAC,KAAa,EAAE,KAAgB,EAAE,GAAS;QACnD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACtC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE;gBACnB,EAAE,EAAE,KAAK;gBACT,MAAM,EAAE,SAAS,CAAC,MAAM;gBACxB,eAAe,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACzC,iBAAiB,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBAC3C,KAAK;gBACL,GAAG;gBACH,gBAAgB,EAAE,2BAA2B,EAAE;gBAC/C,IAAI,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,KAAK,CAAC,EAAE;aAC/C,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE;YACnB,GAAG,QAAQ;YACX,MAAM,EAAE,SAAS,CAAC,MAAM;YACxB,iBAAiB,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YAC3C,KAAK;YACL,GAAG;YACH,gBAAgB,EAAE,2BAA2B,EAAE;SAChD,CAAC,CAAC;IACL,CAAC;IAED,YAAY,CAAC,KAAa;QACxB,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACjC,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACjC,CAAC;CACF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/job-tracker/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../src/job-tracker/interfaces.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"console.js","sourceRoot":"","sources":["../../../src/logging/console.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/logging/types.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/processors/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC"}
|
|
@@ -1,165 +0,0 @@
|
|
|
1
|
-
import { BaseReadModel } from "../read-models/base-read-model.js";
|
|
2
|
-
import { createMinimalDriveHeader, extractDeletedDocumentId, extractDriveHeader, isDriveCreation, isDriveDeletion, matchesFilter, } from "./utils.js";
|
|
3
|
-
/**
|
|
4
|
-
* Manages processor lifecycle based on operations.
|
|
5
|
-
* Extends BaseReadModel to receive operations from ReadModelCoordinator.
|
|
6
|
-
*
|
|
7
|
-
* Responsibilities:
|
|
8
|
-
* 1. Detect drive creation from CREATE_DOCUMENT operations
|
|
9
|
-
* 2. Create processors for each drive using registered factories
|
|
10
|
-
* 3. Route operations to matching processors based on filters
|
|
11
|
-
* 4. Clean up processors when drives are deleted or factories are unregistered
|
|
12
|
-
*/
|
|
13
|
-
export class ProcessorManager extends BaseReadModel {
|
|
14
|
-
factoryRegistry = new Map();
|
|
15
|
-
processorsByDrive = new Map();
|
|
16
|
-
factoryToProcessors = new Map();
|
|
17
|
-
knownDriveIds = new Set();
|
|
18
|
-
constructor(db, operationIndex, writeCache, consistencyTracker) {
|
|
19
|
-
super(db, operationIndex, writeCache, consistencyTracker, "processor-manager");
|
|
20
|
-
}
|
|
21
|
-
async indexOperations(items) {
|
|
22
|
-
if (items.length === 0)
|
|
23
|
-
return;
|
|
24
|
-
await this.detectAndRegisterNewDrives(items);
|
|
25
|
-
await this.detectAndCleanupDeletedDrives(items);
|
|
26
|
-
await this.routeOperationsToProcessors(items);
|
|
27
|
-
await this.db.transaction().execute(async (trx) => {
|
|
28
|
-
await this.saveState(trx, items);
|
|
29
|
-
});
|
|
30
|
-
this.updateConsistencyTracker(items);
|
|
31
|
-
}
|
|
32
|
-
async registerFactory(identifier, factory) {
|
|
33
|
-
if (this.factoryRegistry.has(identifier)) {
|
|
34
|
-
await this.unregisterFactory(identifier);
|
|
35
|
-
}
|
|
36
|
-
this.factoryRegistry.set(identifier, factory);
|
|
37
|
-
this.factoryToProcessors.set(identifier, new Map());
|
|
38
|
-
for (const driveId of this.knownDriveIds) {
|
|
39
|
-
const driveHeader = createMinimalDriveHeader(driveId);
|
|
40
|
-
await this.createProcessorsForDrive(driveId, identifier, factory, driveHeader);
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
async unregisterFactory(identifier) {
|
|
44
|
-
const factoryProcessors = this.factoryToProcessors.get(identifier);
|
|
45
|
-
if (!factoryProcessors)
|
|
46
|
-
return;
|
|
47
|
-
for (const [driveId, records] of factoryProcessors) {
|
|
48
|
-
for (const record of records) {
|
|
49
|
-
await this.safeDisconnect(record.processor);
|
|
50
|
-
}
|
|
51
|
-
const driveProcessors = this.processorsByDrive.get(driveId);
|
|
52
|
-
if (driveProcessors) {
|
|
53
|
-
const remaining = driveProcessors.filter((p) => !records.includes(p));
|
|
54
|
-
if (remaining.length > 0) {
|
|
55
|
-
this.processorsByDrive.set(driveId, remaining);
|
|
56
|
-
}
|
|
57
|
-
else {
|
|
58
|
-
this.processorsByDrive.delete(driveId);
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
this.factoryToProcessors.delete(identifier);
|
|
63
|
-
this.factoryRegistry.delete(identifier);
|
|
64
|
-
}
|
|
65
|
-
getFactoryIdentifiers() {
|
|
66
|
-
return Array.from(this.factoryRegistry.keys());
|
|
67
|
-
}
|
|
68
|
-
getProcessorsForDrive(driveId) {
|
|
69
|
-
return this.processorsByDrive.get(driveId) ?? [];
|
|
70
|
-
}
|
|
71
|
-
async detectAndRegisterNewDrives(operations) {
|
|
72
|
-
for (const op of operations) {
|
|
73
|
-
if (!isDriveCreation(op))
|
|
74
|
-
continue;
|
|
75
|
-
const driveId = op.context.documentId;
|
|
76
|
-
if (this.knownDriveIds.has(driveId))
|
|
77
|
-
continue;
|
|
78
|
-
this.knownDriveIds.add(driveId);
|
|
79
|
-
const driveHeader = extractDriveHeader(op);
|
|
80
|
-
if (!driveHeader)
|
|
81
|
-
continue;
|
|
82
|
-
for (const [identifier, factory] of this.factoryRegistry) {
|
|
83
|
-
await this.createProcessorsForDrive(driveId, identifier, factory, driveHeader);
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
async detectAndCleanupDeletedDrives(operations) {
|
|
88
|
-
for (const op of operations) {
|
|
89
|
-
if (!isDriveDeletion(op))
|
|
90
|
-
continue;
|
|
91
|
-
const driveId = extractDeletedDocumentId(op);
|
|
92
|
-
if (!driveId || !this.knownDriveIds.has(driveId))
|
|
93
|
-
continue;
|
|
94
|
-
if (!this.isDeletedDocumentADrive(driveId))
|
|
95
|
-
continue;
|
|
96
|
-
await this.cleanupDriveProcessors(driveId);
|
|
97
|
-
this.knownDriveIds.delete(driveId);
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
isDeletedDocumentADrive(documentId) {
|
|
101
|
-
return this.knownDriveIds.has(documentId);
|
|
102
|
-
}
|
|
103
|
-
async createProcessorsForDrive(driveId, identifier, factory, driveHeader) {
|
|
104
|
-
let records = [];
|
|
105
|
-
try {
|
|
106
|
-
records = await factory(driveHeader);
|
|
107
|
-
}
|
|
108
|
-
catch (error) {
|
|
109
|
-
console.error(`ProcessorManager: Factory '${identifier}' failed for drive '${driveId}':`, error);
|
|
110
|
-
return;
|
|
111
|
-
}
|
|
112
|
-
if (records.length === 0)
|
|
113
|
-
return;
|
|
114
|
-
const factoryProcessors = this.factoryToProcessors.get(identifier);
|
|
115
|
-
if (factoryProcessors) {
|
|
116
|
-
factoryProcessors.set(driveId, records);
|
|
117
|
-
}
|
|
118
|
-
const existingDriveProcessors = this.processorsByDrive.get(driveId) ?? [];
|
|
119
|
-
this.processorsByDrive.set(driveId, [
|
|
120
|
-
...existingDriveProcessors,
|
|
121
|
-
...records,
|
|
122
|
-
]);
|
|
123
|
-
}
|
|
124
|
-
async cleanupDriveProcessors(driveId) {
|
|
125
|
-
const processors = this.processorsByDrive.get(driveId);
|
|
126
|
-
if (!processors)
|
|
127
|
-
return;
|
|
128
|
-
for (const record of processors) {
|
|
129
|
-
await this.safeDisconnect(record.processor);
|
|
130
|
-
}
|
|
131
|
-
this.processorsByDrive.delete(driveId);
|
|
132
|
-
for (const factoryProcessors of this.factoryToProcessors.values()) {
|
|
133
|
-
factoryProcessors.delete(driveId);
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
async safeDisconnect(processor) {
|
|
137
|
-
try {
|
|
138
|
-
await processor.onDisconnect();
|
|
139
|
-
}
|
|
140
|
-
catch (error) {
|
|
141
|
-
console.error("ProcessorManager: Error disconnecting processor:", error);
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
async routeOperationsToProcessors(operations) {
|
|
145
|
-
const processorOperations = new Map();
|
|
146
|
-
for (const [, records] of this.processorsByDrive) {
|
|
147
|
-
for (const { processor, filter } of records) {
|
|
148
|
-
const matching = operations.filter((op) => matchesFilter(op, filter));
|
|
149
|
-
if (matching.length === 0)
|
|
150
|
-
continue;
|
|
151
|
-
const existing = processorOperations.get(processor) ?? [];
|
|
152
|
-
processorOperations.set(processor, [...existing, ...matching]);
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
await Promise.all(Array.from(processorOperations.entries()).map(async ([processor, ops]) => {
|
|
156
|
-
try {
|
|
157
|
-
await processor.onOperations(ops);
|
|
158
|
-
}
|
|
159
|
-
catch (error) {
|
|
160
|
-
console.error("ProcessorManager: Error in processor.onOperations:", error);
|
|
161
|
-
}
|
|
162
|
-
}));
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
//# sourceMappingURL=processor-manager.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"processor-manager.js","sourceRoot":"","sources":["../../../src/processors/processor-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/processors/relational/types.ts"],"names":[],"mappings":"AAAA,cAAc,mDAAmD,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/processors/relational/utils.ts"],"names":[],"mappings":"AAAA,cAAc,mDAAmD,CAAC"}
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
const DRIVE_DOCUMENT_TYPE = "powerhouse/document-drive";
|
|
2
|
-
export function isDriveCreation(op) {
|
|
3
|
-
return (op.operation.action.type === "CREATE_DOCUMENT" &&
|
|
4
|
-
op.context.documentType === DRIVE_DOCUMENT_TYPE);
|
|
5
|
-
}
|
|
6
|
-
export function isDriveDeletion(op) {
|
|
7
|
-
return op.operation.action.type === "DELETE_DOCUMENT";
|
|
8
|
-
}
|
|
9
|
-
export function extractDriveHeader(op) {
|
|
10
|
-
if (!op.context.resultingState)
|
|
11
|
-
return undefined;
|
|
12
|
-
const state = JSON.parse(op.context.resultingState);
|
|
13
|
-
return state.header;
|
|
14
|
-
}
|
|
15
|
-
export function extractDeletedDocumentId(op) {
|
|
16
|
-
const input = op.operation.action.input;
|
|
17
|
-
return input.documentId ?? op.context.documentId;
|
|
18
|
-
}
|
|
19
|
-
export function createMinimalDriveHeader(driveId) {
|
|
20
|
-
return {
|
|
21
|
-
id: driveId,
|
|
22
|
-
documentType: DRIVE_DOCUMENT_TYPE,
|
|
23
|
-
sig: {
|
|
24
|
-
publicKey: {},
|
|
25
|
-
nonce: "",
|
|
26
|
-
},
|
|
27
|
-
slug: "",
|
|
28
|
-
name: "",
|
|
29
|
-
branch: "main",
|
|
30
|
-
revision: {},
|
|
31
|
-
createdAtUtcIso: new Date().toISOString(),
|
|
32
|
-
lastModifiedAtUtcIso: new Date().toISOString(),
|
|
33
|
-
};
|
|
34
|
-
}
|
|
35
|
-
export function matchesFilter(op, filter) {
|
|
36
|
-
if (filter.documentType && filter.documentType.length > 0) {
|
|
37
|
-
if (!filter.documentType.includes(op.context.documentType)) {
|
|
38
|
-
return false;
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
if (filter.scope && filter.scope.length > 0) {
|
|
42
|
-
if (!filter.scope.includes(op.context.scope)) {
|
|
43
|
-
return false;
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
if (filter.branch && filter.branch.length > 0) {
|
|
47
|
-
if (!filter.branch.includes(op.context.branch)) {
|
|
48
|
-
return false;
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
if (filter.documentId && filter.documentId.length > 0) {
|
|
52
|
-
const hasWildcard = filter.documentId.includes("*");
|
|
53
|
-
if (!hasWildcard && !filter.documentId.includes(op.context.documentId)) {
|
|
54
|
-
return false;
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
return true;
|
|
58
|
-
}
|
|
59
|
-
//# sourceMappingURL=utils.js.map
|