@x12i/memorix-writer 1.6.0 → 1.8.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.
- package/catalox-seeds/memorix-write-descriptors.manifest.json +333 -82
- package/dist/client/create-client.d.ts.map +1 -1
- package/dist/client/create-client.js +1 -0
- package/dist/client/create-client.js.map +1 -1
- package/dist/client/types.d.ts +11 -0
- package/dist/client/types.d.ts.map +1 -1
- package/dist/constants.d.ts +5 -5
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +5 -5
- package/dist/constants.js.map +1 -1
- package/dist/data/memorix-write-adapter.d.ts +3 -0
- package/dist/data/memorix-write-adapter.d.ts.map +1 -1
- package/dist/data/memorix-write-adapter.js +6 -1
- package/dist/data/memorix-write-adapter.js.map +1 -1
- package/dist/data/record-lookup.d.ts +27 -0
- package/dist/data/record-lookup.d.ts.map +1 -0
- package/dist/data/record-lookup.js +66 -0
- package/dist/data/record-lookup.js.map +1 -0
- package/dist/descriptors/entity-descriptor-types.d.ts +2 -0
- package/dist/descriptors/entity-descriptor-types.d.ts.map +1 -1
- package/dist/graph-runs/build-result-record.d.ts +15 -0
- package/dist/graph-runs/build-result-record.d.ts.map +1 -0
- package/dist/graph-runs/build-result-record.js +65 -0
- package/dist/graph-runs/build-result-record.js.map +1 -0
- package/dist/graph-runs/context.js +1 -1
- package/dist/graph-runs/context.js.map +1 -1
- package/dist/graph-runs/ensure-indexes.js +4 -4
- package/dist/graph-runs/ensure-indexes.js.map +1 -1
- package/dist/graph-runs/resolve-record-collection.d.ts +6 -1
- package/dist/graph-runs/resolve-record-collection.d.ts.map +1 -1
- package/dist/graph-runs/resolve-record-collection.js +6 -3
- package/dist/graph-runs/resolve-record-collection.js.map +1 -1
- package/dist/graph-runs/write-result.d.ts.map +1 -1
- package/dist/graph-runs/write-result.js +19 -24
- package/dist/graph-runs/write-result.js.map +1 -1
- package/dist/health/writer-health.d.ts +24 -0
- package/dist/health/writer-health.d.ts.map +1 -0
- package/dist/health/writer-health.js +46 -0
- package/dist/health/writer-health.js.map +1 -0
- package/dist/index.d.ts +13 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -1
- package/dist/index.js.map +1 -1
- package/dist/job-type-runs/ensure-indexes.d.ts.map +1 -1
- package/dist/job-type-runs/ensure-indexes.js +4 -4
- package/dist/job-type-runs/ensure-indexes.js.map +1 -1
- package/dist/mongo/collection-documents.d.ts +7 -0
- package/dist/mongo/collection-documents.d.ts.map +1 -1
- package/dist/mongo/collection-documents.js +11 -0
- package/dist/mongo/collection-documents.js.map +1 -1
- package/dist/outbox/append-outbox-event.d.ts +46 -0
- package/dist/outbox/append-outbox-event.d.ts.map +1 -0
- package/dist/outbox/append-outbox-event.js +56 -0
- package/dist/outbox/append-outbox-event.js.map +1 -0
- package/dist/writer/apply-record-annotations.js +22 -6
- package/dist/writer/apply-record-annotations.js.map +1 -1
- package/dist/writer/apply-timestamps.d.ts.map +1 -1
- package/dist/writer/apply-timestamps.js +5 -4
- package/dist/writer/apply-timestamps.js.map +1 -1
- package/dist/writer/build-record.d.ts +22 -7
- package/dist/writer/build-record.d.ts.map +1 -1
- package/dist/writer/build-record.js +56 -11
- package/dist/writer/build-record.js.map +1 -1
- package/dist/writer/bulk-write-records.d.ts +11 -0
- package/dist/writer/bulk-write-records.d.ts.map +1 -0
- package/dist/writer/bulk-write-records.js +101 -0
- package/dist/writer/bulk-write-records.js.map +1 -0
- package/dist/writer/resolve-conflict.d.ts.map +1 -1
- package/dist/writer/resolve-conflict.js +8 -2
- package/dist/writer/resolve-conflict.js.map +1 -1
- package/dist/writer/write-materialized-rollup.d.ts +33 -0
- package/dist/writer/write-materialized-rollup.d.ts.map +1 -0
- package/dist/writer/write-materialized-rollup.js +31 -0
- package/dist/writer/write-materialized-rollup.js.map +1 -0
- package/dist/writer/write-record.d.ts.map +1 -1
- package/dist/writer/write-record.js +22 -14
- package/dist/writer/write-record.js.map +1 -1
- package/dist/writer/write-records.d.ts.map +1 -1
- package/dist/writer/write-records.js +41 -0
- package/dist/writer/write-records.js.map +1 -1
- package/package.json +8 -5
- package/scripts/apply-write-descriptors-seed.mjs +51 -0
- package/scripts/catalox-mongo-bootstrap.mjs +26 -0
- package/scripts/sync-write-descriptors-from-firestore.mjs +188 -0
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { connectMemorixMongo } from "../mongo/connection.js";
|
|
2
|
+
export async function getMemorixWriterHealth(client, options = {}) {
|
|
3
|
+
try {
|
|
4
|
+
if (!options.skipMongo) {
|
|
5
|
+
const tier = await client.getMemorixTier();
|
|
6
|
+
if (!tier.memorixReady) {
|
|
7
|
+
return { ok: false, message: "Memorix writer tier not ready" };
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
const appId = client.appId;
|
|
11
|
+
if (!appId) {
|
|
12
|
+
return { ok: false, message: "Writer appId not configured" };
|
|
13
|
+
}
|
|
14
|
+
return { ok: true };
|
|
15
|
+
}
|
|
16
|
+
catch (err) {
|
|
17
|
+
return {
|
|
18
|
+
ok: false,
|
|
19
|
+
message: err instanceof Error ? err.message : String(err),
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
export async function probeMemorixContentStorageHealth(client) {
|
|
24
|
+
const writers = client.contentWriters;
|
|
25
|
+
const hasGcs = Boolean(writers.gcs);
|
|
26
|
+
const hasS3 = Boolean(writers.s3);
|
|
27
|
+
if (!hasGcs && !hasS3) {
|
|
28
|
+
return { ok: false, message: "No content writers configured" };
|
|
29
|
+
}
|
|
30
|
+
return { ok: true };
|
|
31
|
+
}
|
|
32
|
+
export async function createWriterHealthProbe(client) {
|
|
33
|
+
return () => getMemorixWriterHealth(client);
|
|
34
|
+
}
|
|
35
|
+
export async function createContentStorageHealthProbe(client) {
|
|
36
|
+
return () => probeMemorixContentStorageHealth(client);
|
|
37
|
+
}
|
|
38
|
+
/** Connect Mongo for outbox store when not already available. */
|
|
39
|
+
export async function connectWriterMongo(client) {
|
|
40
|
+
const tier = await client.getMemorixTier();
|
|
41
|
+
const internal = tier;
|
|
42
|
+
if (internal.client)
|
|
43
|
+
return internal.client;
|
|
44
|
+
return connectMemorixMongo(client.processEnv);
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=writer-health.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"writer-health.js","sourceRoot":"","sources":["../../src/health/writer-health.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAO7D,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,MAA2B,EAC3B,UAAyC,EAAE;IAE3C,IAAI,CAAC;QACH,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;YACvB,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,cAAc,EAAE,CAAC;YAC3C,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;gBACvB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,+BAA+B,EAAE,CAAC;YACjE,CAAC;QACH,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAC3B,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,6BAA6B,EAAE,CAAC;QAC/D,CAAC;QAED,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;IACtB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO;YACL,EAAE,EAAE,KAAK;YACT,OAAO,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;SAC1D,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gCAAgC,CACpD,MAA2B;IAE3B,MAAM,OAAO,GAAG,MAAM,CAAC,cAAc,CAAC;IACtC,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACpC,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAClC,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;QACtB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,+BAA+B,EAAE,CAAC;IACjE,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;AACtB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,MAA2B;IAE3B,OAAO,GAAG,EAAE,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,+BAA+B,CACnD,MAA2B;IAE3B,OAAO,GAAG,EAAE,CAAC,gCAAgC,CAAC,MAAM,CAAC,CAAC;AACxD,CAAC;AAED,iEAAiE;AACjE,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,MAA2B;IAE3B,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,cAAc,EAAE,CAAC;IAC3C,MAAM,QAAQ,GAAG,IAAkD,CAAC;IACpE,IAAI,QAAQ,CAAC,MAAM;QAAE,OAAO,QAAQ,CAAC,MAAM,CAAC;IAC5C,OAAO,mBAAmB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;AAChD,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -2,7 +2,13 @@ export { createMemorixWriter } from "./client/create-client.js";
|
|
|
2
2
|
export { createMemorixWriterFromEnv } from "./client/create-from-env.js";
|
|
3
3
|
export { writeMemorixRecord } from "./writer/write-record.js";
|
|
4
4
|
export { writeMemorixRecords } from "./writer/write-records.js";
|
|
5
|
+
export { writeMaterializedRollup } from "./writer/write-materialized-rollup.js";
|
|
5
6
|
export { validateMemorixWrite } from "./writer/validate-write.js";
|
|
7
|
+
export { isBulkWriteEligible, bulkWriteMemorixRecords } from "./writer/bulk-write-records.js";
|
|
8
|
+
export { appendOutboxEvent, createMemorixOutboxStore, getOutboxHealth, type MemorixOutboxStore, type OutboxEventEnvelope, type AppendOutboxEventRequest, type AppendOutboxEventResult, } from "./outbox/append-outbox-event.js";
|
|
9
|
+
export { getMemorixWriterHealth, probeMemorixContentStorageHealth, createWriterHealthProbe, createContentStorageHealthProbe, } from "./health/writer-health.js";
|
|
10
|
+
/** Alias for artifact pointer writes. */
|
|
11
|
+
export { writeMemorixContentObject as writeArtifact } from "./content/write-content-object.js";
|
|
6
12
|
export { loadMemorixWriteDescriptor } from "./descriptors/load-write-descriptor.js";
|
|
7
13
|
export { loadMemorixEntityDescriptor } from "./descriptors/load-entity-descriptor.js";
|
|
8
14
|
export { resolveMemorixWriteCollectionName, resolveMemorixWriteTargetCollection, buildMemorixWriteCollectionCandidates, resolveEntityType, resolveEntityName, } from "./data/collection-name.js";
|
|
@@ -18,7 +24,11 @@ export { writeGraphRunResult } from "./graph-runs/write-result.js";
|
|
|
18
24
|
export { clearGraphRun } from "./graph-runs/clear-run.js";
|
|
19
25
|
export { ensureGraphRunIndexes } from "./graph-runs/ensure-indexes.js";
|
|
20
26
|
export { GRAPH_RUNS_FIELD, graphRunDotPath } from "./graph-runs/constants.js";
|
|
21
|
-
export { resolveRecordCollection, resolveCollectionFromRef, resolvePersistencyCollection, resolvePersistencyRecordId, deriveSiblingCollectionName, resolveCollectionFormula, } from "./graph-runs/resolve-record-collection.js";
|
|
27
|
+
export { resolveRecordCollection, resolveCollectionFromRef, resolvePersistencyCollection, resolvePersistencyRecordId, deriveSiblingCollectionName, resolveCollectionFormula, resolveIdFieldForTarget, } from "./graph-runs/resolve-record-collection.js";
|
|
28
|
+
export type { ResolvedRecordCollection } from "./graph-runs/resolve-record-collection.js";
|
|
29
|
+
export { buildRecordRefLookupCandidates, buildRecordRefLookupFilter, buildIdentityValueLookupCandidates, buildPersistencyResultLookupFilter, findRecordByLookupCandidates, findRecordByRef, } from "./data/record-lookup.js";
|
|
30
|
+
export type { RecordLookupCandidate, FindRecordByLookupResult, } from "./data/record-lookup.js";
|
|
31
|
+
export { buildGraphRunResultRecord } from "./graph-runs/build-result-record.js";
|
|
22
32
|
export { graphRunLogContext } from "./graph-runs/logging.js";
|
|
23
33
|
export { markJobTypeRunStarted } from "./job-type-runs/mark-started.js";
|
|
24
34
|
export { markJobTypeRunFailed } from "./job-type-runs/mark-failed.js";
|
|
@@ -40,7 +50,8 @@ export type { MarkJobTypeRunCompletedOptions, MarkJobTypeRunCompletedResult, } f
|
|
|
40
50
|
export type { EnsureJobTypeRunIndexesResult } from "./job-type-runs/ensure-indexes.js";
|
|
41
51
|
export type { JobTypeRunLogContext } from "./job-type-runs/logging.js";
|
|
42
52
|
export type { GraphRunStatus, GraphRunResultPointer, GraphRunError, GraphRunEntry, GraphRunsField, JobTypeRunsField, MemorixRecordRef, PersistencyRecordIdSource, PersistencyLinkIntent, PersistencyTarget, } from "@x12i/memorix-descriptors/types";
|
|
43
|
-
export type { MemorixWriterClient, CreateMemorixWriterOptions, CreateMemorixWriterFromEnvOptions, CataloxLike, MemorixObjectWriterLike, MemorixContentWriterRegistry, MemorixRetrievalClient, MemorixWriterDefaults, WriteMemorixRecordRequest, WriteMemorixRecordResponse, WriteMemorixRecordsRequest, WriteMemorixRecordsResponse, ValidateMemorixWriteResponse, } from "./client/types.js";
|
|
53
|
+
export type { MemorixWriterClient, CreateMemorixWriterOptions, CreateMemorixWriterFromEnvOptions, CataloxLike, MemorixObjectWriterLike, MemorixContentWriterRegistry, MemorixRetrievalClient, MemorixWriterDefaults, WriteMemorixRecordRequest, WriteMemorixRecordResponse, WriteMemorixRecordsRequest, WriteMemorixRecordsResponse, ValidateMemorixWriteResponse, AfterWriteHook, } from "./client/types.js";
|
|
54
|
+
export type { MaterializedRollupEnvelope, WriteMaterializedRollupRequest, WriteMaterializedRollupResponse, } from "./writer/write-materialized-rollup.js";
|
|
44
55
|
export type { MemorixWriteDescriptor, MemorixWriteFieldDescriptor, MemorixIdempotencyDescriptor, } from "./descriptors/write-descriptor-types.js";
|
|
45
56
|
export type { MemorixEntityDescriptor, MemorixContentObject, MemorixContentStorageDescriptor, MemorixContentTypeDescriptor, MemorixPropertyDescriptor, } from "./descriptors/entity-descriptor-types.js";
|
|
46
57
|
export type { MemorixWriteIssue } from "./errors/issues.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -2,7 +2,13 @@ export { createMemorixWriter } from "./client/create-client.js";
|
|
|
2
2
|
export { createMemorixWriterFromEnv } from "./client/create-from-env.js";
|
|
3
3
|
export { writeMemorixRecord } from "./writer/write-record.js";
|
|
4
4
|
export { writeMemorixRecords } from "./writer/write-records.js";
|
|
5
|
+
export { writeMaterializedRollup } from "./writer/write-materialized-rollup.js";
|
|
5
6
|
export { validateMemorixWrite } from "./writer/validate-write.js";
|
|
7
|
+
export { isBulkWriteEligible, bulkWriteMemorixRecords } from "./writer/bulk-write-records.js";
|
|
8
|
+
export { appendOutboxEvent, createMemorixOutboxStore, getOutboxHealth, } from "./outbox/append-outbox-event.js";
|
|
9
|
+
export { getMemorixWriterHealth, probeMemorixContentStorageHealth, createWriterHealthProbe, createContentStorageHealthProbe, } from "./health/writer-health.js";
|
|
10
|
+
/** Alias for artifact pointer writes. */
|
|
11
|
+
export { writeMemorixContentObject as writeArtifact } from "./content/write-content-object.js";
|
|
6
12
|
export { loadMemorixWriteDescriptor } from "./descriptors/load-write-descriptor.js";
|
|
7
13
|
export { loadMemorixEntityDescriptor } from "./descriptors/load-entity-descriptor.js";
|
|
8
14
|
export { resolveMemorixWriteCollectionName, resolveMemorixWriteTargetCollection, buildMemorixWriteCollectionCandidates, resolveEntityType, resolveEntityName, } from "./data/collection-name.js";
|
|
@@ -17,7 +23,9 @@ export { writeGraphRunResult } from "./graph-runs/write-result.js";
|
|
|
17
23
|
export { clearGraphRun } from "./graph-runs/clear-run.js";
|
|
18
24
|
export { ensureGraphRunIndexes } from "./graph-runs/ensure-indexes.js";
|
|
19
25
|
export { GRAPH_RUNS_FIELD, graphRunDotPath } from "./graph-runs/constants.js";
|
|
20
|
-
export { resolveRecordCollection, resolveCollectionFromRef, resolvePersistencyCollection, resolvePersistencyRecordId, deriveSiblingCollectionName, resolveCollectionFormula, } from "./graph-runs/resolve-record-collection.js";
|
|
26
|
+
export { resolveRecordCollection, resolveCollectionFromRef, resolvePersistencyCollection, resolvePersistencyRecordId, deriveSiblingCollectionName, resolveCollectionFormula, resolveIdFieldForTarget, } from "./graph-runs/resolve-record-collection.js";
|
|
27
|
+
export { buildRecordRefLookupCandidates, buildRecordRefLookupFilter, buildIdentityValueLookupCandidates, buildPersistencyResultLookupFilter, findRecordByLookupCandidates, findRecordByRef, } from "./data/record-lookup.js";
|
|
28
|
+
export { buildGraphRunResultRecord } from "./graph-runs/build-result-record.js";
|
|
21
29
|
export { graphRunLogContext } from "./graph-runs/logging.js";
|
|
22
30
|
export { markJobTypeRunStarted } from "./job-type-runs/mark-started.js";
|
|
23
31
|
export { markJobTypeRunFailed } from "./job-type-runs/mark-failed.js";
|
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;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ensure-indexes.d.ts","sourceRoot":"","sources":["../../src/job-type-runs/ensure-indexes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"ensure-indexes.d.ts","sourceRoot":"","sources":["../../src/job-type-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,6BAA6B,GAAG;IAC1C,EAAE,EAAE,IAAI,CAAC;IACT,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB,CAAC;AAEF,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,WAAW,EACnB,GAAG,EAAE,gBAAgB,EACrB,SAAS,EAAE,MAAM,EACjB,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,OAAO,CAAC,6BAA6B,CAAC,CAuCxC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { resolveMemorixDbName } from "../mongo/env.js";
|
|
2
|
-
import {
|
|
2
|
+
import { resolveRecordCollection } from "../graph-runs/resolve-record-collection.js";
|
|
3
3
|
import { jobTypeRunDotPath } from "./constants.js";
|
|
4
4
|
import { jobTypeRunLogContext } from "./logging.js";
|
|
5
5
|
export async function ensureJobTypeRunIndexes(client, ref, jobTypeId, env = process.env) {
|
|
@@ -11,12 +11,12 @@ export async function ensureJobTypeRunIndexes(client, ref, jobTypeId, env = proc
|
|
|
11
11
|
});
|
|
12
12
|
const resolved = resolveRecordCollection(ref);
|
|
13
13
|
const dbName = resolveMemorixDbName(resolved.target, env);
|
|
14
|
-
const
|
|
14
|
+
const identityIndexField = "identity.recordId";
|
|
15
15
|
const col = client.db(dbName).collection(resolved.collection);
|
|
16
|
-
const statusIndex = `${jobTypeRunDotPath(jobTypeId)}.
|
|
16
|
+
const statusIndex = `${jobTypeRunDotPath(jobTypeId)}.status_1_identity_recordId_1`;
|
|
17
17
|
const completedAtIndex = `${jobTypeRunDotPath(jobTypeId)}.completedAt_-1`;
|
|
18
18
|
const reprocessIndex = `${jobTypeRunDotPath(jobTypeId)}.status_1_completedAt_-1`;
|
|
19
|
-
await col.createIndex({ [jobTypeRunDotPath(jobTypeId) + ".status"]: 1, [
|
|
19
|
+
await col.createIndex({ [jobTypeRunDotPath(jobTypeId) + ".status"]: 1, [identityIndexField]: 1 }, { name: statusIndex });
|
|
20
20
|
await col.createIndex({ [jobTypeRunDotPath(jobTypeId) + ".completedAt"]: -1 }, { name: completedAtIndex });
|
|
21
21
|
await col.createIndex({
|
|
22
22
|
[jobTypeRunDotPath(jobTypeId) + ".status"]: 1,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ensure-indexes.js","sourceRoot":"","sources":["../../src/job-type-runs/ensure-indexes.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,
|
|
1
|
+
{"version":3,"file":"ensure-indexes.js","sourceRoot":"","sources":["../../src/job-type-runs/ensure-indexes.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,uBAAuB,EAAE,MAAM,4CAA4C,CAAC;AACrF,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AASpD,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,MAAmB,EACnB,GAAqB,EACrB,SAAiB,EACjB,MAAyB,OAAO,CAAC,GAAG;IAEpC,oBAAoB,CAAC;QACnB,QAAQ,EAAE,EAAE;QACZ,SAAS;QACT,SAAS,EAAE,GAAG;QACd,SAAS,EAAE,yBAAyB;KACrC,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,kBAAkB,GAAG,mBAAmB,CAAC;IAC/C,MAAM,GAAG,GAAG,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IAE9D,MAAM,WAAW,GAAG,GAAG,iBAAiB,CAAC,SAAS,CAAC,+BAA+B,CAAC;IACnF,MAAM,gBAAgB,GAAG,GAAG,iBAAiB,CAAC,SAAS,CAAC,iBAAiB,CAAC;IAC1E,MAAM,cAAc,GAAG,GAAG,iBAAiB,CAAC,SAAS,CAAC,0BAA0B,CAAC;IAEjF,MAAM,GAAG,CAAC,WAAW,CACnB,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,kBAAkB,CAAC,EAAE,CAAC,EAAE,EAC1E,EAAE,IAAI,EAAE,WAAW,EAAE,CACtB,CAAC;IACF,MAAM,GAAG,CAAC,WAAW,CACnB,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC,GAAG,cAAc,CAAC,EAAE,CAAC,CAAC,EAAE,EACvD,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAC3B,CAAC;IACF,MAAM,GAAG,CAAC,WAAW,CACnB;QACE,CAAC,iBAAiB,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC,EAAE,CAAC;QAC7C,CAAC,iBAAiB,CAAC,SAAS,CAAC,GAAG,cAAc,CAAC,EAAE,CAAC,CAAC;KACpD,EACD,EAAE,IAAI,EAAE,cAAc,EAAE,CACzB,CAAC;IAEF,OAAO;QACL,EAAE,EAAE,IAAI;QACR,UAAU,EAAE,QAAQ,CAAC,UAAU;QAC/B,SAAS;QACT,OAAO,EAAE,CAAC,WAAW,EAAE,gBAAgB,EAAE,cAAc,CAAC;KACzD,CAAC;AACJ,CAAC"}
|
|
@@ -27,6 +27,13 @@ export declare function insertMemorixCollectionDocument(tier: MemorixDataTier, a
|
|
|
27
27
|
}): Promise<{
|
|
28
28
|
insertedId: unknown;
|
|
29
29
|
}>;
|
|
30
|
+
export declare function bulkInsertMemorixCollectionDocuments(tier: MemorixDataTier, args: {
|
|
31
|
+
collection: string;
|
|
32
|
+
documents: Record<string, unknown>[];
|
|
33
|
+
session?: ClientSession;
|
|
34
|
+
}): Promise<{
|
|
35
|
+
insertedCount: number;
|
|
36
|
+
}>;
|
|
30
37
|
export declare function replaceMemorixCollectionDocument(tier: MemorixDataTier, args: {
|
|
31
38
|
collection: string;
|
|
32
39
|
filter: Record<string, unknown>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collection-documents.d.ts","sourceRoot":"","sources":["../../src/mongo/collection-documents.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"collection-documents.d.ts","sourceRoot":"","sources":["../../src/mongo/collection-documents.ts"],"names":[],"mappings":"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"}
|
|
@@ -75,6 +75,17 @@ export async function insertMemorixCollectionDocument(tier, args) {
|
|
|
75
75
|
});
|
|
76
76
|
return { insertedId: r.insertedId };
|
|
77
77
|
}
|
|
78
|
+
export async function bulkInsertMemorixCollectionDocuments(tier, args) {
|
|
79
|
+
assertTierReady(tier);
|
|
80
|
+
if (!args.documents.length)
|
|
81
|
+
return { insertedCount: 0 };
|
|
82
|
+
const col = tier.db.collection(resolveCollection(args.collection));
|
|
83
|
+
const r = await col.insertMany(args.documents, {
|
|
84
|
+
ordered: true,
|
|
85
|
+
...(args.session ? { session: args.session } : {}),
|
|
86
|
+
});
|
|
87
|
+
return { insertedCount: r.insertedCount };
|
|
88
|
+
}
|
|
78
89
|
export async function replaceMemorixCollectionDocument(tier, args) {
|
|
79
90
|
assertTierReady(tier);
|
|
80
91
|
const col = tier.db.collection(resolveCollection(args.collection));
|
|
@@ -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":"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"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import type { MongoClient } from "mongodb";
|
|
2
|
+
import type { MemorixTarget } from "../mongo/target.js";
|
|
3
|
+
export type OutboxEventStatus = "pending" | "delivered" | "failed" | "dead";
|
|
4
|
+
export type OutboxEventEnvelope = {
|
|
5
|
+
eventId: string;
|
|
6
|
+
type: string;
|
|
7
|
+
payload: Record<string, unknown>;
|
|
8
|
+
idempotencyKey?: string;
|
|
9
|
+
status: OutboxEventStatus;
|
|
10
|
+
attempts: number;
|
|
11
|
+
nextRetryAt?: string;
|
|
12
|
+
createdAt: string;
|
|
13
|
+
updatedAt: string;
|
|
14
|
+
target: MemorixTarget;
|
|
15
|
+
lastError?: string;
|
|
16
|
+
};
|
|
17
|
+
export type AppendOutboxEventRequest = {
|
|
18
|
+
type: string;
|
|
19
|
+
payload: Record<string, unknown>;
|
|
20
|
+
idempotencyKey?: string;
|
|
21
|
+
target?: MemorixTarget;
|
|
22
|
+
};
|
|
23
|
+
export type AppendOutboxEventResult = {
|
|
24
|
+
ok: boolean;
|
|
25
|
+
event: OutboxEventEnvelope;
|
|
26
|
+
deduplicated?: boolean;
|
|
27
|
+
};
|
|
28
|
+
export type MemorixOutboxStore = {
|
|
29
|
+
append(request: AppendOutboxEventRequest): Promise<AppendOutboxEventResult>;
|
|
30
|
+
health(): Promise<{
|
|
31
|
+
ok: boolean;
|
|
32
|
+
message?: string;
|
|
33
|
+
}>;
|
|
34
|
+
};
|
|
35
|
+
export type CreateMemorixOutboxStoreOptions = {
|
|
36
|
+
mongo: MongoClient;
|
|
37
|
+
processEnv?: NodeJS.ProcessEnv;
|
|
38
|
+
collectionName?: string;
|
|
39
|
+
};
|
|
40
|
+
export declare function createMemorixOutboxStore(options: CreateMemorixOutboxStoreOptions): MemorixOutboxStore;
|
|
41
|
+
export declare function appendOutboxEvent(store: MemorixOutboxStore, request: AppendOutboxEventRequest): Promise<AppendOutboxEventResult>;
|
|
42
|
+
export declare function getOutboxHealth(store: MemorixOutboxStore): Promise<{
|
|
43
|
+
ok: boolean;
|
|
44
|
+
message?: string;
|
|
45
|
+
}>;
|
|
46
|
+
//# sourceMappingURL=append-outbox-event.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"append-outbox-event.d.ts","sourceRoot":"","sources":["../../src/outbox/append-outbox-event.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGxD,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE5E,MAAM,MAAM,mBAAmB,GAAG;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,iBAAiB,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,aAAa,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,aAAa,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,EAAE,EAAE,OAAO,CAAC;IACZ,KAAK,EAAE,mBAAmB,CAAC;IAC3B,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,CAAC;AAIF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,MAAM,CAAC,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAC;IAC5E,MAAM,IAAI,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACtD,CAAC;AAEF,MAAM,MAAM,+BAA+B,GAAG;IAC5C,KAAK,EAAE,WAAW,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IAC/B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,+BAA+B,GACvC,kBAAkB,CAmDpB;AAED,wBAAsB,iBAAiB,CACrC,KAAK,EAAE,kBAAkB,EACzB,OAAO,EAAE,wBAAwB,GAChC,OAAO,CAAC,uBAAuB,CAAC,CAElC;AAED,wBAAsB,eAAe,CACnC,KAAK,EAAE,kBAAkB,GACxB,OAAO,CAAC;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAE5C"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { randomUUID } from "node:crypto";
|
|
2
|
+
import { resolveMemorixDbName } from "../mongo/env.js";
|
|
3
|
+
const DEFAULT_OUTBOX_COLLECTION = "_memorixOutbox";
|
|
4
|
+
export function createMemorixOutboxStore(options) {
|
|
5
|
+
const env = options.processEnv ?? process.env;
|
|
6
|
+
const collectionName = options.collectionName ?? DEFAULT_OUTBOX_COLLECTION;
|
|
7
|
+
const collection = (target) => options.mongo
|
|
8
|
+
.db(resolveMemorixDbName(target, env))
|
|
9
|
+
.collection(collectionName);
|
|
10
|
+
return {
|
|
11
|
+
async append(request) {
|
|
12
|
+
const target = request.target ?? "entity";
|
|
13
|
+
const col = collection(target);
|
|
14
|
+
const now = new Date().toISOString();
|
|
15
|
+
if (request.idempotencyKey) {
|
|
16
|
+
const existing = await col.findOne({ idempotencyKey: request.idempotencyKey });
|
|
17
|
+
if (existing) {
|
|
18
|
+
return { ok: true, event: existing, deduplicated: true };
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
const event = {
|
|
22
|
+
eventId: randomUUID(),
|
|
23
|
+
type: request.type,
|
|
24
|
+
payload: request.payload,
|
|
25
|
+
idempotencyKey: request.idempotencyKey,
|
|
26
|
+
status: "pending",
|
|
27
|
+
attempts: 0,
|
|
28
|
+
createdAt: now,
|
|
29
|
+
updatedAt: now,
|
|
30
|
+
target,
|
|
31
|
+
};
|
|
32
|
+
await col.insertOne(event);
|
|
33
|
+
return { ok: true, event };
|
|
34
|
+
},
|
|
35
|
+
async health() {
|
|
36
|
+
try {
|
|
37
|
+
await options.mongo.db("admin").command({ ping: 1 });
|
|
38
|
+
await collection("entity").estimatedDocumentCount();
|
|
39
|
+
return { ok: true };
|
|
40
|
+
}
|
|
41
|
+
catch (err) {
|
|
42
|
+
return {
|
|
43
|
+
ok: false,
|
|
44
|
+
message: err instanceof Error ? err.message : String(err),
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
},
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
export async function appendOutboxEvent(store, request) {
|
|
51
|
+
return store.append(request);
|
|
52
|
+
}
|
|
53
|
+
export async function getOutboxHealth(store) {
|
|
54
|
+
return store.health();
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=append-outbox-event.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"append-outbox-event.js","sourceRoot":"","sources":["../../src/outbox/append-outbox-event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzC,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AA+BvD,MAAM,yBAAyB,GAAG,gBAAgB,CAAC;AAanD,MAAM,UAAU,wBAAwB,CACtC,OAAwC;IAExC,MAAM,GAAG,GAAG,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,GAAG,CAAC;IAC9C,MAAM,cAAc,GAAG,OAAO,CAAC,cAAc,IAAI,yBAAyB,CAAC;IAE3E,MAAM,UAAU,GAAG,CAAC,MAAqB,EAAE,EAAE,CAC3C,OAAO,CAAC,KAAK;SACV,EAAE,CAAC,oBAAoB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;SACrC,UAAU,CAAsB,cAAc,CAAC,CAAC;IAErD,OAAO;QACL,KAAK,CAAC,MAAM,CAAC,OAAiC;YAC5C,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,QAAQ,CAAC;YAC1C,MAAM,GAAG,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;YAC/B,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YAErC,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;gBAC3B,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,EAAE,cAAc,EAAE,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;gBAC/E,IAAI,QAAQ,EAAE,CAAC;oBACb,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;gBAC3D,CAAC;YACH,CAAC;YAED,MAAM,KAAK,GAAwB;gBACjC,OAAO,EAAE,UAAU,EAAE;gBACrB,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,cAAc,EAAE,OAAO,CAAC,cAAc;gBACtC,MAAM,EAAE,SAAS;gBACjB,QAAQ,EAAE,CAAC;gBACX,SAAS,EAAE,GAAG;gBACd,SAAS,EAAE,GAAG;gBACd,MAAM;aACP,CAAC;YAEF,MAAM,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YAC3B,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;QAC7B,CAAC;QAED,KAAK,CAAC,MAAM;YACV,IAAI,CAAC;gBACH,MAAM,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;gBACrD,MAAM,UAAU,CAAC,QAAQ,CAAC,CAAC,sBAAsB,EAAE,CAAC;gBACpD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;YACtB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO;oBACL,EAAE,EAAE,KAAK;oBACT,OAAO,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;iBAC1D,CAAC;YACJ,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,KAAyB,EACzB,OAAiC;IAEjC,OAAO,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AAC/B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,KAAyB;IAEzB,OAAO,KAAK,CAAC,MAAM,EAAE,CAAC;AACxB,CAAC"}
|
|
@@ -4,13 +4,29 @@ export function applyRecordAnnotations(args) {
|
|
|
4
4
|
applyEnvelopeMetadata(args.record, args.request, args.metadataRootPath);
|
|
5
5
|
applyNarratives(args.record, args.request.narratives, args.now);
|
|
6
6
|
}
|
|
7
|
+
function readPathObject(record, path) {
|
|
8
|
+
const existing = path.includes(".")
|
|
9
|
+
? path.split(".").reduce((acc, part) => {
|
|
10
|
+
if (acc == null || typeof acc !== "object" || Array.isArray(acc))
|
|
11
|
+
return undefined;
|
|
12
|
+
return acc[part];
|
|
13
|
+
}, record)
|
|
14
|
+
: record[path];
|
|
15
|
+
return existing && typeof existing === "object" && !Array.isArray(existing)
|
|
16
|
+
? { ...existing }
|
|
17
|
+
: {};
|
|
18
|
+
}
|
|
19
|
+
function writePathObject(record, path, value) {
|
|
20
|
+
if (path.includes(".")) {
|
|
21
|
+
deepSet(record, path, value);
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
record[path] = value;
|
|
25
|
+
}
|
|
7
26
|
function applyEnvelopeMetadata(record, request, metadataRootPath) {
|
|
8
27
|
if (!request.metadata && !request.tags?.length)
|
|
9
28
|
return;
|
|
10
|
-
const
|
|
11
|
-
const envelope = existing && typeof existing === "object" && !Array.isArray(existing)
|
|
12
|
-
? { ...existing }
|
|
13
|
-
: {};
|
|
29
|
+
const envelope = readPathObject(record, metadataRootPath);
|
|
14
30
|
if (request.metadata) {
|
|
15
31
|
const current = envelope.metadata &&
|
|
16
32
|
typeof envelope.metadata === "object" &&
|
|
@@ -25,7 +41,7 @@ function applyEnvelopeMetadata(record, request, metadataRootPath) {
|
|
|
25
41
|
: [];
|
|
26
42
|
envelope.tags = [...new Set([...currentTags, ...normalizeTags(request.tags)])];
|
|
27
43
|
}
|
|
28
|
-
record
|
|
44
|
+
writePathObject(record, metadataRootPath, envelope);
|
|
29
45
|
}
|
|
30
46
|
function applyNarratives(record, narratives, now) {
|
|
31
47
|
if (!narratives)
|
|
@@ -40,7 +56,7 @@ function applyNarratives(record, narratives, now) {
|
|
|
40
56
|
addedAt: value.addedAt ?? now,
|
|
41
57
|
...value,
|
|
42
58
|
};
|
|
43
|
-
deepSet(record, `narratives.${key}`, entry);
|
|
59
|
+
deepSet(record, `_system.narratives.${key}`, entry);
|
|
44
60
|
}
|
|
45
61
|
}
|
|
46
62
|
function normalizeTags(tags) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apply-record-annotations.js","sourceRoot":"","sources":["../../src/writer/apply-record-annotations.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAEtD,MAAM,gBAAgB,GAAG,wBAAwB,CAAC;AAElD,MAAM,UAAU,sBAAsB,CAAC,IAKtC;IACC,qBAAqB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACxE,eAAe,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;AAClE,CAAC;AAED,SAAS,
|
|
1
|
+
{"version":3,"file":"apply-record-annotations.js","sourceRoot":"","sources":["../../src/writer/apply-record-annotations.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apply-timestamps.d.ts","sourceRoot":"","sources":["../../src/writer/apply-timestamps.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0CAA0C,CAAC;
|
|
1
|
+
{"version":3,"file":"apply-timestamps.d.ts","sourceRoot":"","sources":["../../src/writer/apply-timestamps.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0CAA0C,CAAC;AAGvF,wBAAgB,eAAe,CAAC,IAAI,EAAE;IACpC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,eAAe,EAAE,sBAAsB,CAAC;IACxC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,OAAO,CAAC;CAChB,GAAG,IAAI,CAWP"}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
|
+
import { deepSet } from "../utils/path.js";
|
|
1
2
|
export function applyTimestamps(args) {
|
|
2
|
-
const createdPath = args.writeDescriptor.timestamps?.createdAtPath ?? "createdAt";
|
|
3
|
-
const updatedPath = args.writeDescriptor.timestamps?.updatedAtPath ?? "modifiedAt";
|
|
3
|
+
const createdPath = args.writeDescriptor.timestamps?.createdAtPath ?? "lifecycle.createdAt";
|
|
4
|
+
const updatedPath = args.writeDescriptor.timestamps?.updatedAtPath ?? "lifecycle.modifiedAt";
|
|
4
5
|
const source = args.writeDescriptor.timestamps?.writeTimeSource ?? "server";
|
|
5
6
|
if (source === "server") {
|
|
6
7
|
if (args.isNew) {
|
|
7
|
-
args.record
|
|
8
|
+
deepSet(args.record, createdPath, args.now);
|
|
8
9
|
}
|
|
9
|
-
args.record
|
|
10
|
+
deepSet(args.record, updatedPath, args.now);
|
|
10
11
|
}
|
|
11
12
|
}
|
|
12
13
|
//# sourceMappingURL=apply-timestamps.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apply-timestamps.js","sourceRoot":"","sources":["../../src/writer/apply-timestamps.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"apply-timestamps.js","sourceRoot":"","sources":["../../src/writer/apply-timestamps.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAE3C,MAAM,UAAU,eAAe,CAAC,IAK/B;IACC,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,aAAa,IAAI,qBAAqB,CAAC;IAC5F,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,aAAa,IAAI,sBAAsB,CAAC;IAC7F,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,eAAe,IAAI,QAAQ,CAAC;IAE5E,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;QACxB,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QAC9C,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;IAC9C,CAAC;AACH,CAAC"}
|
|
@@ -2,16 +2,31 @@ import type { MemorixEntityDescriptor } from "../descriptors/entity-descriptor-t
|
|
|
2
2
|
import type { MemorixWriteDescriptor } from "../descriptors/write-descriptor-types.js";
|
|
3
3
|
import type { ResolvedIdentity } from "../data/identity.js";
|
|
4
4
|
import type { MemorixWriterDefaults } from "../client/types.js";
|
|
5
|
+
export declare const MEMORIX_RECORD_VERSION = "memorix-record.vnext";
|
|
5
6
|
export type MemorixWrittenRecordBase = {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
7
|
+
identity: {
|
|
8
|
+
recordId: string;
|
|
9
|
+
target: "entity" | "event" | "knowledge";
|
|
10
|
+
targetId: string;
|
|
11
|
+
objectType: string;
|
|
12
|
+
contentType: string;
|
|
13
|
+
version: string;
|
|
14
|
+
};
|
|
15
|
+
lifecycle: {
|
|
16
|
+
createdAt: string;
|
|
17
|
+
modifiedAt: string;
|
|
18
|
+
status: "active";
|
|
19
|
+
};
|
|
20
|
+
concept: {
|
|
21
|
+
kind: string;
|
|
22
|
+
name: string;
|
|
23
|
+
};
|
|
12
24
|
data: Record<string, unknown>;
|
|
13
|
-
|
|
25
|
+
_system?: Record<string, unknown>;
|
|
14
26
|
};
|
|
27
|
+
export declare function readWrittenRecordId(record: Record<string, unknown>): string;
|
|
28
|
+
export declare function mapIdentityQueryPath(field: string): string;
|
|
29
|
+
export declare function buildIdentityFilter(identity: ResolvedIdentity): Record<string, unknown>;
|
|
15
30
|
export declare function buildBaseRecord(args: {
|
|
16
31
|
identity: ResolvedIdentity;
|
|
17
32
|
writeDescriptor: MemorixWriteDescriptor;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build-record.d.ts","sourceRoot":"","sources":["../../src/writer/build-record.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,2CAA2C,CAAC;AACzF,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0CAA0C,CAAC;AACvF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAGhE,MAAM,MAAM,wBAAwB,GAAG;IACrC,QAAQ,
|
|
1
|
+
{"version":3,"file":"build-record.d.ts","sourceRoot":"","sources":["../../src/writer/build-record.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,2CAA2C,CAAC;AACzF,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0CAA0C,CAAC;AACvF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAGhE,eAAO,MAAM,sBAAsB,yBAAyB,CAAC;AAE7D,MAAM,MAAM,wBAAwB,GAAG;IACrC,QAAQ,EAAE;QACR,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,QAAQ,GAAG,OAAO,GAAG,WAAW,CAAC;QACzC,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,SAAS,EAAE;QACT,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;QACnB,MAAM,EAAE,QAAQ,CAAC;KAClB,CAAC;IACF,OAAO,EAAE;QACP,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC,CAAC;AAUF,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAM3E;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAM1D;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEvF;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE;IACpC,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,eAAe,EAAE,sBAAsB,CAAC;IACxC,MAAM,EAAE,uBAAuB,CAAC;IAChC,QAAQ,EAAE,qBAAqB,CAAC;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,SAAS,EAAE,MAAM,CAAC;CACnB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAgD1B;AAED,wBAAgB,cAAc,CAC5B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,IAAI,EAAE,MAAM,EACZ,IAAI,SAAgC,GACnC,IAAI,CAEN"}
|
|
@@ -1,20 +1,55 @@
|
|
|
1
1
|
import { randomUUID } from "node:crypto";
|
|
2
2
|
import { deepSet } from "../utils/path.js";
|
|
3
|
+
export const MEMORIX_RECORD_VERSION = "memorix-record.vnext";
|
|
4
|
+
function targetFromIdField(idField) {
|
|
5
|
+
if (idField === "eventId")
|
|
6
|
+
return "event";
|
|
7
|
+
if (idField === "knowledgeId")
|
|
8
|
+
return "knowledge";
|
|
9
|
+
return "entity";
|
|
10
|
+
}
|
|
11
|
+
export function readWrittenRecordId(record) {
|
|
12
|
+
const identity = record.identity;
|
|
13
|
+
if (typeof identity?.recordId === "string" && identity.recordId.trim()) {
|
|
14
|
+
return identity.recordId.trim();
|
|
15
|
+
}
|
|
16
|
+
return "";
|
|
17
|
+
}
|
|
18
|
+
export function mapIdentityQueryPath(field) {
|
|
19
|
+
if (field === "recordId")
|
|
20
|
+
return "identity.recordId";
|
|
21
|
+
if (field === "entityId" || field === "eventId" || field === "knowledgeId") {
|
|
22
|
+
return "identity.targetId";
|
|
23
|
+
}
|
|
24
|
+
return field;
|
|
25
|
+
}
|
|
26
|
+
export function buildIdentityFilter(identity) {
|
|
27
|
+
return { "identity.targetId": identity.idValue };
|
|
28
|
+
}
|
|
3
29
|
export function buildBaseRecord(args) {
|
|
4
30
|
const recordId = args.recordId ?? `rec_${randomUUID().replace(/-/g, "")}`;
|
|
31
|
+
const target = targetFromIdField(args.identity.idField);
|
|
5
32
|
const metaPath = args.defaults.memorixMetadataPath;
|
|
6
33
|
const record = {
|
|
7
|
-
|
|
34
|
+
identity: {
|
|
35
|
+
recordId,
|
|
36
|
+
target,
|
|
37
|
+
targetId: args.identity.idValue,
|
|
38
|
+
objectType: args.entity.entityName,
|
|
39
|
+
contentType: args.writeDescriptor.target.contentType,
|
|
40
|
+
version: MEMORIX_RECORD_VERSION,
|
|
41
|
+
},
|
|
42
|
+
lifecycle: {
|
|
43
|
+
createdAt: args.now,
|
|
44
|
+
modifiedAt: args.now,
|
|
45
|
+
status: "active",
|
|
46
|
+
},
|
|
47
|
+
concept: {
|
|
48
|
+
kind: args.entity.entityName,
|
|
49
|
+
name: args.identity.idValue,
|
|
50
|
+
},
|
|
8
51
|
data: {},
|
|
9
|
-
[args.writeDescriptor.timestamps?.createdAtPath ?? "createdAt"]: args.now,
|
|
10
|
-
[args.writeDescriptor.timestamps?.updatedAtPath ?? "modifiedAt"]: args.now,
|
|
11
52
|
};
|
|
12
|
-
if (args.identity.entityId)
|
|
13
|
-
record.entityId = args.identity.entityId;
|
|
14
|
-
if (args.identity.eventId)
|
|
15
|
-
record.eventId = args.identity.eventId;
|
|
16
|
-
if (args.identity.knowledgeId)
|
|
17
|
-
record.knowledgeId = args.identity.knowledgeId;
|
|
18
53
|
const meta = {
|
|
19
54
|
entity: args.entity.entityName,
|
|
20
55
|
contentType: args.writeDescriptor.target.contentType,
|
|
@@ -29,10 +64,20 @@ export function buildBaseRecord(args) {
|
|
|
29
64
|
meta.source = args.source;
|
|
30
65
|
if (args.actor)
|
|
31
66
|
meta.actor = args.actor;
|
|
32
|
-
|
|
67
|
+
if (metaPath === "_system.memorix" || metaPath.startsWith("_system.")) {
|
|
68
|
+
deepSet(record, metaPath, meta);
|
|
69
|
+
}
|
|
70
|
+
else if (metaPath === "_memorix") {
|
|
71
|
+
const system = record._system ?? {};
|
|
72
|
+
system.memorix = meta;
|
|
73
|
+
record._system = system;
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
record[metaPath] = meta;
|
|
77
|
+
}
|
|
33
78
|
return record;
|
|
34
79
|
}
|
|
35
|
-
export function setPayloadHash(record, hash, path = "
|
|
80
|
+
export function setPayloadHash(record, hash, path = "_system.memorix.payloadHash") {
|
|
36
81
|
deepSet(record, path, hash);
|
|
37
82
|
}
|
|
38
83
|
//# sourceMappingURL=build-record.js.map
|