@x12i/memorix-writer 1.0.0 → 1.1.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 +3 -0
  12. package/dist/data/memorix-write-adapter.d.ts.map +1 -1
  13. package/dist/data/memorix-write-adapter.js +2 -1
  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 +18 -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 +31 -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 +31 -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 +95 -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 +6 -0
  64. package/dist/mongo/collection-documents.d.ts.map +1 -1
  65. package/dist/mongo/collection-documents.js +7 -0
  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
package/README.md CHANGED
@@ -6,7 +6,7 @@ Shared MongoDB naming rules: [docs/MEMORIX-DATABASE-CONVENTIONS.md](./docs/MEMOR
6
6
 
7
7
  ## Architecture
8
8
 
9
- - **Catalox** — `memorix-write-descriptors`, `memorix-entity-descriptors`
9
+ - **Catalox** — `memorix-write-descriptors`, `memorix-object-type-descriptors`
10
10
  - **MongoDB** — built-in `MemorixDataTier` + collection-name CRUD (no separate `@x12i/memorix` package)
11
11
  - **@x12i/memorix-descriptors** — shared catalog ids and descriptor validation (aligned with retrieval)
12
12
  - **@x12i/helpers** — GCS/S3 content uploads (`contentWriters.gcs` / `contentWriters.s3`)
@@ -126,6 +126,30 @@ Seed file: [`catalox-seeds/memorix-write-descriptors.manifest.json`](catalox-see
126
126
  | AC-15 | `validateOnly` |
127
127
  | AC-16 | Retrieval delegated when configured |
128
128
 
129
+ ## Graph-run tracking (`_graphRuns`) — MRX-FRS-001
130
+
131
+ System-only APIs for Exellix jobs graph execution tracking. Domain `writeMemorixRecord` rejects `_graphRuns` in input.
132
+
133
+ ```typescript
134
+ import {
135
+ markGraphRunStarted,
136
+ markGraphRunFailed,
137
+ writeGraphRunResult,
138
+ clearGraphRun,
139
+ ensureGraphRunIndexes,
140
+ } from "@x12i/memorix-writer";
141
+ ```
142
+
143
+ | API | Purpose |
144
+ |-----|---------|
145
+ | `markGraphRunStarted` | Stamp `in_progress` (idempotent per `jobRunId`) |
146
+ | `markGraphRunFailed` | Terminal failure stamp |
147
+ | `writeGraphRunResult` | Upsert result doc + stamp source `done` (best-effort compensation) |
148
+ | `clearGraphRun` | Force re-run via `$unset` |
149
+ | `ensureGraphRunIndexes` | Opt-in planning-query indexes |
150
+
151
+ Full contract: [docs/GRAPH-RUNS.md](./docs/GRAPH-RUNS.md).
152
+
129
153
  ## Development
130
154
 
131
155
  ```bash
@@ -94,8 +94,7 @@
94
94
  "target": { "contentType": "analysis" },
95
95
  "identity": {
96
96
  "idField": "entityId",
97
- "requireExistingCanonical": true,
98
- "createCanonicalIfMissing": false
97
+ "requireExistingCanonical": true
99
98
  },
100
99
  "operations": {
101
100
  "allowed": ["add"],
@@ -1,6 +1,6 @@
1
+ export { MEMORIX_OBJECT_TYPE_DESCRIPTORS_CATALOG } from "@x12i/memorix-descriptors/catalog";
1
2
  export declare const DEFAULT_MEMORIX_APP_ID = "memorix";
2
3
  export declare const MEMORIX_WRITE_DESCRIPTORS_CATALOG_ID = "memorix-write-descriptors";
3
- export declare const MEMORIX_ENTITY_DESCRIPTORS_CATALOG_ID = "memorix-entity-descriptors";
4
4
  export declare const DEFAULT_CANONICAL_CONTENT_TYPE = "snapshots";
5
5
  export declare const DEFAULT_DATA_ROOT = "data";
6
6
  export declare const DEFAULT_EFFECTIVE_DATE_PATH = "modifiedAt";
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,sBAAsB,YAAY,CAAC;AAEhD,eAAO,MAAM,oCAAoC,8BAA8B,CAAC;AAChF,eAAO,MAAM,qCAAqC,+BAA+B,CAAC;AAElF,eAAO,MAAM,8BAA8B,cAAc,CAAC;AAC1D,eAAO,MAAM,iBAAiB,SAAS,CAAC;AACxC,eAAO,MAAM,2BAA2B,eAAe,CAAC;AACxD,eAAO,MAAM,yBAAyB,QAAkB,CAAC;AACzD,eAAO,MAAM,6BAA6B,aAAa,CAAC;AACxD,eAAO,MAAM,kBAAkB,mBAAmB,CAAC;AACnD,eAAO,MAAM,4BAA4B,4BAA4B,CAAC;AACtE,eAAO,MAAM,yBAAyB,yBAAyB,CAAC;AAEhE,eAAO,MAAM,4BAA4B,gEACsB,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uCAAuC,EAAE,MAAM,mCAAmC,CAAC;AAE5F,eAAO,MAAM,sBAAsB,YAAY,CAAC;AAEhD,eAAO,MAAM,oCAAoC,8BAA8B,CAAC;AAEhF,eAAO,MAAM,8BAA8B,cAAc,CAAC;AAC1D,eAAO,MAAM,iBAAiB,SAAS,CAAC;AACxC,eAAO,MAAM,2BAA2B,eAAe,CAAC;AACxD,eAAO,MAAM,yBAAyB,QAAkB,CAAC;AACzD,eAAO,MAAM,6BAA6B,aAAa,CAAC;AACxD,eAAO,MAAM,kBAAkB,mBAAmB,CAAC;AACnD,eAAO,MAAM,4BAA4B,4BAA4B,CAAC;AACtE,eAAO,MAAM,yBAAyB,yBAAyB,CAAC;AAEhE,eAAO,MAAM,4BAA4B,gEACsB,CAAC"}
package/dist/constants.js CHANGED
@@ -1,6 +1,6 @@
1
+ export { MEMORIX_OBJECT_TYPE_DESCRIPTORS_CATALOG } from "@x12i/memorix-descriptors/catalog";
1
2
  export const DEFAULT_MEMORIX_APP_ID = "memorix";
2
3
  export const MEMORIX_WRITE_DESCRIPTORS_CATALOG_ID = "memorix-write-descriptors";
3
- export const MEMORIX_ENTITY_DESCRIPTORS_CATALOG_ID = "memorix-entity-descriptors";
4
4
  export const DEFAULT_CANONICAL_CONTENT_TYPE = "snapshots";
5
5
  export const DEFAULT_DATA_ROOT = "data";
6
6
  export const DEFAULT_EFFECTIVE_DATE_PATH = "modifiedAt";
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,sBAAsB,GAAG,SAAS,CAAC;AAEhD,MAAM,CAAC,MAAM,oCAAoC,GAAG,2BAA2B,CAAC;AAChF,MAAM,CAAC,MAAM,qCAAqC,GAAG,4BAA4B,CAAC;AAElF,MAAM,CAAC,MAAM,8BAA8B,GAAG,WAAW,CAAC;AAC1D,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC;AACxC,MAAM,CAAC,MAAM,2BAA2B,GAAG,YAAY,CAAC;AACxD,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;AACzD,MAAM,CAAC,MAAM,6BAA6B,GAAG,UAAU,CAAC;AACxD,MAAM,CAAC,MAAM,kBAAkB,GAAG,gBAAgB,CAAC;AACnD,MAAM,CAAC,MAAM,4BAA4B,GAAG,yBAAyB,CAAC;AACtE,MAAM,CAAC,MAAM,yBAAyB,GAAG,sBAAsB,CAAC;AAEhE,MAAM,CAAC,MAAM,4BAA4B,GACvC,6DAA6D,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uCAAuC,EAAE,MAAM,mCAAmC,CAAC;AAE5F,MAAM,CAAC,MAAM,sBAAsB,GAAG,SAAS,CAAC;AAEhD,MAAM,CAAC,MAAM,oCAAoC,GAAG,2BAA2B,CAAC;AAEhF,MAAM,CAAC,MAAM,8BAA8B,GAAG,WAAW,CAAC;AAC1D,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC;AACxC,MAAM,CAAC,MAAM,2BAA2B,GAAG,YAAY,CAAC;AACxD,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;AACzD,MAAM,CAAC,MAAM,6BAA6B,GAAG,UAAU,CAAC;AACxD,MAAM,CAAC,MAAM,kBAAkB,GAAG,gBAAgB,CAAC;AACnD,MAAM,CAAC,MAAM,4BAA4B,GAAG,yBAAyB,CAAC;AACtE,MAAM,CAAC,MAAM,yBAAyB,GAAG,sBAAsB,CAAC;AAEhE,MAAM,CAAC,MAAM,4BAA4B,GACvC,6DAA6D,CAAC"}
@@ -7,6 +7,7 @@ export type ResolveMemorixWriteCollectionOptions = {
7
7
  env?: NodeJS.ProcessEnv;
8
8
  };
9
9
  export declare function resolveEntityType(entity: MemorixEntityDescriptor): string;
10
+ export declare function resolveEntityName(entity: MemorixEntityDescriptor): string;
10
11
  export declare function buildMemorixWriteCollectionCandidates(args: {
11
12
  entity: MemorixEntityDescriptor;
12
13
  writeDescriptor: MemorixWriteDescriptor;
@@ -1 +1 @@
1
- {"version":3,"file":"collection-name.d.ts","sourceRoot":"","sources":["../../src/data/collection-name.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,2CAA2C,CAAC;AACzF,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0CAA0C,CAAC;AAQvF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD,MAAM,MAAM,oCAAoC,GAAG;IACjD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CACzB,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,uBAAuB,GAAG,MAAM,CAEzE;AAED,wBAAgB,qCAAqC,CAAC,IAAI,EAAE;IAC1D,MAAM,EAAE,uBAAuB,CAAC;IAChC,eAAe,EAAE,sBAAsB,CAAC;IACxC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CACzB,GAAG,MAAM,EAAE,CAkDX;AAED,wFAAwF;AACxF,wBAAgB,iCAAiC,CAC/C,MAAM,EAAE,uBAAuB,EAC/B,eAAe,EAAE,sBAAsB,EACvC,OAAO,GAAE,oCAAyC,GACjD,MAAM,CAQR;AAED,wBAAsB,mCAAmC,CAAC,IAAI,EAAE;IAC9D,IAAI,EAAE,eAAe,CAAC;IACtB,MAAM,EAAE,uBAAuB,CAAC;IAChC,eAAe,EAAE,sBAAsB,CAAC;IACxC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,GAAG,OAAO,CAAC;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,aAAa,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CA8B3E"}
1
+ {"version":3,"file":"collection-name.d.ts","sourceRoot":"","sources":["../../src/data/collection-name.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,2CAA2C,CAAC;AACzF,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0CAA0C,CAAC;AAYvF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD,MAAM,MAAM,oCAAoC,GAAG;IACjD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CACzB,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,uBAAuB,GAAG,MAAM,CAEzE;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,uBAAuB,GAAG,MAAM,CAEzE;AAoBD,wBAAgB,qCAAqC,CAAC,IAAI,EAAE;IAC1D,MAAM,EAAE,uBAAuB,CAAC;IAChC,eAAe,EAAE,sBAAsB,CAAC;IACxC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CACzB,GAAG,MAAM,EAAE,CAkDX;AAED,wFAAwF;AACxF,wBAAgB,iCAAiC,CAC/C,MAAM,EAAE,uBAAuB,EAC/B,eAAe,EAAE,sBAAsB,EACvC,OAAO,GAAE,oCAAyC,GACjD,MAAM,CAQR;AAED,wBAAsB,mCAAmC,CAAC,IAAI,EAAE;IAC9D,IAAI,EAAE,eAAe,CAAC;IACtB,MAAM,EAAE,uBAAuB,CAAC;IAChC,eAAe,EAAE,sBAAsB,CAAC;IACxC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,GAAG,OAAO,CAAC;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,aAAa,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CA2C3E"}
@@ -1,14 +1,30 @@
1
+ import { parseMemorixCollectionName } from "@x12i/memorix-descriptors/collections/parse";
1
2
  import { throwWriterError } from "../errors/errors.js";
2
3
  import { DEFAULT_ENTITY_COLLECTION_CANDIDATES, DEFAULT_EVENT_COLLECTION_CANDIDATES, } from "../mongo/default-collections.js";
3
- import { resolveMemorixDbName, targetCollectionEnvKey } from "../mongo/env.js";
4
+ import { readTargetCollectionFromEnv, resolveMemorixDbName, targetCollectionEnvKey, } from "../mongo/env.js";
4
5
  import { resolveMemorixWriteTarget } from "../mongo/target.js";
5
6
  export function resolveEntityType(entity) {
6
7
  return entity.entityType?.trim() || entity.entityName.trim();
7
8
  }
9
+ export function resolveEntityName(entity) {
10
+ return entity.entityName.trim();
11
+ }
12
+ function findParsedCollectionMatch(existing, entityName, contentPostfix) {
13
+ for (const name of existing) {
14
+ const parsed = parseMemorixCollectionName(name);
15
+ if (parsed.parseStatus === "parsed" &&
16
+ parsed.objectName === entityName &&
17
+ parsed.contentType === contentPostfix) {
18
+ return name;
19
+ }
20
+ }
21
+ return undefined;
22
+ }
8
23
  export function buildMemorixWriteCollectionCandidates(args) {
9
24
  const env = args.env ?? process.env;
10
25
  const target = resolveMemorixWriteTarget(args.writeDescriptor);
11
26
  const entityType = resolveEntityType(args.entity);
27
+ const entityName = resolveEntityName(args.entity);
12
28
  const contentTypeKey = args.writeDescriptor.target.contentType;
13
29
  const contentType = args.entity.contentTypes[contentTypeKey];
14
30
  if (!contentType) {
@@ -23,8 +39,7 @@ export function buildMemorixWriteCollectionCandidates(args) {
23
39
  if (contentType.collection?.trim()) {
24
40
  candidates.push(contentType.collection.trim());
25
41
  }
26
- const envKey = targetCollectionEnvKey(target, entityType);
27
- const fromEnv = env[envKey]?.trim();
42
+ const fromEnv = readTargetCollectionFromEnv(target, args.entity, env);
28
43
  if (fromEnv)
29
44
  candidates.push(fromEnv);
30
45
  if (args.writeDescriptor.target.targetCollectionCandidates?.length) {
@@ -41,7 +56,7 @@ export function buildMemorixWriteCollectionCandidates(args) {
41
56
  if (defaultCandidates[entityType]) {
42
57
  candidates.push(...defaultCandidates[entityType]);
43
58
  }
44
- candidates.push(target === "entity" ? entityType : `${entityType}-events`);
59
+ candidates.push(target === "entity" ? entityName : `${entityName}-events`);
45
60
  return [...new Set(candidates.filter(Boolean))];
46
61
  }
47
62
  /** Sync resolver: returns the first configured candidate (no Mongo existence check). */
@@ -74,8 +89,16 @@ export async function resolveMemorixWriteTargetCollection(args) {
74
89
  return { collection: name, target, database };
75
90
  }
76
91
  }
77
- const envKey = targetCollectionEnvKey(target, resolveEntityType(args.entity));
78
- throwWriterError("UNKNOWN_COLLECTION", `No ${target} collection found for entityType=${resolveEntityType(args.entity)} ` +
92
+ const contentTypeKey = args.writeDescriptor.target.contentType;
93
+ const contentTypeDescriptor = args.entity.contentTypes[contentTypeKey];
94
+ if (contentTypeDescriptor) {
95
+ const parsedMatch = findParsedCollectionMatch(existing, resolveEntityName(args.entity), contentTypeDescriptor.postfix);
96
+ if (parsedMatch) {
97
+ return { collection: parsedMatch, target, database };
98
+ }
99
+ }
100
+ const envKey = targetCollectionEnvKey(target, resolveEntityName(args.entity));
101
+ throwWriterError("UNKNOWN_COLLECTION", `No ${target} collection found for entityName=${resolveEntityName(args.entity)} ` +
79
102
  `(database=${database}). Tried: ${candidates.join(", ")}. Set ` +
80
103
  `write descriptor targetCollection, ${envKey}, or create one of the collections.`);
81
104
  }
@@ -1 +1 @@
1
- {"version":3,"file":"collection-name.js","sourceRoot":"","sources":["../../src/data/collection-name.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"collection-name.js","sourceRoot":"","sources":["../../src/data/collection-name.ts"],"names":[],"mappings":"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"}
@@ -24,6 +24,9 @@ export type MemorixWriteAdapter = {
24
24
  matchedCount: number;
25
25
  modifiedCount: number;
26
26
  }>;
27
+ deleteOne(collection: string, filter: Record<string, unknown>): Promise<{
28
+ deletedCount: number;
29
+ }>;
27
30
  };
28
31
  export type CreateMemorixWriteAdapterOptions = {
29
32
  target: MemorixTarget;
@@ -1 +1 @@
1
- {"version":3,"file":"memorix-write-adapter.d.ts","sourceRoot":"","sources":["../../src/data/memorix-write-adapter.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAExD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD,MAAM,MAAM,mBAAmB,GAAG;IAChC,MAAM,EAAE,aAAa,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CACL,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;IAC3C,QAAQ,CACN,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,IAAI,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,GACxD,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;IACtC,MAAM,CACJ,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,OAAO,CAAC;QAAE,UAAU,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IACpC,KAAK,CACH,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,OAAO,CAAC;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC5D,OAAO,CACL,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpC,MAAM,CAAC,EAAE,OAAO,GACf,OAAO,CAAC;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACnF,MAAM,CACJ,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,OAAO,CAAC;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC7D,CAAC;AAEF,MAAM,MAAM,gCAAgC,GAAG;IAC7C,MAAM,EAAE,aAAa,CAAC;IACtB,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CACzB,CAAC;AAgBF,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,eAAe,EACrB,OAAO,EAAE,gCAAgC,GACxC,mBAAmB,CA2CrB"}
1
+ {"version":3,"file":"memorix-write-adapter.d.ts","sourceRoot":"","sources":["../../src/data/memorix-write-adapter.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAExD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD,MAAM,MAAM,mBAAmB,GAAG;IAChC,MAAM,EAAE,aAAa,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CACL,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;IAC3C,QAAQ,CACN,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,IAAI,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,GACxD,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;IACtC,MAAM,CACJ,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,OAAO,CAAC;QAAE,UAAU,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IACpC,KAAK,CACH,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,OAAO,CAAC;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC5D,OAAO,CACL,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpC,MAAM,CAAC,EAAE,OAAO,GACf,OAAO,CAAC;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACnF,MAAM,CACJ,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,OAAO,CAAC;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC5D,SAAS,CACP,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,OAAO,CAAC;QAAE,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACtC,CAAC;AAEF,MAAM,MAAM,gCAAgC,GAAG;IAC7C,MAAM,EAAE,aAAa,CAAC;IACtB,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CACzB,CAAC;AAgBF,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,eAAe,EACrB,OAAO,EAAE,gCAAgC,GACxC,mBAAmB,CA8CrB"}
@@ -1,4 +1,4 @@
1
- import { getMemorixCollectionDocument, insertMemorixCollectionDocument, listMemorixCollectionDocuments, patchMemorixCollectionDocument, replaceMemorixCollectionDocument, updateMemorixCollectionDocument, } from "../mongo/collection-documents.js";
1
+ import { getMemorixCollectionDocument, insertMemorixCollectionDocument, listMemorixCollectionDocuments, patchMemorixCollectionDocument, replaceMemorixCollectionDocument, updateMemorixCollectionDocument, deleteMemorixCollectionDocument, } from "../mongo/collection-documents.js";
2
2
  import { resolveMemorixDbName } from "../mongo/env.js";
3
3
  function tierForTargetDb(tier, target, env) {
4
4
  const memorixDb = resolveMemorixDbName(target, env);
@@ -40,6 +40,7 @@ export function createMemorixWriteAdapter(tier, options) {
40
40
  filter,
41
41
  update: update,
42
42
  }),
43
+ deleteOne: (collection, filter) => deleteMemorixCollectionDocument(scopedTier, { collection, filter }),
43
44
  };
44
45
  }
45
46
  //# sourceMappingURL=memorix-write-adapter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"memorix-write-adapter.js","sourceRoot":"","sources":["../../src/data/memorix-write-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,4BAA4B,EAC5B,+BAA+B,EAC/B,8BAA8B,EAC9B,8BAA8B,EAC9B,gCAAgC,EAChC,+BAA+B,GAChC,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AA0CvD,SAAS,eAAe,CACtB,IAAqB,EACrB,MAAqB,EACrB,GAAsB;IAEtB,MAAM,SAAS,GAAG,oBAAoB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACpD,IAAI,IAAI,CAAC,EAAE,CAAC,YAAY,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACpD,OAAO;QACL,GAAG,IAAI;QACP,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC;QAC7B,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE;KAChC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,yBAAyB,CACvC,IAAqB,EACrB,OAAyC;IAEzC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;IACvC,MAAM,QAAQ,GAAG,oBAAoB,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC3D,MAAM,UAAU,GAAG,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAE9D,OAAO;QACL,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,QAAQ;QAER,OAAO,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,CAC9B,4BAA4B,CAAC,UAAU,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;QAElE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE;YAC3C,MAAM,CAAC,GAAG,MAAM,8BAA8B,CAAC,UAAU,EAAE;gBACzD,UAAU;gBACV,MAAM;gBACN,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,EAAE;gBACxB,IAAI,EAAG,IAAI,EAAE,IAA+B,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC,EAAE;aACnE,CAAC,CAAC;YACH,OAAO,CAAC,CAAC,SAAS,CAAC;QACrB,CAAC;QAED,MAAM,EAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,EAAE,CAC/B,+BAA+B,CAAC,UAAU,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC;QAEvE,KAAK,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAClC,8BAA8B,CAAC,UAAU,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;QAE1E,OAAO,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,CACnD,gCAAgC,CAAC,UAAU,EAAE;YAC3C,UAAU;YACV,MAAM;YACN,WAAW;YACX,MAAM;SACP,CAAC;QAEJ,MAAM,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,CACrC,+BAA+B,CAAC,UAAU,EAAE;YAC1C,UAAU;YACV,MAAM;YACN,MAAM,EAAE,MAAoC;SAC7C,CAAC;KACL,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"memorix-write-adapter.js","sourceRoot":"","sources":["../../src/data/memorix-write-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,4BAA4B,EAC5B,+BAA+B,EAC/B,8BAA8B,EAC9B,8BAA8B,EAC9B,gCAAgC,EAChC,+BAA+B,EAC/B,+BAA+B,GAChC,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AA8CvD,SAAS,eAAe,CACtB,IAAqB,EACrB,MAAqB,EACrB,GAAsB;IAEtB,MAAM,SAAS,GAAG,oBAAoB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACpD,IAAI,IAAI,CAAC,EAAE,CAAC,YAAY,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACpD,OAAO;QACL,GAAG,IAAI;QACP,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC;QAC7B,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE;KAChC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,yBAAyB,CACvC,IAAqB,EACrB,OAAyC;IAEzC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;IACvC,MAAM,QAAQ,GAAG,oBAAoB,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC3D,MAAM,UAAU,GAAG,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAE9D,OAAO;QACL,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,QAAQ;QAER,OAAO,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,CAC9B,4BAA4B,CAAC,UAAU,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;QAElE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE;YAC3C,MAAM,CAAC,GAAG,MAAM,8BAA8B,CAAC,UAAU,EAAE;gBACzD,UAAU;gBACV,MAAM;gBACN,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,EAAE;gBACxB,IAAI,EAAG,IAAI,EAAE,IAA+B,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC,EAAE;aACnE,CAAC,CAAC;YACH,OAAO,CAAC,CAAC,SAAS,CAAC;QACrB,CAAC;QAED,MAAM,EAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,EAAE,CAC/B,+BAA+B,CAAC,UAAU,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC;QAEvE,KAAK,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAClC,8BAA8B,CAAC,UAAU,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;QAE1E,OAAO,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,CACnD,gCAAgC,CAAC,UAAU,EAAE;YAC3C,UAAU;YACV,MAAM;YACN,WAAW;YACX,MAAM;SACP,CAAC;QAEJ,MAAM,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,CACrC,+BAA+B,CAAC,UAAU,EAAE;YAC1C,UAAU;YACV,MAAM;YACN,MAAM,EAAE,MAAoC;SAC7C,CAAC;QAEJ,SAAS,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,CAChC,+BAA+B,CAAC,UAAU,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;KACtE,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"load-entity-descriptor.d.ts","sourceRoot":"","sources":["../../src/descriptors/load-entity-descriptor.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC3E,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAI5E,wBAAsB,sCAAsC,CAC1D,OAAO,EAAE,WAAW,EACpB,KAAK,EAAE,MAAM,EACb,kBAAkB,EAAE,MAAM,GACzB,OAAO,CAAC,uBAAuB,CAAC,CAkBlC;AAED,wBAAsB,2BAA2B,CAC/C,MAAM,EAAE,mBAAmB,EAC3B,kBAAkB,EAAE,MAAM,GACzB,OAAO,CAAC,uBAAuB,CAAC,CAMlC;AAED,mGAAmG;AACnG,wBAAsB,mCAAmC,CACvD,MAAM,EAAE,mBAAmB,EAC3B,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,uBAAuB,CAAC,CAElC"}
1
+ {"version":3,"file":"load-entity-descriptor.d.ts","sourceRoot":"","sources":["../../src/descriptors/load-entity-descriptor.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC3E,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAI5E,wBAAsB,sCAAsC,CAC1D,OAAO,EAAE,WAAW,EACpB,KAAK,EAAE,MAAM,EACb,kBAAkB,EAAE,MAAM,GACzB,OAAO,CAAC,uBAAuB,CAAC,CAkBlC;AAED,wBAAsB,2BAA2B,CAC/C,MAAM,EAAE,mBAAmB,EAC3B,kBAAkB,EAAE,MAAM,GACzB,OAAO,CAAC,uBAAuB,CAAC,CAMlC;AAED,mGAAmG;AACnG,wBAAsB,mCAAmC,CACvD,MAAM,EAAE,mBAAmB,EAC3B,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,uBAAuB,CAAC,CAElC"}
@@ -1,8 +1,9 @@
1
- import { DEFAULT_MEMORIX_APP_ID, MEMORIX_ENTITY_DESCRIPTORS_CATALOG_ID, } from "../constants.js";
1
+ import { MEMORIX_OBJECT_TYPE_DESCRIPTORS_CATALOG } from "@x12i/memorix-descriptors/catalog";
2
+ import { DEFAULT_MEMORIX_APP_ID } from "../constants.js";
2
3
  import { validateMemorixEntityDescriptorShape } from "./validate-write-descriptor.js";
3
4
  import { throwWriterError } from "../errors/errors.js";
4
5
  export async function loadMemorixEntityDescriptorFromCatalox(catalox, appId, entityDescriptorId) {
5
- const item = await catalox.getCatalogItem(appId, MEMORIX_ENTITY_DESCRIPTORS_CATALOG_ID, entityDescriptorId);
6
+ const item = await catalox.getCatalogItem(appId, MEMORIX_OBJECT_TYPE_DESCRIPTORS_CATALOG, entityDescriptorId);
6
7
  if (!item?.data) {
7
8
  throwWriterError("MISSING_ENTITY_DESCRIPTOR", `entity descriptor not found: ${entityDescriptorId}`);
8
9
  }
@@ -1 +1 @@
1
- {"version":3,"file":"load-entity-descriptor.js","sourceRoot":"","sources":["../../src/descriptors/load-entity-descriptor.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,qCAAqC,GACtC,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAE,oCAAoC,EAAE,MAAM,gCAAgC,CAAC;AACtF,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD,MAAM,CAAC,KAAK,UAAU,sCAAsC,CAC1D,OAAoB,EACpB,KAAa,EACb,kBAA0B;IAE1B,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,cAAc,CACvC,KAAK,EACL,qCAAqC,EACrC,kBAAkB,CACnB,CAAC;IACF,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC;QAChB,gBAAgB,CACd,2BAA2B,EAC3B,gCAAgC,kBAAkB,EAAE,CACrD,CAAC;IACJ,CAAC;IACD,MAAM,UAAU,GAAG,IAAI,CAAC,IAA0C,CAAC;IACnE,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC;QACnB,UAAU,CAAC,EAAE,GAAG,kBAAkB,CAAC;IACrC,CAAC;IACD,oCAAoC,CAAC,UAAU,CAAC,CAAC;IACjD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,MAA2B,EAC3B,kBAA0B;IAE1B,OAAO,sCAAsC,CAC3C,MAAM,CAAC,OAAO,EACd,MAAM,CAAC,KAAK,IAAI,sBAAsB,EACtC,kBAAkB,CACnB,CAAC;AACJ,CAAC;AAED,mGAAmG;AACnG,MAAM,CAAC,KAAK,UAAU,mCAAmC,CACvD,MAA2B,EAC3B,UAAkB;IAElB,OAAO,2BAA2B,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;AACzD,CAAC"}
1
+ {"version":3,"file":"load-entity-descriptor.js","sourceRoot":"","sources":["../../src/descriptors/load-entity-descriptor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uCAAuC,EAAE,MAAM,mCAAmC,CAAC;AAC5F,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAGzD,OAAO,EAAE,oCAAoC,EAAE,MAAM,gCAAgC,CAAC;AACtF,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD,MAAM,CAAC,KAAK,UAAU,sCAAsC,CAC1D,OAAoB,EACpB,KAAa,EACb,kBAA0B;IAE1B,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,cAAc,CACvC,KAAK,EACL,uCAAuC,EACvC,kBAAkB,CACnB,CAAC;IACF,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC;QAChB,gBAAgB,CACd,2BAA2B,EAC3B,gCAAgC,kBAAkB,EAAE,CACrD,CAAC;IACJ,CAAC;IACD,MAAM,UAAU,GAAG,IAAI,CAAC,IAA0C,CAAC;IACnE,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC;QACnB,UAAU,CAAC,EAAE,GAAG,kBAAkB,CAAC;IACrC,CAAC;IACD,oCAAoC,CAAC,UAAU,CAAC,CAAC;IACjD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,MAA2B,EAC3B,kBAA0B;IAE1B,OAAO,sCAAsC,CAC3C,MAAM,CAAC,OAAO,EACd,MAAM,CAAC,KAAK,IAAI,sBAAsB,EACtC,kBAAkB,CACnB,CAAC;AACJ,CAAC;AAED,mGAAmG;AACnG,MAAM,CAAC,KAAK,UAAU,mCAAmC,CACvD,MAA2B,EAC3B,UAAkB;IAElB,OAAO,2BAA2B,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;AACzD,CAAC"}
@@ -6,16 +6,7 @@ export type MemorixIdempotencyDescriptor = {
6
6
  behavior?: "deduplicate" | "failOnDifferentPayload" | "returnExisting";
7
7
  payloadHashPath?: string;
8
8
  };
9
- export type MemorixWriteValidationRule = {
10
- id: string;
11
- type: "requiredWhen" | "forbiddenWhen" | "oneOf" | "regex" | "min" | "max" | "customFunction";
12
- path: string;
13
- params?: Record<string, unknown>;
14
- severity?: "error" | "warning";
15
- message?: string;
16
- };
17
9
  export type MemorixWriteFieldDescriptor = {
18
- label?: string;
19
10
  inputPath?: string;
20
11
  target: {
21
12
  path: string;
@@ -59,7 +50,6 @@ export type MemorixWriteDescriptor = {
59
50
  identity: {
60
51
  idField: "entityId" | "eventId";
61
52
  requireExistingCanonical?: boolean;
62
- createCanonicalIfMissing?: boolean;
63
53
  };
64
54
  operations: {
65
55
  allowed: Array<"add" | "upsert" | "patch" | "replace">;
@@ -102,7 +92,6 @@ export type MemorixWriteDescriptor = {
102
92
  rejectUnknownFields?: boolean;
103
93
  requireAtLeastOneWritableField?: boolean;
104
94
  allowNulls?: boolean;
105
- customRules?: MemorixWriteValidationRule[];
106
95
  };
107
96
  return?: {
108
97
  defaultMode?: "summary" | "record" | "retrievalItem";
@@ -1 +1 @@
1
- {"version":3,"file":"write-descriptor-types.d.ts","sourceRoot":"","sources":["../../src/descriptors/write-descriptor-types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"write-descriptor-types.d.ts","sourceRoot":"","sources":["../../src/descriptors/write-descriptor-types.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- export type MemorixWriteIssueCode = "MISSING_WRITE_DESCRIPTOR" | "MISSING_ENTITY_DESCRIPTOR" | "UNKNOWN_CONTENT_TYPE" | "INVALID_IDENTITY" | "OPERATION_NOT_ALLOWED" | "FIELD_NOT_WRITABLE" | "UNKNOWN_FIELD" | "REQUIRED_FIELD_MISSING" | "INVALID_VALUE_TYPE" | "INVALID_ENUM_VALUE" | "IMMUTABLE_FIELD_UPDATE" | "VALIDATION_FAILED" | "CONTENT_FIELD_NOT_ALLOWED" | "MISSING_CONTENT_BODY" | "MISSING_CONTENT_KEY" | "CONTENT_TOO_LARGE" | "CONTENT_FORMAT_NOT_ALLOWED" | "CONTENT_WRITE_FAILED" | "CONTENT_ORPHANED" | "COLLECTION_WRITE_FAILED" | "CONFLICT" | "IDEMPOTENCY_CONFLICT" | "CANONICAL_RECORD_MISSING" | "RELATION_VALIDATION_FAILED" | "RETRIEVAL_NOT_CONFIGURED";
1
+ export type MemorixWriteIssueCode = "MISSING_WRITE_DESCRIPTOR" | "MISSING_ENTITY_DESCRIPTOR" | "UNKNOWN_CONTENT_TYPE" | "INVALID_IDENTITY" | "OPERATION_NOT_ALLOWED" | "FIELD_NOT_WRITABLE" | "UNKNOWN_FIELD" | "SYSTEM_FIELD_NOT_WRITABLE" | "REQUIRED_FIELD_MISSING" | "INVALID_VALUE_TYPE" | "INVALID_ENUM_VALUE" | "IMMUTABLE_FIELD_UPDATE" | "VALIDATION_FAILED" | "CONTENT_FIELD_NOT_ALLOWED" | "MISSING_CONTENT_BODY" | "MISSING_CONTENT_KEY" | "CONTENT_TOO_LARGE" | "CONTENT_FORMAT_NOT_ALLOWED" | "CONTENT_WRITE_FAILED" | "CONTENT_ORPHANED" | "COLLECTION_WRITE_FAILED" | "CONFLICT" | "IDEMPOTENCY_CONFLICT" | "CANONICAL_RECORD_MISSING" | "RELATION_VALIDATION_FAILED" | "RETRIEVAL_NOT_CONFIGURED";
2
2
  export type MemorixWriteIssue = {
3
3
  code: MemorixWriteIssueCode;
4
4
  message: string;
@@ -1 +1 @@
1
- {"version":3,"file":"issues.d.ts","sourceRoot":"","sources":["../../src/errors/issues.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,qBAAqB,GAC7B,0BAA0B,GAC1B,2BAA2B,GAC3B,sBAAsB,GACtB,kBAAkB,GAClB,uBAAuB,GACvB,oBAAoB,GACpB,eAAe,GACf,wBAAwB,GACxB,oBAAoB,GACpB,oBAAoB,GACpB,wBAAwB,GACxB,mBAAmB,GACnB,2BAA2B,GAC3B,sBAAsB,GACtB,qBAAqB,GACrB,mBAAmB,GACnB,4BAA4B,GAC5B,sBAAsB,GACtB,kBAAkB,GAClB,yBAAyB,GACzB,UAAU,GACV,sBAAsB,GACtB,0BAA0B,GAC1B,4BAA4B,GAC5B,0BAA0B,CAAC;AAE/B,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,qBAAqB,CAAC;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;IACvC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC,CAAC;AAEF,wBAAgB,UAAU,CACxB,IAAI,EAAE,qBAAqB,EAC3B,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,GAC1D,iBAAiB,CAOnB"}
1
+ {"version":3,"file":"issues.d.ts","sourceRoot":"","sources":["../../src/errors/issues.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,qBAAqB,GAC7B,0BAA0B,GAC1B,2BAA2B,GAC3B,sBAAsB,GACtB,kBAAkB,GAClB,uBAAuB,GACvB,oBAAoB,GACpB,eAAe,GACf,2BAA2B,GAC3B,wBAAwB,GACxB,oBAAoB,GACpB,oBAAoB,GACpB,wBAAwB,GACxB,mBAAmB,GACnB,2BAA2B,GAC3B,sBAAsB,GACtB,qBAAqB,GACrB,mBAAmB,GACnB,4BAA4B,GAC5B,sBAAsB,GACtB,kBAAkB,GAClB,yBAAyB,GACzB,UAAU,GACV,sBAAsB,GACtB,0BAA0B,GAC1B,4BAA4B,GAC5B,0BAA0B,CAAC;AAE/B,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,qBAAqB,CAAC;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;IACvC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC,CAAC;AAEF,wBAAgB,UAAU,CACxB,IAAI,EAAE,qBAAqB,EAC3B,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,GAC1D,iBAAiB,CAOnB"}
@@ -1 +1 @@
1
- {"version":3,"file":"issues.js","sourceRoot":"","sources":["../../src/errors/issues.ts"],"names":[],"mappings":"AAsCA,MAAM,UAAU,UAAU,CACxB,IAA2B,EAC3B,OAAe,EACf,IAA2D;IAE3D,OAAO;QACL,IAAI;QACJ,OAAO;QACP,QAAQ,EAAE,IAAI,EAAE,QAAQ,IAAI,OAAO;QACnC,GAAG,IAAI;KACR,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"issues.js","sourceRoot":"","sources":["../../src/errors/issues.ts"],"names":[],"mappings":"AAuCA,MAAM,UAAU,UAAU,CACxB,IAA2B,EAC3B,OAAe,EACf,IAA2D;IAE3D,OAAO;QACL,IAAI;QACJ,OAAO;QACP,QAAQ,EAAE,IAAI,EAAE,QAAQ,IAAI,OAAO;QACnC,GAAG,IAAI;KACR,CAAC;AACJ,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { MemorixRecordRef } from "@x12i/memorix-descriptors/types";
2
+ import type { MemorixWriterClient } from "../client/types.js";
3
+ export type ClearGraphRunResult = {
4
+ ok: true;
5
+ graphId: string;
6
+ recordRef: MemorixRecordRef;
7
+ };
8
+ export declare function clearGraphRun(client: MemorixWriterClient, ref: MemorixRecordRef, graphId: string): Promise<ClearGraphRunResult>;
9
+ //# sourceMappingURL=clear-run.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clear-run.d.ts","sourceRoot":"","sources":["../../src/graph-runs/clear-run.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAK9D,MAAM,MAAM,mBAAmB,GAAG;IAChC,EAAE,EAAE,IAAI,CAAC;IACT,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,gBAAgB,CAAC;CAC7B,CAAC;AAEF,wBAAsB,aAAa,CACjC,MAAM,EAAE,mBAAmB,EAC3B,GAAG,EAAE,gBAAgB,EACrB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,mBAAmB,CAAC,CAgB9B"}
@@ -0,0 +1,18 @@
1
+ import { graphRunDotPath } from "./constants.js";
2
+ import { createGraphRunWriterContext, loadSourceRecord } from "./context.js";
3
+ import { graphRunLogContext } from "./logging.js";
4
+ export async function clearGraphRun(client, ref, graphId) {
5
+ const ctx = await createGraphRunWriterContext(client, ref);
6
+ await loadSourceRecord(ctx);
7
+ graphRunLogContext({
8
+ jobRunId: "",
9
+ graphId,
10
+ recordRef: ref,
11
+ operation: "clearGraphRun",
12
+ });
13
+ await ctx.adapter.update(ctx.resolved.collection, ctx.resolved.filter, {
14
+ $unset: { [graphRunDotPath(graphId)]: "" },
15
+ });
16
+ return { ok: true, graphId, recordRef: ref };
17
+ }
18
+ //# sourceMappingURL=clear-run.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clear-run.js","sourceRoot":"","sources":["../../src/graph-runs/clear-run.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,2BAA2B,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAC7E,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAQlD,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,MAA2B,EAC3B,GAAqB,EACrB,OAAe;IAEf,MAAM,GAAG,GAAG,MAAM,2BAA2B,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC3D,MAAM,gBAAgB,CAAC,GAAG,CAAC,CAAC;IAE5B,kBAAkB,CAAC;QACjB,QAAQ,EAAE,EAAE;QACZ,OAAO;QACP,SAAS,EAAE,GAAG;QACd,SAAS,EAAE,eAAe;KAC3B,CAAC,CAAC;IAEH,MAAM,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,EAAE,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE;QACrE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE;KAC3C,CAAC,CAAC;IAEH,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC;AAC/C,CAAC"}
@@ -0,0 +1,4 @@
1
+ /** Reserved top-level Mongo field for per-graph run state (MRX-FRS-001). */
2
+ export declare const GRAPH_RUNS_FIELD: "_graphRuns";
3
+ export declare function graphRunDotPath(graphId: string): string;
4
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/graph-runs/constants.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,eAAO,MAAM,gBAAgB,EAAG,YAAqB,CAAC;AAEtD,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEvD"}
@@ -0,0 +1,6 @@
1
+ /** Reserved top-level Mongo field for per-graph run state (MRX-FRS-001). */
2
+ export const GRAPH_RUNS_FIELD = "_graphRuns";
3
+ export function graphRunDotPath(graphId) {
4
+ return `${GRAPH_RUNS_FIELD}.${graphId}`;
5
+ }
6
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/graph-runs/constants.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,MAAM,CAAC,MAAM,gBAAgB,GAAG,YAAqB,CAAC;AAEtD,MAAM,UAAU,eAAe,CAAC,OAAe;IAC7C,OAAO,GAAG,gBAAgB,IAAI,OAAO,EAAE,CAAC;AAC1C,CAAC"}
@@ -0,0 +1,12 @@
1
+ import type { GraphRunEntry, MemorixRecordRef } from "@x12i/memorix-descriptors/types";
2
+ import type { MemorixWriterClient } from "../client/types.js";
3
+ import type { MemorixWriteAdapter } from "../data/memorix-write-adapter.js";
4
+ import { type ResolvedRecordCollection } from "./resolve-record-collection.js";
5
+ export type GraphRunWriterContext = {
6
+ adapter: MemorixWriteAdapter;
7
+ resolved: ResolvedRecordCollection;
8
+ };
9
+ export declare function createGraphRunWriterContext(client: MemorixWriterClient, ref: MemorixRecordRef): Promise<GraphRunWriterContext>;
10
+ export declare function loadSourceRecord(ctx: GraphRunWriterContext): Promise<Record<string, unknown>>;
11
+ export declare function readGraphRunEntry(doc: Record<string, unknown>, graphId: string): GraphRunEntry | undefined;
12
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/graph-runs/context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EAEb,gBAAgB,EACjB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAE9D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAG5E,OAAO,EAEL,KAAK,wBAAwB,EAC9B,MAAM,gCAAgC,CAAC;AAExC,MAAM,MAAM,qBAAqB,GAAG;IAClC,OAAO,EAAE,mBAAmB,CAAC;IAC7B,QAAQ,EAAE,wBAAwB,CAAC;CACpC,CAAC;AAEF,wBAAsB,2BAA2B,CAC/C,MAAM,EAAE,mBAAmB,EAC3B,GAAG,EAAE,gBAAgB,GACpB,OAAO,CAAC,qBAAqB,CAAC,CAOhC;AAED,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,qBAAqB,GACzB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CASlC;AAED,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC5B,OAAO,EAAE,MAAM,GACd,aAAa,GAAG,SAAS,CAG3B"}
@@ -0,0 +1,25 @@
1
+ import { getWriterMemorixTier } from "../client/ensure-tier.js";
2
+ import { createMemorixWriteAdapter } from "../data/memorix-write-adapter.js";
3
+ import { MemorixWriterError } from "../errors/errors.js";
4
+ import { GRAPH_RUNS_FIELD } from "./constants.js";
5
+ import { resolveRecordCollection, } from "./resolve-record-collection.js";
6
+ export async function createGraphRunWriterContext(client, ref) {
7
+ const tier = await getWriterMemorixTier(client);
8
+ const resolved = resolveRecordCollection(ref);
9
+ const adapter = createMemorixWriteAdapter(tier, {
10
+ target: resolved.target,
11
+ });
12
+ return { adapter, resolved };
13
+ }
14
+ export async function loadSourceRecord(ctx) {
15
+ const doc = await ctx.adapter.findOne(ctx.resolved.collection, ctx.resolved.filter);
16
+ if (!doc) {
17
+ throw new MemorixWriterError("RECORD_NOT_FOUND", `Memorix record not found in ${ctx.resolved.collection} for ${ctx.resolved.idField}=${JSON.stringify(ctx.resolved.filter[ctx.resolved.idField])}`);
18
+ }
19
+ return doc;
20
+ }
21
+ export function readGraphRunEntry(doc, graphId) {
22
+ const graphRuns = doc[GRAPH_RUNS_FIELD];
23
+ return graphRuns?.[graphId];
24
+ }
25
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/graph-runs/context.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAEhE,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAE7E,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EACL,uBAAuB,GAExB,MAAM,gCAAgC,CAAC;AAOxC,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,MAA2B,EAC3B,GAAqB;IAErB,MAAM,IAAI,GAAG,MAAM,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAChD,MAAM,QAAQ,GAAG,uBAAuB,CAAC,GAAG,CAAC,CAAC;IAC9C,MAAM,OAAO,GAAG,yBAAyB,CAAC,IAAI,EAAE;QAC9C,MAAM,EAAE,QAAQ,CAAC,MAAM;KACxB,CAAC,CAAC;IACH,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;AAC/B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,GAA0B;IAE1B,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,EAAE,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACpF,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,MAAM,IAAI,kBAAkB,CAC1B,kBAAkB,EAClB,+BAA+B,GAAG,CAAC,QAAQ,CAAC,UAAU,QAAQ,GAAG,CAAC,QAAQ,CAAC,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAE,CAClJ,CAAC;IACJ,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,GAA4B,EAC5B,OAAe;IAEf,MAAM,SAAS,GAAG,GAAG,CAAC,gBAAgB,CAA+B,CAAC;IACtE,OAAO,SAAS,EAAE,CAAC,OAAO,CAAC,CAAC;AAC9B,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { MongoClient } from "mongodb";
2
+ import type { MemorixRecordRef } from "@x12i/memorix-descriptors/types";
3
+ export type EnsureGraphRunIndexesResult = {
4
+ ok: true;
5
+ collection: string;
6
+ graphId: string;
7
+ indexes: string[];
8
+ };
9
+ export declare function ensureGraphRunIndexes(client: MongoClient, ref: MemorixRecordRef, graphId: string, env?: NodeJS.ProcessEnv): Promise<EnsureGraphRunIndexesResult>;
10
+ //# sourceMappingURL=ensure-indexes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ensure-indexes.d.ts","sourceRoot":"","sources":["../../src/graph-runs/ensure-indexes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAMxE,MAAM,MAAM,2BAA2B,GAAG;IACxC,EAAE,EAAE,IAAI,CAAC;IACT,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB,CAAC;AAEF,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,WAAW,EACnB,GAAG,EAAE,gBAAgB,EACrB,OAAO,EAAE,MAAM,EACf,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,OAAO,CAAC,2BAA2B,CAAC,CA+BtC"}
@@ -0,0 +1,27 @@
1
+ import { resolveMemorixDbName } from "../mongo/env.js";
2
+ import { graphRunDotPath } from "./constants.js";
3
+ import { graphRunLogContext } from "./logging.js";
4
+ import { resolveIdFieldForTarget, resolveRecordCollection } from "./resolve-record-collection.js";
5
+ export async function ensureGraphRunIndexes(client, ref, graphId, env = process.env) {
6
+ graphRunLogContext({
7
+ jobRunId: "",
8
+ graphId,
9
+ recordRef: ref,
10
+ operation: "ensureGraphRunIndexes",
11
+ });
12
+ const resolved = resolveRecordCollection(ref);
13
+ const dbName = resolveMemorixDbName(resolved.target, env);
14
+ const idField = resolveIdFieldForTarget(ref.target);
15
+ const col = client.db(dbName).collection(resolved.collection);
16
+ const statusIndex = `${graphRunDotPath(graphId)}.status_1_${idField}_1`;
17
+ const completedAtIndex = `${graphRunDotPath(graphId)}.completedAt_1`;
18
+ await col.createIndex({ [graphRunDotPath(graphId) + ".status"]: 1, [idField]: 1 }, { name: statusIndex });
19
+ await col.createIndex({ [graphRunDotPath(graphId) + ".completedAt"]: 1 }, { name: completedAtIndex });
20
+ return {
21
+ ok: true,
22
+ collection: resolved.collection,
23
+ graphId,
24
+ indexes: [statusIndex, completedAtIndex],
25
+ };
26
+ }
27
+ //# sourceMappingURL=ensure-indexes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ensure-indexes.js","sourceRoot":"","sources":["../../src/graph-runs/ensure-indexes.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AASlG,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,MAAmB,EACnB,GAAqB,EACrB,OAAe,EACf,MAAyB,OAAO,CAAC,GAAG;IAEpC,kBAAkB,CAAC;QACjB,QAAQ,EAAE,EAAE;QACZ,OAAO;QACP,SAAS,EAAE,GAAG;QACd,SAAS,EAAE,uBAAuB;KACnC,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,uBAAuB,CAAC,GAAG,CAAC,CAAC;IAC9C,MAAM,MAAM,GAAG,oBAAoB,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC1D,MAAM,OAAO,GAAG,uBAAuB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACpD,MAAM,GAAG,GAAG,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IAE9D,MAAM,WAAW,GAAG,GAAG,eAAe,CAAC,OAAO,CAAC,aAAa,OAAO,IAAI,CAAC;IACxE,MAAM,gBAAgB,GAAG,GAAG,eAAe,CAAC,OAAO,CAAC,gBAAgB,CAAC;IAErE,MAAM,GAAG,CAAC,WAAW,CACnB,EAAE,CAAC,eAAe,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,EAC3D,EAAE,IAAI,EAAE,WAAW,EAAE,CACtB,CAAC;IACF,MAAM,GAAG,CAAC,WAAW,CACnB,EAAE,CAAC,eAAe,CAAC,OAAO,CAAC,GAAG,cAAc,CAAC,EAAE,CAAC,EAAE,EAClD,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAC3B,CAAC;IAEF,OAAO;QACL,EAAE,EAAE,IAAI;QACR,UAAU,EAAE,QAAQ,CAAC,UAAU;QAC/B,OAAO;QACP,OAAO,EAAE,CAAC,WAAW,EAAE,gBAAgB,CAAC;KACzC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { MemorixRecordRef } from "@x12i/memorix-descriptors/types";
2
+ export type GraphRunLogContext = {
3
+ jobRunId: string;
4
+ graphId: string;
5
+ recordRef: MemorixRecordRef;
6
+ operation: "markGraphRunStarted" | "markGraphRunFailed" | "writeGraphRunResult" | "clearGraphRun" | "ensureGraphRunIndexes";
7
+ };
8
+ export declare function graphRunLogContext(ctx: GraphRunLogContext): GraphRunLogContext;
9
+ //# sourceMappingURL=logging.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logging.d.ts","sourceRoot":"","sources":["../../src/graph-runs/logging.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAExE,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,gBAAgB,CAAC;IAC5B,SAAS,EACL,qBAAqB,GACrB,oBAAoB,GACpB,qBAAqB,GACrB,eAAe,GACf,uBAAuB,CAAC;CAC7B,CAAC;AAEF,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,kBAAkB,GACtB,kBAAkB,CAEpB"}
@@ -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;AAS9D,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,CA8BnC"}
@@ -0,0 +1,31 @@
1
+ import { graphRunDotPath } from "./constants.js";
2
+ import { createGraphRunWriterContext, loadSourceRecord, readGraphRunEntry, } from "./context.js";
3
+ import { graphRunLogContext } from "./logging.js";
4
+ export async function markGraphRunFailed(client, ref, graphId, opts) {
5
+ const ctx = await createGraphRunWriterContext(client, ref);
6
+ const doc = await loadSourceRecord(ctx);
7
+ const existing = readGraphRunEntry(doc, graphId);
8
+ const completedAt = new Date().toISOString();
9
+ graphRunLogContext({
10
+ jobRunId: opts.jobRunId,
11
+ graphId,
12
+ recordRef: ref,
13
+ operation: "markGraphRunFailed",
14
+ });
15
+ const entry = {
16
+ status: "failed",
17
+ startedAt: existing?.startedAt ?? completedAt,
18
+ completedAt,
19
+ lastJobRunId: opts.jobRunId,
20
+ attempts: opts.attempts,
21
+ error: opts.error,
22
+ ...(existing?.graphVersion !== undefined
23
+ ? { graphVersion: existing.graphVersion }
24
+ : {}),
25
+ };
26
+ await ctx.adapter.patch(ctx.resolved.collection, ctx.resolved.filter, {
27
+ [graphRunDotPath(graphId)]: entry,
28
+ });
29
+ return { ok: true, graphId, recordRef: ref };
30
+ }
31
+ //# 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,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,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,EAAE,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE;QACpE,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK;KAClC,CAAC,CAAC;IAEH,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC;AAC/C,CAAC"}