@x12i/memorix-writer 1.0.0 → 1.2.0

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.
Files changed (87) hide show
  1. package/README.md +25 -1
  2. package/catalox-seeds/memorix-write-descriptors.manifest.json +1 -2
  3. package/dist/constants.d.ts +1 -1
  4. package/dist/constants.d.ts.map +1 -1
  5. package/dist/constants.js +1 -1
  6. package/dist/constants.js.map +1 -1
  7. package/dist/data/collection-name.d.ts +1 -0
  8. package/dist/data/collection-name.d.ts.map +1 -1
  9. package/dist/data/collection-name.js +29 -6
  10. package/dist/data/collection-name.js.map +1 -1
  11. package/dist/data/memorix-write-adapter.d.ts +13 -6
  12. package/dist/data/memorix-write-adapter.d.ts.map +1 -1
  13. package/dist/data/memorix-write-adapter.js +22 -6
  14. package/dist/data/memorix-write-adapter.js.map +1 -1
  15. package/dist/descriptors/load-entity-descriptor.d.ts.map +1 -1
  16. package/dist/descriptors/load-entity-descriptor.js +3 -2
  17. package/dist/descriptors/load-entity-descriptor.js.map +1 -1
  18. package/dist/descriptors/write-descriptor-types.d.ts +0 -11
  19. package/dist/descriptors/write-descriptor-types.d.ts.map +1 -1
  20. package/dist/errors/issues.d.ts +1 -1
  21. package/dist/errors/issues.d.ts.map +1 -1
  22. package/dist/errors/issues.js.map +1 -1
  23. package/dist/graph-runs/clear-run.d.ts +9 -0
  24. package/dist/graph-runs/clear-run.d.ts.map +1 -0
  25. package/dist/graph-runs/clear-run.js +22 -0
  26. package/dist/graph-runs/clear-run.js.map +1 -0
  27. package/dist/graph-runs/constants.d.ts +4 -0
  28. package/dist/graph-runs/constants.d.ts.map +1 -0
  29. package/dist/graph-runs/constants.js +6 -0
  30. package/dist/graph-runs/constants.js.map +1 -0
  31. package/dist/graph-runs/context.d.ts +12 -0
  32. package/dist/graph-runs/context.d.ts.map +1 -0
  33. package/dist/graph-runs/context.js +25 -0
  34. package/dist/graph-runs/context.js.map +1 -0
  35. package/dist/graph-runs/ensure-indexes.d.ts +10 -0
  36. package/dist/graph-runs/ensure-indexes.d.ts.map +1 -0
  37. package/dist/graph-runs/ensure-indexes.js +27 -0
  38. package/dist/graph-runs/ensure-indexes.js.map +1 -0
  39. package/dist/graph-runs/logging.d.ts +9 -0
  40. package/dist/graph-runs/logging.d.ts.map +1 -0
  41. package/dist/graph-runs/logging.js +4 -0
  42. package/dist/graph-runs/logging.js.map +1 -0
  43. package/dist/graph-runs/mark-failed.d.ts +14 -0
  44. package/dist/graph-runs/mark-failed.d.ts.map +1 -0
  45. package/dist/graph-runs/mark-failed.js +35 -0
  46. package/dist/graph-runs/mark-failed.js.map +1 -0
  47. package/dist/graph-runs/mark-started.d.ts +15 -0
  48. package/dist/graph-runs/mark-started.d.ts.map +1 -0
  49. package/dist/graph-runs/mark-started.js +35 -0
  50. package/dist/graph-runs/mark-started.js.map +1 -0
  51. package/dist/graph-runs/resolve-record-collection.d.ts +14 -0
  52. package/dist/graph-runs/resolve-record-collection.d.ts.map +1 -0
  53. package/dist/graph-runs/resolve-record-collection.js +25 -0
  54. package/dist/graph-runs/resolve-record-collection.js.map +1 -0
  55. package/dist/graph-runs/write-result.d.ts +17 -0
  56. package/dist/graph-runs/write-result.d.ts.map +1 -0
  57. package/dist/graph-runs/write-result.js +97 -0
  58. package/dist/graph-runs/write-result.js.map +1 -0
  59. package/dist/index.d.ts +18 -3
  60. package/dist/index.d.ts.map +1 -1
  61. package/dist/index.js +10 -2
  62. package/dist/index.js.map +1 -1
  63. package/dist/mongo/collection-documents.d.ts +12 -1
  64. package/dist/mongo/collection-documents.d.ts.map +1 -1
  65. package/dist/mongo/collection-documents.js +14 -2
  66. package/dist/mongo/collection-documents.js.map +1 -1
  67. package/dist/mongo/env.d.ts +9 -1
  68. package/dist/mongo/env.d.ts.map +1 -1
  69. package/dist/mongo/env.js +24 -5
  70. package/dist/mongo/env.js.map +1 -1
  71. package/dist/mongo/index.d.ts +1 -1
  72. package/dist/mongo/index.d.ts.map +1 -1
  73. package/dist/mongo/index.js +1 -1
  74. package/dist/mongo/index.js.map +1 -1
  75. package/dist/mongo/target.d.ts +1 -1
  76. package/dist/mongo/target.d.ts.map +1 -1
  77. package/dist/mongo/target.js +1 -1
  78. package/dist/mongo/target.js.map +1 -1
  79. package/dist/validation/validate-fields.d.ts.map +1 -1
  80. package/dist/validation/validate-fields.js +4 -0
  81. package/dist/validation/validate-fields.js.map +1 -1
  82. package/dist/validation/validate-immutability.d.ts.map +1 -1
  83. package/dist/validation/validate-immutability.js +1 -0
  84. package/dist/validation/validate-immutability.js.map +1 -1
  85. package/docs/GRAPH-RUNS.md +93 -0
  86. package/docs/gap-analysis.md +18 -0
  87. package/package.json +3 -6
