@powerhousedao/reactor 4.1.0-dev.9 → 4.1.0-dev.91
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/buffer/ring-buffer.d.ts +37 -0
- package/dist/src/cache/buffer/ring-buffer.d.ts.map +1 -0
- package/dist/src/cache/buffer/ring-buffer.js +69 -0
- package/dist/src/cache/buffer/ring-buffer.js.map +1 -0
- package/dist/src/cache/kysely-write-cache.d.ts +133 -0
- package/dist/src/cache/kysely-write-cache.d.ts.map +1 -0
- package/dist/src/cache/kysely-write-cache.js +375 -0
- package/dist/src/cache/kysely-write-cache.js.map +1 -0
- package/dist/src/cache/lru/lru-tracker.d.ts +15 -0
- package/dist/src/cache/lru/lru-tracker.d.ts.map +1 -0
- package/dist/src/cache/lru/lru-tracker.js +96 -0
- package/dist/src/cache/lru/lru-tracker.js.map +1 -0
- package/dist/src/cache/types.d.ts +42 -0
- package/dist/src/cache/types.d.ts.map +1 -0
- package/dist/src/cache/types.js +2 -0
- package/dist/src/cache/types.js.map +1 -0
- package/dist/src/cache/write/interfaces.d.ts +83 -0
- package/dist/src/cache/write/interfaces.d.ts.map +1 -0
- package/dist/src/cache/write/interfaces.js +2 -0
- package/dist/src/cache/write/interfaces.js.map +1 -0
- package/dist/src/client/reactor-client.d.ts +103 -0
- package/dist/src/client/reactor-client.d.ts.map +1 -0
- package/dist/src/client/reactor-client.js +184 -0
- package/dist/src/client/reactor-client.js.map +1 -0
- package/dist/src/client/types.d.ts +213 -0
- package/dist/src/client/types.d.ts.map +1 -0
- package/dist/src/client/types.js +14 -0
- package/dist/src/client/types.js.map +1 -0
- package/dist/src/core/builder.d.ts +20 -0
- package/dist/src/core/builder.d.ts.map +1 -0
- package/dist/src/core/builder.js +47 -0
- package/dist/src/core/builder.js.map +1 -0
- package/dist/src/core/reactor.d.ts +92 -0
- package/dist/src/core/reactor.d.ts.map +1 -0
- package/dist/src/core/reactor.js +646 -0
- package/dist/src/core/reactor.js.map +1 -0
- package/dist/src/core/types.d.ts +121 -0
- package/dist/src/core/types.d.ts.map +1 -0
- package/dist/src/core/types.js +2 -0
- package/dist/src/core/types.js.map +1 -0
- package/dist/src/core/utils.d.ts +11 -0
- package/dist/src/core/utils.d.ts.map +1 -0
- package/dist/src/core/utils.js +31 -0
- package/dist/src/core/utils.js.map +1 -0
- package/dist/src/events/event-bus.d.ts +3 -3
- package/dist/src/events/event-bus.d.ts.map +1 -1
- package/dist/src/events/event-bus.js.map +1 -1
- package/dist/src/events/interfaces.d.ts +1 -1
- package/dist/src/events/interfaces.d.ts.map +1 -1
- package/dist/src/events/types.d.ts +15 -1
- package/dist/src/events/types.d.ts.map +1 -1
- package/dist/src/events/types.js +6 -0
- package/dist/src/events/types.js.map +1 -1
- package/dist/src/executor/interfaces.d.ts +31 -54
- package/dist/src/executor/interfaces.d.ts.map +1 -1
- package/dist/src/executor/simple-job-executor-manager.d.ts +31 -0
- package/dist/src/executor/simple-job-executor-manager.d.ts.map +1 -0
- package/dist/src/executor/simple-job-executor-manager.js +190 -0
- package/dist/src/executor/simple-job-executor-manager.js.map +1 -0
- package/dist/src/executor/simple-job-executor.d.ts +48 -0
- package/dist/src/executor/simple-job-executor.d.ts.map +1 -0
- package/dist/src/executor/simple-job-executor.js +488 -0
- package/dist/src/executor/simple-job-executor.js.map +1 -0
- package/dist/src/executor/types.d.ts +30 -8
- 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 +47 -0
- package/dist/src/executor/util.d.ts.map +1 -0
- package/dist/src/executor/util.js +113 -0
- package/dist/src/executor/util.js.map +1 -0
- package/dist/src/index.d.ts +30 -3
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +36 -2
- package/dist/src/index.js.map +1 -1
- package/dist/src/job-tracker/in-memory-job-tracker.d.ts +15 -0
- package/dist/src/job-tracker/in-memory-job-tracker.d.ts.map +1 -0
- package/dist/src/job-tracker/in-memory-job-tracker.js +78 -0
- package/dist/src/job-tracker/in-memory-job-tracker.js.map +1 -0
- package/dist/src/job-tracker/index.d.ts +3 -0
- package/dist/src/job-tracker/index.d.ts.map +1 -0
- package/dist/src/job-tracker/index.js +2 -0
- package/dist/src/job-tracker/index.js.map +1 -0
- package/dist/src/job-tracker/interfaces.d.ts +41 -0
- package/dist/src/job-tracker/interfaces.d.ts.map +1 -0
- package/dist/src/job-tracker/interfaces.js +2 -0
- package/dist/src/job-tracker/interfaces.js.map +1 -0
- package/dist/src/queue/interfaces.d.ts +45 -5
- package/dist/src/queue/interfaces.d.ts.map +1 -1
- package/dist/src/queue/job-execution-handle.d.ts +24 -0
- package/dist/src/queue/job-execution-handle.d.ts.map +1 -0
- package/dist/src/queue/job-execution-handle.js +62 -0
- package/dist/src/queue/job-execution-handle.js.map +1 -0
- package/dist/src/queue/queue.d.ts +54 -5
- package/dist/src/queue/queue.d.ts.map +1 -1
- package/dist/src/queue/queue.js +272 -36
- package/dist/src/queue/queue.js.map +1 -1
- package/dist/src/queue/types.d.ts +32 -5
- package/dist/src/queue/types.d.ts.map +1 -1
- package/dist/src/queue/types.js +12 -0
- package/dist/src/queue/types.js.map +1 -1
- package/dist/src/read-models/coordinator.d.ts +38 -0
- package/dist/src/read-models/coordinator.d.ts.map +1 -0
- package/dist/src/read-models/coordinator.js +62 -0
- package/dist/src/read-models/coordinator.js.map +1 -0
- package/dist/src/read-models/document-view.d.ts +20 -0
- package/dist/src/read-models/document-view.d.ts.map +1 -0
- package/dist/src/read-models/document-view.js +365 -0
- package/dist/src/read-models/document-view.js.map +1 -0
- package/dist/src/read-models/interfaces.d.ts +29 -0
- package/dist/src/read-models/interfaces.d.ts.map +1 -0
- package/dist/src/read-models/interfaces.js +2 -0
- package/dist/src/read-models/interfaces.js.map +1 -0
- package/dist/src/read-models/types.d.ts +46 -0
- package/dist/src/read-models/types.d.ts.map +1 -0
- package/dist/src/read-models/types.js +2 -0
- package/dist/src/read-models/types.js.map +1 -0
- package/dist/src/registry/implementation.d.ts +62 -0
- package/dist/src/registry/implementation.d.ts.map +1 -0
- package/dist/src/registry/implementation.js +96 -0
- package/dist/src/registry/implementation.js.map +1 -0
- package/dist/src/registry/index.d.ts +3 -0
- package/dist/src/registry/index.d.ts.map +1 -0
- package/dist/src/registry/index.js +2 -0
- package/dist/src/registry/index.js.map +1 -0
- package/dist/src/registry/interfaces.d.ts +39 -0
- package/dist/src/registry/interfaces.d.ts.map +1 -0
- package/dist/src/registry/interfaces.js +2 -0
- package/dist/src/registry/interfaces.js.map +1 -0
- package/dist/src/shared/awaiter.d.ts +32 -0
- package/dist/src/shared/awaiter.d.ts.map +1 -0
- package/dist/src/shared/awaiter.js +132 -0
- package/dist/src/shared/awaiter.js.map +1 -0
- package/dist/src/shared/errors.d.ts +17 -0
- package/dist/src/shared/errors.d.ts.map +1 -0
- package/dist/src/shared/errors.js +33 -0
- package/dist/src/shared/errors.js.map +1 -0
- package/dist/src/shared/factories.d.ts +16 -0
- package/dist/src/shared/factories.d.ts.map +1 -0
- package/dist/src/shared/factories.js +33 -0
- package/dist/src/shared/factories.js.map +1 -0
- package/dist/src/shared/types.d.ts +91 -19
- package/dist/src/shared/types.d.ts.map +1 -1
- package/dist/src/shared/types.js +35 -1
- package/dist/src/shared/types.js.map +1 -1
- package/dist/src/shared/utils.d.ts +3 -0
- package/dist/src/shared/utils.d.ts.map +1 -0
- package/dist/src/shared/utils.js +8 -0
- package/dist/src/shared/utils.js.map +1 -0
- package/dist/src/signer/passthrough-signer.d.ts +6 -0
- package/dist/src/signer/passthrough-signer.d.ts.map +1 -0
- package/dist/src/signer/passthrough-signer.js +6 -0
- package/dist/src/signer/passthrough-signer.js.map +1 -0
- package/dist/src/signer/types.d.ts +15 -0
- package/dist/src/signer/types.d.ts.map +1 -0
- package/dist/src/signer/types.js +2 -0
- package/dist/src/signer/types.js.map +1 -0
- package/dist/src/storage/interfaces.d.ts +121 -0
- package/dist/src/storage/interfaces.d.ts.map +1 -0
- package/dist/src/storage/interfaces.js +19 -0
- package/dist/src/storage/interfaces.js.map +1 -0
- package/dist/src/storage/kysely/keyframe-store.d.ts +15 -0
- package/dist/src/storage/kysely/keyframe-store.d.ts.map +1 -0
- package/dist/src/storage/kysely/keyframe-store.js +71 -0
- package/dist/src/storage/kysely/keyframe-store.js.map +1 -0
- package/dist/src/storage/kysely/store.d.ts +15 -0
- package/dist/src/storage/kysely/store.d.ts.map +1 -0
- package/dist/src/storage/kysely/store.js +196 -0
- package/dist/src/storage/kysely/store.js.map +1 -0
- package/dist/src/storage/kysely/types.d.ts +39 -0
- package/dist/src/storage/kysely/types.d.ts.map +1 -0
- package/dist/src/storage/kysely/types.js +2 -0
- package/dist/src/storage/kysely/types.js.map +1 -0
- package/dist/src/storage/txn.d.ts +15 -0
- package/dist/src/storage/txn.d.ts.map +1 -0
- package/dist/src/storage/txn.js +41 -0
- package/dist/src/storage/txn.js.map +1 -0
- package/dist/src/subs/default-error-handler.d.ts +13 -0
- package/dist/src/subs/default-error-handler.d.ts.map +1 -0
- package/dist/src/subs/default-error-handler.js +27 -0
- package/dist/src/subs/default-error-handler.js.map +1 -0
- package/dist/src/subs/react-subscription-manager.d.ts +45 -0
- package/dist/src/subs/react-subscription-manager.d.ts.map +1 -0
- package/dist/src/subs/react-subscription-manager.js +185 -0
- package/dist/src/subs/react-subscription-manager.js.map +1 -0
- package/dist/src/subs/types.d.ts +64 -0
- package/dist/src/subs/types.d.ts.map +1 -0
- package/dist/src/subs/types.js +2 -0
- package/dist/src/subs/types.js.map +1 -0
- package/dist/src/utils/reshuffle.d.ts +30 -0
- package/dist/src/utils/reshuffle.d.ts.map +1 -0
- package/dist/src/utils/reshuffle.js +47 -0
- package/dist/src/utils/reshuffle.js.map +1 -0
- package/package.json +18 -7
- package/dist/bench/end-to-end-flow.bench.d.ts +0 -2
- package/dist/bench/end-to-end-flow.bench.d.ts.map +0 -1
- package/dist/bench/end-to-end-flow.bench.js +0 -256
- package/dist/bench/end-to-end-flow.bench.js.map +0 -1
- package/dist/bench/event-bus.bench.d.ts +0 -2
- package/dist/bench/event-bus.bench.d.ts.map +0 -1
- package/dist/bench/event-bus.bench.js +0 -238
- package/dist/bench/event-bus.bench.js.map +0 -1
- package/dist/bench/queue-only.bench.d.ts +0 -2
- package/dist/bench/queue-only.bench.d.ts.map +0 -1
- package/dist/bench/queue-only.bench.js +0 -40
- package/dist/bench/queue-only.bench.js.map +0 -1
- package/dist/bench/reactor-throughput.bench.d.ts +0 -2
- package/dist/bench/reactor-throughput.bench.d.ts.map +0 -1
- package/dist/bench/reactor-throughput.bench.js +0 -137
- package/dist/bench/reactor-throughput.bench.js.map +0 -1
- package/dist/src/executor/job-executor.d.ts +0 -62
- package/dist/src/executor/job-executor.d.ts.map +0 -1
- package/dist/src/executor/job-executor.js +0 -325
- package/dist/src/executor/job-executor.js.map +0 -1
- package/dist/test/event-bus.test.d.ts +0 -2
- package/dist/test/event-bus.test.d.ts.map +0 -1
- package/dist/test/event-bus.test.js +0 -532
- package/dist/test/event-bus.test.js.map +0 -1
- package/dist/test/job-executor.test.d.ts +0 -2
- package/dist/test/job-executor.test.d.ts.map +0 -1
- package/dist/test/job-executor.test.js +0 -581
- package/dist/test/job-executor.test.js.map +0 -1
- package/dist/test/queue.test.d.ts +0 -2
- package/dist/test/queue.test.d.ts.map +0 -1
- package/dist/test/queue.test.js +0 -396
- package/dist/test/queue.test.js.map +0 -1
- package/dist/tsconfig.tsbuildinfo +0 -1
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Error thrown when a document model module is not found in the registry.
|
|
3
|
+
*/
|
|
4
|
+
export class ModuleNotFoundError extends Error {
|
|
5
|
+
constructor(documentType) {
|
|
6
|
+
super(`Document model module not found for type: ${documentType}`);
|
|
7
|
+
this.name = "ModuleNotFoundError";
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Error thrown when attempting to register a module that already exists.
|
|
12
|
+
*/
|
|
13
|
+
export class DuplicateModuleError extends Error {
|
|
14
|
+
constructor(documentType) {
|
|
15
|
+
super(`Document model module already registered for type: ${documentType}`);
|
|
16
|
+
this.name = "DuplicateModuleError";
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Error thrown when a module is invalid or malformed.
|
|
21
|
+
*/
|
|
22
|
+
export class InvalidModuleError extends Error {
|
|
23
|
+
constructor(message) {
|
|
24
|
+
super(`Invalid document model module: ${message}`);
|
|
25
|
+
this.name = "InvalidModuleError";
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* In-memory implementation of the IDocumentModelRegistry interface.
|
|
30
|
+
* Manages document model modules and provides centralized access to their reducers, utils, and specifications.
|
|
31
|
+
*/
|
|
32
|
+
export class DocumentModelRegistry {
|
|
33
|
+
modules = new Map();
|
|
34
|
+
/**
|
|
35
|
+
* Register multiple modules at once.
|
|
36
|
+
*
|
|
37
|
+
* @param modules Document model modules to register
|
|
38
|
+
* @throws DuplicateModuleError if a module with the same document type is already registered
|
|
39
|
+
* @throws InvalidModuleError if a module is malformed
|
|
40
|
+
*/
|
|
41
|
+
registerModules(...modules) {
|
|
42
|
+
for (const module of modules) {
|
|
43
|
+
const documentType = module.documentModel.global.id;
|
|
44
|
+
if (this.modules.has(documentType)) {
|
|
45
|
+
throw new DuplicateModuleError(documentType);
|
|
46
|
+
}
|
|
47
|
+
this.modules.set(documentType, module);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Unregister multiple document model modules at once.
|
|
52
|
+
*
|
|
53
|
+
* @param documentTypes The document types to unregister
|
|
54
|
+
* @returns true if all modules were unregistered, false if any were not found
|
|
55
|
+
*/
|
|
56
|
+
unregisterModules(...documentTypes) {
|
|
57
|
+
let allFound = true;
|
|
58
|
+
for (const documentType of documentTypes) {
|
|
59
|
+
const wasDeleted = this.modules.delete(documentType);
|
|
60
|
+
if (!wasDeleted) {
|
|
61
|
+
allFound = false;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
return allFound;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Get a specific document model module by document type.
|
|
68
|
+
*
|
|
69
|
+
* @param documentType The document type identifier
|
|
70
|
+
* @returns The document model module
|
|
71
|
+
* @throws ModuleNotFoundError if the document type is not registered
|
|
72
|
+
*/
|
|
73
|
+
getModule(documentType) {
|
|
74
|
+
const module = this.modules.get(documentType);
|
|
75
|
+
if (module) {
|
|
76
|
+
return module;
|
|
77
|
+
}
|
|
78
|
+
throw new ModuleNotFoundError(documentType);
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Get all registered document model modules.
|
|
82
|
+
* Note: This only returns loaded modules, not lazy-loaded ones.
|
|
83
|
+
*
|
|
84
|
+
* @returns Array of all registered modules
|
|
85
|
+
*/
|
|
86
|
+
getAllModules() {
|
|
87
|
+
return Array.from(this.modules.values());
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Clear all registered modules
|
|
91
|
+
*/
|
|
92
|
+
clear() {
|
|
93
|
+
this.modules.clear();
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
//# sourceMappingURL=implementation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"implementation.js","sourceRoot":"","sources":["../../../src/registry/implementation.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IAC5C,YAAY,YAAoB;QAC9B,KAAK,CAAC,6CAA6C,YAAY,EAAE,CAAC,CAAC;QACnE,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACpC,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,oBAAqB,SAAQ,KAAK;IAC7C,YAAY,YAAoB;QAC9B,KAAK,CAAC,sDAAsD,YAAY,EAAE,CAAC,CAAC;QAC5E,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;IACrC,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IAC3C,YAAY,OAAe;QACzB,KAAK,CAAC,kCAAkC,OAAO,EAAE,CAAC,CAAC;QACnD,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IACnC,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,OAAO,qBAAqB;IACxB,OAAO,GAAG,IAAI,GAAG,EAAoC,CAAC;IAE9D;;;;;;OAMG;IACH,eAAe,CAAC,GAAG,OAAmC;QACpD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,MAAM,YAAY,GAAG,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;YAEpD,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC;gBACnC,MAAM,IAAI,oBAAoB,CAAC,YAAY,CAAC,CAAC;YAC/C,CAAC;YAED,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACH,iBAAiB,CAAC,GAAG,aAAuB;QAC1C,IAAI,QAAQ,GAAG,IAAI,CAAC;QAEpB,KAAK,MAAM,YAAY,IAAI,aAAa,EAAE,CAAC;YACzC,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YACrD,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,QAAQ,GAAG,KAAK,CAAC;YACnB,CAAC;QACH,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;;;;OAMG;IACH,SAAS,CAAC,YAAoB;QAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAE9C,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,MAAM,IAAI,mBAAmB,CAAC,YAAY,CAAC,CAAC;IAC9C,CAAC;IAED;;;;;OAKG;IACH,aAAa;QACX,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC3C,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/registry/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/registry/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import type { DocumentModelModule } from "document-model";
|
|
2
|
+
/**
|
|
3
|
+
* Registry for managing document model modules.
|
|
4
|
+
* Provides centralized access to document models' reducers, utils, and specifications.
|
|
5
|
+
*/
|
|
6
|
+
export interface IDocumentModelRegistry {
|
|
7
|
+
/**
|
|
8
|
+
* Register multiple modules at once.
|
|
9
|
+
*
|
|
10
|
+
* @param modules Document model modules to register
|
|
11
|
+
* @throws Error if a module with the same document type is already registered
|
|
12
|
+
*/
|
|
13
|
+
registerModules(...modules: DocumentModelModule<any>[]): void;
|
|
14
|
+
/**
|
|
15
|
+
* Unregister multiple document model modules at once.
|
|
16
|
+
*
|
|
17
|
+
* @param documentTypes The document types to unregister
|
|
18
|
+
* @returns true if all modules were unregistered, false if any were not found
|
|
19
|
+
*/
|
|
20
|
+
unregisterModules(...documentTypes: string[]): boolean;
|
|
21
|
+
/**
|
|
22
|
+
* Get a specific document model module by document type.
|
|
23
|
+
*
|
|
24
|
+
* @param documentType The document type identifier
|
|
25
|
+
* @returns The document model module
|
|
26
|
+
* @throws Error if the document type is not registered
|
|
27
|
+
*/
|
|
28
|
+
getModule(documentType: string): DocumentModelModule<any>;
|
|
29
|
+
/**
|
|
30
|
+
* Get all registered document model modules
|
|
31
|
+
* @returns Array of all registered modules
|
|
32
|
+
*/
|
|
33
|
+
getAllModules(): DocumentModelModule<any>[];
|
|
34
|
+
/**
|
|
35
|
+
* Clear all registered modules
|
|
36
|
+
*/
|
|
37
|
+
clear(): void;
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=interfaces.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../src/registry/interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAE1D;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IACrC;;;;;OAKG;IACH,eAAe,CAAC,GAAG,OAAO,EAAE,mBAAmB,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC;IAE9D;;;;;OAKG;IACH,iBAAiB,CAAC,GAAG,aAAa,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAEvD;;;;;;OAMG;IACH,SAAS,CAAC,YAAY,EAAE,MAAM,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC;IAE1D;;;OAGG;IACH,aAAa,IAAI,mBAAmB,CAAC,GAAG,CAAC,EAAE,CAAC;IAE5C;;OAEG;IACH,KAAK,IAAI,IAAI,CAAC;CACf"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../src/registry/interfaces.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { type JobInfo } from "./types.js";
|
|
2
|
+
export interface IJobAwaiter {
|
|
3
|
+
/**
|
|
4
|
+
* Waits for a job to complete: turns a job into a promise.
|
|
5
|
+
*
|
|
6
|
+
* @param jobId - The job id or job object
|
|
7
|
+
* @param signal - Optional abort signal to cancel the request
|
|
8
|
+
* @returns The result of the job
|
|
9
|
+
*/
|
|
10
|
+
waitForJob(jobId: string, signal?: AbortSignal): Promise<JobInfo>;
|
|
11
|
+
/**
|
|
12
|
+
* Shuts down the job awaiter. This will synchronously reject all pending jobs.
|
|
13
|
+
*/
|
|
14
|
+
shutdown(): void;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Default implementation of IJobAwaiter that polls for job status.
|
|
18
|
+
* Uses a single interval timer to check all pending jobs.
|
|
19
|
+
*/
|
|
20
|
+
export declare class JobAwaiter implements IJobAwaiter {
|
|
21
|
+
private getJobStatus;
|
|
22
|
+
private pollIntervalMs;
|
|
23
|
+
private pendingJobs;
|
|
24
|
+
private intervalId;
|
|
25
|
+
constructor(getJobStatus: (jobId: string, signal?: AbortSignal) => Promise<JobInfo>, pollIntervalMs?: number);
|
|
26
|
+
shutdown(): void;
|
|
27
|
+
waitForJob(jobId: string, signal?: AbortSignal): Promise<JobInfo>;
|
|
28
|
+
private startInterval;
|
|
29
|
+
private stopIntervalIfNoJobs;
|
|
30
|
+
private checkPendingJobs;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=awaiter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"awaiter.d.ts","sourceRoot":"","sources":["../../../src/shared/awaiter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,KAAK,OAAO,EAAE,MAAM,YAAY,CAAC;AAErD,MAAM,WAAW,WAAW;IAC1B;;;;;;OAMG;IACH,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAElE;;OAEG;IACH,QAAQ,IAAI,IAAI,CAAC;CAClB;AAQD;;;GAGG;AACH,qBAAa,UAAW,YAAW,WAAW;IAM1C,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,cAAc;IARxB,OAAO,CAAC,WAAW,CAAkC;IACrD,OAAO,CAAC,UAAU,CAA+B;gBAGvC,YAAY,EAAE,CACpB,KAAK,EAAE,MAAM,EACb,MAAM,CAAC,EAAE,WAAW,KACjB,OAAO,CAAC,OAAO,CAAC,EACb,cAAc,SAAK;IAK7B,QAAQ,IAAI,IAAI;IAcV,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC;IA2CvE,OAAO,CAAC,aAAa;IAUrB,OAAO,CAAC,oBAAoB;YAOd,gBAAgB;CA+D/B"}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
import { JobStatus } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Default implementation of IJobAwaiter that polls for job status.
|
|
4
|
+
* Uses a single interval timer to check all pending jobs.
|
|
5
|
+
*/
|
|
6
|
+
export class JobAwaiter {
|
|
7
|
+
getJobStatus;
|
|
8
|
+
pollIntervalMs;
|
|
9
|
+
// Map from job ID to list of waiters (multiple waiters can wait for same job)
|
|
10
|
+
pendingJobs = new Map();
|
|
11
|
+
intervalId = null;
|
|
12
|
+
constructor(getJobStatus, pollIntervalMs = 10) {
|
|
13
|
+
this.getJobStatus = getJobStatus;
|
|
14
|
+
this.pollIntervalMs = pollIntervalMs;
|
|
15
|
+
//
|
|
16
|
+
}
|
|
17
|
+
shutdown() {
|
|
18
|
+
if (this.intervalId !== null) {
|
|
19
|
+
clearInterval(this.intervalId);
|
|
20
|
+
this.intervalId = null;
|
|
21
|
+
}
|
|
22
|
+
// Reject all pending jobs
|
|
23
|
+
for (const [, waiters] of this.pendingJobs) {
|
|
24
|
+
for (const waiter of waiters) {
|
|
25
|
+
waiter.reject(new Error("JobAwaiter destroyed"));
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
this.pendingJobs.clear();
|
|
29
|
+
}
|
|
30
|
+
async waitForJob(jobId, signal) {
|
|
31
|
+
// Check if signal is already aborted
|
|
32
|
+
if (signal?.aborted) {
|
|
33
|
+
throw new Error("Operation aborted");
|
|
34
|
+
}
|
|
35
|
+
// Create promise for this job
|
|
36
|
+
const promise = new Promise((resolve, reject) => {
|
|
37
|
+
const waiter = { resolve, reject, signal };
|
|
38
|
+
// Add to the list of waiters for this job
|
|
39
|
+
const existingWaiters = this.pendingJobs.get(jobId) || [];
|
|
40
|
+
existingWaiters.push(waiter);
|
|
41
|
+
this.pendingJobs.set(jobId, existingWaiters);
|
|
42
|
+
// If signal is provided, handle abort
|
|
43
|
+
if (signal) {
|
|
44
|
+
const abortHandler = () => {
|
|
45
|
+
// Find and remove this specific waiter
|
|
46
|
+
const waiters = this.pendingJobs.get(jobId);
|
|
47
|
+
if (waiters) {
|
|
48
|
+
const index = waiters.indexOf(waiter);
|
|
49
|
+
if (index !== -1) {
|
|
50
|
+
waiters.splice(index, 1);
|
|
51
|
+
if (waiters.length === 0) {
|
|
52
|
+
this.pendingJobs.delete(jobId);
|
|
53
|
+
}
|
|
54
|
+
waiter.reject(new Error("Operation aborted"));
|
|
55
|
+
this.stopIntervalIfNoJobs();
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
signal.addEventListener("abort", abortHandler, { once: true });
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
// Start interval if not already running
|
|
63
|
+
this.startInterval();
|
|
64
|
+
return promise;
|
|
65
|
+
}
|
|
66
|
+
startInterval() {
|
|
67
|
+
if (this.intervalId === null && this.pendingJobs.size > 0) {
|
|
68
|
+
this.intervalId = setInterval(() => {
|
|
69
|
+
void this.checkPendingJobs();
|
|
70
|
+
}, this.pollIntervalMs);
|
|
71
|
+
// Check immediately as well - schedule it for next tick
|
|
72
|
+
setTimeout(() => void this.checkPendingJobs(), 0);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
stopIntervalIfNoJobs() {
|
|
76
|
+
if (this.pendingJobs.size === 0 && this.intervalId !== null) {
|
|
77
|
+
clearInterval(this.intervalId);
|
|
78
|
+
this.intervalId = null;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
async checkPendingJobs() {
|
|
82
|
+
// Get unique job IDs to check
|
|
83
|
+
const jobIds = Array.from(this.pendingJobs.keys());
|
|
84
|
+
// Check each job
|
|
85
|
+
const jobChecks = jobIds.map(async (jobId) => {
|
|
86
|
+
const waiters = this.pendingJobs.get(jobId);
|
|
87
|
+
if (!waiters || waiters.length === 0) {
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
90
|
+
try {
|
|
91
|
+
// Filter out aborted waiters
|
|
92
|
+
const activeWaiters = waiters.filter((w) => !w.signal?.aborted);
|
|
93
|
+
if (activeWaiters.length === 0) {
|
|
94
|
+
// All waiters were aborted
|
|
95
|
+
this.pendingJobs.delete(jobId);
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
98
|
+
// let errors bubble up
|
|
99
|
+
const jobInfo = await this.getJobStatus(jobId, activeWaiters[0].signal);
|
|
100
|
+
// Check if job is complete
|
|
101
|
+
if (jobInfo.status === JobStatus.COMPLETED ||
|
|
102
|
+
jobInfo.status === JobStatus.FAILED) {
|
|
103
|
+
// Remove from pending
|
|
104
|
+
this.pendingJobs.delete(jobId);
|
|
105
|
+
// Resolve all active waiters
|
|
106
|
+
for (const waiter of activeWaiters) {
|
|
107
|
+
waiter.resolve(jobInfo);
|
|
108
|
+
}
|
|
109
|
+
// Reject aborted waiters
|
|
110
|
+
for (const waiter of waiters) {
|
|
111
|
+
if (waiter.signal?.aborted) {
|
|
112
|
+
waiter.reject(new Error("Operation aborted"));
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
catch (error) {
|
|
118
|
+
// Remove from pending
|
|
119
|
+
this.pendingJobs.delete(jobId);
|
|
120
|
+
// Reject all waiters with the error
|
|
121
|
+
for (const waiter of waiters) {
|
|
122
|
+
waiter.reject(error instanceof Error ? error : new Error(String(error)));
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
});
|
|
126
|
+
// Wait for all checks to complete
|
|
127
|
+
await Promise.all(jobChecks);
|
|
128
|
+
// Stop interval if no more jobs
|
|
129
|
+
this.stopIntervalIfNoJobs();
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
//# sourceMappingURL=awaiter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"awaiter.js","sourceRoot":"","sources":["../../../src/shared/awaiter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAgB,MAAM,YAAY,CAAC;AAwBrD;;;GAGG;AACH,MAAM,OAAO,UAAU;IAMX;IAIA;IATV,8EAA8E;IACtE,WAAW,GAAG,IAAI,GAAG,EAAuB,CAAC;IAC7C,UAAU,GAA0B,IAAI,CAAC;IAEjD,YACU,YAGa,EACb,iBAAiB,EAAE;QAJnB,iBAAY,GAAZ,YAAY,CAGC;QACb,mBAAc,GAAd,cAAc,CAAK;QAE3B,EAAE;IACJ,CAAC;IAED,QAAQ;QACN,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;YAC7B,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC/B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACzB,CAAC;QACD,0BAA0B;QAC1B,KAAK,MAAM,CAAC,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YAC3C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;gBAC7B,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC,CAAC;YACnD,CAAC;QACH,CAAC;QACD,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,KAAa,EAAE,MAAoB;QAClD,qCAAqC;QACrC,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QACvC,CAAC;QAED,8BAA8B;QAC9B,MAAM,OAAO,GAAG,IAAI,OAAO,CAAU,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACvD,MAAM,MAAM,GAAc,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;YAEtD,0CAA0C;YAC1C,MAAM,eAAe,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YAC1D,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC7B,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;YAE7C,sCAAsC;YACtC,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,YAAY,GAAG,GAAG,EAAE;oBACxB,uCAAuC;oBACvC,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;oBAC5C,IAAI,OAAO,EAAE,CAAC;wBACZ,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;wBACtC,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;4BACjB,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;4BACzB,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gCACzB,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;4BACjC,CAAC;4BACD,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC;4BAC9C,IAAI,CAAC,oBAAoB,EAAE,CAAC;wBAC9B,CAAC;oBACH,CAAC;gBACH,CAAC,CAAC;gBAEF,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YACjE,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,wCAAwC;QACxC,IAAI,CAAC,aAAa,EAAE,CAAC;QAErB,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,aAAa;QACnB,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YAC1D,IAAI,CAAC,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE;gBACjC,KAAK,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC/B,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;YACxB,wDAAwD;YACxD,UAAU,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;IAEO,oBAAoB;QAC1B,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;YAC5D,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC/B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACzB,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,gBAAgB;QAC5B,8BAA8B;QAC9B,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;QAEnD,iBAAiB;QACjB,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAC5C,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACrC,OAAO;YACT,CAAC;YAED,IAAI,CAAC;gBACH,6BAA6B;gBAC7B,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBAEhE,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC/B,2BAA2B;oBAC3B,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBAC/B,OAAO;gBACT,CAAC;gBAED,uBAAuB;gBACvB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;gBAExE,2BAA2B;gBAC3B,IACE,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,SAAS;oBACtC,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,MAAM,EACnC,CAAC;oBACD,sBAAsB;oBACtB,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBAE/B,6BAA6B;oBAC7B,KAAK,MAAM,MAAM,IAAI,aAAa,EAAE,CAAC;wBACnC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;oBAC1B,CAAC;oBAED,yBAAyB;oBACzB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;wBAC7B,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;4BAC3B,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC;wBAChD,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,sBAAsB;gBACtB,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAE/B,oCAAoC;gBACpC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;oBAC7B,MAAM,CAAC,MAAM,CACX,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAC1D,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,kCAAkC;QAClC,MAAM,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAE7B,gCAAgC;QAChC,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAC9B,CAAC;CACF"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Error thrown when attempting to access a deleted document.
|
|
3
|
+
*/
|
|
4
|
+
export declare class DocumentDeletedError extends Error {
|
|
5
|
+
readonly documentId: string;
|
|
6
|
+
readonly deletedAtUtcIso: string | null;
|
|
7
|
+
constructor(documentId: string, deletedAtUtcIso?: string | null);
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Error thrown when attempting to add operations before CREATE_DOCUMENT.
|
|
11
|
+
*/
|
|
12
|
+
export declare class CreateDocumentRequiredError extends Error {
|
|
13
|
+
readonly documentId: string;
|
|
14
|
+
readonly scope: string;
|
|
15
|
+
constructor(documentId: string, scope: string);
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Error thrown when attempting to access a deleted document.
|
|
3
|
+
*/
|
|
4
|
+
export class DocumentDeletedError extends Error {
|
|
5
|
+
documentId;
|
|
6
|
+
deletedAtUtcIso;
|
|
7
|
+
constructor(documentId, deletedAtUtcIso = null) {
|
|
8
|
+
const message = deletedAtUtcIso
|
|
9
|
+
? `Document ${documentId} was deleted at ${deletedAtUtcIso}`
|
|
10
|
+
: `Document ${documentId} has been deleted`;
|
|
11
|
+
super(message);
|
|
12
|
+
this.name = "DocumentDeletedError";
|
|
13
|
+
this.documentId = documentId;
|
|
14
|
+
this.deletedAtUtcIso = deletedAtUtcIso;
|
|
15
|
+
Error.captureStackTrace(this, DocumentDeletedError);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Error thrown when attempting to add operations before CREATE_DOCUMENT.
|
|
20
|
+
*/
|
|
21
|
+
export class CreateDocumentRequiredError extends Error {
|
|
22
|
+
documentId;
|
|
23
|
+
scope;
|
|
24
|
+
constructor(documentId, scope) {
|
|
25
|
+
const message = `Document ${documentId} requires a CREATE_DOCUMENT operation at revision 0 in the "document" scope before operations can be added to scope "${scope}"`;
|
|
26
|
+
super(message);
|
|
27
|
+
this.name = "CreateDocumentRequiredError";
|
|
28
|
+
this.documentId = documentId;
|
|
29
|
+
this.scope = scope;
|
|
30
|
+
Error.captureStackTrace(this, CreateDocumentRequiredError);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/shared/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,OAAO,oBAAqB,SAAQ,KAAK;IAC7B,UAAU,CAAS;IACnB,eAAe,CAAgB;IAE/C,YAAY,UAAkB,EAAE,kBAAiC,IAAI;QACnE,MAAM,OAAO,GAAG,eAAe;YAC7B,CAAC,CAAC,YAAY,UAAU,mBAAmB,eAAe,EAAE;YAC5D,CAAC,CAAC,YAAY,UAAU,mBAAmB,CAAC;QAE9C,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;QACnC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;QAEvC,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC;IACtD,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,2BAA4B,SAAQ,KAAK;IACpC,UAAU,CAAS;IACnB,KAAK,CAAS;IAE9B,YAAY,UAAkB,EAAE,KAAa;QAC3C,MAAM,OAAO,GAAG,YAAY,UAAU,wHAAwH,KAAK,GAAG,CAAC;QAEvK,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,6BAA6B,CAAC;QAC1C,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QAEnB,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,2BAA2B,CAAC,CAAC;IAC7D,CAAC;CACF"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { ShutdownStatus } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Factory method to create a ShutdownStatus object
|
|
4
|
+
*
|
|
5
|
+
* @param isShutdown - Initial shutdown state
|
|
6
|
+
* @returns A ShutdownStatus object with a getter for the shutdown state
|
|
7
|
+
*/
|
|
8
|
+
export declare function createShutdownStatus(isShutdown: boolean): ShutdownStatus;
|
|
9
|
+
/**
|
|
10
|
+
* Factory method to create a ShutdownStatus that can be updated
|
|
11
|
+
*
|
|
12
|
+
* @param initialState - Initial shutdown state (default: false)
|
|
13
|
+
* @returns A tuple of [ShutdownStatus, setter function]
|
|
14
|
+
*/
|
|
15
|
+
export declare function createMutableShutdownStatus(initialState?: boolean): [ShutdownStatus, (value: boolean) => void];
|
|
16
|
+
//# sourceMappingURL=factories.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"factories.d.ts","sourceRoot":"","sources":["../../../src/shared/factories.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,OAAO,GAAG,cAAc,CAQxE;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,CACzC,YAAY,UAAQ,GACnB,CAAC,cAAc,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC,CAc5C"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Factory method to create a ShutdownStatus object
|
|
3
|
+
*
|
|
4
|
+
* @param isShutdown - Initial shutdown state
|
|
5
|
+
* @returns A ShutdownStatus object with a getter for the shutdown state
|
|
6
|
+
*/
|
|
7
|
+
export function createShutdownStatus(isShutdown) {
|
|
8
|
+
const shutdownState = isShutdown;
|
|
9
|
+
return {
|
|
10
|
+
get isShutdown() {
|
|
11
|
+
return shutdownState;
|
|
12
|
+
},
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Factory method to create a ShutdownStatus that can be updated
|
|
17
|
+
*
|
|
18
|
+
* @param initialState - Initial shutdown state (default: false)
|
|
19
|
+
* @returns A tuple of [ShutdownStatus, setter function]
|
|
20
|
+
*/
|
|
21
|
+
export function createMutableShutdownStatus(initialState = false) {
|
|
22
|
+
let shutdownState = initialState;
|
|
23
|
+
const status = {
|
|
24
|
+
get isShutdown() {
|
|
25
|
+
return shutdownState;
|
|
26
|
+
},
|
|
27
|
+
};
|
|
28
|
+
const setShutdown = (value) => {
|
|
29
|
+
shutdownState = value;
|
|
30
|
+
};
|
|
31
|
+
return [status, setShutdown];
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=factories.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"factories.js","sourceRoot":"","sources":["../../../src/shared/factories.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAC,UAAmB;IACtD,MAAM,aAAa,GAAG,UAAU,CAAC;IAEjC,OAAO;QACL,IAAI,UAAU;YACZ,OAAO,aAAa,CAAC;QACvB,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,2BAA2B,CACzC,YAAY,GAAG,KAAK;IAEpB,IAAI,aAAa,GAAG,YAAY,CAAC;IAEjC,MAAM,MAAM,GAAmB;QAC7B,IAAI,UAAU;YACZ,OAAO,aAAa,CAAC;QACvB,CAAC;KACF,CAAC;IAEF,MAAM,WAAW,GAAG,CAAC,KAAc,EAAE,EAAE;QACrC,aAAa,GAAG,KAAK,CAAC;IACxB,CAAC,CAAC;IAEF,OAAO,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AAC/B,CAAC"}
|
|
@@ -1,23 +1,95 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
*/
|
|
5
|
-
export
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
2
|
+
* The document ID used for system operations (CREATE_DOCUMENT, DELETE_DOCUMENT, etc.)
|
|
3
|
+
* System operations use this special ID along with the "system" scope.
|
|
4
|
+
*/
|
|
5
|
+
export declare const SYSTEM_DOCUMENT_ID = "00000000-0000-0000-0000-000000000000";
|
|
6
|
+
/**
|
|
7
|
+
* Describes the status of a shutdown operation.
|
|
8
|
+
*/
|
|
9
|
+
export type ShutdownStatus = {
|
|
10
|
+
/**
|
|
11
|
+
* True if and only if the system has been shutdown.
|
|
12
|
+
*
|
|
13
|
+
* This value is meant to be polled to determine if the system has been shutdown.
|
|
14
|
+
*
|
|
15
|
+
* In the case of a browser process, the `kill` method should be able to synchronously set this to true.
|
|
16
|
+
*
|
|
17
|
+
* In the case of a server process, a graceful shutdown period should be allowed for the system to finish its work.
|
|
18
|
+
*/
|
|
19
|
+
get isShutdown(): boolean;
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* Enum that determines deletion propagation.
|
|
23
|
+
*/
|
|
24
|
+
export declare enum PropagationMode {
|
|
25
|
+
None = "none",
|
|
26
|
+
Cascade = "cascade"
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Enum that describes the type of relationship change.
|
|
30
|
+
*/
|
|
31
|
+
export declare enum RelationshipChangeType {
|
|
32
|
+
Added = "added",
|
|
33
|
+
Removed = "removed"
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Describes the current state of a job.
|
|
37
|
+
*/
|
|
38
|
+
export type JobInfo = {
|
|
39
|
+
id: string;
|
|
40
|
+
status: JobStatus;
|
|
41
|
+
createdAtUtcIso: string;
|
|
42
|
+
completedAtUtcIso?: string;
|
|
19
43
|
error?: string;
|
|
20
|
-
|
|
21
|
-
|
|
44
|
+
result?: any;
|
|
45
|
+
};
|
|
46
|
+
/**
|
|
47
|
+
* Job execution statuses
|
|
48
|
+
*/
|
|
49
|
+
export declare enum JobStatus {
|
|
50
|
+
/** Job is queued but not yet started */
|
|
51
|
+
PENDING = "PENDING",
|
|
52
|
+
/** Job is currently being executed */
|
|
53
|
+
RUNNING = "RUNNING",
|
|
54
|
+
/** Job completed successfully */
|
|
55
|
+
COMPLETED = "COMPLETED",
|
|
56
|
+
/** Job failed (may be retried) */
|
|
57
|
+
FAILED = "FAILED"
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Describe the view of a set of documents. That is, what pieces of the
|
|
61
|
+
* documents are populated.
|
|
62
|
+
*/
|
|
63
|
+
export type ViewFilter = {
|
|
64
|
+
branch?: string;
|
|
65
|
+
scopes?: string[];
|
|
66
|
+
revision?: number;
|
|
67
|
+
};
|
|
68
|
+
/**
|
|
69
|
+
* Describes filter options for searching documents.
|
|
70
|
+
*
|
|
71
|
+
* Each parameter is treated as an AND condition.
|
|
72
|
+
*/
|
|
73
|
+
export type SearchFilter = {
|
|
74
|
+
type?: string;
|
|
75
|
+
parentId?: string;
|
|
76
|
+
ids?: string[];
|
|
77
|
+
slugs?: string[];
|
|
78
|
+
};
|
|
79
|
+
/**
|
|
80
|
+
* Describes the options for paging.
|
|
81
|
+
*/
|
|
82
|
+
export type PagingOptions = {
|
|
83
|
+
cursor: string;
|
|
84
|
+
limit: number;
|
|
85
|
+
};
|
|
86
|
+
/**
|
|
87
|
+
* The paged result.
|
|
88
|
+
*/
|
|
89
|
+
export type PagedResults<T> = {
|
|
90
|
+
results: T[];
|
|
91
|
+
options: PagingOptions;
|
|
92
|
+
next?: () => Promise<PagedResults<T>>;
|
|
93
|
+
nextCursor?: string;
|
|
22
94
|
};
|
|
23
95
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/shared/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,MAAM,SAAS,GAAG;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/shared/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,kBAAkB,yCAAyC,CAAC;AAEzE;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B;;;;;;;;OAQG;IACH,IAAI,UAAU,IAAI,OAAO,CAAC;CAC3B,CAAC;AAEF;;GAEG;AACH,oBAAY,eAAe;IACzB,IAAI,SAAS;IACb,OAAO,YAAY;CACpB;AAED;;GAEG;AACH,oBAAY,sBAAsB;IAChC,KAAK,UAAU;IACf,OAAO,YAAY;CACpB;AAED;;GAEG;AACH,MAAM,MAAM,OAAO,GAAG;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,SAAS,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,GAAG,CAAC;CACd,CAAC;AAEF;;GAEG;AACH,oBAAY,SAAS;IACnB,wCAAwC;IACxC,OAAO,YAAY;IACnB,sCAAsC;IACtC,OAAO,YAAY;IACnB,iCAAiC;IACjC,SAAS,cAAc;IACvB,kCAAkC;IAClC,MAAM,WAAW;CAClB;AAED;;;GAGG;AACH,MAAM,MAAM,UAAU,GAAG;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI;IAC5B,OAAO,EAAE,CAAC,EAAE,CAAC;IACb,OAAO,EAAE,aAAa,CAAC;IAEvB,IAAI,CAAC,EAAE,MAAM,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;IACtC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC"}
|
package/dist/src/shared/types.js
CHANGED
|
@@ -1,2 +1,36 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* The document ID used for system operations (CREATE_DOCUMENT, DELETE_DOCUMENT, etc.)
|
|
3
|
+
* System operations use this special ID along with the "system" scope.
|
|
4
|
+
*/
|
|
5
|
+
export const SYSTEM_DOCUMENT_ID = "00000000-0000-0000-0000-000000000000";
|
|
6
|
+
/**
|
|
7
|
+
* Enum that determines deletion propagation.
|
|
8
|
+
*/
|
|
9
|
+
export var PropagationMode;
|
|
10
|
+
(function (PropagationMode) {
|
|
11
|
+
PropagationMode["None"] = "none";
|
|
12
|
+
PropagationMode["Cascade"] = "cascade";
|
|
13
|
+
})(PropagationMode || (PropagationMode = {}));
|
|
14
|
+
/**
|
|
15
|
+
* Enum that describes the type of relationship change.
|
|
16
|
+
*/
|
|
17
|
+
export var RelationshipChangeType;
|
|
18
|
+
(function (RelationshipChangeType) {
|
|
19
|
+
RelationshipChangeType["Added"] = "added";
|
|
20
|
+
RelationshipChangeType["Removed"] = "removed";
|
|
21
|
+
})(RelationshipChangeType || (RelationshipChangeType = {}));
|
|
22
|
+
/**
|
|
23
|
+
* Job execution statuses
|
|
24
|
+
*/
|
|
25
|
+
export var JobStatus;
|
|
26
|
+
(function (JobStatus) {
|
|
27
|
+
/** Job is queued but not yet started */
|
|
28
|
+
JobStatus["PENDING"] = "PENDING";
|
|
29
|
+
/** Job is currently being executed */
|
|
30
|
+
JobStatus["RUNNING"] = "RUNNING";
|
|
31
|
+
/** Job completed successfully */
|
|
32
|
+
JobStatus["COMPLETED"] = "COMPLETED";
|
|
33
|
+
/** Job failed (may be retried) */
|
|
34
|
+
JobStatus["FAILED"] = "FAILED";
|
|
35
|
+
})(JobStatus || (JobStatus = {}));
|
|
2
36
|
//# sourceMappingURL=types.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/shared/types.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/shared/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,sCAAsC,CAAC;AAkBzE;;GAEG;AACH,MAAM,CAAN,IAAY,eAGX;AAHD,WAAY,eAAe;IACzB,gCAAa,CAAA;IACb,sCAAmB,CAAA;AACrB,CAAC,EAHW,eAAe,KAAf,eAAe,QAG1B;AAED;;GAEG;AACH,MAAM,CAAN,IAAY,sBAGX;AAHD,WAAY,sBAAsB;IAChC,yCAAe,CAAA;IACf,6CAAmB,CAAA;AACrB,CAAC,EAHW,sBAAsB,KAAtB,sBAAsB,QAGjC;AAcD;;GAEG;AACH,MAAM,CAAN,IAAY,SASX;AATD,WAAY,SAAS;IACnB,wCAAwC;IACxC,gCAAmB,CAAA;IACnB,sCAAsC;IACtC,gCAAmB,CAAA;IACnB,iCAAiC;IACjC,oCAAuB,CAAA;IACvB,kCAAkC;IAClC,8BAAiB,CAAA;AACnB,CAAC,EATW,SAAS,KAAT,SAAS,QASpB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/shared/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,wBAAgB,YAAY,CAAC,IAAI,EAAE,UAAU,YAAK,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAO1E"}
|