@powerhousedao/reactor 5.1.0 → 5.2.0-staging.2
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/document-meta-cache-types.d.ts +114 -0
- package/dist/src/cache/document-meta-cache-types.d.ts.map +1 -0
- package/dist/src/cache/document-meta-cache-types.js +2 -0
- package/dist/src/cache/document-meta-cache-types.js.map +1 -0
- package/dist/src/cache/document-meta-cache.d.ts +30 -0
- package/dist/src/cache/document-meta-cache.d.ts.map +1 -0
- package/dist/src/cache/document-meta-cache.js +127 -0
- package/dist/src/cache/document-meta-cache.js.map +1 -0
- package/dist/src/cache/kysely-operation-index.d.ts +4 -2
- package/dist/src/cache/kysely-operation-index.d.ts.map +1 -1
- package/dist/src/cache/kysely-operation-index.js +54 -0
- package/dist/src/cache/kysely-operation-index.js.map +1 -1
- package/dist/src/cache/operation-index-types.d.ts +3 -2
- package/dist/src/cache/operation-index-types.d.ts.map +1 -1
- package/dist/src/cache/operation-index-types.js.map +1 -1
- package/dist/src/client/reactor-client.d.ts +6 -6
- package/dist/src/client/reactor-client.d.ts.map +1 -1
- package/dist/src/client/reactor-client.js +48 -45
- package/dist/src/client/reactor-client.js.map +1 -1
- package/dist/src/client/types.d.ts +10 -10
- package/dist/src/client/types.d.ts.map +1 -1
- package/dist/src/core/reactor-builder.d.ts +9 -3
- package/dist/src/core/reactor-builder.d.ts.map +1 -1
- package/dist/src/core/reactor-builder.js +81 -29
- package/dist/src/core/reactor-builder.js.map +1 -1
- package/dist/src/core/{builder.d.ts → reactor-client-builder.d.ts} +11 -4
- package/dist/src/core/reactor-client-builder.d.ts.map +1 -0
- package/dist/src/core/{builder.js → reactor-client-builder.js} +43 -23
- package/dist/src/core/reactor-client-builder.js.map +1 -0
- package/dist/src/core/reactor.d.ts +11 -14
- package/dist/src/core/reactor.d.ts.map +1 -1
- package/dist/src/core/reactor.js +47 -43
- package/dist/src/core/reactor.js.map +1 -1
- package/dist/src/core/types.d.ts +84 -20
- package/dist/src/core/types.d.ts.map +1 -1
- package/dist/src/core/utils.d.ts +9 -0
- package/dist/src/core/utils.d.ts.map +1 -1
- package/dist/src/core/utils.js +30 -0
- package/dist/src/core/utils.js.map +1 -1
- package/dist/src/executor/simple-job-executor-manager.d.ts.map +1 -1
- package/dist/src/executor/simple-job-executor-manager.js +1 -0
- package/dist/src/executor/simple-job-executor-manager.js.map +1 -1
- package/dist/src/executor/simple-job-executor.d.ts +7 -1
- package/dist/src/executor/simple-job-executor.d.ts.map +1 -1
- package/dist/src/executor/simple-job-executor.js +142 -21
- package/dist/src/executor/simple-job-executor.js.map +1 -1
- package/dist/src/index.d.ts +13 -6
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +9 -3
- package/dist/src/index.js.map +1 -1
- package/dist/src/logging/console.d.ts +13 -0
- package/dist/src/logging/console.d.ts.map +1 -0
- package/dist/src/logging/console.js +77 -0
- package/dist/src/logging/console.js.map +1 -0
- package/dist/src/logging/types.d.ts +11 -0
- package/dist/src/logging/types.d.ts.map +1 -0
- package/dist/src/logging/types.js +2 -0
- package/dist/src/logging/types.js.map +1 -0
- package/dist/src/read-models/base-read-model.d.ts +60 -0
- package/dist/src/read-models/base-read-model.d.ts.map +1 -0
- package/dist/src/read-models/base-read-model.js +143 -0
- package/dist/src/read-models/base-read-model.js.map +1 -0
- package/dist/src/read-models/document-view.d.ts +6 -7
- package/dist/src/read-models/document-view.d.ts.map +1 -1
- package/dist/src/read-models/document-view.js +16 -81
- package/dist/src/read-models/document-view.js.map +1 -1
- package/dist/src/read-models/types.d.ts +2 -1
- package/dist/src/read-models/types.d.ts.map +1 -1
- package/dist/src/shared/errors.d.ts +8 -0
- package/dist/src/shared/errors.d.ts.map +1 -1
- package/dist/src/shared/errors.js +14 -0
- package/dist/src/shared/errors.js.map +1 -1
- package/dist/src/signer/types.d.ts +23 -1
- package/dist/src/signer/types.d.ts.map +1 -1
- package/dist/src/storage/consistency-aware-legacy-storage.d.ts +33 -0
- package/dist/src/storage/consistency-aware-legacy-storage.d.ts.map +1 -0
- package/dist/src/storage/consistency-aware-legacy-storage.js +65 -0
- package/dist/src/storage/consistency-aware-legacy-storage.js.map +1 -0
- package/dist/src/storage/interfaces.d.ts +81 -0
- package/dist/src/storage/interfaces.d.ts.map +1 -1
- package/dist/src/storage/interfaces.js.map +1 -1
- package/dist/src/storage/kysely/store.d.ts.map +1 -1
- package/dist/src/storage/kysely/store.js +1 -0
- package/dist/src/storage/kysely/store.js.map +1 -1
- package/dist/src/storage/kysely/sync-remote-storage.d.ts.map +1 -1
- package/dist/src/storage/kysely/sync-remote-storage.js +3 -4
- package/dist/src/storage/kysely/sync-remote-storage.js.map +1 -1
- package/dist/src/storage/migrations/008_create_view_state_table.d.ts +1 -1
- package/dist/src/storage/migrations/008_create_view_state_table.d.ts.map +1 -1
- package/dist/src/storage/migrations/008_create_view_state_table.js +2 -1
- package/dist/src/storage/migrations/008_create_view_state_table.js.map +1 -1
- package/dist/src/storage/migrations/run-migrations.js +3 -3
- package/dist/src/storage/migrations/run-migrations.js.map +1 -1
- package/dist/src/sync/channels/composite-channel-factory.d.ts +27 -0
- package/dist/src/sync/channels/composite-channel-factory.d.ts.map +1 -0
- package/dist/src/sync/channels/composite-channel-factory.js +86 -0
- package/dist/src/sync/channels/composite-channel-factory.js.map +1 -0
- package/dist/src/sync/channels/gql-channel-factory.d.ts +22 -0
- package/dist/src/sync/channels/gql-channel-factory.d.ts.map +1 -0
- package/dist/src/sync/channels/gql-channel-factory.js +72 -0
- package/dist/src/sync/channels/gql-channel-factory.js.map +1 -0
- package/dist/src/sync/channels/gql-channel.d.ts +104 -0
- package/dist/src/sync/channels/gql-channel.d.ts.map +1 -0
- package/dist/src/sync/channels/gql-channel.js +349 -0
- package/dist/src/sync/channels/gql-channel.js.map +1 -0
- package/dist/src/sync/channels/index.d.ts +3 -0
- package/dist/src/sync/channels/index.d.ts.map +1 -1
- package/dist/src/sync/channels/index.js +3 -0
- package/dist/src/sync/channels/index.js.map +1 -1
- package/dist/src/sync/channels/internal-channel.d.ts +5 -0
- package/dist/src/sync/channels/internal-channel.d.ts.map +1 -1
- package/dist/src/sync/channels/internal-channel.js +7 -0
- package/dist/src/sync/channels/internal-channel.js.map +1 -1
- package/dist/src/sync/index.d.ts +1 -1
- package/dist/src/sync/index.d.ts.map +1 -1
- package/dist/src/sync/index.js +1 -1
- package/dist/src/sync/index.js.map +1 -1
- package/dist/src/sync/interfaces.d.ts +26 -3
- package/dist/src/sync/interfaces.d.ts.map +1 -1
- package/dist/src/sync/sync-builder.d.ts +2 -1
- package/dist/src/sync/sync-builder.d.ts.map +1 -1
- package/dist/src/sync/sync-builder.js +11 -1
- package/dist/src/sync/sync-builder.js.map +1 -1
- package/dist/src/sync/sync-manager.d.ts +4 -2
- package/dist/src/sync/sync-manager.d.ts.map +1 -1
- package/dist/src/sync/sync-manager.js +60 -4
- package/dist/src/sync/sync-manager.js.map +1 -1
- package/dist/src/sync/types.d.ts +1 -2
- package/dist/src/sync/types.d.ts.map +1 -1
- package/package.json +6 -5
- package/dist/src/core/builder.d.ts.map +0 -1
- package/dist/src/core/builder.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"console.js","sourceRoot":"","sources":["../../../src/logging/console.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export type LoggerErrorHandler = (...data: any[]) => void;
|
|
2
|
+
export type ILogger = {
|
|
3
|
+
level: "verbose" | "debug" | "info" | "warn" | "error";
|
|
4
|
+
verbose: (message: string, ...replacements: any[]) => void;
|
|
5
|
+
debug: (message: string, ...replacements: any[]) => void;
|
|
6
|
+
info: (message: string, ...replacements: any[]) => void;
|
|
7
|
+
warn: (message: string, ...replacements: any[]) => void;
|
|
8
|
+
error: (message: string, ...replacements: any[]) => void;
|
|
9
|
+
errorHandler: LoggerErrorHandler;
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/logging/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,kBAAkB,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;AAE1D,MAAM,MAAM,OAAO,GAAG;IACpB,KAAK,EAAE,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IAEvD,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,YAAY,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;IAC3D,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,YAAY,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;IACzD,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,YAAY,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;IACxD,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,YAAY,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;IACxD,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,YAAY,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;IAEzD,YAAY,EAAE,kBAAkB,CAAC;CAClC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/logging/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import type { Kysely, Transaction } from "kysely";
|
|
2
|
+
import type { IOperationIndex } from "../cache/operation-index-types.js";
|
|
3
|
+
import type { IWriteCache } from "../cache/write/interfaces.js";
|
|
4
|
+
import type { IConsistencyTracker } from "../shared/consistency-tracker.js";
|
|
5
|
+
import type { ConsistencyToken } from "../shared/types.js";
|
|
6
|
+
import type { OperationWithContext } from "../storage/interfaces.js";
|
|
7
|
+
import type { IReadModel } from "./interfaces.js";
|
|
8
|
+
import type { DocumentViewDatabase } from "./types.js";
|
|
9
|
+
/**
|
|
10
|
+
* Base class for read models that provides catch-up/rewind functionality.
|
|
11
|
+
* Handles initialization, state tracking via ViewState table, and consistency tracking.
|
|
12
|
+
* Subclasses should override indexOperations() with their specific indexing logic.
|
|
13
|
+
*/
|
|
14
|
+
export declare class BaseReadModel implements IReadModel {
|
|
15
|
+
protected db: Kysely<DocumentViewDatabase>;
|
|
16
|
+
protected operationIndex: IOperationIndex;
|
|
17
|
+
protected writeCache: IWriteCache;
|
|
18
|
+
protected consistencyTracker: IConsistencyTracker;
|
|
19
|
+
protected readModelId: string;
|
|
20
|
+
protected lastOrdinal: number;
|
|
21
|
+
constructor(db: Kysely<DocumentViewDatabase>, operationIndex: IOperationIndex, writeCache: IWriteCache, consistencyTracker: IConsistencyTracker, readModelId: string);
|
|
22
|
+
/**
|
|
23
|
+
* Initializes the read model by loading state and catching up on missed operations.
|
|
24
|
+
*/
|
|
25
|
+
init(): Promise<void>;
|
|
26
|
+
/**
|
|
27
|
+
* Indexes operations into the read model.
|
|
28
|
+
* Subclasses should override this method to implement their specific indexing logic.
|
|
29
|
+
* The overriding method should call saveState() and updateConsistencyTracker() at the end.
|
|
30
|
+
*/
|
|
31
|
+
indexOperations(items: OperationWithContext[]): Promise<void>;
|
|
32
|
+
/**
|
|
33
|
+
* Waits for the read model to reach the specified consistency level.
|
|
34
|
+
*/
|
|
35
|
+
waitForConsistency(token: ConsistencyToken, timeoutMs?: number, signal?: AbortSignal): Promise<void>;
|
|
36
|
+
/**
|
|
37
|
+
* Rebuilds document state for each operation using the write cache.
|
|
38
|
+
*/
|
|
39
|
+
protected rebuildStateForOperations(operations: OperationWithContext[]): Promise<OperationWithContext[]>;
|
|
40
|
+
/**
|
|
41
|
+
* Loads the last processed ordinal from the ViewState table.
|
|
42
|
+
* Returns undefined if no state exists for this read model.
|
|
43
|
+
*/
|
|
44
|
+
protected loadState(): Promise<number | undefined>;
|
|
45
|
+
/**
|
|
46
|
+
* Initializes the ViewState row for this read model.
|
|
47
|
+
*/
|
|
48
|
+
protected initializeState(): Promise<void>;
|
|
49
|
+
/**
|
|
50
|
+
* Saves the last processed ordinal to the ViewState table.
|
|
51
|
+
* Should be called at the end of indexOperations() within a transaction.
|
|
52
|
+
*/
|
|
53
|
+
protected saveState(trx: Transaction<DocumentViewDatabase>, items: OperationWithContext[]): Promise<void>;
|
|
54
|
+
/**
|
|
55
|
+
* Updates the consistency tracker with the processed operations.
|
|
56
|
+
* Should be called at the end of indexOperations() after the transaction commits.
|
|
57
|
+
*/
|
|
58
|
+
protected updateConsistencyTracker(items: OperationWithContext[]): void;
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=base-read-model.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-read-model.d.ts","sourceRoot":"","sources":["../../../src/read-models/base-read-model.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAClD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,KAAK,EAEV,gBAAgB,EACjB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAEvD;;;;GAIG;AACH,qBAAa,aAAc,YAAW,UAAU;IAI5C,SAAS,CAAC,EAAE,EAAE,MAAM,CAAC,oBAAoB,CAAC;IAC1C,SAAS,CAAC,cAAc,EAAE,eAAe;IACzC,SAAS,CAAC,UAAU,EAAE,WAAW;IACjC,SAAS,CAAC,kBAAkB,EAAE,mBAAmB;IACjD,SAAS,CAAC,WAAW,EAAE,MAAM;IAP/B,SAAS,CAAC,WAAW,EAAE,MAAM,CAAK;gBAGtB,EAAE,EAAE,MAAM,CAAC,oBAAoB,CAAC,EAChC,cAAc,EAAE,eAAe,EAC/B,UAAU,EAAE,WAAW,EACvB,kBAAkB,EAAE,mBAAmB,EACvC,WAAW,EAAE,MAAM;IAG/B;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IA4B3B;;;;OAIG;IACG,eAAe,CAAC,KAAK,EAAE,oBAAoB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAUnE;;OAEG;IACG,kBAAkB,CACtB,KAAK,EAAE,gBAAgB,EACvB,SAAS,CAAC,EAAE,MAAM,EAClB,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,IAAI,CAAC;IAOhB;;OAEG;cACa,yBAAyB,CACvC,UAAU,EAAE,oBAAoB,EAAE,GACjC,OAAO,CAAC,oBAAoB,EAAE,CAAC;IA0BlC;;;OAGG;cACa,SAAS,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAWxD;;OAEG;cACa,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAWhD;;;OAGG;cACa,SAAS,CACvB,GAAG,EAAE,WAAW,CAAC,oBAAoB,CAAC,EACtC,KAAK,EAAE,oBAAoB,EAAE,GAC5B,OAAO,CAAC,IAAI,CAAC;IAchB;;;OAGG;IACH,SAAS,CAAC,wBAAwB,CAAC,KAAK,EAAE,oBAAoB,EAAE,GAAG,IAAI;CAexE"}
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Base class for read models that provides catch-up/rewind functionality.
|
|
3
|
+
* Handles initialization, state tracking via ViewState table, and consistency tracking.
|
|
4
|
+
* Subclasses should override indexOperations() with their specific indexing logic.
|
|
5
|
+
*/
|
|
6
|
+
export class BaseReadModel {
|
|
7
|
+
db;
|
|
8
|
+
operationIndex;
|
|
9
|
+
writeCache;
|
|
10
|
+
consistencyTracker;
|
|
11
|
+
readModelId;
|
|
12
|
+
lastOrdinal = 0;
|
|
13
|
+
constructor(db, operationIndex, writeCache, consistencyTracker, readModelId) {
|
|
14
|
+
this.db = db;
|
|
15
|
+
this.operationIndex = operationIndex;
|
|
16
|
+
this.writeCache = writeCache;
|
|
17
|
+
this.consistencyTracker = consistencyTracker;
|
|
18
|
+
this.readModelId = readModelId;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Initializes the read model by loading state and catching up on missed operations.
|
|
22
|
+
*/
|
|
23
|
+
async init() {
|
|
24
|
+
const viewState = await this.loadState();
|
|
25
|
+
if (viewState !== undefined) {
|
|
26
|
+
this.lastOrdinal = viewState;
|
|
27
|
+
const missedOperations = await this.operationIndex.getSinceOrdinal(this.lastOrdinal);
|
|
28
|
+
if (missedOperations.items.length > 0) {
|
|
29
|
+
const opsWithState = await this.rebuildStateForOperations(missedOperations.items);
|
|
30
|
+
await this.indexOperations(opsWithState);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
await this.initializeState();
|
|
35
|
+
const allOperations = await this.operationIndex.getSinceOrdinal(0);
|
|
36
|
+
if (allOperations.items.length > 0) {
|
|
37
|
+
const opsWithState = await this.rebuildStateForOperations(allOperations.items);
|
|
38
|
+
await this.indexOperations(opsWithState);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Indexes operations into the read model.
|
|
44
|
+
* Subclasses should override this method to implement their specific indexing logic.
|
|
45
|
+
* The overriding method should call saveState() and updateConsistencyTracker() at the end.
|
|
46
|
+
*/
|
|
47
|
+
async indexOperations(items) {
|
|
48
|
+
if (items.length === 0)
|
|
49
|
+
return;
|
|
50
|
+
await this.db.transaction().execute(async (trx) => {
|
|
51
|
+
await this.saveState(trx, items);
|
|
52
|
+
});
|
|
53
|
+
this.updateConsistencyTracker(items);
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Waits for the read model to reach the specified consistency level.
|
|
57
|
+
*/
|
|
58
|
+
async waitForConsistency(token, timeoutMs, signal) {
|
|
59
|
+
if (token.coordinates.length === 0) {
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
await this.consistencyTracker.waitFor(token.coordinates, timeoutMs, signal);
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Rebuilds document state for each operation using the write cache.
|
|
66
|
+
*/
|
|
67
|
+
async rebuildStateForOperations(operations) {
|
|
68
|
+
const result = [];
|
|
69
|
+
for (const op of operations) {
|
|
70
|
+
const { documentId, scope, branch } = op.context;
|
|
71
|
+
const targetRevision = op.operation.index;
|
|
72
|
+
const document = await this.writeCache.getState(documentId, scope, branch, targetRevision);
|
|
73
|
+
result.push({
|
|
74
|
+
operation: op.operation,
|
|
75
|
+
context: {
|
|
76
|
+
...op.context,
|
|
77
|
+
resultingState: JSON.stringify(document),
|
|
78
|
+
},
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
return result;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Loads the last processed ordinal from the ViewState table.
|
|
85
|
+
* Returns undefined if no state exists for this read model.
|
|
86
|
+
*/
|
|
87
|
+
async loadState() {
|
|
88
|
+
const viewStateDb = this.db;
|
|
89
|
+
const row = await viewStateDb
|
|
90
|
+
.selectFrom("ViewState")
|
|
91
|
+
.select("lastOrdinal")
|
|
92
|
+
.where("readModelId", "=", this.readModelId)
|
|
93
|
+
.executeTakeFirst();
|
|
94
|
+
return row?.lastOrdinal;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Initializes the ViewState row for this read model.
|
|
98
|
+
*/
|
|
99
|
+
async initializeState() {
|
|
100
|
+
const viewStateDb = this.db;
|
|
101
|
+
await viewStateDb
|
|
102
|
+
.insertInto("ViewState")
|
|
103
|
+
.values({
|
|
104
|
+
readModelId: this.readModelId,
|
|
105
|
+
lastOrdinal: 0,
|
|
106
|
+
})
|
|
107
|
+
.execute();
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Saves the last processed ordinal to the ViewState table.
|
|
111
|
+
* Should be called at the end of indexOperations() within a transaction.
|
|
112
|
+
*/
|
|
113
|
+
async saveState(trx, items) {
|
|
114
|
+
const maxOrdinal = Math.max(...items.map((item) => item.context.ordinal));
|
|
115
|
+
this.lastOrdinal = maxOrdinal;
|
|
116
|
+
await trx
|
|
117
|
+
.updateTable("ViewState")
|
|
118
|
+
.set({
|
|
119
|
+
lastOrdinal: maxOrdinal,
|
|
120
|
+
lastOperationTimestamp: new Date(),
|
|
121
|
+
})
|
|
122
|
+
.where("readModelId", "=", this.readModelId)
|
|
123
|
+
.execute();
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Updates the consistency tracker with the processed operations.
|
|
127
|
+
* Should be called at the end of indexOperations() after the transaction commits.
|
|
128
|
+
*/
|
|
129
|
+
updateConsistencyTracker(items) {
|
|
130
|
+
const coordinates = [];
|
|
131
|
+
for (let i = 0; i < items.length; i++) {
|
|
132
|
+
const item = items[i];
|
|
133
|
+
coordinates.push({
|
|
134
|
+
documentId: item.context.documentId,
|
|
135
|
+
scope: item.context.scope,
|
|
136
|
+
branch: item.context.branch,
|
|
137
|
+
operationIndex: item.operation.index,
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
this.consistencyTracker.update(coordinates);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
//# sourceMappingURL=base-read-model.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-read-model.js","sourceRoot":"","sources":["../../../src/read-models/base-read-model.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,20 +1,19 @@
|
|
|
1
1
|
import type { PHDocument } from "document-model";
|
|
2
2
|
import type { Kysely } from "kysely";
|
|
3
|
+
import type { IOperationIndex } from "../cache/operation-index-types.js";
|
|
4
|
+
import type { IWriteCache } from "../cache/write/interfaces.js";
|
|
3
5
|
import type { IConsistencyTracker } from "../shared/consistency-tracker.js";
|
|
4
6
|
import type { ConsistencyToken } from "../shared/types.js";
|
|
5
7
|
import type { IDocumentView, IOperationStore, OperationWithContext, PagedResults, PagingOptions, ViewFilter } from "../storage/interfaces.js";
|
|
6
8
|
import type { Database as StorageDatabase } from "../storage/kysely/types.js";
|
|
9
|
+
import { BaseReadModel } from "./base-read-model.js";
|
|
7
10
|
import type { DocumentViewDatabase } from "./types.js";
|
|
8
11
|
type Database = StorageDatabase & DocumentViewDatabase;
|
|
9
|
-
export declare class KyselyDocumentView implements IDocumentView {
|
|
10
|
-
private db;
|
|
12
|
+
export declare class KyselyDocumentView extends BaseReadModel implements IDocumentView {
|
|
11
13
|
private operationStore;
|
|
12
|
-
private
|
|
13
|
-
|
|
14
|
-
constructor(db: Kysely<Database>, operationStore: IOperationStore, consistencyTracker: IConsistencyTracker);
|
|
15
|
-
init(): Promise<void>;
|
|
14
|
+
private _db;
|
|
15
|
+
constructor(db: Kysely<Database>, operationStore: IOperationStore, operationIndex: IOperationIndex, writeCache: IWriteCache, consistencyTracker: IConsistencyTracker);
|
|
16
16
|
indexOperations(items: OperationWithContext[]): Promise<void>;
|
|
17
|
-
waitForConsistency(token: ConsistencyToken, timeoutMs?: number, signal?: AbortSignal): Promise<void>;
|
|
18
17
|
exists(documentIds: string[], consistencyToken?: ConsistencyToken, signal?: AbortSignal): Promise<boolean[]>;
|
|
19
18
|
get<TDocument extends PHDocument>(documentId: string, view?: ViewFilter, consistencyToken?: ConsistencyToken, signal?: AbortSignal): Promise<TDocument>;
|
|
20
19
|
getByIdOrSlug<TDocument extends PHDocument>(identifier: string, view?: ViewFilter, consistencyToken?: ConsistencyToken, signal?: AbortSignal): Promise<TDocument>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"document-view.d.ts","sourceRoot":"","sources":["../../../src/read-models/document-view.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAa,UAAU,EAAoB,MAAM,gBAAgB,CAAC;AAC9E,OAAO,KAAK,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"document-view.d.ts","sourceRoot":"","sources":["../../../src/read-models/document-view.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAa,UAAU,EAAoB,MAAM,gBAAgB,CAAC;AAC9E,OAAO,KAAK,EAAE,MAAM,EAAe,MAAM,QAAQ,CAAC;AAElD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,EACV,aAAa,EACb,eAAe,EACf,oBAAoB,EACpB,YAAY,EACZ,aAAa,EACb,UAAU,EACX,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,QAAQ,IAAI,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC9E,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,KAAK,EACV,oBAAoB,EAErB,MAAM,YAAY,CAAC;AAEpB,KAAK,QAAQ,GAAG,eAAe,GAAG,oBAAoB,CAAC;AAEvD,qBAAa,kBAAmB,SAAQ,aAAc,YAAW,aAAa;IAK1E,OAAO,CAAC,cAAc;IAJxB,OAAO,CAAC,GAAG,CAAmB;gBAG5B,EAAE,EAAE,MAAM,CAAC,QAAQ,CAAC,EACZ,cAAc,EAAE,eAAe,EACvC,cAAc,EAAE,eAAe,EAC/B,UAAU,EAAE,WAAW,EACvB,kBAAkB,EAAE,mBAAmB;IAY1B,eAAe,CAAC,KAAK,EAAE,oBAAoB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA0KtE,MAAM,CACV,WAAW,EAAE,MAAM,EAAE,EACrB,gBAAgB,CAAC,EAAE,gBAAgB,EACnC,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,OAAO,EAAE,CAAC;IA0Bf,GAAG,CAAC,SAAS,SAAS,UAAU,EACpC,UAAU,EAAE,MAAM,EAClB,IAAI,CAAC,EAAE,UAAU,EACjB,gBAAgB,CAAC,EAAE,gBAAgB,EACnC,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,SAAS,CAAC;IAqGf,aAAa,CAAC,SAAS,SAAS,UAAU,EAC9C,UAAU,EAAE,MAAM,EAClB,IAAI,CAAC,EAAE,UAAU,EACjB,gBAAgB,CAAC,EAAE,gBAAgB,EACnC,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,SAAS,CAAC;IAsDf,UAAU,CACd,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,UAAU,EACjB,MAAM,CAAC,EAAE,aAAa,EACtB,gBAAgB,CAAC,EAAE,gBAAgB,EACnC,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;IAsE9B,WAAW,CACf,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,UAAU,EACjB,gBAAgB,CAAC,EAAE,gBAAgB,EACnC,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;CA2C/B"}
|
|
@@ -1,48 +1,21 @@
|
|
|
1
1
|
import { v4 as uuidv4 } from "uuid";
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
import { BaseReadModel } from "./base-read-model.js";
|
|
3
|
+
export class KyselyDocumentView extends BaseReadModel {
|
|
4
4
|
operationStore;
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
this.db = db;
|
|
5
|
+
_db;
|
|
6
|
+
constructor(db, operationStore, operationIndex, writeCache, consistencyTracker) {
|
|
7
|
+
super(db, operationIndex, writeCache, consistencyTracker, "document-view");
|
|
9
8
|
this.operationStore = operationStore;
|
|
10
|
-
this.
|
|
11
|
-
}
|
|
12
|
-
async init() {
|
|
13
|
-
const viewState = await this.db
|
|
14
|
-
.selectFrom("ViewState")
|
|
15
|
-
.selectAll()
|
|
16
|
-
.executeTakeFirst();
|
|
17
|
-
if (viewState) {
|
|
18
|
-
this.lastOperationId = viewState.lastOperationId;
|
|
19
|
-
const missedOperations = await this.operationStore.getSinceId(this.lastOperationId);
|
|
20
|
-
if (missedOperations.items.length > 0) {
|
|
21
|
-
await this.indexOperations(missedOperations.items);
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
else {
|
|
25
|
-
await this.db
|
|
26
|
-
.insertInto("ViewState")
|
|
27
|
-
.values({
|
|
28
|
-
lastOperationId: 0,
|
|
29
|
-
})
|
|
30
|
-
.execute();
|
|
31
|
-
const allOperations = await this.operationStore.getSinceId(0);
|
|
32
|
-
if (allOperations.items.length > 0) {
|
|
33
|
-
await this.indexOperations(allOperations.items);
|
|
34
|
-
}
|
|
35
|
-
}
|
|
9
|
+
this._db = db;
|
|
36
10
|
}
|
|
37
11
|
async indexOperations(items) {
|
|
38
12
|
if (items.length === 0)
|
|
39
13
|
return;
|
|
40
|
-
await this.
|
|
14
|
+
await this._db.transaction().execute(async (trx) => {
|
|
41
15
|
for (const item of items) {
|
|
42
16
|
const { operation, context } = item;
|
|
43
17
|
const { documentId, scope, branch, documentType, resultingState } = context;
|
|
44
18
|
const { index, hash } = operation;
|
|
45
|
-
// We never rebuild here
|
|
46
19
|
if (!resultingState) {
|
|
47
20
|
throw new Error(`Missing resultingState in context for operation ${operation.id || "unknown"}. ` +
|
|
48
21
|
`IDocumentView requires resultingState from upstream - it does not rebuild documents.`);
|
|
@@ -171,24 +144,9 @@ export class KyselyDocumentView {
|
|
|
171
144
|
}
|
|
172
145
|
}
|
|
173
146
|
}
|
|
147
|
+
await this.saveState(trx, items);
|
|
174
148
|
});
|
|
175
|
-
|
|
176
|
-
for (let i = 0; i < items.length; i++) {
|
|
177
|
-
const item = items[i];
|
|
178
|
-
coordinates.push({
|
|
179
|
-
documentId: item.context.documentId,
|
|
180
|
-
scope: item.context.scope,
|
|
181
|
-
branch: item.context.branch,
|
|
182
|
-
operationIndex: item.operation.index,
|
|
183
|
-
});
|
|
184
|
-
}
|
|
185
|
-
this.consistencyTracker.update(coordinates);
|
|
186
|
-
}
|
|
187
|
-
async waitForConsistency(token, timeoutMs, signal) {
|
|
188
|
-
if (token.coordinates.length === 0) {
|
|
189
|
-
return;
|
|
190
|
-
}
|
|
191
|
-
await this.consistencyTracker.waitFor(token.coordinates, timeoutMs, signal);
|
|
149
|
+
this.updateConsistencyTracker(items);
|
|
192
150
|
}
|
|
193
151
|
async exists(documentIds, consistencyToken, signal) {
|
|
194
152
|
if (consistencyToken) {
|
|
@@ -200,7 +158,7 @@ export class KyselyDocumentView {
|
|
|
200
158
|
if (documentIds.length === 0) {
|
|
201
159
|
return [];
|
|
202
160
|
}
|
|
203
|
-
const snapshots = await this.
|
|
161
|
+
const snapshots = await this._db
|
|
204
162
|
.selectFrom("DocumentSnapshot")
|
|
205
163
|
.select(["documentId"])
|
|
206
164
|
.where("documentId", "in", documentIds)
|
|
@@ -218,29 +176,22 @@ export class KyselyDocumentView {
|
|
|
218
176
|
throw new Error("Operation aborted");
|
|
219
177
|
}
|
|
220
178
|
const branch = view?.branch || "main";
|
|
221
|
-
// Determine which scopes to retrieve
|
|
222
179
|
let scopesToQuery;
|
|
223
180
|
if (view?.scopes && view.scopes.length > 0) {
|
|
224
|
-
// If scopes has values, always include header + document + specified scopes
|
|
225
|
-
// (header and document are the minimum scopes that must be returned)
|
|
226
181
|
scopesToQuery = [...new Set(["header", "document", ...view.scopes])];
|
|
227
182
|
}
|
|
228
183
|
else {
|
|
229
|
-
// If scopes is undefined, null, or empty array [], get all scopes (no filter)
|
|
230
184
|
scopesToQuery = [];
|
|
231
185
|
}
|
|
232
|
-
|
|
233
|
-
let query = this.db
|
|
186
|
+
let query = this._db
|
|
234
187
|
.selectFrom("DocumentSnapshot")
|
|
235
188
|
.selectAll()
|
|
236
189
|
.where("documentId", "=", documentId)
|
|
237
190
|
.where("branch", "=", branch)
|
|
238
191
|
.where("isDeleted", "=", false);
|
|
239
|
-
// Apply scope filter if we have specific scopes to query
|
|
240
192
|
if (scopesToQuery.length > 0) {
|
|
241
193
|
query = query.where("scope", "in", scopesToQuery);
|
|
242
194
|
}
|
|
243
|
-
// Execute the query
|
|
244
195
|
const snapshots = await query.execute();
|
|
245
196
|
if (snapshots.length === 0) {
|
|
246
197
|
throw new Error(`Document not found: ${documentId}`);
|
|
@@ -248,54 +199,38 @@ export class KyselyDocumentView {
|
|
|
248
199
|
if (signal?.aborted) {
|
|
249
200
|
throw new Error("Operation aborted");
|
|
250
201
|
}
|
|
251
|
-
// Find the header snapshot
|
|
252
202
|
const headerSnapshot = snapshots.find((s) => s.scope === "header");
|
|
253
203
|
if (!headerSnapshot) {
|
|
254
204
|
throw new Error(`Document header not found: ${documentId}`);
|
|
255
205
|
}
|
|
256
|
-
// Get the header from JSONB content (already parsed)
|
|
257
206
|
const header = headerSnapshot.content;
|
|
258
|
-
// Reconstruct cross-scope header metadata (revision, lastModifiedAtUtcIso)
|
|
259
|
-
// by aggregating information from all scopes
|
|
260
207
|
const revisions = await this.operationStore.getRevisions(documentId, branch, signal);
|
|
261
208
|
header.revision = revisions.revision;
|
|
262
209
|
header.lastModifiedAtUtcIso = revisions.latestTimestamp;
|
|
263
|
-
// Reconstruct the document state from all snapshots
|
|
264
|
-
// Note: exclude "header" scope from state since it's already in the header field
|
|
265
210
|
const state = {};
|
|
266
211
|
for (const snapshot of snapshots) {
|
|
267
|
-
// Skip header scope - it's stored separately in the header field
|
|
268
212
|
if (snapshot.scope === "header") {
|
|
269
213
|
continue;
|
|
270
214
|
}
|
|
271
|
-
// Content is already an object from JSONB
|
|
272
215
|
state[snapshot.scope] = snapshot.content;
|
|
273
216
|
}
|
|
274
|
-
// Retrieve operations from the operation store to match legacy storage format
|
|
275
217
|
const operations = {};
|
|
276
|
-
// Get all operations for this document across all scopes
|
|
277
218
|
const allOps = await this.operationStore.getSinceId(0, undefined, signal);
|
|
278
219
|
const docOps = allOps.items.filter((op) => op.context.documentId === documentId && op.context.branch === branch);
|
|
279
|
-
// Group operations by scope and normalize to match legacy storage structure
|
|
280
220
|
for (const { operation, context } of docOps) {
|
|
281
221
|
operations[context.scope] ??= [];
|
|
282
|
-
// Normalize operation to match legacy storage format
|
|
283
|
-
// Legacy storage includes redundant top-level fields that duplicate action fields
|
|
284
222
|
const normalizedOp = {
|
|
285
223
|
action: operation.action,
|
|
286
224
|
index: operation.index,
|
|
287
225
|
timestampUtcMs: operation.timestampUtcMs,
|
|
288
226
|
hash: operation.hash,
|
|
289
227
|
skip: operation.skip,
|
|
290
|
-
// Add top-level fields that mirror action fields (legacy format)
|
|
291
228
|
...operation.action,
|
|
292
|
-
// Legacy storage includes these optional fields
|
|
293
229
|
error: operation.error,
|
|
294
230
|
resultingState: operation.resultingState,
|
|
295
231
|
};
|
|
296
232
|
operations[context.scope].push(normalizedOp);
|
|
297
233
|
}
|
|
298
|
-
// Construct the PHDocument
|
|
299
234
|
const document = {
|
|
300
235
|
header,
|
|
301
236
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
@@ -315,14 +250,14 @@ export class KyselyDocumentView {
|
|
|
315
250
|
throw new Error("Operation aborted");
|
|
316
251
|
}
|
|
317
252
|
const branch = view?.branch || "main";
|
|
318
|
-
const idCheckPromise = this.
|
|
253
|
+
const idCheckPromise = this._db
|
|
319
254
|
.selectFrom("DocumentSnapshot")
|
|
320
255
|
.select("documentId")
|
|
321
256
|
.where("documentId", "=", identifier)
|
|
322
257
|
.where("branch", "=", branch)
|
|
323
258
|
.where("isDeleted", "=", false)
|
|
324
259
|
.executeTakeFirst();
|
|
325
|
-
const slugCheckPromise = this.
|
|
260
|
+
const slugCheckPromise = this._db
|
|
326
261
|
.selectFrom("SlugMapping")
|
|
327
262
|
.select("documentId")
|
|
328
263
|
.where("slug", "=", identifier)
|
|
@@ -360,7 +295,7 @@ export class KyselyDocumentView {
|
|
|
360
295
|
const documents = [];
|
|
361
296
|
const processedDocumentIds = new Set();
|
|
362
297
|
const allDocumentIds = [];
|
|
363
|
-
const snapshots = await this.
|
|
298
|
+
const snapshots = await this._db
|
|
364
299
|
.selectFrom("DocumentSnapshot")
|
|
365
300
|
.selectAll()
|
|
366
301
|
.where("documentType", "=", type)
|
|
@@ -407,7 +342,7 @@ export class KyselyDocumentView {
|
|
|
407
342
|
throw new Error("Operation aborted");
|
|
408
343
|
}
|
|
409
344
|
const branch = view?.branch || "main";
|
|
410
|
-
const mapping = await this.
|
|
345
|
+
const mapping = await this._db
|
|
411
346
|
.selectFrom("SlugMapping")
|
|
412
347
|
.select("documentId")
|
|
413
348
|
.where("slug", "=", slug)
|
|
@@ -420,7 +355,7 @@ export class KyselyDocumentView {
|
|
|
420
355
|
throw new Error("Operation aborted");
|
|
421
356
|
}
|
|
422
357
|
if (view?.scopes && view.scopes.length > 0) {
|
|
423
|
-
const scopeCheck = await this.
|
|
358
|
+
const scopeCheck = await this._db
|
|
424
359
|
.selectFrom("DocumentSnapshot")
|
|
425
360
|
.select("scope")
|
|
426
361
|
.where("documentId", "=", mapping.documentId)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"document-view.js","sourceRoot":"","sources":["../../../src/read-models/document-view.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,MAAM,CAAC;AAsBpC,MAAM,OAAO,kBAAkB;IAInB;IACA;IACA;IALF,eAAe,GAAW,CAAC,CAAC;IAEpC,YACU,EAAoB,EACpB,cAA+B,EAC/B,kBAAuC;QAFvC,OAAE,GAAF,EAAE,CAAkB;QACpB,mBAAc,GAAd,cAAc,CAAiB;QAC/B,uBAAkB,GAAlB,kBAAkB,CAAqB;IAC9C,CAAC;IAEJ,KAAK,CAAC,IAAI;QACR,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,EAAE;aAC5B,UAAU,CAAC,WAAW,CAAC;aACvB,SAAS,EAAE;aACX,gBAAgB,EAAE,CAAC;QAEtB,IAAI,SAAS,EAAE,CAAC;YACd,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC,eAAe,CAAC;YAEjD,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,UAAU,CAC3D,IAAI,CAAC,eAAe,CACrB,CAAC;YAEF,IAAI,gBAAgB,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtC,MAAM,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;YACrD,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,CAAC,EAAE;iBACV,UAAU,CAAC,WAAW,CAAC;iBACvB,MAAM,CAAC;gBACN,eAAe,EAAE,CAAC;aACnB,CAAC;iBACD,OAAO,EAAE,CAAC;YAEb,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YAC9D,IAAI,aAAa,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACnC,MAAM,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAClD,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,KAA6B;QACjD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAE/B,MAAM,IAAI,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;YAChD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;gBACpC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,GAC/D,OAAO,CAAC;gBACV,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,SAAS,CAAC;gBAElC,wBAAwB;gBACxB,IAAI,CAAC,cAAc,EAAE,CAAC;oBACpB,MAAM,IAAI,KAAK,CACb,mDAAmD,SAAS,CAAC,EAAE,IAAI,SAAS,IAAI;wBAC9E,sFAAsF,CACzF,CAAC;gBACJ,CAAC;gBAED,IAAI,SAAS,GAA4B,EAAE,CAAC;gBAC5C,IAAI,CAAC;oBACH,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAA4B,CAAC;gBACpE,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,MAAM,IAAI,KAAK,CACb,gDAAgD,SAAS,CAAC,EAAE,IAAI,SAAS,KAAK,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CACvI,CAAC;gBACJ,CAAC;gBAED,MAAM,aAAa,GAAG,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC;gBAC5C,IAAI,aAAuC,CAAC;gBAE5C,IAAI,aAAa,KAAK,iBAAiB,EAAE,CAAC;oBACxC,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,MAAM,CAC9C,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,UAAU,IAAI,GAAG,KAAK,MAAM,CACpE,CAAC;gBACJ,CAAC;qBAAM,IAAI,aAAa,KAAK,kBAAkB,EAAE,CAAC;oBAChD,MAAM,kBAAkB,GAA6B,EAAE,CAAC;oBAExD,KAAK,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;wBAChE,IAAI,SAAS,KAAK,QAAQ,EAAE,CAAC;4BAC3B,kBAAkB,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC;4BACjD,SAAS;wBACX,CAAC;wBAED,IAAI,SAAS,KAAK,KAAK,EAAE,CAAC;4BACxB,kBAAkB,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC;4BACjD,SAAS;wBACX,CAAC;wBAED,MAAM,gBAAgB,GAAG,MAAM,GAAG;6BAC/B,UAAU,CAAC,kBAAkB,CAAC;6BAC9B,MAAM,CAAC,OAAO,CAAC;6BACf,KAAK,CAAC,YAAY,EAAE,GAAG,EAAE,UAAU,CAAC;6BACpC,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE,SAAS,CAAC;6BAC9B,KAAK,CAAC,QAAQ,EAAE,GAAG,EAAE,MAAM,CAAC;6BAC5B,gBAAgB,EAAE,CAAC;wBAEtB,IAAI,CAAC,gBAAgB,EAAE,CAAC;4BACtB,kBAAkB,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC;wBACnD,CAAC;oBACH,CAAC;oBAED,aAAa,GAAG,kBAAkB,CAAC;gBACrC,CAAC;qBAAM,CAAC;oBACN,aAAa,GAAG,EAAE,CAAC;oBAEnB,IAAI,SAAS,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;wBACnC,aAAa,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;oBACnD,CAAC;oBAED,IAAI,SAAS,CAAC,KAAK,CAAC,KAAK,SAAS,EAAE,CAAC;wBACnC,aAAa,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;oBAChD,CAAC;yBAAM,CAAC;wBACN,aAAa,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;oBAClC,CAAC;gBACH,CAAC;gBAED,KAAK,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,IAAI,aAAa,EAAE,CAAC;oBACpD,MAAM,gBAAgB,GAAG,MAAM,GAAG;yBAC/B,UAAU,CAAC,kBAAkB,CAAC;yBAC9B,SAAS,EAAE;yBACX,KAAK,CAAC,YAAY,EAAE,GAAG,EAAE,UAAU,CAAC;yBACpC,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE,SAAS,CAAC;yBAC9B,KAAK,CAAC,QAAQ,EAAE,GAAG,EAAE,MAAM,CAAC;yBAC5B,gBAAgB,EAAE,CAAC;oBAEtB,MAAM,QAAQ,GACZ,OAAO,UAAU,KAAK,QAAQ,IAAI,UAAU,KAAK,IAAI;wBACnD,CAAC,CAAE,UAAsC;wBACzC,CAAC,CAAC,EAAE,CAAC;oBAET,IAAI,IAAI,GAAkB,gBAAgB,EAAE,IAAI,IAAI,IAAI,CAAC;oBACzD,IAAI,IAAI,GAAkB,gBAAgB,EAAE,IAAI,IAAI,IAAI,CAAC;oBAEzD,IAAI,SAAS,KAAK,QAAQ,EAAE,CAAC;wBAC3B,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC;wBACjC,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC;wBAEjC,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;4BACnC,IAAI,GAAG,UAAU,CAAC;wBACpB,CAAC;wBACD,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;4BACnC,IAAI,GAAG,UAAU,CAAC;wBACpB,CAAC;wBAED,IAAI,IAAI,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;4BAChC,MAAM,GAAG;iCACN,UAAU,CAAC,aAAa,CAAC;iCACzB,MAAM,CAAC;gCACN,IAAI;gCACJ,UAAU;gCACV,KAAK,EAAE,SAAS;gCAChB,MAAM;6BACP,CAAC;iCACD,UAAU,CAAC,CAAC,EAAE,EAAE,EAAE,CACjB,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC;gCAC5B,UAAU;gCACV,KAAK,EAAE,SAAS;gCAChB,MAAM;6BACP,CAAC,CACH;iCACA,OAAO,EAAE,CAAC;wBACf,CAAC;oBACH,CAAC;oBAED,IAAI,gBAAgB,EAAE,CAAC;wBACrB,MAAM,GAAG;6BACN,WAAW,CAAC,kBAAkB,CAAC;6BAC/B,GAAG,CAAC;4BACH,kBAAkB,EAAE,KAAK;4BACzB,iBAAiB,EAAE,IAAI;4BACvB,aAAa,EAAE,IAAI,IAAI,EAAE;4BACzB,eAAe,EAAE,gBAAgB,CAAC,eAAe,GAAG,CAAC;4BACrD,OAAO,EAAE,QAAQ;4BACjB,IAAI;4BACJ,IAAI;yBACL,CAAC;6BACD,KAAK,CAAC,YAAY,EAAE,GAAG,EAAE,UAAU,CAAC;6BACpC,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE,SAAS,CAAC;6BAC9B,KAAK,CAAC,QAAQ,EAAE,GAAG,EAAE,MAAM,CAAC;6BAC5B,OAAO,EAAE,CAAC;oBACf,CAAC;yBAAM,CAAC;wBACN,MAAM,QAAQ,GAA+B;4BAC3C,EAAE,EAAE,MAAM,EAAE;4BACZ,UAAU;4BACV,IAAI;4BACJ,IAAI;4BACJ,KAAK,EAAE,SAAS;4BAChB,MAAM;4BACN,OAAO,EAAE,QAAQ;4BACjB,YAAY;4BACZ,kBAAkB,EAAE,KAAK;4BACzB,iBAAiB,EAAE,IAAI;4BACvB,WAAW,EAAE,IAAI;4BACjB,QAAQ,EAAE,IAAI;4BACd,SAAS,EAAE,IAAI;yBAChB,CAAC;wBAEF,MAAM,GAAG,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC;oBACtE,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,MAAM,WAAW,GAA4B,EAAE,CAAC;QAChD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC;YACvB,WAAW,CAAC,IAAI,CAAC;gBACf,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU;gBACnC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK;gBACzB,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM;gBAC3B,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK;aACrC,CAAC,CAAC;QACL,CAAC;QACD,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,kBAAkB,CACtB,KAAuB,EACvB,SAAkB,EAClB,MAAoB;QAEpB,IAAI,KAAK,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnC,OAAO;QACT,CAAC;QACD,MAAM,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IAC9E,CAAC;IAED,KAAK,CAAC,MAAM,CACV,WAAqB,EACrB,gBAAmC,EACnC,MAAoB;QAEpB,IAAI,gBAAgB,EAAE,CAAC;YACrB,MAAM,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QACrE,CAAC;QAED,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QACvC,CAAC;QAED,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,EAAE;aAC5B,UAAU,CAAC,kBAAkB,CAAC;aAC9B,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;aACtB,KAAK,CAAC,YAAY,EAAE,IAAI,EAAE,WAAW,CAAC;aACtC,KAAK,CAAC,WAAW,EAAE,GAAG,EAAE,KAAK,CAAC;aAC9B,QAAQ,EAAE;aACV,OAAO,EAAE,CAAC;QAEb,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;QAEhE,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,GAAG,CACP,UAAkB,EAClB,IAAiB,EACjB,gBAAmC,EACnC,MAAoB;QAEpB,IAAI,gBAAgB,EAAE,CAAC;YACrB,MAAM,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QACrE,CAAC;QAED,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QACvC,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,EAAE,MAAM,IAAI,MAAM,CAAC;QAEtC,qCAAqC;QACrC,IAAI,aAAuB,CAAC;QAC5B,IAAI,IAAI,EAAE,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3C,4EAA4E;YAC5E,qEAAqE;YACrE,aAAa,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACvE,CAAC;aAAM,CAAC;YACN,8EAA8E;YAC9E,aAAa,GAAG,EAAE,CAAC;QACrB,CAAC;QAED,+BAA+B;QAC/B,IAAI,KAAK,GAAG,IAAI,CAAC,EAAE;aAChB,UAAU,CAAC,kBAAkB,CAAC;aAC9B,SAAS,EAAE;aACX,KAAK,CAAC,YAAY,EAAE,GAAG,EAAE,UAAU,CAAC;aACpC,KAAK,CAAC,QAAQ,EAAE,GAAG,EAAE,MAAM,CAAC;aAC5B,KAAK,CAAC,WAAW,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QAElC,yDAAyD;QACzD,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC;QACpD,CAAC;QAED,oBAAoB;QACpB,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC;QAExC,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,uBAAuB,UAAU,EAAE,CAAC,CAAC;QACvD,CAAC;QAED,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QACvC,CAAC;QAED,2BAA2B;QAC3B,MAAM,cAAc,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC;QACnE,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,8BAA8B,UAAU,EAAE,CAAC,CAAC;QAC9D,CAAC;QAED,qDAAqD;QACrD,MAAM,MAAM,GAAG,cAAc,CAAC,OAA2B,CAAC;QAE1D,2EAA2E;QAC3E,6CAA6C;QAC7C,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,YAAY,CACtD,UAAU,EACV,MAAM,EACN,MAAM,CACP,CAAC;QACF,MAAM,CAAC,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC;QACrC,MAAM,CAAC,oBAAoB,GAAG,SAAS,CAAC,eAAe,CAAC;QAExD,oDAAoD;QACpD,iFAAiF;QACjF,MAAM,KAAK,GAA4B,EAAE,CAAC;QAC1C,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,iEAAiE;YACjE,IAAI,QAAQ,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAChC,SAAS;YACX,CAAC;YAED,0CAA0C;YAC1C,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC;QAC3C,CAAC;QAED,8EAA8E;QAC9E,MAAM,UAAU,GAAgC,EAAE,CAAC;QAEnD,yDAAyD;QACzD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QAC1E,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAChC,CAAC,EAAE,EAAE,EAAE,CACL,EAAE,CAAC,OAAO,CAAC,UAAU,KAAK,UAAU,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,KAAK,MAAM,CACvE,CAAC;QAEF,4EAA4E;QAC5E,KAAK,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,MAAM,EAAE,CAAC;YAC5C,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YAEjC,qDAAqD;YACrD,kFAAkF;YAClF,MAAM,YAAY,GAAc;gBAC9B,MAAM,EAAE,SAAS,CAAC,MAAM;gBACxB,KAAK,EAAE,SAAS,CAAC,KAAK;gBACtB,cAAc,EAAE,SAAS,CAAC,cAAc;gBACxC,IAAI,EAAE,SAAS,CAAC,IAAI;gBACpB,IAAI,EAAE,SAAS,CAAC,IAAI;gBACpB,iEAAiE;gBACjE,GAAI,SAAS,CAAC,MAAkC;gBAChD,gDAAgD;gBAChD,KAAK,EAAE,SAAS,CAAC,KAAK;gBACtB,cAAc,EAAE,SAAS,CAAC,cAAc;aACzC,CAAC;YAEF,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC/C,CAAC;QAED,2BAA2B;QAC3B,MAAM,QAAQ,GAAe;YAC3B,MAAM;YACN,mEAAmE;YACnE,KAAK,EAAE,KAAY;YACnB,UAAU;YACV,mEAAmE;YACnE,YAAY,EAAE,KAAY;YAC1B,SAAS,EAAE,EAAE;SACd,CAAC;QAEF,OAAO,QAAqB,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,aAAa,CACjB,UAAkB,EAClB,IAAiB,EACjB,gBAAmC,EACnC,MAAoB;QAEpB,IAAI,gBAAgB,EAAE,CAAC;YACrB,MAAM,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QACrE,CAAC;QAED,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QACvC,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,EAAE,MAAM,IAAI,MAAM,CAAC;QAEtC,MAAM,cAAc,GAAG,IAAI,CAAC,EAAE;aAC3B,UAAU,CAAC,kBAAkB,CAAC;aAC9B,MAAM,CAAC,YAAY,CAAC;aACpB,KAAK,CAAC,YAAY,EAAE,GAAG,EAAE,UAAU,CAAC;aACpC,KAAK,CAAC,QAAQ,EAAE,GAAG,EAAE,MAAM,CAAC;aAC5B,KAAK,CAAC,WAAW,EAAE,GAAG,EAAE,KAAK,CAAC;aAC9B,gBAAgB,EAAE,CAAC;QAEtB,MAAM,gBAAgB,GAAG,IAAI,CAAC,EAAE;aAC7B,UAAU,CAAC,aAAa,CAAC;aACzB,MAAM,CAAC,YAAY,CAAC;aACpB,KAAK,CAAC,MAAM,EAAE,GAAG,EAAE,UAAU,CAAC;aAC9B,KAAK,CAAC,QAAQ,EAAE,GAAG,EAAE,MAAM,CAAC;aAC5B,gBAAgB,EAAE,CAAC;QAEtB,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YAC7C,cAAc;YACd,gBAAgB;SACjB,CAAC,CAAC;QAEH,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QACvC,CAAC;QAED,MAAM,YAAY,GAAG,OAAO,EAAE,UAAU,CAAC;QACzC,MAAM,cAAc,GAAG,SAAS,EAAE,UAAU,CAAC;QAE7C,IAAI,YAAY,IAAI,cAAc,IAAI,YAAY,KAAK,cAAc,EAAE,CAAC;YACtE,MAAM,IAAI,KAAK,CACb,yBAAyB,UAAU,gCAAgC,YAAY,+BAA+B,cAAc,KAAK;gBAC/H,2EAA2E,CAC9E,CAAC;QACJ,CAAC;QAED,MAAM,kBAAkB,GAAG,YAAY,IAAI,cAAc,CAAC;QAE1D,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,uBAAuB,UAAU,EAAE,CAAC,CAAC;QACvD,CAAC;QAED,OAAO,IAAI,CAAC,GAAG,CAAY,kBAAkB,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IAC1E,CAAC;IAED,KAAK,CAAC,UAAU,CACd,IAAY,EACZ,IAAiB,EACjB,MAAsB,EACtB,gBAAmC,EACnC,MAAoB;QAEpB,IAAI,gBAAgB,EAAE,CAAC;YACrB,MAAM,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QACrE,CAAC;QAED,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QACvC,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,EAAE,MAAM,IAAI,MAAM,CAAC;QAEtC,MAAM,UAAU,GAAG,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAChE,MAAM,KAAK,GAAG,MAAM,EAAE,KAAK,IAAI,GAAG,CAAC;QAEnC,MAAM,SAAS,GAAiB,EAAE,CAAC;QACnC,MAAM,oBAAoB,GAAG,IAAI,GAAG,EAAU,CAAC;QAC/C,MAAM,cAAc,GAAa,EAAE,CAAC;QAEpC,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,EAAE;aAC5B,UAAU,CAAC,kBAAkB,CAAC;aAC9B,SAAS,EAAE;aACX,KAAK,CAAC,cAAc,EAAE,GAAG,EAAE,IAAI,CAAC;aAChC,KAAK,CAAC,QAAQ,EAAE,GAAG,EAAE,MAAM,CAAC;aAC5B,KAAK,CAAC,WAAW,EAAE,GAAG,EAAE,KAAK,CAAC;aAC9B,OAAO,CAAC,eAAe,EAAE,MAAM,CAAC;aAChC,OAAO,EAAE,CAAC;QAEb,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QACvC,CAAC;QAED,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,IAAI,oBAAoB,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;gBAClD,SAAS;YACX,CAAC;YAED,oBAAoB,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;YAC9C,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAC3C,CAAC;QAED,MAAM,WAAW,GAAG,cAAc,CAAC,KAAK,CAAC,UAAU,EAAE,UAAU,GAAG,KAAK,CAAC,CAAC;QAEzE,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;YACrC,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;gBACpB,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;YACvC,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAC7B,UAAU,EACV,IAAI,EACJ,SAAS,EACT,MAAM,CACP,CAAC;gBACF,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC3B,CAAC;YAAC,MAAM,CAAC;gBACP,SAAS;YACX,CAAC;QACH,CAAC;QAED,MAAM,OAAO,GAAG,cAAc,CAAC,MAAM,GAAG,UAAU,GAAG,KAAK,CAAC;QAC3D,MAAM,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAEpE,OAAO;YACL,KAAK,EAAE,SAAS;YAChB,UAAU;YACV,OAAO;SACR,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,WAAW,CACf,IAAY,EACZ,IAAiB,EACjB,gBAAmC,EACnC,MAAoB;QAEpB,IAAI,gBAAgB,EAAE,CAAC;YACrB,MAAM,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QACrE,CAAC;QAED,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QACvC,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,EAAE,MAAM,IAAI,MAAM,CAAC;QAEtC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,EAAE;aAC1B,UAAU,CAAC,aAAa,CAAC;aACzB,MAAM,CAAC,YAAY,CAAC;aACpB,KAAK,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC;aACxB,KAAK,CAAC,QAAQ,EAAE,GAAG,EAAE,MAAM,CAAC;aAC5B,gBAAgB,EAAE,CAAC;QAEtB,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QACvC,CAAC;QAED,IAAI,IAAI,EAAE,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3C,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,EAAE;iBAC7B,UAAU,CAAC,kBAAkB,CAAC;iBAC9B,MAAM,CAAC,OAAO,CAAC;iBACf,KAAK,CAAC,YAAY,EAAE,GAAG,EAAE,OAAO,CAAC,UAAU,CAAC;iBAC5C,KAAK,CAAC,QAAQ,EAAE,GAAG,EAAE,MAAM,CAAC;iBAC5B,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC;iBACjC,KAAK,CAAC,WAAW,EAAE,GAAG,EAAE,KAAK,CAAC;iBAC9B,gBAAgB,EAAE,CAAC;YAEtB,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,OAAO,SAAS,CAAC;YACnB,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAC,UAAU,CAAC;IAC5B,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"document-view.js","sourceRoot":"","sources":["../../../src/read-models/document-view.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { Generated, Insertable, Selectable, Updateable } from "kysely";
|
|
2
2
|
export interface ViewStateTable {
|
|
3
|
-
|
|
3
|
+
readModelId: string;
|
|
4
|
+
lastOrdinal: number;
|
|
4
5
|
lastOperationTimestamp: Generated<Date>;
|
|
5
6
|
}
|
|
6
7
|
export interface DocumentSnapshotTable {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/read-models/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAE5E,MAAM,WAAW,cAAc;IAC7B,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/read-models/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAE5E,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,sBAAsB,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;CACzC;AAED,MAAM,WAAW,qBAAqB;IACpC,EAAE,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,aAAa,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;IAC/B,eAAe,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IACnC,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;IAC9B,SAAS,EAAE,IAAI,GAAG,IAAI,CAAC;CACxB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;IAC3B,SAAS,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;CAC5B;AAED,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,cAAc,CAAC;IAC1B,gBAAgB,EAAE,qBAAqB,CAAC;IACxC,WAAW,EAAE,gBAAgB,CAAC;CAC/B;AAED,MAAM,MAAM,YAAY,GAAG,UAAU,CAAC,cAAc,CAAC,CAAC;AACtD,MAAM,MAAM,mBAAmB,GAAG,UAAU,CAAC,cAAc,CAAC,CAAC;AAC7D,MAAM,MAAM,mBAAmB,GAAG,UAAU,CAAC,cAAc,CAAC,CAAC;AAE7D,MAAM,MAAM,mBAAmB,GAAG,UAAU,CAAC,qBAAqB,CAAC,CAAC;AACpE,MAAM,MAAM,0BAA0B,GAAG,UAAU,CAAC,qBAAqB,CAAC,CAAC;AAC3E,MAAM,MAAM,0BAA0B,GAAG,UAAU,CAAC,qBAAqB,CAAC,CAAC;AAE3E,MAAM,MAAM,cAAc,GAAG,UAAU,CAAC,gBAAgB,CAAC,CAAC;AAC1D,MAAM,MAAM,qBAAqB,GAAG,UAAU,CAAC,gBAAgB,CAAC,CAAC;AACjE,MAAM,MAAM,qBAAqB,GAAG,UAAU,CAAC,gBAAgB,CAAC,CAAC"}
|
|
@@ -14,4 +14,12 @@ export declare class CreateDocumentRequiredError extends Error {
|
|
|
14
14
|
readonly scope: string;
|
|
15
15
|
constructor(documentId: string, scope: string);
|
|
16
16
|
}
|
|
17
|
+
/**
|
|
18
|
+
* Error thrown when an operation has an invalid signature.
|
|
19
|
+
*/
|
|
20
|
+
export declare class InvalidSignatureError extends Error {
|
|
21
|
+
readonly documentId: string;
|
|
22
|
+
readonly reason: string;
|
|
23
|
+
constructor(documentId: string, reason: string);
|
|
24
|
+
}
|
|
17
25
|
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/shared/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,qBAAa,oBAAqB,SAAQ,KAAK;IAC7C,SAAgB,UAAU,EAAE,MAAM,CAAC;IACnC,SAAgB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;gBAEnC,UAAU,EAAE,MAAM,EAAE,eAAe,GAAE,MAAM,GAAG,IAAW;CAYtE;AAED;;GAEG;AACH,qBAAa,2BAA4B,SAAQ,KAAK;IACpD,SAAgB,UAAU,EAAE,MAAM,CAAC;IACnC,SAAgB,KAAK,EAAE,MAAM,CAAC;gBAElB,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;CAU9C"}
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/shared/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,qBAAa,oBAAqB,SAAQ,KAAK;IAC7C,SAAgB,UAAU,EAAE,MAAM,CAAC;IACnC,SAAgB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;gBAEnC,UAAU,EAAE,MAAM,EAAE,eAAe,GAAE,MAAM,GAAG,IAAW;CAYtE;AAED;;GAEG;AACH,qBAAa,2BAA4B,SAAQ,KAAK;IACpD,SAAgB,UAAU,EAAE,MAAM,CAAC;IACnC,SAAgB,KAAK,EAAE,MAAM,CAAC;gBAElB,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;CAU9C;AAED;;GAEG;AACH,qBAAa,qBAAsB,SAAQ,KAAK;IAC9C,SAAgB,UAAU,EAAE,MAAM,CAAC;IACnC,SAAgB,MAAM,EAAE,MAAM,CAAC;gBAEnB,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAQ/C"}
|
|
@@ -30,4 +30,18 @@ export class CreateDocumentRequiredError extends Error {
|
|
|
30
30
|
Error.captureStackTrace(this, CreateDocumentRequiredError);
|
|
31
31
|
}
|
|
32
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
|
+
}
|
|
33
47
|
//# sourceMappingURL=errors.js.map
|