@@ -0,0 +1,4 @@
1
+ export function graphRunLogContext(ctx) {
2
+ return ctx;
3
+ }
4
+ //# sourceMappingURL=logging.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logging.js","sourceRoot":"","sources":["../../src/graph-runs/logging.ts"],"names":[],"mappings":"AAcA,MAAM,UAAU,kBAAkB,CAChC,GAAuB;IAEvB,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -0,0 +1,14 @@
1
+ import type { GraphRunError, MemorixRecordRef } from "@x12i/memorix-descriptors/types";
2
+ import type { MemorixWriterClient } from "../client/types.js";
3
+ export type MarkGraphRunFailedOptions = {
4
+ jobRunId: string;
5
+ attempts: number;
6
+ error: GraphRunError;
7
+ };
8
+ export type MarkGraphRunFailedResult = {
9
+ ok: true;
10
+ graphId: string;
11
+ recordRef: MemorixRecordRef;
12
+ };
13
+ export declare function markGraphRunFailed(client: MemorixWriterClient, ref: MemorixRecordRef, graphId: string, opts: MarkGraphRunFailedOptions): Promise<MarkGraphRunFailedResult>;
14
+ //# sourceMappingURL=mark-failed.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mark-failed.d.ts","sourceRoot":"","sources":["../../src/graph-runs/mark-failed.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,gBAAgB,EACjB,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAU9D,MAAM,MAAM,yBAAyB,GAAG;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,aAAa,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,EAAE,EAAE,IAAI,CAAC;IACT,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,gBAAgB,CAAC;CAC7B,CAAC;AAEF,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,mBAAmB,EAC3B,GAAG,EAAE,gBAAgB,EACrB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,yBAAyB,GAC9B,OAAO,CAAC,wBAAwB,CAAC,CAoCnC"}
@@ -0,0 +1,35 @@
1
+ import { MemorixWriterError } from "../errors/errors.js";
2
+ import { graphRunDotPath } from "./constants.js";
3
+ import { createGraphRunWriterContext, loadSourceRecord, readGraphRunEntry, } from "./context.js";
4
+ import { graphRunLogContext } from "./logging.js";
5
+ export async function markGraphRunFailed(client, ref, graphId, opts) {
6
+ const ctx = await createGraphRunWriterContext(client, ref);
7
+ const doc = await loadSourceRecord(ctx);
8
+ const existing = readGraphRunEntry(doc, graphId);
9
+ const completedAt = new Date().toISOString();
10
+ graphRunLogContext({
11
+ jobRunId: opts.jobRunId,
12
+ graphId,
13
+ recordRef: ref,
14
+ operation: "markGraphRunFailed",
15
+ });
16
+ const entry = {
17
+ status: "failed",
18
+ startedAt: existing?.startedAt ?? completedAt,
19
+ completedAt,
20
+ lastJobRunId: opts.jobRunId,
21
+ attempts: opts.attempts,
22
+ error: opts.error,
23
+ ...(existing?.graphVersion !== undefined
24
+ ? { graphVersion: existing.graphVersion }
25
+ : {}),
26
+ };
27
+ const stamp = await ctx.adapter.patch(ctx.resolved.collection, ctx.resolved.filter, {
28
+ [graphRunDotPath(graphId)]: entry,
29
+ });
30
+ if (stamp.matchedCount === 0) {
31
+ throw new MemorixWriterError("RECORD_NOT_FOUND", `Source record disappeared while stamping _graphRuns for ${ctx.resolved.collection}`);
32
+ }
33
+ return { ok: true, graphId, recordRef: ref };
34
+ }
35
+ //# sourceMappingURL=mark-failed.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mark-failed.js","sourceRoot":"","sources":["../../src/graph-runs/mark-failed.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EACL,2BAA2B,EAC3B,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAclD,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,MAA2B,EAC3B,GAAqB,EACrB,OAAe,EACf,IAA+B;IAE/B,MAAM,GAAG,GAAG,MAAM,2BAA2B,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC3D,MAAM,GAAG,GAAG,MAAM,gBAAgB,CAAC,GAAG,CAAC,CAAC;IACxC,MAAM,QAAQ,GAAG,iBAAiB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IACjD,MAAM,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAE7C,kBAAkB,CAAC;QACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,OAAO;QACP,SAAS,EAAE,GAAG;QACd,SAAS,EAAE,oBAAoB;KAChC,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG;QACZ,MAAM,EAAE,QAAiB;QACzB,SAAS,EAAE,QAAQ,EAAE,SAAS,IAAI,WAAW;QAC7C,WAAW;QACX,YAAY,EAAE,IAAI,CAAC,QAAQ;QAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,GAAG,CAAC,QAAQ,EAAE,YAAY,KAAK,SAAS;YACtC,CAAC,CAAC,EAAE,YAAY,EAAE,QAAQ,CAAC,YAAY,EAAE;YACzC,CAAC,CAAC,EAAE,CAAC;KACR,CAAC;IAEF,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,EAAE,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE;QAClF,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK;KAClC,CAAC,CAAC;IACH,IAAI,KAAK,CAAC,YAAY,KAAK,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,kBAAkB,CAC1B,kBAAkB,EAClB,2DAA2D,GAAG,CAAC,QAAQ,CAAC,UAAU,EAAE,CACrF,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC;AAC/C,CAAC"}
@@ -0,0 +1,15 @@
1
+ import type { MemorixRecordRef } from "@x12i/memorix-descriptors/types";
2
+ import type { MemorixWriterClient } from "../client/types.js";
3
+ export type MarkGraphRunStartedOptions = {
4
+ jobRunId: string;
5
+ attempts: number;
6
+ graphVersion?: string;
7
+ };
8
+ export type MarkGraphRunStartedResult = {
9
+ ok: true;
10
+ action: "stamped" | "no_op";
11
+ graphId: string;
12
+ recordRef: MemorixRecordRef;
13
+ };
14
+ export declare function markGraphRunStarted(client: MemorixWriterClient, ref: MemorixRecordRef, graphId: string, opts: MarkGraphRunStartedOptions): Promise<MarkGraphRunStartedResult>;
15
+ //# sourceMappingURL=mark-started.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mark-started.d.ts","sourceRoot":"","sources":["../../src/graph-runs/mark-started.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAU9D,MAAM,MAAM,0BAA0B,GAAG;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,EAAE,EAAE,IAAI,CAAC;IACT,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,gBAAgB,CAAC;CAC7B,CAAC;AAEF,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,mBAAmB,EAC3B,GAAG,EAAE,gBAAgB,EACrB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,0BAA0B,GAC/B,OAAO,CAAC,yBAAyB,CAAC,CAuCpC"}
@@ -0,0 +1,35 @@
1
+ import { MemorixWriterError } from "../errors/errors.js";
2
+ import { graphRunDotPath } from "./constants.js";
3
+ import { createGraphRunWriterContext, loadSourceRecord, readGraphRunEntry, } from "./context.js";
4
+ import { graphRunLogContext } from "./logging.js";
5
+ export async function markGraphRunStarted(client, ref, graphId, opts) {
6
+ const ctx = await createGraphRunWriterContext(client, ref);
7
+ const doc = await loadSourceRecord(ctx);
8
+ const existing = readGraphRunEntry(doc, graphId);
9
+ graphRunLogContext({
10
+ jobRunId: opts.jobRunId,
11
+ graphId,
12
+ recordRef: ref,
13
+ operation: "markGraphRunStarted",
14
+ });
15
+ if (existing?.status === "in_progress" &&
16
+ existing.lastJobRunId === opts.jobRunId) {
17
+ return { ok: true, action: "no_op", graphId, recordRef: ref };
18
+ }
19
+ const startedAt = new Date().toISOString();
20
+ const entry = {
21
+ status: "in_progress",
22
+ startedAt,
23
+ lastJobRunId: opts.jobRunId,
24
+ attempts: opts.attempts,
25
+ ...(opts.graphVersion !== undefined ? { graphVersion: opts.graphVersion } : {}),
26
+ };
27
+ const stamp = await ctx.adapter.patch(ctx.resolved.collection, ctx.resolved.filter, {
28
+ [graphRunDotPath(graphId)]: entry,
29
+ });
30
+ if (stamp.matchedCount === 0) {
31
+ throw new MemorixWriterError("RECORD_NOT_FOUND", `Source record disappeared while stamping _graphRuns for ${ctx.resolved.collection}`);
32
+ }
33
+ return { ok: true, action: "stamped", graphId, recordRef: ref };
34
+ }
35
+ //# sourceMappingURL=mark-started.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mark-started.js","sourceRoot":"","sources":["../../src/graph-runs/mark-started.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EACL,2BAA2B,EAC3B,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAelD,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,MAA2B,EAC3B,GAAqB,EACrB,OAAe,EACf,IAAgC;IAEhC,MAAM,GAAG,GAAG,MAAM,2BAA2B,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC3D,MAAM,GAAG,GAAG,MAAM,gBAAgB,CAAC,GAAG,CAAC,CAAC;IACxC,MAAM,QAAQ,GAAG,iBAAiB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAEjD,kBAAkB,CAAC;QACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,OAAO;QACP,SAAS,EAAE,GAAG;QACd,SAAS,EAAE,qBAAqB;KACjC,CAAC,CAAC;IAEH,IACE,QAAQ,EAAE,MAAM,KAAK,aAAa;QAClC,QAAQ,CAAC,YAAY,KAAK,IAAI,CAAC,QAAQ,EACvC,CAAC;QACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC;IAChE,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC3C,MAAM,KAAK,GAAG;QACZ,MAAM,EAAE,aAAsB;QAC9B,SAAS;QACT,YAAY,EAAE,IAAI,CAAC,QAAQ;QAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,GAAG,CAAC,IAAI,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAChF,CAAC;IAEF,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,EAAE,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE;QAClF,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK;KAClC,CAAC,CAAC;IACH,IAAI,KAAK,CAAC,YAAY,KAAK,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,kBAAkB,CAC1B,kBAAkB,EAClB,2DAA2D,GAAG,CAAC,QAAQ,CAAC,UAAU,EAAE,CACrF,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC;AAClE,CAAC"}
@@ -0,0 +1,14 @@
1
+ import type { MemorixRecordRef } from "@x12i/memorix-descriptors/types";
2
+ import type { MemorixTarget } from "../mongo/target.js";
3
+ export type ResolvedRecordCollection = {
4
+ target: MemorixTarget;
5
+ collection: string;
6
+ idField: "entityId" | "eventId";
7
+ filter: Record<string, unknown>;
8
+ };
9
+ export declare function resolveIdFieldForTarget(target: MemorixRecordRef["target"]): "entityId" | "eventId";
10
+ export declare function resolveCollectionFromRef(ref: MemorixRecordRef): string;
11
+ export declare function resolveRecordCollection(ref: MemorixRecordRef): ResolvedRecordCollection;
12
+ export declare function resolvePersistencyRecordId(ref: MemorixRecordRef, recordIdSource: import("@x12i/memorix-descriptors/types").PersistencyRecordIdSource): string;
13
+ export declare function resolvePersistencyCollection(persistency: Pick<import("@x12i/memorix-descriptors/types").PersistencyTarget, "entityName" | "contentType">): string;
14
+ //# sourceMappingURL=resolve-record-collection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve-record-collection.d.ts","sourceRoot":"","sources":["../../src/graph-runs/resolve-record-collection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD,MAAM,MAAM,wBAAwB,GAAG;IACrC,MAAM,EAAE,aAAa,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,UAAU,GAAG,SAAS,CAAC;IAChC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC,CAAC;AAEF,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,gBAAgB,CAAC,QAAQ,CAAC,GACjC,UAAU,GAAG,SAAS,CAExB;AAED,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,gBAAgB,GAAG,MAAM,CAEtE;AAED,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,gBAAgB,GACpB,wBAAwB,CAQ1B;AAED,wBAAgB,0BAA0B,CACxC,GAAG,EAAE,gBAAgB,EACrB,cAAc,EAAE,OAAO,iCAAiC,EAAE,yBAAyB,GAClF,MAAM,CAKR;AAED,wBAAgB,4BAA4B,CAC1C,WAAW,EAAE,IAAI,CACf,OAAO,iCAAiC,EAAE,iBAAiB,EAC3D,YAAY,GAAG,aAAa,CAC7B,GACA,MAAM,CAER"}
@@ -0,0 +1,25 @@
1
+ export function resolveIdFieldForTarget(target) {
2
+ return target === "event" ? "eventId" : "entityId";
3
+ }
4
+ export function resolveCollectionFromRef(ref) {
5
+ return `${ref.entityName}-${ref.contentType}`;
6
+ }
7
+ export function resolveRecordCollection(ref) {
8
+ const idField = resolveIdFieldForTarget(ref.target);
9
+ return {
10
+ target: ref.target,
11
+ collection: resolveCollectionFromRef(ref),
12
+ idField,
13
+ filter: { [idField]: ref.recordId },
14
+ };
15
+ }
16
+ export function resolvePersistencyRecordId(ref, recordIdSource) {
17
+ if (recordIdSource === "same-as-input") {
18
+ return ref.recordId;
19
+ }
20
+ return recordIdSource.literal;
21
+ }
22
+ export function resolvePersistencyCollection(persistency) {
23
+ return `${persistency.entityName}-${persistency.contentType}`;
24
+ }
25
+ //# sourceMappingURL=resolve-record-collection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve-record-collection.js","sourceRoot":"","sources":["../../src/graph-runs/resolve-record-collection.ts"],"names":[],"mappings":"AAUA,MAAM,UAAU,uBAAuB,CACrC,MAAkC;IAElC,OAAO,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC;AACrD,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,GAAqB;IAC5D,OAAO,GAAG,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,GAAqB;IAErB,MAAM,OAAO,GAAG,uBAAuB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACpD,OAAO;QACL,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,UAAU,EAAE,wBAAwB,CAAC,GAAG,CAAC;QACzC,OAAO;QACP,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,QAAQ,EAAE;KACpC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,GAAqB,EACrB,cAAmF;IAEnF,IAAI,cAAc,KAAK,eAAe,EAAE,CAAC;QACvC,OAAO,GAAG,CAAC,QAAQ,CAAC;IACtB,CAAC;IACD,OAAO,cAAc,CAAC,OAAO,CAAC;AAChC,CAAC;AAED,MAAM,UAAU,4BAA4B,CAC1C,WAGC;IAED,OAAO,GAAG,WAAW,CAAC,UAAU,IAAI,WAAW,CAAC,WAAW,EAAE,CAAC;AAChE,CAAC"}
@@ -0,0 +1,17 @@
1
+ import type { GraphRunResultPointer, MemorixRecordRef, PersistencyTarget } from "@x12i/memorix-descriptors/types";
2
+ import type { MemorixWriterClient } from "../client/types.js";
3
+ export type WriteGraphRunResultOptions = {
4
+ resultPayload: Record<string, unknown>;
5
+ persistencyTarget: PersistencyTarget;
6
+ jobRunId: string;
7
+ attempts: number;
8
+ graphVersion?: string;
9
+ };
10
+ export type WriteGraphRunResultResponse = {
11
+ ok: true;
12
+ graphId: string;
13
+ recordRef: MemorixRecordRef;
14
+ result: GraphRunResultPointer;
15
+ };
16
+ export declare function writeGraphRunResult(client: MemorixWriterClient, ref: MemorixRecordRef, graphId: string, opts: WriteGraphRunResultOptions): Promise<WriteGraphRunResultResponse>;
17
+ //# sourceMappingURL=write-result.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"write-result.d.ts","sourceRoot":"","sources":["../../src/graph-runs/write-result.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,qBAAqB,EACrB,gBAAgB,EAChB,iBAAiB,EAClB,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAc9D,MAAM,MAAM,0BAA0B,GAAG;IACvC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG;IACxC,EAAE,EAAE,IAAI,CAAC;IACT,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,gBAAgB,CAAC;IAC5B,MAAM,EAAE,qBAAqB,CAAC;CAC/B,CAAC;AAiBF,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,mBAAmB,EAC3B,GAAG,EAAE,gBAAgB,EACrB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,0BAA0B,GAC/B,OAAO,CAAC,2BAA2B,CAAC,CA4HtC"}
@@ -0,0 +1,97 @@
1
+ import { createMemorixWriteAdapter } from "../data/memorix-write-adapter.js";
2
+ import { getWriterMemorixTier } from "../client/ensure-tier.js";
3
+ import { MemorixWriterError } from "../errors/errors.js";
4
+ import { graphRunDotPath } from "./constants.js";
5
+ import { readGraphRunEntry } from "./context.js";
6
+ import { graphRunLogContext } from "./logging.js";
7
+ import { resolvePersistencyCollection, resolvePersistencyRecordId, resolveRecordCollection, } from "./resolve-record-collection.js";
8
+ function resolveResultTarget(ref, persistencyTarget) {
9
+ return persistencyTarget.target ?? ref.target;
10
+ }
11
+ function resolveResultIdField(target) {
12
+ if (target === "event")
13
+ return "eventId";
14
+ if (target === "knowledge")
15
+ return "knowledgeId";
16
+ return "entityId";
17
+ }
18
+ export async function writeGraphRunResult(client, ref, graphId, opts) {
19
+ graphRunLogContext({
20
+ jobRunId: opts.jobRunId,
21
+ graphId,
22
+ recordRef: ref,
23
+ operation: "writeGraphRunResult",
24
+ });
25
+ const tier = await getWriterMemorixTier(client);
26
+ const resolved = resolveRecordCollection(ref);
27
+ const sourceAdapter = createMemorixWriteAdapter(tier, {
28
+ target: resolved.target,
29
+ });
30
+ const resultTarget = resolveResultTarget(ref, opts.persistencyTarget);
31
+ const resultRecordId = resolvePersistencyRecordId(ref, opts.persistencyTarget.recordIdSource);
32
+ const resultCollection = resolvePersistencyCollection(opts.persistencyTarget);
33
+ const resultIdField = resolveResultIdField(resultTarget);
34
+ const resultFilter = { [resultIdField]: resultRecordId };
35
+ const resultAdapter = createMemorixWriteAdapter(tier, {
36
+ target: resultTarget,
37
+ });
38
+ const resultPointer = {
39
+ target: resultTarget,
40
+ entityName: opts.persistencyTarget.entityName,
41
+ contentType: opts.persistencyTarget.contentType,
42
+ recordId: resultRecordId,
43
+ };
44
+ const session = tier.client.startSession();
45
+ try {
46
+ await session.withTransaction(async () => {
47
+ const sourceDoc = await sourceAdapter.findOne(resolved.collection, resolved.filter, { session });
48
+ if (!sourceDoc) {
49
+ throw new MemorixWriterError("RECORD_NOT_FOUND", `Memorix record not found in ${resolved.collection} for ${resolved.idField}=${JSON.stringify(resolved.filter[resolved.idField])}`);
50
+ }
51
+ const existing = readGraphRunEntry(sourceDoc, graphId);
52
+ const priorResultDoc = await resultAdapter.findOne(resultCollection, resultFilter, { session });
53
+ const completedAt = new Date().toISOString();
54
+ const resultDoc = {
55
+ ...opts.resultPayload,
56
+ [resultIdField]: resultRecordId,
57
+ recordId: resultRecordId,
58
+ modifiedAt: completedAt,
59
+ ...(priorResultDoc?.createdAt
60
+ ? { createdAt: priorResultDoc.createdAt }
61
+ : { createdAt: completedAt }),
62
+ };
63
+ const replaceResult = await resultAdapter.replace(resultCollection, resultFilter, resultDoc, true, { session });
64
+ if (replaceResult.matchedCount === 0 &&
65
+ replaceResult.upsertedCount === 0) {
66
+ throw new MemorixWriterError("DESCRIPTOR_MISSING", `Failed to write graph result to ${resultCollection}`);
67
+ }
68
+ const entry = {
69
+ status: "done",
70
+ startedAt: existing?.startedAt ?? completedAt,
71
+ completedAt,
72
+ lastJobRunId: opts.jobRunId,
73
+ attempts: opts.attempts,
74
+ result: resultPointer,
75
+ ...(opts.graphVersion !== undefined
76
+ ? { graphVersion: opts.graphVersion }
77
+ : existing?.graphVersion !== undefined
78
+ ? { graphVersion: existing.graphVersion }
79
+ : {}),
80
+ };
81
+ const stamp = await sourceAdapter.patch(resolved.collection, resolved.filter, { [graphRunDotPath(graphId)]: entry }, { session });
82
+ if (stamp.matchedCount === 0) {
83
+ throw new MemorixWriterError("RECORD_NOT_FOUND", `Source record disappeared while stamping _graphRuns for ${resolveRecordCollection(ref).collection}`);
84
+ }
85
+ });
86
+ }
87
+ catch (err) {
88
+ if (err instanceof MemorixWriterError)
89
+ throw err;
90
+ throw new MemorixWriterError("GRAPH_RUN_STAMP_FAILED", err instanceof Error ? err.message : "Graph run result transaction failed");
91
+ }
92
+ finally {
93
+ await session.endSession();
94
+ }
95
+ return { ok: true, graphId, recordRef: ref, result: resultPointer };
96
+ }
97
+ //# sourceMappingURL=write-result.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"write-result.js","sourceRoot":"","sources":["../../src/graph-runs/write-result.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -5,15 +5,30 @@ export { writeMemorixRecords } from "./writer/write-records.js";
5
5
  export { validateMemorixWrite } from "./writer/validate-write.js";
