@powerhousedao/reactor 5.1.0 → 5.2.0-dev.1
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/actions/index.d.ts +24 -0
- package/dist/src/actions/index.d.ts.map +1 -0
- package/dist/src/actions/index.js +76 -0
- package/dist/src/actions/index.js.map +1 -0
- 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 +128 -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 +67 -24
- package/dist/src/cache/kysely-operation-index.js.map +1 -1
- package/dist/src/cache/kysely-write-cache.d.ts.map +1 -1
- package/dist/src/cache/kysely-write-cache.js +3 -2
- package/dist/src/cache/kysely-write-cache.js.map +1 -1
- package/dist/src/cache/operation-index-types.d.ts +4 -3
- 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 +22 -10
- package/dist/src/client/reactor-client.d.ts.map +1 -1
- package/dist/src/client/reactor-client.js +145 -48
- package/dist/src/client/reactor-client.js.map +1 -1
- package/dist/src/client/types.d.ts +32 -13
- package/dist/src/client/types.d.ts.map +1 -1
- package/dist/src/core/reactor-builder.d.ts +19 -12
- package/dist/src/core/reactor-builder.d.ts.map +1 -1
- package/dist/src/core/reactor-builder.js +127 -37
- package/dist/src/core/reactor-builder.js.map +1 -1
- package/dist/src/core/{builder.d.ts → reactor-client-builder.d.ts} +20 -4
- package/dist/src/core/reactor-client-builder.d.ts.map +1 -0
- package/dist/src/core/reactor-client-builder.js +123 -0
- package/dist/src/core/reactor-client-builder.js.map +1 -0
- package/dist/src/core/reactor.d.ts +14 -16
- package/dist/src/core/reactor.d.ts.map +1 -1
- package/dist/src/core/reactor.js +101 -110
- package/dist/src/core/reactor.js.map +1 -1
- package/dist/src/core/types.d.ts +101 -22
- package/dist/src/core/types.d.ts.map +1 -1
- package/dist/src/core/utils.d.ts +9 -1
- 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/events/types.d.ts +1 -0
- package/dist/src/events/types.d.ts.map +1 -1
- package/dist/src/executor/simple-job-executor-manager.d.ts +3 -1
- package/dist/src/executor/simple-job-executor-manager.d.ts.map +1 -1
- package/dist/src/executor/simple-job-executor-manager.js +10 -7
- package/dist/src/executor/simple-job-executor-manager.js.map +1 -1
- package/dist/src/executor/simple-job-executor.d.ts +20 -2
- package/dist/src/executor/simple-job-executor.d.ts.map +1 -1
- package/dist/src/executor/simple-job-executor.js +400 -219
- package/dist/src/executor/simple-job-executor.js.map +1 -1
- package/dist/src/executor/types.d.ts +2 -0
- package/dist/src/executor/types.d.ts.map +1 -1
- package/dist/src/executor/types.js.map +1 -1
- package/dist/src/executor/util.d.ts +14 -5
- package/dist/src/executor/util.d.ts.map +1 -1
- package/dist/src/executor/util.js +36 -9
- package/dist/src/executor/util.js.map +1 -1
- package/dist/src/index.d.ts +17 -6
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +15 -3
- package/dist/src/index.js.map +1 -1
- package/dist/src/logging/console.d.ts +23 -0
- package/dist/src/logging/console.d.ts.map +1 -0
- package/dist/src/logging/console.js +108 -0
- package/dist/src/logging/console.js.map +1 -0
- package/dist/src/logging/types.d.ts +12 -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/processors/index.d.ts +3 -0
- package/dist/src/processors/index.d.ts.map +1 -0
- package/dist/src/processors/index.js +2 -0
- package/dist/src/processors/index.js.map +1 -0
- package/dist/src/processors/processor-manager.d.ts +38 -0
- package/dist/src/processors/processor-manager.d.ts.map +1 -0
- package/dist/src/processors/processor-manager.js +165 -0
- package/dist/src/processors/processor-manager.js.map +1 -0
- package/dist/src/processors/types.d.ts +63 -0
- package/dist/src/processors/types.d.ts.map +1 -0
- package/dist/src/processors/types.js +2 -0
- package/dist/src/processors/types.js.map +1 -0
- package/dist/src/processors/utils.d.ts +10 -0
- package/dist/src/processors/utils.d.ts.map +1 -0
- package/dist/src/processors/utils.js +58 -0
- package/dist/src/processors/utils.js.map +1 -0
- package/dist/src/queue/types.d.ts +2 -0
- package/dist/src/queue/types.d.ts.map +1 -1
- package/dist/src/queue/types.js.map +1 -1
- 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/coordinator.d.ts +3 -2
- package/dist/src/read-models/coordinator.d.ts.map +1 -1
- package/dist/src/read-models/coordinator.js +12 -13
- package/dist/src/read-models/coordinator.js.map +1 -1
- 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 +18 -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/registry/implementation.d.ts +42 -34
- package/dist/src/registry/implementation.d.ts.map +1 -1
- package/dist/src/registry/implementation.js +168 -48
- package/dist/src/registry/implementation.js.map +1 -1
- package/dist/src/registry/interfaces.d.ts +69 -8
- package/dist/src/registry/interfaces.d.ts.map +1 -1
- package/dist/src/shared/errors.d.ts +24 -0
- package/dist/src/shared/errors.d.ts.map +1 -1
- package/dist/src/shared/errors.js +42 -0
- package/dist/src/shared/errors.js.map +1 -1
- package/dist/src/shared/types.d.ts +4 -0
- package/dist/src/shared/types.d.ts.map +1 -1
- package/dist/src/shared/types.js.map +1 -1
- package/dist/src/signer/passthrough-signer.d.ts +9 -3
- package/dist/src/signer/passthrough-signer.d.ts.map +1 -1
- package/dist/src/signer/passthrough-signer.js +13 -0
- package/dist/src/signer/passthrough-signer.js.map +1 -1
- package/dist/src/signer/types.d.ts +12 -10
- 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 +94 -1
- package/dist/src/storage/interfaces.d.ts.map +1 -1
- package/dist/src/storage/interfaces.js +2 -2
- package/dist/src/storage/interfaces.js.map +1 -1
- package/dist/src/storage/kysely/store.d.ts +1 -0
- package/dist/src/storage/kysely/store.d.ts.map +1 -1
- package/dist/src/storage/kysely/store.js +41 -4
- package/dist/src/storage/kysely/store.js.map +1 -1
- package/dist/src/storage/kysely/sync-cursor-storage.js +2 -2
- package/dist/src/storage/kysely/sync-cursor-storage.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 +11 -12
- package/dist/src/storage/kysely/sync-remote-storage.js.map +1 -1
- package/dist/src/storage/kysely/types.d.ts +6 -6
- package/dist/src/storage/migrations/001_create_operation_table.d.ts.map +1 -1
- package/dist/src/storage/migrations/001_create_operation_table.js +2 -1
- package/dist/src/storage/migrations/001_create_operation_table.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/009_create_operation_index_tables.js +1 -1
- package/dist/src/storage/migrations/009_create_operation_index_tables.js.map +1 -1
- package/dist/src/storage/migrations/010_create_sync_tables.js +5 -5
- package/dist/src/storage/migrations/010_create_sync_tables.js.map +1 -1
- package/dist/src/storage/migrations/migrator.d.ts +3 -2
- package/dist/src/storage/migrations/migrator.d.ts.map +1 -1
- package/dist/src/storage/migrations/migrator.js +29 -6
- package/dist/src/storage/migrations/migrator.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/storage/txn.d.ts.map +1 -1
- package/dist/src/storage/txn.js +2 -3
- package/dist/src/storage/txn.js.map +1 -1
- package/dist/src/subs/subscription-notification-read-model.d.ts +17 -0
- package/dist/src/subs/subscription-notification-read-model.d.ts.map +1 -0
- package/dist/src/subs/subscription-notification-read-model.js +62 -0
- package/dist/src/subs/subscription-notification-read-model.js.map +1 -0
- package/dist/src/sync/channels/composite-channel-factory.d.ts +30 -0
- package/dist/src/sync/channels/composite-channel-factory.d.ts.map +1 -0
- package/dist/src/sync/channels/composite-channel-factory.js +87 -0
- package/dist/src/sync/channels/composite-channel-factory.js.map +1 -0
- package/dist/src/sync/channels/gql-channel-factory.d.ts +25 -0
- package/dist/src/sync/channels/gql-channel-factory.d.ts.map +1 -0
- package/dist/src/sync/channels/gql-channel-factory.js +76 -0
- package/dist/src/sync/channels/gql-channel-factory.js.map +1 -0
- package/dist/src/sync/channels/gql-channel.d.ts +118 -0
- package/dist/src/sync/channels/gql-channel.d.ts.map +1 -0
- package/dist/src/sync/channels/gql-channel.js +423 -0
- package/dist/src/sync/channels/gql-channel.js.map +1 -0
- package/dist/src/sync/channels/index.d.ts +4 -1
- package/dist/src/sync/channels/index.d.ts.map +1 -1
- package/dist/src/sync/channels/index.js +4 -1
- package/dist/src/sync/channels/index.js.map +1 -1
- package/dist/src/sync/channels/polling-channel.d.ts +39 -0
- package/dist/src/sync/channels/polling-channel.d.ts.map +1 -0
- package/dist/src/sync/channels/polling-channel.js +72 -0
- package/dist/src/sync/channels/polling-channel.js.map +1 -0
- package/dist/src/sync/channels/utils.d.ts +17 -2
- package/dist/src/sync/channels/utils.d.ts.map +1 -1
- package/dist/src/sync/channels/utils.js +76 -6
- package/dist/src/sync/channels/utils.js.map +1 -1
- package/dist/src/sync/errors.d.ts +1 -1
- package/dist/src/sync/errors.d.ts.map +1 -1
- package/dist/src/sync/errors.js +2 -2
- package/dist/src/sync/errors.js.map +1 -1
- package/dist/src/sync/index.d.ts +2 -2
- package/dist/src/sync/index.d.ts.map +1 -1
- package/dist/src/sync/index.js +2 -2
- package/dist/src/sync/index.js.map +1 -1
- package/dist/src/sync/interfaces.d.ts +33 -3
- package/dist/src/sync/interfaces.d.ts.map +1 -1
- package/dist/src/sync/sync-builder.d.ts +4 -2
- package/dist/src/sync/sync-builder.d.ts.map +1 -1
- package/dist/src/sync/sync-builder.js +12 -2
- package/dist/src/sync/sync-builder.js.map +1 -1
- package/dist/src/sync/sync-manager.d.ts +7 -3
- package/dist/src/sync/sync-manager.d.ts.map +1 -1
- package/dist/src/sync/sync-manager.js +79 -10
- 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/dist/src/sync/utils.d.ts +19 -0
- package/dist/src/sync/utils.d.ts.map +1 -1
- package/dist/src/sync/utils.js +44 -0
- package/dist/src/sync/utils.js.map +1 -1
- package/package.json +6 -5
- package/dist/src/core/builder.d.ts.map +0 -1
- package/dist/src/core/builder.js +0 -88
- package/dist/src/core/builder.js.map +0 -1
- package/dist/src/sync/channels/internal-channel.d.ts +0 -57
- package/dist/src/sync/channels/internal-channel.d.ts.map +0 -1
- package/dist/src/sync/channels/internal-channel.js +0 -106
- package/dist/src/sync/channels/internal-channel.js.map +0 -1
|
@@ -15,10 +15,11 @@ import type { IReadModel, IReadModelCoordinator } from "./interfaces.js";
|
|
|
15
15
|
*/
|
|
16
16
|
export declare class ReadModelCoordinator implements IReadModelCoordinator {
|
|
17
17
|
private eventBus;
|
|
18
|
-
|
|
18
|
+
readonly preReady: IReadModel[];
|
|
19
|
+
readonly postReady: IReadModel[];
|
|
19
20
|
private unsubscribe?;
|
|
20
21
|
private isRunning;
|
|
21
|
-
constructor(eventBus: IEventBus,
|
|
22
|
+
constructor(eventBus: IEventBus, preReady: IReadModel[], postReady: IReadModel[]);
|
|
22
23
|
/**
|
|
23
24
|
* Start listening for operation events and updating read models.
|
|
24
25
|
* Can be called multiple times safely (subsequent calls are no-ops).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coordinator.d.ts","sourceRoot":"","sources":["../../../src/read-models/coordinator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAOzD,OAAO,KAAK,EAAE,UAAU,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAEzE;;;;;;;;;;;;GAYG;AACH,qBAAa,oBAAqB,YAAW,qBAAqB;IAK9D,OAAO,CAAC,QAAQ;
|
|
1
|
+
{"version":3,"file":"coordinator.d.ts","sourceRoot":"","sources":["../../../src/read-models/coordinator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAOzD,OAAO,KAAK,EAAE,UAAU,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAEzE;;;;;;;;;;;;GAYG;AACH,qBAAa,oBAAqB,YAAW,qBAAqB;IAK9D,OAAO,CAAC,QAAQ;aACA,QAAQ,EAAE,UAAU,EAAE;aACtB,SAAS,EAAE,UAAU,EAAE;IANzC,OAAO,CAAC,WAAW,CAAC,CAAc;IAClC,OAAO,CAAC,SAAS,CAAS;gBAGhB,QAAQ,EAAE,SAAS,EACX,QAAQ,EAAE,UAAU,EAAE,EACtB,SAAS,EAAE,UAAU,EAAE;IAKzC;;;OAGG;IACH,KAAK,IAAI,IAAI;IAgBb;;;OAGG;IACH,IAAI,IAAI,IAAI;IAaZ;;;OAGG;YACW,sBAAsB;CAwBrC"}
|
|
@@ -14,12 +14,15 @@ import { OperationEventTypes, } from "../events/types.js";
|
|
|
14
14
|
*/
|
|
15
15
|
export class ReadModelCoordinator {
|
|
16
16
|
eventBus;
|
|
17
|
-
|
|
17
|
+
preReady;
|
|
18
|
+
postReady;
|
|
18
19
|
unsubscribe;
|
|
19
20
|
isRunning = false;
|
|
20
|
-
constructor(eventBus,
|
|
21
|
+
constructor(eventBus, preReady, postReady) {
|
|
21
22
|
this.eventBus = eventBus;
|
|
22
|
-
this.
|
|
23
|
+
this.preReady = preReady;
|
|
24
|
+
this.postReady = postReady;
|
|
25
|
+
//
|
|
23
26
|
}
|
|
24
27
|
/**
|
|
25
28
|
* Start listening for operation events and updating read models.
|
|
@@ -54,20 +57,16 @@ export class ReadModelCoordinator {
|
|
|
54
57
|
* Errors from individual read models are collected and re-thrown as an aggregate.
|
|
55
58
|
*/
|
|
56
59
|
async handleOperationWritten(event) {
|
|
57
|
-
// Index into
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
// Emit OPERATIONS_READY event after all read models have completed
|
|
61
|
-
// Use fire-and-forget pattern to avoid blocking
|
|
60
|
+
// Index into pre-ready read models in parallel
|
|
61
|
+
await Promise.all(this.preReady.map((readModel) => readModel.indexOperations(event.operations)));
|
|
62
|
+
// Emit OPERATIONS_READY event after all pre-ready read models have completed
|
|
62
63
|
const readyEvent = {
|
|
63
64
|
jobId: event.jobId,
|
|
64
65
|
operations: event.operations,
|
|
65
66
|
};
|
|
66
|
-
this.eventBus
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
// No-op: Event emission is fire-and-forget
|
|
70
|
-
});
|
|
67
|
+
await this.eventBus.emit(OperationEventTypes.OPERATIONS_READY, readyEvent);
|
|
68
|
+
// Process post-ready read models (e.g., subscription notifications)
|
|
69
|
+
await Promise.all(this.postReady.map((readModel) => readModel.indexOperations(event.operations)));
|
|
71
70
|
}
|
|
72
71
|
}
|
|
73
72
|
//# sourceMappingURL=coordinator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coordinator.js","sourceRoot":"","sources":["../../../src/read-models/coordinator.ts"],"names":[],"mappings":"AACA,OAAO,EACL,mBAAmB,GAIpB,MAAM,oBAAoB,CAAC;AAG5B;;;;;;;;;;;;GAYG;AACH,MAAM,OAAO,oBAAoB;IAKrB;IACA;
|
|
1
|
+
{"version":3,"file":"coordinator.js","sourceRoot":"","sources":["../../../src/read-models/coordinator.ts"],"names":[],"mappings":"AACA,OAAO,EACL,mBAAmB,GAIpB,MAAM,oBAAoB,CAAC;AAG5B;;;;;;;;;;;;GAYG;AACH,MAAM,OAAO,oBAAoB;IAKrB;IACQ;IACA;IANV,WAAW,CAAe;IAC1B,SAAS,GAAG,KAAK,CAAC;IAE1B,YACU,QAAmB,EACX,QAAsB,EACtB,SAAuB;QAF/B,aAAQ,GAAR,QAAQ,CAAW;QACX,aAAQ,GAAR,QAAQ,CAAc;QACtB,cAAS,GAAT,SAAS,CAAc;QAEvC,EAAE;IACJ,CAAC;IAED;;;OAGG;IACH,KAAK;QACH,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,OAAO;QACT,CAAC;QAED,wCAAwC;QACxC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CACxC,mBAAmB,CAAC,iBAAiB,EACrC,KAAK,EAAE,IAAI,EAAE,KAA4B,EAAE,EAAE;YAC3C,MAAM,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;QAC3C,CAAC,CACF,CAAC;QAEF,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IACxB,CAAC;IAED;;;OAGG;IACH,IAAI;QACF,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,OAAO;QACT,CAAC;QAED,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;QAC/B,CAAC;QAED,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IACzB,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,sBAAsB,CAClC,KAA4B;QAE5B,+CAA+C;QAC/C,MAAM,OAAO,CAAC,GAAG,CACf,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAC9B,SAAS,CAAC,eAAe,CAAC,KAAK,CAAC,UAAU,CAAC,CAC5C,CACF,CAAC;QAEF,6EAA6E;QAC7E,MAAM,UAAU,GAAyB;YACvC,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,UAAU,EAAE,KAAK,CAAC,UAAU;SAC7B,CAAC;QACF,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,mBAAmB,CAAC,gBAAgB,EAAE,UAAU,CAAC,CAAC;QAE3E,oEAAoE;QACpE,MAAM,OAAO,CAAC,GAAG,CACf,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAC/B,SAAS,CAAC,eAAe,CAAC,KAAK,CAAC,UAAU,CAAC,CAC5C,CACF,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -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;
|
|
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;AAE9E,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;IA2Gf,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,22 @@
|
|
|
1
|
+
import { deriveOperationId } from "document-model/core";
|
|
1
2
|
import { v4 as uuidv4 } from "uuid";
|
|
2
|
-
|
|
3
|
-
|
|
3
|
+
import { BaseReadModel } from "./base-read-model.js";
|
|
4
|
+
export class KyselyDocumentView extends BaseReadModel {
|
|
4
5
|
operationStore;
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
this.db = db;
|
|
6
|
+
_db;
|
|
7
|
+
constructor(db, operationStore, operationIndex, writeCache, consistencyTracker) {
|
|
8
|
+
super(db, operationIndex, writeCache, consistencyTracker, "document-view");
|
|
9
9
|
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
|
-
}
|
|
10
|
+
this._db = db;
|
|
36
11
|
}
|
|
37
12
|
async indexOperations(items) {
|
|
38
13
|
if (items.length === 0)
|
|
39
14
|
return;
|
|
40
|
-
await this.
|
|
15
|
+
await this._db.transaction().execute(async (trx) => {
|
|
41
16
|
for (const item of items) {
|
|
42
17
|
const { operation, context } = item;
|
|
43
18
|
const { documentId, scope, branch, documentType, resultingState } = context;
|
|
44
19
|
const { index, hash } = operation;
|
|
45
|
-
// We never rebuild here
|
|
46
20
|
if (!resultingState) {
|
|
47
21
|
throw new Error(`Missing resultingState in context for operation ${operation.id || "unknown"}. ` +
|
|
48
22
|
`IDocumentView requires resultingState from upstream - it does not rebuild documents.`);
|
|
@@ -171,24 +145,9 @@ export class KyselyDocumentView {
|
|
|
171
145
|
}
|
|
172
146
|
}
|
|
173
147
|
}
|
|
148
|
+
await this.saveState(trx, items);
|
|
174
149
|
});
|
|
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);
|
|
150
|
+
this.updateConsistencyTracker(items);
|
|
192
151
|
}
|
|
193
152
|
async exists(documentIds, consistencyToken, signal) {
|
|
194
153
|
if (consistencyToken) {
|
|
@@ -200,7 +159,7 @@ export class KyselyDocumentView {
|
|
|
200
159
|
if (documentIds.length === 0) {
|
|
201
160
|
return [];
|
|
202
161
|
}
|
|
203
|
-
const snapshots = await this.
|
|
162
|
+
const snapshots = await this._db
|
|
204
163
|
.selectFrom("DocumentSnapshot")
|
|
205
164
|
.select(["documentId"])
|
|
206
165
|
.where("documentId", "in", documentIds)
|
|
@@ -218,29 +177,22 @@ export class KyselyDocumentView {
|
|
|
218
177
|
throw new Error("Operation aborted");
|
|
219
178
|
}
|
|
220
179
|
const branch = view?.branch || "main";
|
|
221
|
-
// Determine which scopes to retrieve
|
|
222
180
|
let scopesToQuery;
|
|
223
181
|
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
182
|
scopesToQuery = [...new Set(["header", "document", ...view.scopes])];
|
|
227
183
|
}
|
|
228
184
|
else {
|
|
229
|
-
// If scopes is undefined, null, or empty array [], get all scopes (no filter)
|
|
230
185
|
scopesToQuery = [];
|
|
231
186
|
}
|
|
232
|
-
|
|
233
|
-
let query = this.db
|
|
187
|
+
let query = this._db
|
|
234
188
|
.selectFrom("DocumentSnapshot")
|
|
235
189
|
.selectAll()
|
|
236
190
|
.where("documentId", "=", documentId)
|
|
237
191
|
.where("branch", "=", branch)
|
|
238
192
|
.where("isDeleted", "=", false);
|
|
239
|
-
// Apply scope filter if we have specific scopes to query
|
|
240
193
|
if (scopesToQuery.length > 0) {
|
|
241
194
|
query = query.where("scope", "in", scopesToQuery);
|
|
242
195
|
}
|
|
243
|
-
// Execute the query
|
|
244
196
|
const snapshots = await query.execute();
|
|
245
197
|
if (snapshots.length === 0) {
|
|
246
198
|
throw new Error(`Document not found: ${documentId}`);
|
|
@@ -248,54 +200,39 @@ export class KyselyDocumentView {
|
|
|
248
200
|
if (signal?.aborted) {
|
|
249
201
|
throw new Error("Operation aborted");
|
|
250
202
|
}
|
|
251
|
-
// Find the header snapshot
|
|
252
203
|
const headerSnapshot = snapshots.find((s) => s.scope === "header");
|
|
253
204
|
if (!headerSnapshot) {
|
|
254
205
|
throw new Error(`Document header not found: ${documentId}`);
|
|
255
206
|
}
|
|
256
|
-
// Get the header from JSONB content (already parsed)
|
|
257
207
|
const header = headerSnapshot.content;
|
|
258
|
-
// Reconstruct cross-scope header metadata (revision, lastModifiedAtUtcIso)
|
|
259
|
-
// by aggregating information from all scopes
|
|
260
208
|
const revisions = await this.operationStore.getRevisions(documentId, branch, signal);
|
|
261
209
|
header.revision = revisions.revision;
|
|
262
210
|
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
211
|
const state = {};
|
|
266
212
|
for (const snapshot of snapshots) {
|
|
267
|
-
// Skip header scope - it's stored separately in the header field
|
|
268
213
|
if (snapshot.scope === "header") {
|
|
269
214
|
continue;
|
|
270
215
|
}
|
|
271
|
-
// Content is already an object from JSONB
|
|
272
216
|
state[snapshot.scope] = snapshot.content;
|
|
273
217
|
}
|
|
274
|
-
// Retrieve operations from the operation store to match legacy storage format
|
|
275
218
|
const operations = {};
|
|
276
|
-
// Get all operations for this document across all scopes
|
|
277
219
|
const allOps = await this.operationStore.getSinceId(0, undefined, signal);
|
|
278
220
|
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
221
|
for (const { operation, context } of docOps) {
|
|
281
222
|
operations[context.scope] ??= [];
|
|
282
|
-
// Normalize operation to match legacy storage format
|
|
283
|
-
// Legacy storage includes redundant top-level fields that duplicate action fields
|
|
284
223
|
const normalizedOp = {
|
|
224
|
+
id: deriveOperationId(context.documentId, context.scope, context.branch, operation.action.id),
|
|
285
225
|
action: operation.action,
|
|
286
226
|
index: operation.index,
|
|
287
227
|
timestampUtcMs: operation.timestampUtcMs,
|
|
288
228
|
hash: operation.hash,
|
|
289
229
|
skip: operation.skip,
|
|
290
|
-
// Add top-level fields that mirror action fields (legacy format)
|
|
291
230
|
...operation.action,
|
|
292
|
-
// Legacy storage includes these optional fields
|
|
293
231
|
error: operation.error,
|
|
294
232
|
resultingState: operation.resultingState,
|
|
295
233
|
};
|
|
296
234
|
operations[context.scope].push(normalizedOp);
|
|
297
235
|
}
|
|
298
|
-
// Construct the PHDocument
|
|
299
236
|
const document = {
|
|
300
237
|
header,
|
|
301
238
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
@@ -315,14 +252,14 @@ export class KyselyDocumentView {
|
|
|
315
252
|
throw new Error("Operation aborted");
|
|
316
253
|
}
|
|
317
254
|
const branch = view?.branch || "main";
|
|
318
|
-
const idCheckPromise = this.
|
|
255
|
+
const idCheckPromise = this._db
|
|
319
256
|
.selectFrom("DocumentSnapshot")
|
|
320
257
|
.select("documentId")
|
|
321
258
|
.where("documentId", "=", identifier)
|
|
322
259
|
.where("branch", "=", branch)
|
|
323
260
|
.where("isDeleted", "=", false)
|
|
324
261
|
.executeTakeFirst();
|
|
325
|
-
const slugCheckPromise = this.
|
|
262
|
+
const slugCheckPromise = this._db
|
|
326
263
|
.selectFrom("SlugMapping")
|
|
327
264
|
.select("documentId")
|
|
328
265
|
.where("slug", "=", identifier)
|
|
@@ -360,7 +297,7 @@ export class KyselyDocumentView {
|
|
|
360
297
|
const documents = [];
|
|
361
298
|
const processedDocumentIds = new Set();
|
|
362
299
|
const allDocumentIds = [];
|
|
363
|
-
const snapshots = await this.
|
|
300
|
+
const snapshots = await this._db
|
|
364
301
|
.selectFrom("DocumentSnapshot")
|
|
365
302
|
.selectAll()
|
|
366
303
|
.where("documentType", "=", type)
|
|
@@ -407,7 +344,7 @@ export class KyselyDocumentView {
|
|
|
407
344
|
throw new Error("Operation aborted");
|
|
408
345
|
}
|
|
409
346
|
const branch = view?.branch || "main";
|
|
410
|
-
const mapping = await this.
|
|
347
|
+
const mapping = await this._db
|
|
411
348
|
.selectFrom("SlugMapping")
|
|
412
349
|
.select("documentId")
|
|
413
350
|
.where("slug", "=", slug)
|
|
@@ -420,7 +357,7 @@ export class KyselyDocumentView {
|
|
|
420
357
|
throw new Error("Operation aborted");
|
|
421
358
|
}
|
|
422
359
|
if (view?.scopes && view.scopes.length > 0) {
|
|
423
|
-
const scopeCheck = await this.
|
|
360
|
+
const scopeCheck = await this._db
|
|
424
361
|
.selectFrom("DocumentSnapshot")
|
|
425
362
|
.select("scope")
|
|
426
363
|
.where("documentId", "=", mapping.documentId)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"document-view.js","sourceRoot":"","sources":["../../../src/read-models/document-view.ts"],"names":[],"mappings":"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"}
|
|
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"}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
import type { DocumentModelModule } from "document-model";
|
|
1
|
+
import type { DocumentModelModule, UpgradeManifest, UpgradeReducer, UpgradeTransition } from "document-model";
|
|
2
2
|
import type { IDocumentModelRegistry } from "./interfaces.js";
|
|
3
3
|
/**
|
|
4
4
|
* Error thrown when a document model module is not found in the registry.
|
|
5
5
|
*/
|
|
6
6
|
export declare class ModuleNotFoundError extends Error {
|
|
7
|
-
constructor(documentType: string);
|
|
7
|
+
constructor(documentType: string, version?: number);
|
|
8
8
|
}
|
|
9
9
|
/**
|
|
10
10
|
* Error thrown when attempting to register a module that already exists.
|
|
11
11
|
*/
|
|
12
12
|
export declare class DuplicateModuleError extends Error {
|
|
13
|
-
constructor(documentType: string);
|
|
13
|
+
constructor(documentType: string, version?: number);
|
|
14
14
|
}
|
|
15
15
|
/**
|
|
16
16
|
* Error thrown when a module is invalid or malformed.
|
|
@@ -18,45 +18,53 @@ export declare class DuplicateModuleError extends Error {
|
|
|
18
18
|
export declare class InvalidModuleError extends Error {
|
|
19
19
|
constructor(message: string);
|
|
20
20
|
}
|
|
21
|
+
/**
|
|
22
|
+
* Error thrown when attempting to register an upgrade manifest that already exists.
|
|
23
|
+
*/
|
|
24
|
+
export declare class DuplicateManifestError extends Error {
|
|
25
|
+
constructor(documentType: string);
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Error thrown when an upgrade manifest is not found.
|
|
29
|
+
*/
|
|
30
|
+
export declare class ManifestNotFoundError extends Error {
|
|
31
|
+
constructor(documentType: string);
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Error thrown when attempting a downgrade operation.
|
|
35
|
+
*/
|
|
36
|
+
export declare class DowngradeNotSupportedError extends Error {
|
|
37
|
+
constructor(documentType: string, fromVersion: number, toVersion: number);
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Error thrown when a required upgrade transition is missing from the manifest.
|
|
41
|
+
*/
|
|
42
|
+
export declare class MissingUpgradeTransitionError extends Error {
|
|
43
|
+
constructor(documentType: string, fromVersion: number, toVersion: number);
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Error thrown when getUpgradeReducer is called with a non-single-step version increment.
|
|
47
|
+
*/
|
|
48
|
+
export declare class InvalidUpgradeStepError extends Error {
|
|
49
|
+
constructor(documentType: string, fromVersion: number, toVersion: number);
|
|
50
|
+
}
|
|
21
51
|
/**
|
|
22
52
|
* In-memory implementation of the IDocumentModelRegistry interface.
|
|
23
|
-
* Manages document model modules
|
|
53
|
+
* Manages document model modules with version-aware storage and upgrade manifest support.
|
|
24
54
|
*/
|
|
25
55
|
export declare class DocumentModelRegistry implements IDocumentModelRegistry {
|
|
26
56
|
private modules;
|
|
27
|
-
|
|
28
|
-
* Register multiple modules at once.
|
|
29
|
-
*
|
|
30
|
-
* @param modules Document model modules to register
|
|
31
|
-
* @throws DuplicateModuleError if a module with the same document type is already registered
|
|
32
|
-
* @throws InvalidModuleError if a module is malformed
|
|
33
|
-
*/
|
|
57
|
+
private manifests;
|
|
34
58
|
registerModules(...modules: DocumentModelModule<any>[]): void;
|
|
35
|
-
/**
|
|
36
|
-
* Unregister multiple document model modules at once.
|
|
37
|
-
*
|
|
38
|
-
* @param documentTypes The document types to unregister
|
|
39
|
-
* @returns true if all modules were unregistered, false if any were not found
|
|
40
|
-
*/
|
|
41
59
|
unregisterModules(...documentTypes: string[]): boolean;
|
|
42
|
-
|
|
43
|
-
* Get a specific document model module by document type.
|
|
44
|
-
*
|
|
45
|
-
* @param documentType The document type identifier
|
|
46
|
-
* @returns The document model module
|
|
47
|
-
* @throws ModuleNotFoundError if the document type is not registered
|
|
48
|
-
*/
|
|
49
|
-
getModule(documentType: string): DocumentModelModule<any>;
|
|
50
|
-
/**
|
|
51
|
-
* Get all registered document model modules.
|
|
52
|
-
* Note: This only returns loaded modules, not lazy-loaded ones.
|
|
53
|
-
*
|
|
54
|
-
* @returns Array of all registered modules
|
|
55
|
-
*/
|
|
60
|
+
getModule(documentType: string, version?: number): DocumentModelModule<any>;
|
|
56
61
|
getAllModules(): DocumentModelModule<any>[];
|
|
57
|
-
/**
|
|
58
|
-
* Clear all registered modules
|
|
59
|
-
*/
|
|
60
62
|
clear(): void;
|
|
63
|
+
getSupportedVersions(documentType: string): number[];
|
|
64
|
+
getLatestVersion(documentType: string): number;
|
|
65
|
+
registerUpgradeManifests(...manifests: UpgradeManifest<readonly number[]>[]): void;
|
|
66
|
+
getUpgradeManifest(documentType: string): UpgradeManifest<readonly number[]>;
|
|
67
|
+
computeUpgradePath(documentType: string, fromVersion: number, toVersion: number): UpgradeTransition[];
|
|
68
|
+
getUpgradeReducer(documentType: string, fromVersion: number, toVersion: number): UpgradeReducer<any, any>;
|
|
61
69
|
}
|
|
62
70
|
//# sourceMappingURL=implementation.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"implementation.d.ts","sourceRoot":"","sources":["../../../src/registry/implementation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"implementation.d.ts","sourceRoot":"","sources":["../../../src/registry/implementation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,eAAe,EACf,cAAc,EACd,iBAAiB,EAClB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAE9D;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,KAAK;gBAChC,YAAY,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM;CAOnD;AAED;;GAEG;AACH,qBAAa,oBAAqB,SAAQ,KAAK;gBACjC,YAAY,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM;CAOnD;AAED;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,KAAK;gBAC/B,OAAO,EAAE,MAAM;CAI5B;AAED;;GAEG;AACH,qBAAa,sBAAuB,SAAQ,KAAK;gBACnC,YAAY,EAAE,MAAM;CAIjC;AAED;;GAEG;AACH,qBAAa,qBAAsB,SAAQ,KAAK;gBAClC,YAAY,EAAE,MAAM;CAIjC;AAED;;GAEG;AACH,qBAAa,0BAA2B,SAAQ,KAAK;gBACvC,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;CAMzE;AAED;;GAEG;AACH,qBAAa,6BAA8B,SAAQ,KAAK;gBAC1C,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;CAMzE;AAED;;GAEG;AACH,qBAAa,uBAAwB,SAAQ,KAAK;gBACpC,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;CAMzE;AAED;;;GAGG;AACH,qBAAa,qBAAsB,YAAW,sBAAsB;IAClE,OAAO,CAAC,OAAO,CAAkC;IACjD,OAAO,CAAC,SAAS,CAA4C;IAE7D,eAAe,CAAC,GAAG,OAAO,EAAE,mBAAmB,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI;IAmB7D,iBAAiB,CAAC,GAAG,aAAa,EAAE,MAAM,EAAE,GAAG,OAAO;IAoBtD,SAAS,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,mBAAmB,CAAC,GAAG,CAAC;IA4B3E,aAAa,IAAI,mBAAmB,CAAC,GAAG,CAAC,EAAE;IAI3C,KAAK,IAAI,IAAI;IAKb,oBAAoB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,EAAE;IAgBpD,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM;IAqB9C,wBAAwB,CACtB,GAAG,SAAS,EAAE,eAAe,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,GACjD,IAAI;IAWP,kBAAkB,CAAC,YAAY,EAAE,MAAM,GAAG,eAAe,CAAC,SAAS,MAAM,EAAE,CAAC;IAS5E,kBAAkB,CAChB,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,GAChB,iBAAiB,EAAE;IA+BtB,iBAAiB,CACf,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,GAChB,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC;CAoB5B"}
|