@powerhousedao/reactor 6.2.3-dev.23 → 6.2.3-dev.25
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/{build-worker-executor-DUjyF4NM.js → build-worker-executor-DPGjh9Uc.js} +24 -8
- package/dist/build-worker-executor-DPGjh9Uc.js.map +1 -0
- package/dist/{document-indexer-CQzTEE1o.js → document-indexer-zbdzqZ3K.js} +18 -9
- package/dist/{document-indexer-CQzTEE1o.js.map → document-indexer-zbdzqZ3K.js.map} +1 -1
- package/dist/entry.d.ts +2 -1
- package/dist/entry.js +10 -6
- package/dist/entry.js.map +1 -1
- package/dist/{errors-D3S6Eysd.js → errors-BM_ULVWd.js} +9 -1
- package/dist/{errors-D3S6Eysd.js.map → errors-BM_ULVWd.js.map} +1 -1
- package/dist/{drive-container-types-CS5IxDiA.js → forwarding-logger-CSsCJ38f.js} +1081 -174
- package/dist/forwarding-logger-CSsCJ38f.js.map +1 -0
- package/dist/index.d.ts +2248 -1978
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +438 -258
- package/dist/index.js.map +1 -1
- package/dist/projection-entry.d.ts +2 -1
- package/dist/projection-entry.js +7 -13
- package/dist/projection-entry.js.map +1 -1
- package/dist/{projection-shard-manager-CUo4bF4O.js → projection-shard-manager-B-j8VYzA.js} +2 -3
- package/dist/{projection-shard-manager-CUo4bF4O.js.map → projection-shard-manager-B-j8VYzA.js.map} +1 -1
- package/dist/{projection-worker-wI4PwcV2.js → projection-worker-D8uNFdwX.js} +1 -1
- package/dist/{projection-worker-wI4PwcV2.js.map → projection-worker-D8uNFdwX.js.map} +1 -1
- package/dist/{transport-CuogVKN_.js → transport-B3G50KVd.js} +1 -1
- package/dist/{transport-CuogVKN_.js.map → transport-B3G50KVd.js.map} +1 -1
- package/dist/{transport-ByGviWdZ.js → transport-CZDHzfvy.js} +1 -1
- package/dist/{transport-ByGviWdZ.js.map → transport-CZDHzfvy.js.map} +1 -1
- package/dist/{worker-handle-CrERzl8s.js → worker-handle-CwWNTpUg.js} +22 -16
- package/dist/worker-handle-CwWNTpUg.js.map +1 -0
- package/package.json +7 -8
- package/dist/build-worker-executor-DUjyF4NM.js.map +0 -1
- package/dist/drive-container-types-CS5IxDiA.js.map +0 -1
- package/dist/error-info-Cpu4OY3o.js +0 -62
- package/dist/error-info-Cpu4OY3o.js.map +0 -1
- package/dist/forwarding-logger-BBkMSxuJ.js +0 -85
- package/dist/forwarding-logger-BBkMSxuJ.js.map +0 -1
- package/dist/types-DMKLa0Ok.js +0 -33
- package/dist/types-DMKLa0Ok.js.map +0 -1
- package/dist/worker-g03lNM42.js +0 -22
- package/dist/worker-g03lNM42.js.map +0 -1
- package/dist/worker-handle-CrERzl8s.js.map +0 -1
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { n as ReactorEventTypes } from "./types-DMKLa0Ok.js";
|
|
1
|
+
import { C as DocumentMetaCache, S as KyselyOperationIndex, a as DEFAULT_DRIVE_CONTAINER_TYPES, b as EventBus, d as KyselyOperationStore, f as KyselyKeyframeStore, m as SimpleJobExecutor, o as REACTOR_SCHEMA, ot as ReactorEventTypes, p as DocumentModelRegistry, v as KyselyExecutionScope, w as CollectionMembershipCache, x as KyselyWriteCache } from "./forwarding-logger-CSsCJ38f.js";
|
|
3
2
|
//#region src/executor/worker/build-worker-executor.ts
|
|
4
3
|
async function defaultLoadFactory(spec) {
|
|
5
4
|
const ref = spec.module;
|
|
@@ -38,11 +37,18 @@ async function buildWorkerExecutor(options) {
|
|
|
38
37
|
const loadFactory = options.loadFactory ?? defaultLoadFactory;
|
|
39
38
|
const registry = new DocumentModelRegistry();
|
|
40
39
|
await loadModelManifest(init.models, loadFactory, registry, logger);
|
|
41
|
-
let
|
|
42
|
-
if (init.
|
|
43
|
-
|
|
40
|
+
let signer;
|
|
41
|
+
if (init.signer) try {
|
|
42
|
+
signer = await loadFactory(init.signer);
|
|
44
43
|
} catch (error) {
|
|
45
|
-
logger.error("worker failed to load
|
|
44
|
+
logger.error("worker failed to load signer: @spec @error", init.signer.module, error);
|
|
45
|
+
throw error;
|
|
46
|
+
}
|
|
47
|
+
let trustPolicy;
|
|
48
|
+
if (init.trustPolicy) try {
|
|
49
|
+
trustPolicy = await loadFactory(init.trustPolicy);
|
|
50
|
+
} catch (error) {
|
|
51
|
+
logger.error("worker failed to load trust policy: @spec @error", init.trustPolicy.module, error);
|
|
46
52
|
throw error;
|
|
47
53
|
}
|
|
48
54
|
const database = baseDatabase.withSchema(REACTOR_SCHEMA);
|
|
@@ -67,17 +73,27 @@ async function buildWorkerExecutor(options) {
|
|
|
67
73
|
jobMeta: event.jobMeta
|
|
68
74
|
};
|
|
69
75
|
});
|
|
76
|
+
let signatureRefusals = [];
|
|
77
|
+
eventBus.subscribe(ReactorEventTypes.SIGNATURE_REFUSED, (_t, event) => {
|
|
78
|
+
signatureRefusals.push(event);
|
|
79
|
+
});
|
|
80
|
+
const executorConfig = options.executorConfig ?? {};
|
|
70
81
|
return {
|
|
71
|
-
executor: new SimpleJobExecutor(logger, registry, operationStore, eventBus, writeCache, operationIndex, documentMetaCache, collectionMembershipCache, driveContainerTypes,
|
|
82
|
+
executor: new SimpleJobExecutor(logger, registry, operationStore, eventBus, writeCache, operationIndex, documentMetaCache, collectionMembershipCache, driveContainerTypes, executorConfig, executionScope, signer, trustPolicy),
|
|
72
83
|
registry,
|
|
73
84
|
takeLastWriteReady() {
|
|
74
85
|
const captured = lastWriteReady;
|
|
75
86
|
lastWriteReady = null;
|
|
76
87
|
return captured;
|
|
88
|
+
},
|
|
89
|
+
takeSignatureRefusals() {
|
|
90
|
+
const captured = signatureRefusals;
|
|
91
|
+
signatureRefusals = [];
|
|
92
|
+
return captured;
|
|
77
93
|
}
|
|
78
94
|
};
|
|
79
95
|
}
|
|
80
96
|
//#endregion
|
|
81
97
|
export { defaultLoadFactory as n, buildWorkerExecutor as t };
|
|
82
98
|
|
|
83
|
-
//# sourceMappingURL=build-worker-executor-
|
|
99
|
+
//# sourceMappingURL=build-worker-executor-DPGjh9Uc.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build-worker-executor-DPGjh9Uc.js","names":[],"sources":["../src/executor/worker/build-worker-executor.ts"],"sourcesContent":["import type {\n DocumentModelModule,\n ISigner,\n OperationWithContext,\n} from \"@powerhousedao/shared/document-model\";\nimport type { ILogger } from \"document-model\";\nimport type { Kysely } from \"kysely\";\nimport { CollectionMembershipCache } from \"../../cache/collection-membership-cache.js\";\nimport { DocumentMetaCache } from \"../../cache/document-meta-cache.js\";\nimport { KyselyOperationIndex } from \"../../cache/kysely-operation-index.js\";\nimport { KyselyWriteCache } from \"../../cache/kysely-write-cache.js\";\nimport type { WriteCacheConfig } from \"../../cache/write-cache-types.js\";\nimport { DEFAULT_DRIVE_CONTAINER_TYPES } from \"../../core/drive-container-types.js\";\nimport type { Database } from \"../../core/types.js\";\nimport { EventBus } from \"../../events/event-bus.js\";\nimport {\n ReactorEventTypes,\n type JobWriteReadyEvent,\n type SignatureRefusedEvent,\n} from \"../../events/types.js\";\nimport { DocumentModelRegistry } from \"../../registry/implementation.js\";\nimport type { JobMeta } from \"../../shared/types.js\";\nimport { KyselyKeyframeStore } from \"../../storage/kysely/keyframe-store.js\";\nimport { KyselyOperationStore } from \"../../storage/kysely/store.js\";\nimport type { Database as StorageDatabase } from \"../../storage/kysely/types.js\";\nimport { REACTOR_SCHEMA } from \"../../storage/migrations/migrator.js\";\nimport { KyselyExecutionScope } from \"../execution-scope.js\";\nimport { SimpleJobExecutor } from \"../simple-job-executor.js\";\nimport type { SignatureTrustPolicy } from \"../../signer/types.js\";\nimport type { JobExecutorConfig } from \"../types.js\";\nimport type {\n FactorySpec,\n InitMessage,\n ModelManifestEntry,\n} from \"./protocol.js\";\n\n/**\n * In-worker capture of the JOB_WRITE_READY event emitted by the executor.\n * The worker forwards `operations` and `jobMeta` back to the parent; the\n * parent re-enriches `collectionMemberships` at emit time.\n */\nexport type WorkerWriteReadyCapture = {\n operations: OperationWithContext[];\n jobMeta: JobMeta;\n};\n\nexport type WorkerExecutorStack = {\n executor: SimpleJobExecutor;\n registry: DocumentModelRegistry;\n /**\n * Synchronously pops the most-recent JOB_WRITE_READY captured on this\n * worker's local event bus and clears it. Returns null if the executor\n * did not produce one for this job.\n */\n takeLastWriteReady(): WorkerWriteReadyCapture | null;\n /** Drains the refusals this worker's executor emitted since the last call. */\n takeSignatureRefusals(): SignatureRefusedEvent[];\n};\n\nexport type BuildWorkerExecutorOptions = {\n init: InitMessage;\n database: Kysely<Database>;\n logger: ILogger;\n executorConfig?: JobExecutorConfig;\n driveContainerTypes?: ReadonlySet<string>;\n /**\n * Override the module loader used to materialize factory specs. Tests\n * can inject a deterministic resolver instead of touching the real\n * Node module loader.\n */\n loadFactory?: (spec: FactorySpec) => Promise<unknown>;\n};\n\nexport async function defaultLoadFactory(spec: FactorySpec): Promise<unknown> {\n const ref = spec.module;\n const specifier =\n \"filePath\" in ref\n ? new URL(`file://${ref.filePath}`).href\n : ref.packageName;\n const mod = (await import(specifier)) as Record<string, unknown>;\n const exported = mod[ref.exportName];\n if (typeof exported === \"function\") {\n return (exported as (args: unknown) => unknown)(spec.initArgs);\n }\n return exported;\n}\n\nasync function loadModelManifest(\n entries: ModelManifestEntry[],\n loadFactory: (spec: FactorySpec) => Promise<unknown>,\n registry: DocumentModelRegistry,\n logger: ILogger,\n): Promise<void> {\n for (const entry of entries) {\n let module: DocumentModelModule;\n try {\n module = (await loadFactory(entry.spec)) as DocumentModelModule;\n } catch (error) {\n logger.error(\n \"worker failed to load document model: @entry @error\",\n entry,\n error,\n );\n throw error;\n }\n const [result] = registry.registerModules(module);\n if (result.status === \"error\") {\n logger.error(\n \"worker failed to register document model: @entry @error\",\n entry,\n result.error,\n );\n throw result.error;\n }\n }\n}\n\n/**\n * Assembles the in-worker storage stack plus a {@link SimpleJobExecutor}\n * bound to a pre-built Kysely instance. The parent owns the wire protocol\n * and routing; the worker owns everything below `SimpleJobExecutor`.\n *\n * The local event bus exists only to satisfy the executor's contract: its\n * JOB_WRITE_READY emissions are captured here and shipped to the parent\n * via {@link WorkerExecutorStack.takeLastWriteReady}.\n */\nexport async function buildWorkerExecutor(\n options: BuildWorkerExecutorOptions,\n): Promise<WorkerExecutorStack> {\n const { init, database: baseDatabase, logger } = options;\n const driveContainerTypes =\n options.driveContainerTypes ?? DEFAULT_DRIVE_CONTAINER_TYPES;\n const loadFactory = options.loadFactory ?? defaultLoadFactory;\n\n const registry = new DocumentModelRegistry();\n await loadModelManifest(init.models, loadFactory, registry, logger);\n\n let signer: ISigner | undefined;\n if (init.signer) {\n try {\n signer = (await loadFactory(init.signer)) as ISigner;\n } catch (error) {\n logger.error(\n \"worker failed to load signer: @spec @error\",\n init.signer.module,\n error,\n );\n throw error;\n }\n }\n\n let trustPolicy: SignatureTrustPolicy | undefined;\n if (init.trustPolicy) {\n try {\n trustPolicy = (await loadFactory(\n init.trustPolicy,\n )) as SignatureTrustPolicy;\n } catch (error) {\n logger.error(\n \"worker failed to load trust policy: @spec @error\",\n init.trustPolicy.module,\n error,\n );\n throw error;\n }\n }\n\n const database = baseDatabase.withSchema(REACTOR_SCHEMA);\n const operationStore = new KyselyOperationStore(\n database as unknown as Kysely<StorageDatabase>,\n );\n const keyframeStore = new KyselyKeyframeStore(\n database as unknown as Kysely<StorageDatabase>,\n );\n\n const cacheConfig: WriteCacheConfig = {\n maxDocuments: 100,\n ringBufferSize: 10,\n keyframeInterval: 10,\n };\n const writeCache = new KyselyWriteCache(\n keyframeStore,\n operationStore,\n registry,\n cacheConfig,\n );\n await writeCache.startup();\n\n const operationIndex = new KyselyOperationIndex(\n database as unknown as Kysely<StorageDatabase>,\n );\n\n const documentMetaCache = new DocumentMetaCache(operationStore, {\n maxDocuments: 1000,\n });\n await documentMetaCache.startup();\n\n const collectionMembershipCache = new CollectionMembershipCache(\n operationIndex,\n );\n\n const executionScope = new KyselyExecutionScope(\n database as unknown as Kysely<StorageDatabase>,\n operationStore,\n operationIndex,\n keyframeStore,\n writeCache,\n documentMetaCache,\n collectionMembershipCache,\n );\n\n const eventBus = new EventBus();\n let lastWriteReady: WorkerWriteReadyCapture | null = null;\n eventBus.subscribe(\n ReactorEventTypes.JOB_WRITE_READY,\n (_t: number, event: JobWriteReadyEvent) => {\n lastWriteReady = {\n operations: event.operations,\n jobMeta: event.jobMeta,\n };\n },\n );\n\n let signatureRefusals: SignatureRefusedEvent[] = [];\n eventBus.subscribe(\n ReactorEventTypes.SIGNATURE_REFUSED,\n (_t: number, event: SignatureRefusedEvent) => {\n signatureRefusals.push(event);\n },\n );\n\n const executorConfig = options.executorConfig ?? {};\n const executor = new SimpleJobExecutor(\n logger,\n registry,\n operationStore,\n eventBus,\n writeCache,\n operationIndex,\n documentMetaCache,\n collectionMembershipCache,\n driveContainerTypes,\n executorConfig,\n executionScope,\n signer,\n trustPolicy,\n );\n\n return {\n executor,\n registry,\n takeLastWriteReady(): WorkerWriteReadyCapture | null {\n const captured = lastWriteReady;\n lastWriteReady = null;\n return captured;\n },\n takeSignatureRefusals(): SignatureRefusedEvent[] {\n const captured = signatureRefusals;\n signatureRefusals = [];\n return captured;\n },\n };\n}\n"],"mappings":";;AAyEA,eAAsB,mBAAmB,MAAqC;CAC5E,MAAM,MAAM,KAAK;CAMjB,MAAM,YAAW,OAJf,cAAc,MAAA,OACV,IAAI,IAAI,UAAU,IAAI,UAAU,CAAC,CAAC,QAAA,OAClC,IAAI,cAAA,CAEW,IAAI;CACzB,IAAI,OAAO,aAAa,YACtB,OAAQ,SAAwC,KAAK,QAAQ;CAE/D,OAAO;AACT;AAEA,eAAe,kBACb,SACA,aACA,UACA,QACe;CACf,KAAK,MAAM,SAAS,SAAS;EAC3B,IAAI;EACJ,IAAI;GACF,SAAU,MAAM,YAAY,MAAM,IAAI;EACxC,SAAS,OAAO;GACd,OAAO,MACL,uDACA,OACA,KACF;GACA,MAAM;EACR;EACA,MAAM,CAAC,UAAU,SAAS,gBAAgB,MAAM;EAChD,IAAI,OAAO,WAAW,SAAS;GAC7B,OAAO,MACL,2DACA,OACA,OAAO,KACT;GACA,MAAM,OAAO;EACf;CACF;AACF;;;;;;;;;;AAWA,eAAsB,oBACpB,SAC8B;CAC9B,MAAM,EAAE,MAAM,UAAU,cAAc,WAAW;CACjD,MAAM,sBACJ,QAAQ,uBAAuB;CACjC,MAAM,cAAc,QAAQ,eAAe;CAE3C,MAAM,WAAW,IAAI,sBAAsB;CAC3C,MAAM,kBAAkB,KAAK,QAAQ,aAAa,UAAU,MAAM;CAElE,IAAI;CACJ,IAAI,KAAK,QACP,IAAI;EACF,SAAU,MAAM,YAAY,KAAK,MAAM;CACzC,SAAS,OAAO;EACd,OAAO,MACL,8CACA,KAAK,OAAO,QACZ,KACF;EACA,MAAM;CACR;CAGF,IAAI;CACJ,IAAI,KAAK,aACP,IAAI;EACF,cAAe,MAAM,YACnB,KAAK,WACP;CACF,SAAS,OAAO;EACd,OAAO,MACL,oDACA,KAAK,YAAY,QACjB,KACF;EACA,MAAM;CACR;CAGF,MAAM,WAAW,aAAa,WAAW,cAAc;CACvD,MAAM,iBAAiB,IAAI,qBACzB,QACF;CACA,MAAM,gBAAgB,IAAI,oBACxB,QACF;CAOA,MAAM,aAAa,IAAI,iBACrB,eACA,gBACA,UACA;EARA,cAAc;EACd,gBAAgB;EAChB,kBAAkB;CAMR,CACZ;CACA,MAAM,WAAW,QAAQ;CAEzB,MAAM,iBAAiB,IAAI,qBACzB,QACF;CAEA,MAAM,oBAAoB,IAAI,kBAAkB,gBAAgB,EAC9D,cAAc,IAChB,CAAC;CACD,MAAM,kBAAkB,QAAQ;CAEhC,MAAM,4BAA4B,IAAI,0BACpC,cACF;CAEA,MAAM,iBAAiB,IAAI,qBACzB,UACA,gBACA,gBACA,eACA,YACA,mBACA,yBACF;CAEA,MAAM,WAAW,IAAI,SAAS;CAC9B,IAAI,iBAAiD;CACrD,SAAS,UACP,kBAAkB,kBACjB,IAAY,UAA8B;EACzC,iBAAiB;GACf,YAAY,MAAM;GAClB,SAAS,MAAM;EACjB;CACF,CACF;CAEA,IAAI,oBAA6C,CAAC;CAClD,SAAS,UACP,kBAAkB,oBACjB,IAAY,UAAiC;EAC5C,kBAAkB,KAAK,KAAK;CAC9B,CACF;CAEA,MAAM,iBAAiB,QAAQ,kBAAkB,CAAC;CAiBlD,OAAO;EACL,UAAA,IAjBmB,kBACnB,QACA,UACA,gBACA,UACA,YACA,gBACA,mBACA,2BACA,qBACA,gBACA,gBACA,QACA,WAIO;EACP;EACA,qBAAqD;GACnD,MAAM,WAAW;GACjB,iBAAiB;GACjB,OAAO;EACT;EACA,wBAAiD;GAC/C,MAAM,WAAW;GACjB,oBAAoB,CAAC;GACrB,OAAO;EACT;CACF;AACF"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { n as ReactorEventTypes } from "./types-DMKLa0Ok.js";
|
|
1
|
+
import { ot as ReactorEventTypes, ut as yieldToMain } from "./forwarding-logger-CSsCJ38f.js";
|
|
3
2
|
import { createAuthState, isDenied } from "@powerhousedao/shared/document-model";
|
|
4
3
|
import { v4 } from "uuid";
|
|
5
4
|
import { childLogger } from "document-model";
|
|
@@ -37,6 +36,11 @@ function normalizeIndexingConfig(config) {
|
|
|
37
36
|
* Subclasses override commitOperations() with their specific domain logic.
|
|
38
37
|
*/
|
|
39
38
|
var BaseReadModel = class {
|
|
39
|
+
db;
|
|
40
|
+
operationIndex;
|
|
41
|
+
writeCache;
|
|
42
|
+
consistencyTracker;
|
|
43
|
+
config;
|
|
40
44
|
lastOrdinal = 0;
|
|
41
45
|
name;
|
|
42
46
|
indexing;
|
|
@@ -236,6 +240,9 @@ var BaseReadModel = class {
|
|
|
236
240
|
* implicitly.
|
|
237
241
|
*/
|
|
238
242
|
var ReadModelCoordinator = class {
|
|
243
|
+
eventBus;
|
|
244
|
+
preReady;
|
|
245
|
+
postReady;
|
|
239
246
|
unsubscribe;
|
|
240
247
|
isRunning = false;
|
|
241
248
|
chains = /* @__PURE__ */ new Map();
|
|
@@ -406,6 +413,8 @@ let DeletedDocumentRead = /* @__PURE__ */ function(DeletedDocumentRead) {
|
|
|
406
413
|
return DeletedDocumentRead;
|
|
407
414
|
}({});
|
|
408
415
|
var KyselyDocumentView = class extends BaseReadModel {
|
|
416
|
+
operationStore;
|
|
417
|
+
deletedDocumentRead;
|
|
409
418
|
_db;
|
|
410
419
|
constructor(db, operationStore, operationIndex, writeCache, consistencyTracker, deletedDocumentRead, indexing = defaultReadModelIndexingConfig) {
|
|
411
420
|
super(db, operationIndex, writeCache, consistencyTracker, {
|
|
@@ -546,7 +555,7 @@ var KyselyDocumentView = class extends BaseReadModel {
|
|
|
546
555
|
if (consistencyToken) await this.waitForConsistency(consistencyToken, void 0, signal);
|
|
547
556
|
if (signal?.aborted) throw new Error("Operation aborted");
|
|
548
557
|
if (documentIds.length === 0) return [];
|
|
549
|
-
const existingIds = existence ===
|
|
558
|
+
const existingIds = existence === "IncludingDeleted" ? await this.idsWithStreams(documentIds, signal) : await this.liveIds(documentIds);
|
|
550
559
|
return documentIds.map((id) => existingIds.has(id));
|
|
551
560
|
}
|
|
552
561
|
async get(documentId, view, consistencyToken, signal) {
|
|
@@ -554,14 +563,14 @@ var KyselyDocumentView = class extends BaseReadModel {
|
|
|
554
563
|
if (signal?.aborted) throw new Error("Operation aborted");
|
|
555
564
|
const branch = view?.branch || "main";
|
|
556
565
|
let scopesToQuery;
|
|
557
|
-
if (view?.scopes && view.scopes.length > 0) scopesToQuery = [
|
|
566
|
+
if (view?.scopes && view.scopes.length > 0) scopesToQuery = [.../* @__PURE__ */ new Set([
|
|
558
567
|
"header",
|
|
559
568
|
"document",
|
|
560
569
|
...view.scopes
|
|
561
570
|
])];
|
|
562
571
|
else scopesToQuery = [];
|
|
563
572
|
let query = this._db.selectFrom("DocumentSnapshot").selectAll().where("documentId", "=", documentId).where("branch", "=", branch);
|
|
564
|
-
if (this.deletedDocumentRead ===
|
|
573
|
+
if (this.deletedDocumentRead === "NotFound") query = query.where("isDeleted", "=", false);
|
|
565
574
|
if (scopesToQuery.length > 0) query = query.where("scope", "in", scopesToQuery);
|
|
566
575
|
const snapshots = await query.execute();
|
|
567
576
|
if (snapshots.length === 0) throw new Error(`Document not found: ${documentId}`);
|
|
@@ -591,7 +600,7 @@ var KyselyDocumentView = class extends BaseReadModel {
|
|
|
591
600
|
if (signal?.aborted) throw new Error("Operation aborted");
|
|
592
601
|
const branch = view?.branch || "main";
|
|
593
602
|
let scopesToQuery;
|
|
594
|
-
if (view?.scopes && view.scopes.length > 0) scopesToQuery = [
|
|
603
|
+
if (view?.scopes && view.scopes.length > 0) scopesToQuery = [.../* @__PURE__ */ new Set([
|
|
595
604
|
"header",
|
|
596
605
|
"document",
|
|
597
606
|
...view.scopes
|
|
@@ -706,7 +715,7 @@ var KyselyDocumentView = class extends BaseReadModel {
|
|
|
706
715
|
if (signal?.aborted) throw new Error("Operation aborted");
|
|
707
716
|
const branch = view?.branch || "main";
|
|
708
717
|
let idCheckQuery = this._db.selectFrom("DocumentSnapshot").select("documentId").where("documentId", "=", identifier).where("branch", "=", branch);
|
|
709
|
-
if (this.deletedDocumentRead ===
|
|
718
|
+
if (this.deletedDocumentRead === "NotFound") idCheckQuery = idCheckQuery.where("isDeleted", "=", false);
|
|
710
719
|
const idCheckPromise = idCheckQuery.executeTakeFirst();
|
|
711
720
|
const slugCheckPromise = this._db.selectFrom("SlugMapping").select("documentId").where("slug", "=", identifier).where("branch", "=", branch).executeTakeFirst();
|
|
712
721
|
const [idMatch, slugMatch] = await Promise.all([idCheckPromise, slugCheckPromise]);
|
|
@@ -1045,7 +1054,7 @@ var KyselyDocumentIndexer = class extends BaseReadModel {
|
|
|
1045
1054
|
async findAncestors(documentId, types, consistencyToken, signal) {
|
|
1046
1055
|
if (consistencyToken) await this.waitForConsistency(consistencyToken, void 0, signal);
|
|
1047
1056
|
if (signal?.aborted) throw new Error("Operation aborted");
|
|
1048
|
-
const nodes = new Set([documentId]);
|
|
1057
|
+
const nodes = /* @__PURE__ */ new Set([documentId]);
|
|
1049
1058
|
const edges = [];
|
|
1050
1059
|
const queue = [documentId];
|
|
1051
1060
|
const visited = /* @__PURE__ */ new Set();
|
|
@@ -1104,4 +1113,4 @@ var KyselyDocumentIndexer = class extends BaseReadModel {
|
|
|
1104
1113
|
//#endregion
|
|
1105
1114
|
export { KyselyDocumentView as a, ReadModelCoordinator as c, DEFAULT_READ_MODEL_YIELD_DEADLINE_MS as d, defaultReadModelIndexingConfig as f, DeletedDocumentRead as i, BaseReadModel as l, ConsistencyTracker as n, DOCUMENT_INDEXER_READ_MODEL as o, unchunkedReadModelIndexingConfig as p, makeConsistencyKey as r, DOCUMENT_VIEW_READ_MODEL as s, KyselyDocumentIndexer as t, DEFAULT_COMMIT_CHUNK_SIZE as u };
|
|
1106
1115
|
|
|
1107
|
-
//# sourceMappingURL=document-indexer-
|
|
1116
|
+
//# sourceMappingURL=document-indexer-zbdzqZ3K.js.map
|