6
6
  export { loadMemorixWriteDescriptor } from "./descriptors/load-write-descriptor.js";
7
7
  export { loadMemorixEntityDescriptor } from "./descriptors/load-entity-descriptor.js";
8
- export { resolveMemorixWriteCollectionName, resolveMemorixWriteTargetCollection, buildMemorixWriteCollectionCandidates, resolveEntityType, } from "./data/collection-name.js";
9
- export { resolveMemorixDbName, resolveDefaultSourceDbName, resolveMongoUri, targetCollectionEnvKey, resolveMemorixWriteTarget, DEFAULT_ENTITY_COLLECTION_CANDIDATES, DEFAULT_EVENT_COLLECTION_CANDIDATES, } from "./mongo/index.js";
8
+ export { resolveMemorixWriteCollectionName, resolveMemorixWriteTargetCollection, buildMemorixWriteCollectionCandidates, resolveEntityType, resolveEntityName, } from "./data/collection-name.js";
9
+ export { resolveMemorixDbName, resolveDefaultSourceDbName, resolveMongoUri, readTargetCollectionFromEnv, targetCollectionEnvKey, resolveMemorixWriteTarget, DEFAULT_ENTITY_COLLECTION_CANDIDATES, DEFAULT_EVENT_COLLECTION_CANDIDATES, } from "./mongo/index.js";
10
10
  export { connectMemorixMongo } from "./mongo/connection.js";
11
11
  export type { MemorixTarget } from "./mongo/target.js";
12
12
  export { resolveMemorixWriteFieldTarget } from "./writer/resolve-write-field-target.js";
13
13
  export { resolveMemorixContentWriteConfig } from "./content/resolve-content-write-config.js";
14
14
  export { writeMemorixContentObject, cleanupWrittenContent, } from "./content/write-content-object.js";
15
+ export { markGraphRunStarted } from "./graph-runs/mark-started.js";
16
+ export { markGraphRunFailed } from "./graph-runs/mark-failed.js";
17
+ export { writeGraphRunResult } from "./graph-runs/write-result.js";
18
+ export { clearGraphRun } from "./graph-runs/clear-run.js";
19
+ export { ensureGraphRunIndexes } from "./graph-runs/ensure-indexes.js";
20
+ export { GRAPH_RUNS_FIELD, graphRunDotPath } from "./graph-runs/constants.js";
21
+ export { resolveRecordCollection, resolveCollectionFromRef, resolvePersistencyCollection, resolvePersistencyRecordId, } from "./graph-runs/resolve-record-collection.js";
22
+ export { graphRunLogContext } from "./graph-runs/logging.js";
23
+ export type { MarkGraphRunStartedOptions, MarkGraphRunStartedResult, } from "./graph-runs/mark-started.js";
24
+ export type { MarkGraphRunFailedOptions, MarkGraphRunFailedResult, } from "./graph-runs/mark-failed.js";
25
+ export type { WriteGraphRunResultOptions, WriteGraphRunResultResponse, } from "./graph-runs/write-result.js";
26
+ export type { ClearGraphRunResult } from "./graph-runs/clear-run.js";
27
+ export type { EnsureGraphRunIndexesResult } from "./graph-runs/ensure-indexes.js";
28
+ export type { GraphRunLogContext } from "./graph-runs/logging.js";
29
+ export type { GraphRunStatus, GraphRunResultPointer, GraphRunError, GraphRunEntry, GraphRunsField, MemorixRecordRef, PersistencyRecordIdSource, PersistencyTarget, } from "@x12i/memorix-descriptors/types";
15
30
  export type { MemorixWriterClient, CreateMemorixWriterOptions, CreateMemorixWriterFromEnvOptions, CataloxLike, MemorixObjectWriterLike, MemorixContentWriterRegistry, MemorixRetrievalClient, MemorixWriterDefaults, WriteMemorixRecordRequest, WriteMemorixRecordResponse, WriteMemorixRecordsRequest, WriteMemorixRecordsResponse, ValidateMemorixWriteResponse, } from "./client/types.js";
16
- export type { MemorixWriteDescriptor, MemorixWriteFieldDescriptor, MemorixIdempotencyDescriptor, MemorixWriteValidationRule, } from "./descriptors/write-descriptor-types.js";
31
+ export type { MemorixWriteDescriptor, MemorixWriteFieldDescriptor, MemorixIdempotencyDescriptor, } from "./descriptors/write-descriptor-types.js";
17
32
  export type { MemorixEntityDescriptor, MemorixContentObject, MemorixContentStorageDescriptor, MemorixContentTypeDescriptor, MemorixPropertyDescriptor, } from "./descriptors/entity-descriptor-types.js";
18
33
  export type { MemorixWriteIssue } from "./errors/issues.js";
19
34
  export { MemorixWriterError } from "./errors/errors.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AAEzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAElE,OAAO,EAAE,0BAA0B,EAAE,MAAM,wCAAwC,CAAC;AACpF,OAAO,EAAE,2BAA2B,EAAE,MAAM,yCAAyC,CAAC;AAEtF,OAAO,EACL,iCAAiC,EACjC,mCAAmC,EACnC,qCAAqC,EACrC,iBAAiB,GAClB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,oBAAoB,EACpB,0BAA0B,EAC1B,eAAe,EACf,sBAAsB,EACtB,yBAAyB,EACzB,oCAAoC,EACpC,mCAAmC,GACpC,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,YAAY,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,8BAA8B,EAAE,MAAM,wCAAwC,CAAC;AACxF,OAAO,EAAE,gCAAgC,EAAE,MAAM,2CAA2C,CAAC;AAC7F,OAAO,EACL,yBAAyB,EACzB,qBAAqB,GACtB,MAAM,mCAAmC,CAAC;AAE3C,YAAY,EACV,mBAAmB,EACnB,0BAA0B,EAC1B,iCAAiC,EACjC,WAAW,EACX,uBAAuB,EACvB,4BAA4B,EAC5B,sBAAsB,EACtB,qBAAqB,EACrB,yBAAyB,EACzB,0BAA0B,EAC1B,0BAA0B,EAC1B,2BAA2B,EAC3B,4BAA4B,GAC7B,MAAM,mBAAmB,CAAC;AAE3B,YAAY,EACV,sBAAsB,EACtB,2BAA2B,EAC3B,4BAA4B,EAC5B,0BAA0B,GAC3B,MAAM,yCAAyC,CAAC;AAEjD,YAAY,EACV,uBAAuB,EACvB,oBAAoB,EACpB,+BAA+B,EAC/B,4BAA4B,EAC5B,yBAAyB,GAC1B,MAAM,0CAA0C,CAAC;AAElD,YAAY,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAE5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -5,11 +5,19 @@ export { writeMemorixRecords } from "./writer/write-records.js";
5
5
  export { validateMemorixWrite } from "./writer/validate-write.js";
6
6
  export { loadMemorixWriteDescriptor } from "./descriptors/load-write-descriptor.js";
7
7
  export { loadMemorixEntityDescriptor } from "./descriptors/load-entity-descriptor.js";
8
- export { resolveMemorixWriteCollectionName, resolveMemorixWriteTargetCollection, buildMemorixWriteCollectionCandidates, resolveEntityType, } from "./data/collection-name.js";
9
- export { resolveMemorixDbName, resolveDefaultSourceDbName, resolveMongoUri, targetCollectionEnvKey, resolveMemorixWriteTarget, DEFAULT_ENTITY_COLLECTION_CANDIDATES, DEFAULT_EVENT_COLLECTION_CANDIDATES, } from "./mongo/index.js";
8
+ export { resolveMemorixWriteCollectionName, resolveMemorixWriteTargetCollection, buildMemorixWriteCollectionCandidates, resolveEntityType, resolveEntityName, } from "./data/collection-name.js";
9
+ export { resolveMemorixDbName, resolveDefaultSourceDbName, resolveMongoUri, readTargetCollectionFromEnv, targetCollectionEnvKey, resolveMemorixWriteTarget, DEFAULT_ENTITY_COLLECTION_CANDIDATES, DEFAULT_EVENT_COLLECTION_CANDIDATES, } from "./mongo/index.js";
10
10
  export { connectMemorixMongo } from "./mongo/connection.js";
11
11
  export { resolveMemorixWriteFieldTarget } from "./writer/resolve-write-field-target.js";
12
12
  export { resolveMemorixContentWriteConfig } from "./content/resolve-content-write-config.js";
13
13
  export { writeMemorixContentObject, cleanupWrittenContent, } from "./content/write-content-object.js";
14
+ export { markGraphRunStarted } from "./graph-runs/mark-started.js";
15
+ export { markGraphRunFailed } from "./graph-runs/mark-failed.js";
16
+ export { writeGraphRunResult } from "./graph-runs/write-result.js";
17
+ export { clearGraphRun } from "./graph-runs/clear-run.js";
18
+ export { ensureGraphRunIndexes } from "./graph-runs/ensure-indexes.js";
19
+ export { GRAPH_RUNS_FIELD, graphRunDotPath } from "./graph-runs/constants.js";
20
+ export { resolveRecordCollection, resolveCollectionFromRef, resolvePersistencyCollection, resolvePersistencyRecordId, } from "./graph-runs/resolve-record-collection.js";
21
+ export { graphRunLogContext } from "./graph-runs/logging.js";
14
22
  export { MemorixWriterError } from "./errors/errors.js";
15
23
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AAEzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAElE,OAAO,EAAE,0BAA0B,EAAE,MAAM,wCAAwC,CAAC;AACpF,OAAO,EAAE,2BAA2B,EAAE,MAAM,yCAAyC,CAAC;AAEtF,OAAO,EACL,iCAAiC,EACjC,mCAAmC,EACnC,qCAAqC,EACrC,iBAAiB,GAClB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,oBAAoB,EACpB,0BAA0B,EAC1B,eAAe,EACf,sBAAsB,EACtB,yBAAyB,EACzB,oCAAoC,EACpC,mCAAmC,GACpC,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,EAAE,8BAA8B,EAAE,MAAM,wCAAwC,CAAC;AACxF,OAAO,EAAE,gCAAgC,EAAE,MAAM,2CAA2C,CAAC;AAC7F,OAAO,EACL,yBAAyB,EACzB,qBAAqB,GACtB,MAAM,mCAAmC,CAAC;AAmC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AAEzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAElE,OAAO,EAAE,0BAA0B,EAAE,MAAM,wCAAwC,CAAC;AACpF,OAAO,EAAE,2BAA2B,EAAE,MAAM,yCAAyC,CAAC;AAEtF,OAAO,EACL,iCAAiC,EACjC,mCAAmC,EACnC,qCAAqC,EACrC,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,oBAAoB,EACpB,0BAA0B,EAC1B,eAAe,EACf,2BAA2B,EAC3B,sBAAsB,EACtB,yBAAyB,EACzB,oCAAoC,EACpC,mCAAmC,GACpC,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,EAAE,8BAA8B,EAAE,MAAM,wCAAwC,CAAC;AACxF,OAAO,EAAE,gCAAgC,EAAE,MAAM,2CAA2C,CAAC;AAC7F,OAAO,EACL,yBAAyB,EACzB,qBAAqB,GACtB,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC9E,OAAO,EACL,uBAAuB,EACvB,wBAAwB,EACxB,4BAA4B,EAC5B,0BAA0B,GAC3B,MAAM,2CAA2C,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AA6D7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC"}
@@ -1,5 +1,5 @@
1
1
  /** Descriptor-driven physical collection I/O (e.g. `assets-analysis`). */
2
- import type { Document, Sort } from "mongodb";
2
+ import type { ClientSession, Document, Sort } from "mongodb";
3
3
  import type { MemorixDataTier } from "./tier.js";
4
4
  export type ListMemorixCollectionDocumentsResult = {
5
5
  documents: Record<string, unknown>[];
@@ -18,6 +18,7 @@ export declare function getMemorixCollectionDocument(tier: MemorixDataTier, args
18
18
  collection: string;
19
19
  filter: Record<string, unknown>;
20
20
  projection?: Document;
21
+ session?: ClientSession;
21
22
  }): Promise<Record<string, unknown> | null>;
22
23
  export declare function insertMemorixCollectionDocument(tier: MemorixDataTier, args: {
23
24
  collection: string;
@@ -30,6 +31,7 @@ export declare function replaceMemorixCollectionDocument(tier: MemorixDataTier,
30
31
  filter: Record<string, unknown>;
31
32
  replacement: Record<string, unknown>;
32
33
  upsert?: boolean;
34
+ session?: ClientSession;
33
35
  }): Promise<{
34
36
  matchedCount: number;
35
37
  modifiedCount: number;
@@ -39,6 +41,7 @@ export declare function updateMemorixCollectionDocument(tier: MemorixDataTier, a
39
41
  collection: string;
40
42
  filter: Record<string, unknown>;
41
43
  update: Document;
44
+ session?: ClientSession;
42
45
  }): Promise<{
43
46
  matchedCount: number;
44
47
  modifiedCount: number;
@@ -47,8 +50,16 @@ export declare function patchMemorixCollectionDocument(tier: MemorixDataTier, ar
47
50
  collection: string;
48
51
  filter: Record<string, unknown>;
49
52
  $set: Record<string, unknown>;
53
+ session?: ClientSession;
50
54
  }): Promise<{
51
55
  matchedCount: number;
52
56
  modifiedCount: number;
53
57
  }>;
58
+ export declare function deleteMemorixCollectionDocument(tier: MemorixDataTier, args: {
59
+ collection: string;
60
+ filter: Record<string, unknown>;
61
+ session?: ClientSession;
62
+ }): Promise<{
63
+ deletedCount: number;
64
+ }>;
54
65
  //# sourceMappingURL=collection-documents.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"collection-documents.d.ts","sourceRoot":"","sources":["../../src/mongo/collection-documents.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,OAAO,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAoBjD,MAAM,MAAM,oCAAoC,GAAG;IACjD,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IACrC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,wBAAsB,8BAA8B,CAClD,IAAI,EAAE,eAAe,EACrB,IAAI,EAAE;IACJ,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,QAAQ,CAAC;IACtB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,GACA,OAAO,CAAC,oCAAoC,CAAC,CAkD/C;AAED,wBAAsB,4BAA4B,CAChD,IAAI,EAAE,eAAe,EACrB,IAAI,EAAE;IACJ,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,UAAU,CAAC,EAAE,QAAQ,CAAC;CACvB,GACA,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,CAQzC;AAED,wBAAsB,+BAA+B,CACnD,IAAI,EAAE,eAAe,EACrB,IAAI,EAAE;IACJ,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC,GACA,OAAO,CAAC;IAAE,UAAU,EAAE,OAAO,CAAA;CAAE,CAAC,CAKlC;AAED,wBAAsB,gCAAgC,CACpD,IAAI,EAAE,eAAe,EACrB,IAAI,EAAE;IACJ,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,GACA,OAAO,CAAC;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,CAAC,CAcjF;AAED,wBAAsB,+BAA+B,CACnD,IAAI,EAAE,eAAe,EACrB,IAAI,EAAE;IACJ,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,MAAM,EAAE,QAAQ,CAAC;CAClB,GACA,OAAO,CAAC;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,CAAC,CAM1D;AAED,wBAAsB,8BAA8B,CAClD,IAAI,EAAE,eAAe,EACrB,IAAI,EAAE;IACJ,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC/B,GACA,OAAO,CAAC;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,CAAC,CAM1D"}
1
+ {"version":3,"file":"collection-documents.d.ts","sourceRoot":"","sources":["../../src/mongo/collection-documents.ts"],"names":[],"mappings":"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"}
@@ -63,6 +63,7 @@ export async function getMemorixCollectionDocument(tier, args) {
63
63
  const filter = normalizeMemorixFilter(args.filter);
64
64
  const doc = await col.findOne(filter, {
65
65
  projection: args.projection,
66
+ ...(args.session ? { session: args.session } : {}),
66
67
  });
67
68
  return doc;
68
69
  }
@@ -76,7 +77,10 @@ export async function replaceMemorixCollectionDocument(tier, args) {
76
77
  assertTierReady(tier);
77
78
  const col = tier.db.collection(resolveCollection(args.collection));
78
79
  const filter = normalizeMemorixFilter(args.filter);
79
- const r = await col.replaceOne(filter, args.replacement, { upsert: args.upsert ?? false });
80
+ const r = await col.replaceOne(filter, args.replacement, {
81
+ upsert: args.upsert ?? false,
82
+ ...(args.session ? { session: args.session } : {}),
83
+ });
80
84
  return {
81
85
  matchedCount: r.matchedCount,
82
86
  modifiedCount: r.modifiedCount,
@@ -87,7 +91,7 @@ export async function updateMemorixCollectionDocument(tier, args) {
87
91
  assertTierReady(tier);
88
92
  const col = tier.db.collection(resolveCollection(args.collection));
89
93
  const filter = normalizeMemorixFilter(args.filter);
90
- const r = await col.updateOne(filter, args.update);
94
+ const r = await col.updateOne(filter, args.update, args.session ? { session: args.session } : undefined);
91
95
  return { matchedCount: r.matchedCount, modifiedCount: r.modifiedCount };
92
96
  }
93
97
  export async function patchMemorixCollectionDocument(tier, args) {
@@ -95,6 +99,14 @@ export async function patchMemorixCollectionDocument(tier, args) {
95
99
  collection: args.collection,
96
100
  filter: args.filter,
97
101
  update: { $set: args.$set },
102
+ session: args.session,
98
103
  });
99
104
  }
105
+ export async function deleteMemorixCollectionDocument(tier, args) {
106
+ assertTierReady(tier);
107
+ const col = tier.db.collection(resolveCollection(args.collection));
108
+ const filter = normalizeMemorixFilter(args.filter);
109
+ const r = await col.deleteOne(filter, args.session ? { session: args.session } : undefined);
110
+ return { deletedCount: r.deletedCount };
111
+ }
100
112
  //# sourceMappingURL=collection-documents.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"collection-documents.js","sourceRoot":"","sources":["../../src/mongo/collection-documents.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"collection-documents.js","sourceRoot":"","sources":["../../src/mongo/collection-documents.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAE3D,MAAM,kBAAkB,GAAG,EAAE,CAAC;AAC9B,MAAM,cAAc,GAAG,GAAG,CAAC;AAC3B,MAAM,aAAa,GAAG,MAAM,CAAC;AAE7B,SAAS,eAAe,CAAC,IAAqB;IAC5C,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CACb,2DAA2D,CAC5D,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,cAAsB;IAC/C,OAAO,2BAA2B,CAAC,cAAc,CAAC,CAAC;AACrD,CAAC;AAOD,MAAM,CAAC,KAAK,UAAU,8BAA8B,CAClD,IAAqB,EACrB,IAQC;IAED,eAAe,CAAC,IAAI,CAAC,CAAC;IACtB,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IACnE,MAAM,MAAM,GAAG,sBAAsB,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;IACzD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC;IAC5B,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,aAAa,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CAAC,uCAAuC,aAAa,EAAE,CAAC,CAAC;IAC1E,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,kBAAkB,CAAC;IAC/C,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,cAAc,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CAAC,wCAAwC,cAAc,EAAE,CAAC,CAAC;IAC5E,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,EAAE,GAAG,EAAE,CAAU,EAAE,CAAC;IAE9C,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;QACtB,MAAM,KAAK,GAAG,MAAM,GAAG;aACpB,SAAS,CAAC;YACT,EAAE,MAAM,EAAE,MAAkB,EAAE;YAC9B;gBACE,MAAM,EAAE;oBACN,IAAI,EAAE;wBACJ,EAAE,KAAK,EAAE,IAAI,EAAE;wBACf,EAAE,KAAK,EAAE,IAAI,EAAE;wBACf,EAAE,MAAM,EAAE,KAAK,EAAE;wBACjB,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;qBAC5D;oBACD,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;iBACzB;aACF;SACF,CAAC;aACD,OAAO,EAAE,CAAC;QACb,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAGhB,CAAC;QACF,OAAO;YACL,SAAS,EAAE,CAAC,CAAC,IAAI,IAAI,EAAE;YACvB,UAAU,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC;SACjC,CAAC;IACJ,CAAC;IAED,MAAM,SAAS,GAAG,CAAC,MAAM,GAAG;SACzB,IAAI,CAAC,MAAkB,EAAE;QACxB,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,UAAU,EAAE,IAAI,CAAC,UAAU;KAC5B,CAAC;SACD,OAAO,EAAE,CAA8B,CAAC;IAC3C,OAAO,EAAE,SAAS,EAAE,CAAC;AACvB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAChD,IAAqB,EACrB,IAKC;IAED,eAAe,CAAC,IAAI,CAAC,CAAC;IACtB,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IACnE,MAAM,MAAM,GAAG,sBAAsB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACnD,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,OAAO,CAC3B,MAAkB,EAClB;QACE,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACnD,CACF,CAAC;IACF,OAAO,GAAqC,CAAC;AAC/C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,+BAA+B,CACnD,IAAqB,EACrB,IAGC;IAED,eAAe,CAAC,IAAI,CAAC,CAAC;IACtB,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IACnE,MAAM,CAAC,GAAG,MAAM,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,QAAoB,CAAC,CAAC;IACzD,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC;AACtC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gCAAgC,CACpD,IAAqB,EACrB,IAMC;IAED,eAAe,CAAC,IAAI,CAAC,CAAC;IACtB,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IACnE,MAAM,MAAM,GAAG,sBAAsB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACnD,MAAM,CAAC,GAAG,MAAM,GAAG,CAAC,UAAU,CAC5B,MAAkB,EAClB,IAAI,CAAC,WAAuB,EAC9B;QACE,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,KAAK;QAC5B,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACnD,CACA,CAAC;IACF,OAAO;QACL,YAAY,EAAE,CAAC,CAAC,YAAY;QAC5B,aAAa,EAAE,CAAC,CAAC,aAAa;QAC9B,aAAa,EAAE,CAAC,CAAC,aAAa;KAC/B,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,+BAA+B,CACnD,IAAqB,EACrB,IAKC;IAED,eAAe,CAAC,IAAI,CAAC,CAAC;IACtB,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IACnE,MAAM,MAAM,GAAG,sBAAsB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACnD,MAAM,CAAC,GAAG,MAAM,GAAG,CAAC,SAAS,CAC3B,MAAkB,EAClB,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,SAAS,CACrD,CAAC;IACF,OAAO,EAAE,YAAY,EAAE,CAAC,CAAC,YAAY,EAAE,aAAa,EAAE,CAAC,CAAC,aAAa,EAAE,CAAC;AAC1E,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,8BAA8B,CAClD,IAAqB,EACrB,IAKC;IAED,OAAO,+BAA+B,CAAC,IAAI,EAAE;QAC3C,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;QAC3B,OAAO,EAAE,IAAI,CAAC,OAAO;KACtB,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,+BAA+B,CACnD,IAAqB,EACrB,IAIC;IAED,eAAe,CAAC,IAAI,CAAC,CAAC;IACtB,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IACnE,MAAM,MAAM,GAAG,sBAAsB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACnD,MAAM,CAAC,GAAG,MAAM,GAAG,CAAC,SAAS,CAC3B,MAAkB,EAClB,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,SAAS,CACrD,CAAC;IACF,OAAO,EAAE,YAAY,EAAE,CAAC,CAAC,YAAY,EAAE,CAAC;AAC1C,CAAC"}
@@ -2,5 +2,13 @@ import type { MemorixTarget } from "./target.js";
2
2
  export declare function resolveMongoUri(env?: NodeJS.ProcessEnv): string;
3
3
  export declare function resolveMemorixDbName(target: MemorixTarget, env?: NodeJS.ProcessEnv): string;
4
4
  export declare function resolveDefaultSourceDbName(env?: NodeJS.ProcessEnv): string | undefined;
5
- export declare function targetCollectionEnvKey(target: MemorixTarget, entityType: string): string;
5
+ /** Env key for a per-entity collection override. Uses canonical `entityName`. */
6
+ export declare function targetCollectionEnvKey(target: MemorixTarget, entityName: string): string;
7
+ export type TargetCollectionEnvEntity = {
8
+ entityName: string;
9
+ /** Legacy alias: read when it differs from `entityName`. */
10
+ entityType?: string;
11
+ };
12
+ /** Read collection override from env; `entityName` key wins over legacy `entityType` alias. */
13
+ export declare function readTargetCollectionFromEnv(target: MemorixTarget, entity: TargetCollectionEnvEntity, env?: NodeJS.ProcessEnv): string | undefined;
6
14
  //# sourceMappingURL=env.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../src/mongo/env.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAUjD,wBAAgB,eAAe,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,CAM5E;AAKD,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,aAAa,EACrB,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,MAAM,CAoBR;AAED,wBAAgB,0BAA0B,CACxC,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,MAAM,GAAG,SAAS,CAQpB;AAED,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,aAAa,EACrB,UAAU,EAAE,MAAM,GACjB,MAAM,CAKR"}
1
+ {"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../src/mongo/env.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAUjD,wBAAgB,eAAe,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,CAM5E;AAOD,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,aAAa,EACrB,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,MAAM,CA8BR;AAED,wBAAgB,0BAA0B,CACxC,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,MAAM,GAAG,SAAS,CAQpB;AAED,iFAAiF;AACjF,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,aAAa,EACrB,UAAU,EAAE,MAAM,GACjB,MAAM,CAKR;AAED,MAAM,MAAM,yBAAyB,GAAG;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,4DAA4D;IAC5D,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,+FAA+F;AAC/F,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,yBAAyB,EACjC,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,MAAM,GAAG,SAAS,CAUpB"}
package/dist/mongo/env.js CHANGED
@@ -15,19 +15,38 @@ export function resolveMongoUri(env = process.env) {
15
15
  }
16
16
  const MEMORIX_ENTITIES_DB_DEFAULT = "memorix-entities";
17
17
  const MEMORIX_EVENTS_DB_DEFAULT = "memorix-events";
18
+ const MEMORIX_KNOWLEDGE_DB_DEFAULT = "memorix-knowledge";
18
19
  export function resolveMemorixDbName(target, env = process.env) {
19
20
  if (target === "entity") {
20
21
  return (firstNonEmpty(env.MEMORIX_ENTITIES_DB, env.MEMORIX_DB_ENTITIES, env.memorix_entities_db, env.MEMORIX_DB) ?? MEMORIX_ENTITIES_DB_DEFAULT);
21
22
  }
23
+ if (target === "knowledge") {
24
+ return (firstNonEmpty(env.MEMORIX_KNOWLEDGE_DB, env.MEMORIX_DB_KNOWLEDGE, env.memorix_knowledge_db) ?? MEMORIX_KNOWLEDGE_DB_DEFAULT);
25
+ }
22
26
  return (firstNonEmpty(env.MEMORIX_EVENTS_DB, env.MEMORIX_DB_EVENTS, env.memorix_events_db, env.MEMORIX_DB) ?? MEMORIX_EVENTS_DB_DEFAULT);
23
27
  }
24
28
  export function resolveDefaultSourceDbName(env = process.env) {
25
29
  return firstNonEmpty(env.MEMORIX_SOURCE_DB, env.SOURCE_DATABASE_NAME, env.SOURCEDATABASENAME, env.sourceDatabaseName, env.source_database_name);
26
30
  }
27
- export function targetCollectionEnvKey(target, entityType) {
28
- const normalized = entityType.replace(/-/g, "_").toUpperCase();
29
- return target === "entity"
30
- ? `MEMORIX_ENTITIES_COLLECTION_${normalized}`
31
- : `MEMORIX_EVENTS_COLLECTION_${normalized}`;
31
+ /** Env key for a per-entity collection override. Uses canonical `entityName`. */
32
+ export function targetCollectionEnvKey(target, entityName) {
33
+ const normalized = entityName.replace(/-/g, "_").toUpperCase();
34
+ if (target === "entity")
35
+ return `MEMORIX_ENTITIES_COLLECTION_${normalized}`;
36
+ if (target === "knowledge")
37
+ return `MEMORIX_KNOWLEDGE_COLLECTION_${normalized}`;
38
+ return `MEMORIX_EVENTS_COLLECTION_${normalized}`;
39
+ }
40
+ /** Read collection override from env; `entityName` key wins over legacy `entityType` alias. */
41
+ export function readTargetCollectionFromEnv(target, entity, env = process.env) {
42
+ const name = entity.entityName.trim();
43
+ const fromName = env[targetCollectionEnvKey(target, name)]?.trim();
44
+ if (fromName)
45
+ return fromName;
46
+ const alias = entity.entityType?.trim();
47
+ if (alias && alias !== name) {
48
+ return env[targetCollectionEnvKey(target, alias)]?.trim();
49
+ }
50
+ return undefined;
32
51
  }
33
52
  //# sourceMappingURL=env.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/mongo/env.ts"],"names":[],"mappings":"AAEA,SAAS,aAAa,CAAC,GAAG,IAA4B;IACpD,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;QACrB,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC;QACpB,IAAI,CAAC;YAAE,OAAO,CAAC,CAAC;IAClB,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,MAAyB,OAAO,CAAC,GAAG;IAClE,MAAM,GAAG,GAAG,aAAa,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,uBAAuB,CAAC,CAAC;IACtE,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;IACjF,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,2BAA2B,GAAG,kBAAkB,CAAC;AACvD,MAAM,yBAAyB,GAAG,gBAAgB,CAAC;AAEnD,MAAM,UAAU,oBAAoB,CAClC,MAAqB,EACrB,MAAyB,OAAO,CAAC,GAAG;IAEpC,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;QACxB,OAAO,CACL,aAAa,CACX,GAAG,CAAC,mBAAmB,EACvB,GAAG,CAAC,mBAAmB,EACvB,GAAG,CAAC,mBAAmB,EACvB,GAAG,CAAC,UAAU,CACf,IAAI,2BAA2B,CACjC,CAAC;IACJ,CAAC;IAED,OAAO,CACL,aAAa,CACX,GAAG,CAAC,iBAAiB,EACrB,GAAG,CAAC,iBAAiB,EACrB,GAAG,CAAC,iBAAiB,EACrB,GAAG,CAAC,UAAU,CACf,IAAI,yBAAyB,CAC/B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,MAAyB,OAAO,CAAC,GAAG;IAEpC,OAAO,aAAa,CAClB,GAAG,CAAC,iBAAiB,EACrB,GAAG,CAAC,oBAAoB,EACxB,GAAG,CAAC,kBAAkB,EACtB,GAAG,CAAC,kBAAkB,EACtB,GAAG,CAAC,oBAAoB,CACzB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,MAAqB,EACrB,UAAkB;IAElB,MAAM,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;IAC/D,OAAO,MAAM,KAAK,QAAQ;QACxB,CAAC,CAAC,+BAA+B,UAAU,EAAE;QAC7C,CAAC,CAAC,6BAA6B,UAAU,EAAE,CAAC;AAChD,CAAC"}
1
+ {"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/mongo/env.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- export { resolveDefaultSourceDbName, resolveMemorixDbName, resolveMongoUri, targetCollectionEnvKey, } from "./env.js";
1
+ export { resolveDefaultSourceDbName, resolveMemorixDbName, resolveMongoUri, readTargetCollectionFromEnv, targetCollectionEnvKey, } from "./env.js";
2
2
  export { resolveMemorixWriteTarget, type MemorixTarget } from "./target.js";
3
3
  export { DEFAULT_ENTITY_COLLECTION_CANDIDATES, DEFAULT_EVENT_COLLECTION_CANDIDATES, } from "./default-collections.js";
4
4
  export { createMemorixDataTier, type CreateMemorixDataTierOptions, type MemorixDataTier, } from "./tier.js";