@x12i/memorix-writer 1.7.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/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/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/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/index.d.ts +5 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -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/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/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-record.d.ts.map +1 -1
- package/dist/writer/write-record.js +13 -13
- package/dist/writer/write-record.js.map +1 -1
- package/package.json +7 -4
- 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
|
@@ -85,42 +85,258 @@
|
|
|
85
85
|
}
|
|
86
86
|
],
|
|
87
87
|
"items": [
|
|
88
|
+
{
|
|
89
|
+
"catalogId": "memorix-write-descriptors",
|
|
90
|
+
"data": {
|
|
91
|
+
"operations": {
|
|
92
|
+
"default": "add",
|
|
93
|
+
"allowed": [
|
|
94
|
+
"add"
|
|
95
|
+
]
|
|
96
|
+
},
|
|
97
|
+
"identity": {
|
|
98
|
+
"idField": "eventId"
|
|
99
|
+
},
|
|
100
|
+
"id": "analytix-execution-write",
|
|
101
|
+
"title": "Write Analytix Execution Record",
|
|
102
|
+
"fields": {
|
|
103
|
+
"traceId": {
|
|
104
|
+
"inputPath": "traceId",
|
|
105
|
+
"valueType": "string",
|
|
106
|
+
"required": true,
|
|
107
|
+
"writable": true,
|
|
108
|
+
"target": {
|
|
109
|
+
"path": "data.traceId"
|
|
110
|
+
}
|
|
111
|
+
},
|
|
112
|
+
"analyticId": {
|
|
113
|
+
"inputPath": "analyticId",
|
|
114
|
+
"valueType": "string",
|
|
115
|
+
"required": true,
|
|
116
|
+
"writable": true,
|
|
117
|
+
"target": {
|
|
118
|
+
"path": "data.analyticId"
|
|
119
|
+
}
|
|
120
|
+
},
|
|
121
|
+
"cacheKey": {
|
|
122
|
+
"inputPath": "cacheKey",
|
|
123
|
+
"valueType": "string",
|
|
124
|
+
"required": true,
|
|
125
|
+
"writable": true,
|
|
126
|
+
"target": {
|
|
127
|
+
"path": "data.cacheKey"
|
|
128
|
+
}
|
|
129
|
+
},
|
|
130
|
+
"analyticType": {
|
|
131
|
+
"inputPath": "analyticType",
|
|
132
|
+
"valueType": "string",
|
|
133
|
+
"required": true,
|
|
134
|
+
"writable": true,
|
|
135
|
+
"target": {
|
|
136
|
+
"path": "data.analyticType"
|
|
137
|
+
}
|
|
138
|
+
},
|
|
139
|
+
"cacheHit": {
|
|
140
|
+
"inputPath": "cacheHit",
|
|
141
|
+
"valueType": "boolean",
|
|
142
|
+
"required": true,
|
|
143
|
+
"writable": true,
|
|
144
|
+
"target": {
|
|
145
|
+
"path": "data.cacheHit"
|
|
146
|
+
}
|
|
147
|
+
},
|
|
148
|
+
"startedAt": {
|
|
149
|
+
"inputPath": "startedAt",
|
|
150
|
+
"valueType": "string",
|
|
151
|
+
"required": true,
|
|
152
|
+
"writable": true,
|
|
153
|
+
"target": {
|
|
154
|
+
"path": "data.startedAt"
|
|
155
|
+
}
|
|
156
|
+
},
|
|
157
|
+
"durationMs": {
|
|
158
|
+
"inputPath": "durationMs",
|
|
159
|
+
"valueType": "number",
|
|
160
|
+
"required": true,
|
|
161
|
+
"writable": true,
|
|
162
|
+
"target": {
|
|
163
|
+
"path": "data.durationMs"
|
|
164
|
+
}
|
|
165
|
+
},
|
|
166
|
+
"finishedAt": {
|
|
167
|
+
"inputPath": "finishedAt",
|
|
168
|
+
"valueType": "string",
|
|
169
|
+
"required": true,
|
|
170
|
+
"writable": true,
|
|
171
|
+
"target": {
|
|
172
|
+
"path": "data.finishedAt"
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
},
|
|
176
|
+
"entity": "analytix-execution",
|
|
177
|
+
"return": {
|
|
178
|
+
"defaultMode": "summary"
|
|
179
|
+
},
|
|
180
|
+
"validation": {
|
|
181
|
+
"rejectUnknownFields": true
|
|
182
|
+
},
|
|
183
|
+
"target": {
|
|
184
|
+
"contentType": "execution"
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
},
|
|
188
|
+
{
|
|
189
|
+
"catalogId": "memorix-write-descriptors",
|
|
190
|
+
"data": {
|
|
191
|
+
"operations": {
|
|
192
|
+
"default": "upsert",
|
|
193
|
+
"allowed": [
|
|
194
|
+
"upsert"
|
|
195
|
+
]
|
|
196
|
+
},
|
|
197
|
+
"identity": {
|
|
198
|
+
"idField": "entityId"
|
|
199
|
+
},
|
|
200
|
+
"id": "analytix-result-cache-write",
|
|
201
|
+
"title": "Write Analytix Result Cache",
|
|
202
|
+
"fields": {
|
|
203
|
+
"result": {
|
|
204
|
+
"inputPath": "result",
|
|
205
|
+
"valueType": "object",
|
|
206
|
+
"required": true,
|
|
207
|
+
"writable": true,
|
|
208
|
+
"target": {
|
|
209
|
+
"path": "data.result"
|
|
210
|
+
}
|
|
211
|
+
},
|
|
212
|
+
"cacheKey": {
|
|
213
|
+
"inputPath": "cacheKey",
|
|
214
|
+
"valueType": "string",
|
|
215
|
+
"required": true,
|
|
216
|
+
"writable": true,
|
|
217
|
+
"target": {
|
|
218
|
+
"path": "data.cacheKey"
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
},
|
|
222
|
+
"entity": "analytix-cache",
|
|
223
|
+
"return": {
|
|
224
|
+
"defaultMode": "summary"
|
|
225
|
+
},
|
|
226
|
+
"validation": {
|
|
227
|
+
"rejectUnknownFields": true
|
|
228
|
+
},
|
|
229
|
+
"target": {
|
|
230
|
+
"contentType": "result-cache"
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
},
|
|
234
|
+
{
|
|
235
|
+
"catalogId": "memorix-write-descriptors",
|
|
236
|
+
"data": {
|
|
237
|
+
"operations": {
|
|
238
|
+
"default": "upsert",
|
|
239
|
+
"allowed": [
|
|
240
|
+
"upsert"
|
|
241
|
+
]
|
|
242
|
+
},
|
|
243
|
+
"identity": {
|
|
244
|
+
"idField": "entityId"
|
|
245
|
+
},
|
|
246
|
+
"id": "analytix-tier-output-write",
|
|
247
|
+
"title": "Write Analytix Tier Output",
|
|
248
|
+
"fields": {
|
|
249
|
+
"outputs": {
|
|
250
|
+
"inputPath": "outputs",
|
|
251
|
+
"valueType": "object",
|
|
252
|
+
"required": true,
|
|
253
|
+
"writable": true,
|
|
254
|
+
"target": {
|
|
255
|
+
"path": "data.outputs"
|
|
256
|
+
}
|
|
257
|
+
},
|
|
258
|
+
"tierId": {
|
|
259
|
+
"inputPath": "tierId",
|
|
260
|
+
"valueType": "string",
|
|
261
|
+
"required": true,
|
|
262
|
+
"writable": true,
|
|
263
|
+
"target": {
|
|
264
|
+
"path": "data.tierId"
|
|
265
|
+
}
|
|
266
|
+
},
|
|
267
|
+
"paramsKey": {
|
|
268
|
+
"inputPath": "paramsKey",
|
|
269
|
+
"valueType": "string",
|
|
270
|
+
"required": true,
|
|
271
|
+
"writable": true,
|
|
272
|
+
"target": {
|
|
273
|
+
"path": "data.paramsKey"
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
},
|
|
277
|
+
"entity": "analytix-cache",
|
|
278
|
+
"return": {
|
|
279
|
+
"defaultMode": "summary"
|
|
280
|
+
},
|
|
281
|
+
"validation": {
|
|
282
|
+
"rejectUnknownFields": true
|
|
283
|
+
},
|
|
284
|
+
"target": {
|
|
285
|
+
"contentType": "tier-output"
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
},
|
|
88
289
|
{
|
|
89
290
|
"catalogId": "memorix-write-descriptors",
|
|
90
291
|
"data": {
|
|
91
292
|
"id": "asset-analysis-write",
|
|
92
293
|
"entity": "assets",
|
|
93
294
|
"title": "Write Asset Analysis",
|
|
94
|
-
"target": {
|
|
295
|
+
"target": {
|
|
296
|
+
"contentType": "analysis"
|
|
297
|
+
},
|
|
95
298
|
"identity": {
|
|
96
299
|
"idField": "entityId",
|
|
97
300
|
"requireExistingCanonical": true
|
|
98
301
|
},
|
|
99
302
|
"operations": {
|
|
100
|
-
"allowed": [
|
|
303
|
+
"allowed": [
|
|
304
|
+
"add"
|
|
305
|
+
],
|
|
101
306
|
"default": "add"
|
|
102
307
|
},
|
|
103
308
|
"fields": {
|
|
104
309
|
"riskLevel": {
|
|
105
310
|
"label": "Risk Level",
|
|
106
311
|
"inputPath": "riskLevel",
|
|
107
|
-
"target": {
|
|
312
|
+
"target": {
|
|
313
|
+
"path": "data.riskLevel"
|
|
314
|
+
},
|
|
108
315
|
"required": true,
|
|
109
316
|
"writable": true,
|
|
110
317
|
"valueType": "enum",
|
|
111
|
-
"enumValues": [
|
|
318
|
+
"enumValues": [
|
|
319
|
+
"LOW",
|
|
320
|
+
"MEDIUM",
|
|
321
|
+
"HIGH",
|
|
322
|
+
"CRITICAL"
|
|
323
|
+
]
|
|
112
324
|
},
|
|
113
325
|
"summary": {
|
|
114
326
|
"label": "Summary",
|
|
115
327
|
"inputPath": "summary",
|
|
116
|
-
"target": {
|
|
328
|
+
"target": {
|
|
329
|
+
"path": "data.summary"
|
|
330
|
+
},
|
|
117
331
|
"writable": true,
|
|
118
332
|
"valueType": "string"
|
|
119
333
|
},
|
|
120
334
|
"investigationReport": {
|
|
121
335
|
"label": "Investigation Report",
|
|
122
336
|
"inputPath": "investigationReport",
|
|
123
|
-
"target": {
|
|
337
|
+
"target": {
|
|
338
|
+
"path": "data.investigationReport"
|
|
339
|
+
},
|
|
124
340
|
"writable": true,
|
|
125
341
|
"valueType": "content",
|
|
126
342
|
"content": {
|
|
@@ -144,7 +360,9 @@
|
|
|
144
360
|
},
|
|
145
361
|
"content": {
|
|
146
362
|
"allowed": true,
|
|
147
|
-
"allowedFields": [
|
|
363
|
+
"allowedFields": [
|
|
364
|
+
"investigationReport"
|
|
365
|
+
],
|
|
148
366
|
"generatePreview": true,
|
|
149
367
|
"previewMaxChars": 500,
|
|
150
368
|
"computeMetadata": true,
|
|
@@ -159,6 +377,83 @@
|
|
|
159
377
|
}
|
|
160
378
|
}
|
|
161
379
|
},
|
|
380
|
+
{
|
|
381
|
+
"catalogId": "memorix-write-descriptors",
|
|
382
|
+
"data": {
|
|
383
|
+
"id": "content-documents-chunk-write",
|
|
384
|
+
"entity": "content-documents",
|
|
385
|
+
"title": "Write Content Document Chunk",
|
|
386
|
+
"target": {
|
|
387
|
+
"kind": "knowledge",
|
|
388
|
+
"contentType": "chunks"
|
|
389
|
+
},
|
|
390
|
+
"identity": {
|
|
391
|
+
"idField": "knowledgeId",
|
|
392
|
+
"requireExistingCanonical": false
|
|
393
|
+
},
|
|
394
|
+
"operations": {
|
|
395
|
+
"allowed": [
|
|
396
|
+
"add"
|
|
397
|
+
],
|
|
398
|
+
"default": "add"
|
|
399
|
+
},
|
|
400
|
+
"fields": {
|
|
401
|
+
"text": {
|
|
402
|
+
"label": "Chunk text",
|
|
403
|
+
"inputPath": "text",
|
|
404
|
+
"target": {
|
|
405
|
+
"path": "data.text"
|
|
406
|
+
},
|
|
407
|
+
"required": true,
|
|
408
|
+
"writable": true,
|
|
409
|
+
"valueType": "string"
|
|
410
|
+
},
|
|
411
|
+
"sectionTitle": {
|
|
412
|
+
"label": "Section title",
|
|
413
|
+
"inputPath": "sectionTitle",
|
|
414
|
+
"target": {
|
|
415
|
+
"path": "data.sectionTitle"
|
|
416
|
+
},
|
|
417
|
+
"writable": true,
|
|
418
|
+
"valueType": "string"
|
|
419
|
+
},
|
|
420
|
+
"tokenCount": {
|
|
421
|
+
"label": "Token count",
|
|
422
|
+
"inputPath": "tokenCount",
|
|
423
|
+
"target": {
|
|
424
|
+
"path": "data.tokenCount"
|
|
425
|
+
},
|
|
426
|
+
"writable": true,
|
|
427
|
+
"valueType": "number"
|
|
428
|
+
},
|
|
429
|
+
"chunkIndex": {
|
|
430
|
+
"label": "Chunk index",
|
|
431
|
+
"inputPath": "chunkIndex",
|
|
432
|
+
"target": {
|
|
433
|
+
"path": "provenance.chunkIndex"
|
|
434
|
+
},
|
|
435
|
+
"writable": true,
|
|
436
|
+
"valueType": "number"
|
|
437
|
+
},
|
|
438
|
+
"contentHash": {
|
|
439
|
+
"label": "Parent content hash",
|
|
440
|
+
"inputPath": "contentHash",
|
|
441
|
+
"target": {
|
|
442
|
+
"path": "parent.contentHash"
|
|
443
|
+
},
|
|
444
|
+
"writable": true,
|
|
445
|
+
"valueType": "string"
|
|
446
|
+
}
|
|
447
|
+
},
|
|
448
|
+
"validation": {
|
|
449
|
+
"rejectUnknownFields": true,
|
|
450
|
+
"requireAtLeastOneWritableField": true
|
|
451
|
+
},
|
|
452
|
+
"return": {
|
|
453
|
+
"defaultMode": "summary"
|
|
454
|
+
}
|
|
455
|
+
}
|
|
456
|
+
},
|
|
162
457
|
{
|
|
163
458
|
"catalogId": "memorix-write-descriptors",
|
|
164
459
|
"data": {
|
|
@@ -174,63 +469,82 @@
|
|
|
174
469
|
"requireExistingCanonical": false
|
|
175
470
|
},
|
|
176
471
|
"operations": {
|
|
177
|
-
"allowed": [
|
|
472
|
+
"allowed": [
|
|
473
|
+
"add",
|
|
474
|
+
"upsert"
|
|
475
|
+
],
|
|
178
476
|
"default": "upsert"
|
|
179
477
|
},
|
|
180
478
|
"fields": {
|
|
181
479
|
"title": {
|
|
182
480
|
"label": "Title",
|
|
183
481
|
"inputPath": "title",
|
|
184
|
-
"target": {
|
|
482
|
+
"target": {
|
|
483
|
+
"path": "data.title"
|
|
484
|
+
},
|
|
185
485
|
"writable": true,
|
|
186
486
|
"valueType": "string"
|
|
187
487
|
},
|
|
188
488
|
"summary": {
|
|
189
489
|
"label": "Summary",
|
|
190
490
|
"inputPath": "summary",
|
|
191
|
-
"target": {
|
|
491
|
+
"target": {
|
|
492
|
+
"path": "data.summary"
|
|
493
|
+
},
|
|
192
494
|
"writable": true,
|
|
193
495
|
"valueType": "string"
|
|
194
496
|
},
|
|
195
497
|
"language": {
|
|
196
498
|
"label": "Language",
|
|
197
499
|
"inputPath": "language",
|
|
198
|
-
"target": {
|
|
500
|
+
"target": {
|
|
501
|
+
"path": "data.language"
|
|
502
|
+
},
|
|
199
503
|
"writable": true,
|
|
200
504
|
"valueType": "string"
|
|
201
505
|
},
|
|
202
506
|
"sourceKind": {
|
|
203
507
|
"label": "Source kind",
|
|
204
508
|
"inputPath": "sourceKind",
|
|
205
|
-
"target": {
|
|
509
|
+
"target": {
|
|
510
|
+
"path": "source.kind"
|
|
511
|
+
},
|
|
206
512
|
"writable": true,
|
|
207
513
|
"valueType": "string"
|
|
208
514
|
},
|
|
209
515
|
"sourceUri": {
|
|
210
516
|
"label": "Source URI",
|
|
211
517
|
"inputPath": "sourceUri",
|
|
212
|
-
"target": {
|
|
518
|
+
"target": {
|
|
519
|
+
"path": "source.uri"
|
|
520
|
+
},
|
|
213
521
|
"writable": true,
|
|
214
522
|
"valueType": "string"
|
|
215
523
|
},
|
|
216
524
|
"canonicalUri": {
|
|
217
525
|
"label": "Canonical URI",
|
|
218
526
|
"inputPath": "canonicalUri",
|
|
219
|
-
"target": {
|
|
527
|
+
"target": {
|
|
528
|
+
"path": "source.canonicalUri"
|
|
529
|
+
},
|
|
220
530
|
"writable": true,
|
|
221
531
|
"valueType": "string"
|
|
222
532
|
},
|
|
223
533
|
"contentHash": {
|
|
224
534
|
"label": "Content hash",
|
|
225
535
|
"inputPath": "contentHash",
|
|
226
|
-
"target": {
|
|
536
|
+
"target": {
|
|
537
|
+
"path": "provenance.contentHash"
|
|
538
|
+
},
|
|
227
539
|
"writable": true,
|
|
228
540
|
"valueType": "string"
|
|
229
541
|
},
|
|
230
542
|
"cleanMarkdown": {
|
|
231
543
|
"label": "Clean Markdown",
|
|
232
544
|
"inputPath": "cleanMarkdown",
|
|
233
|
-
"target": {
|
|
545
|
+
"target": {
|
|
546
|
+
"path": "content.cleanMarkdown"
|
|
547
|
+
},
|
|
234
548
|
"writable": true,
|
|
235
549
|
"valueType": "content",
|
|
236
550
|
"content": {
|
|
@@ -254,7 +568,9 @@
|
|
|
254
568
|
},
|
|
255
569
|
"content": {
|
|
256
570
|
"allowed": true,
|
|
257
|
-
"allowedFields": [
|
|
571
|
+
"allowedFields": [
|
|
572
|
+
"cleanMarkdown"
|
|
573
|
+
],
|
|
258
574
|
"generatePreview": true,
|
|
259
575
|
"previewMaxChars": 500,
|
|
260
576
|
"computeMetadata": true,
|
|
@@ -268,71 +584,6 @@
|
|
|
268
584
|
"defaultMode": "summary"
|
|
269
585
|
}
|
|
270
586
|
}
|
|
271
|
-
},
|
|
272
|
-
{
|
|
273
|
-
"catalogId": "memorix-write-descriptors",
|
|
274
|
-
"data": {
|
|
275
|
-
"id": "content-documents-chunk-write",
|
|
276
|
-
"entity": "content-documents",
|
|
277
|
-
"title": "Write Content Document Chunk",
|
|
278
|
-
"target": {
|
|
279
|
-
"kind": "knowledge",
|
|
280
|
-
"contentType": "chunks"
|
|
281
|
-
},
|
|
282
|
-
"identity": {
|
|
283
|
-
"idField": "knowledgeId",
|
|
284
|
-
"requireExistingCanonical": false
|
|
285
|
-
},
|
|
286
|
-
"operations": {
|
|
287
|
-
"allowed": ["add"],
|
|
288
|
-
"default": "add"
|
|
289
|
-
},
|
|
290
|
-
"fields": {
|
|
291
|
-
"text": {
|
|
292
|
-
"label": "Chunk text",
|
|
293
|
-
"inputPath": "text",
|
|
294
|
-
"target": { "path": "data.text" },
|
|
295
|
-
"required": true,
|
|
296
|
-
"writable": true,
|
|
297
|
-
"valueType": "string"
|
|
298
|
-
},
|
|
299
|
-
"sectionTitle": {
|
|
300
|
-
"label": "Section title",
|
|
301
|
-
"inputPath": "sectionTitle",
|
|
302
|
-
"target": { "path": "data.sectionTitle" },
|
|
303
|
-
"writable": true,
|
|
304
|
-
"valueType": "string"
|
|
305
|
-
},
|
|
306
|
-
"tokenCount": {
|
|
307
|
-
"label": "Token count",
|
|
308
|
-
"inputPath": "tokenCount",
|
|
309
|
-
"target": { "path": "data.tokenCount" },
|
|
310
|
-
"writable": true,
|
|
311
|
-
"valueType": "number"
|
|
312
|
-
},
|
|
313
|
-
"chunkIndex": {
|
|
314
|
-
"label": "Chunk index",
|
|
315
|
-
"inputPath": "chunkIndex",
|
|
316
|
-
"target": { "path": "provenance.chunkIndex" },
|
|
317
|
-
"writable": true,
|
|
318
|
-
"valueType": "number"
|
|
319
|
-
},
|
|
320
|
-
"contentHash": {
|
|
321
|
-
"label": "Parent content hash",
|
|
322
|
-
"inputPath": "contentHash",
|
|
323
|
-
"target": { "path": "parent.contentHash" },
|
|
324
|
-
"writable": true,
|
|
325
|
-
"valueType": "string"
|
|
326
|
-
}
|
|
327
|
-
},
|
|
328
|
-
"validation": {
|
|
329
|
-
"rejectUnknownFields": true,
|
|
330
|
-
"requireAtLeastOneWritableField": true
|
|
331
|
-
},
|
|
332
|
-
"return": {
|
|
333
|
-
"defaultMode": "summary"
|
|
334
|
-
}
|
|
335
|
-
}
|
|
336
587
|
}
|
|
337
588
|
]
|
|
338
589
|
}
|
package/dist/constants.d.ts
CHANGED
|
@@ -3,11 +3,11 @@ export declare const DEFAULT_MEMORIX_APP_ID = "memorix";
|
|
|
3
3
|
export declare const MEMORIX_WRITE_DESCRIPTORS_CATALOG_ID = "memorix-write-descriptors";
|
|
4
4
|
export declare const DEFAULT_CANONICAL_CONTENT_TYPE = "snapshots";
|
|
5
5
|
export declare const DEFAULT_DATA_ROOT = "data";
|
|
6
|
-
export declare const DEFAULT_EFFECTIVE_DATE_PATH = "modifiedAt";
|
|
6
|
+
export declare const DEFAULT_EFFECTIVE_DATE_PATH = "lifecycle.modifiedAt";
|
|
7
7
|
export declare const DEFAULT_CONTENT_MAX_BYTES: number;
|
|
8
|
-
export declare const DEFAULT_MEMORIX_METADATA_PATH = "
|
|
9
|
-
export declare const DEFAULT_AUDIT_PATH = "
|
|
10
|
-
export declare const DEFAULT_IDEMPOTENCY_KEY_PATH = "
|
|
11
|
-
export declare const DEFAULT_PAYLOAD_HASH_PATH = "
|
|
8
|
+
export declare const DEFAULT_MEMORIX_METADATA_PATH = "_system.memorix";
|
|
9
|
+
export declare const DEFAULT_AUDIT_PATH = "_system.memorix.audit";
|
|
10
|
+
export declare const DEFAULT_IDEMPOTENCY_KEY_PATH = "_system.memorix.idempotencyKey";
|
|
11
|
+
export declare const DEFAULT_PAYLOAD_HASH_PATH = "_system.memorix.payloadHash";
|
|
12
12
|
export declare const DEFAULT_CONTENT_KEY_TEMPLATE = "{{entity}}/{{contentType}}/{{id}}/{{recordId}}/{{field}}.md";
|
|
13
13
|
//# sourceMappingURL=constants.d.ts.map
|
package/dist/constants.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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,
|
|
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,yBAAyB,CAAC;AAClE,eAAO,MAAM,yBAAyB,QAAkB,CAAC;AACzD,eAAO,MAAM,6BAA6B,oBAAoB,CAAC;AAC/D,eAAO,MAAM,kBAAkB,0BAA0B,CAAC;AAC1D,eAAO,MAAM,4BAA4B,mCAAmC,CAAC;AAC7E,eAAO,MAAM,yBAAyB,gCAAgC,CAAC;AAEvE,eAAO,MAAM,4BAA4B,gEACsB,CAAC"}
|
package/dist/constants.js
CHANGED
|
@@ -3,11 +3,11 @@ export const DEFAULT_MEMORIX_APP_ID = "memorix";
|
|
|
3
3
|
export const MEMORIX_WRITE_DESCRIPTORS_CATALOG_ID = "memorix-write-descriptors";
|
|
4
4
|
export const DEFAULT_CANONICAL_CONTENT_TYPE = "snapshots";
|
|
5
5
|
export const DEFAULT_DATA_ROOT = "data";
|
|
6
|
-
export const DEFAULT_EFFECTIVE_DATE_PATH = "modifiedAt";
|
|
6
|
+
export const DEFAULT_EFFECTIVE_DATE_PATH = "lifecycle.modifiedAt";
|
|
7
7
|
export const DEFAULT_CONTENT_MAX_BYTES = 5 * 1024 * 1024;
|
|
8
|
-
export const DEFAULT_MEMORIX_METADATA_PATH = "
|
|
9
|
-
export const DEFAULT_AUDIT_PATH = "
|
|
10
|
-
export const DEFAULT_IDEMPOTENCY_KEY_PATH = "
|
|
11
|
-
export const DEFAULT_PAYLOAD_HASH_PATH = "
|
|
8
|
+
export const DEFAULT_MEMORIX_METADATA_PATH = "_system.memorix";
|
|
9
|
+
export const DEFAULT_AUDIT_PATH = "_system.memorix.audit";
|
|
10
|
+
export const DEFAULT_IDEMPOTENCY_KEY_PATH = "_system.memorix.idempotencyKey";
|
|
11
|
+
export const DEFAULT_PAYLOAD_HASH_PATH = "_system.memorix.payloadHash";
|
|
12
12
|
export const DEFAULT_CONTENT_KEY_TEMPLATE = "{{entity}}/{{contentType}}/{{id}}/{{recordId}}/{{field}}.md";
|
|
13
13
|
//# sourceMappingURL=constants.js.map
|
package/dist/constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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,
|
|
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,sBAAsB,CAAC;AAClE,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;AACzD,MAAM,CAAC,MAAM,6BAA6B,GAAG,iBAAiB,CAAC;AAC/D,MAAM,CAAC,MAAM,kBAAkB,GAAG,uBAAuB,CAAC;AAC1D,MAAM,CAAC,MAAM,4BAA4B,GAAG,gCAAgC,CAAC;AAC7E,MAAM,CAAC,MAAM,yBAAyB,GAAG,6BAA6B,CAAC;AAEvE,MAAM,CAAC,MAAM,4BAA4B,GACvC,6DAA6D,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { MemorixRecordRef } from "@x12i/memorix-descriptors/types";
|
|
2
|
+
import type { MemorixTarget } from "../mongo/target.js";
|
|
3
|
+
import type { MemorixWriteAdapter } from "./memorix-write-adapter.js";
|
|
4
|
+
/** Mirrors read-side priority in `@x12i/memorix-retrieval` `resolveMemorixRecordIdentity`. */
|
|
5
|
+
export type RecordLookupCandidate = {
|
|
6
|
+
idField: string;
|
|
7
|
+
filter: Record<string, unknown>;
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* Ordered identity probes for locating a Memorix record by a caller-supplied id value.
|
|
11
|
+
* Tries nested `memorix-record.2.0` fields first, then legacy flat ids, then `_id`.
|
|
12
|
+
*/
|
|
13
|
+
export declare function buildIdentityValueLookupCandidates(target: MemorixTarget, idValue: string): RecordLookupCandidate[];
|
|
14
|
+
export declare function buildRecordRefLookupCandidates(ref: Pick<MemorixRecordRef, "target" | "recordId">): RecordLookupCandidate[];
|
|
15
|
+
export declare function buildRecordRefLookupFilter(ref: Pick<MemorixRecordRef, "target" | "recordId">): Record<string, unknown>;
|
|
16
|
+
export declare function buildPersistencyResultLookupFilter(target: MemorixTarget, identityId: string, recordId: string): Record<string, unknown>;
|
|
17
|
+
export type FindRecordByLookupResult = {
|
|
18
|
+
doc: Record<string, unknown>;
|
|
19
|
+
matched: RecordLookupCandidate;
|
|
20
|
+
};
|
|
21
|
+
export declare function findRecordByLookupCandidates(adapter: MemorixWriteAdapter, collection: string, candidates: RecordLookupCandidate[], opts?: {
|
|
22
|
+
session?: import("mongodb").ClientSession;
|
|
23
|
+
}): Promise<FindRecordByLookupResult | null>;
|
|
24
|
+
export declare function findRecordByRef(adapter: MemorixWriteAdapter, collection: string, ref: Pick<MemorixRecordRef, "target" | "recordId">, opts?: {
|
|
25
|
+
session?: import("mongodb").ClientSession;
|
|
26
|
+
}): Promise<FindRecordByLookupResult | null>;
|
|
27
|
+
//# sourceMappingURL=record-lookup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"record-lookup.d.ts","sourceRoot":"","sources":["../../src/data/record-lookup.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEtE,8FAA8F;AAC9F,MAAM,MAAM,qBAAqB,GAAG;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC,CAAC;AAsBF;;;GAGG;AACH,wBAAgB,kCAAkC,CAChD,MAAM,EAAE,aAAa,EACrB,OAAO,EAAE,MAAM,GACd,qBAAqB,EAAE,CASzB;AAED,wBAAgB,8BAA8B,CAC5C,GAAG,EAAE,IAAI,CAAC,gBAAgB,EAAE,QAAQ,GAAG,UAAU,CAAC,GACjD,qBAAqB,EAAE,CAEzB;AAED,wBAAgB,0BAA0B,CACxC,GAAG,EAAE,IAAI,CAAC,gBAAgB,EAAE,QAAQ,GAAG,UAAU,CAAC,GACjD,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAIzB;AAED,wBAAgB,kCAAkC,CAChD,MAAM,EAAE,aAAa,EACrB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,GACf,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CASzB;AAED,MAAM,MAAM,wBAAwB,GAAG;IACrC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC7B,OAAO,EAAE,qBAAqB,CAAC;CAChC,CAAC;AAEF,wBAAsB,4BAA4B,CAChD,OAAO,EAAE,mBAAmB,EAC5B,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,qBAAqB,EAAE,EACnC,IAAI,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,SAAS,EAAE,aAAa,CAAA;CAAE,GACnD,OAAO,CAAC,wBAAwB,GAAG,IAAI,CAAC,CAM1C;AAED,wBAAsB,eAAe,CACnC,OAAO,EAAE,mBAAmB,EAC5B,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,IAAI,CAAC,gBAAgB,EAAE,QAAQ,GAAG,UAAU,CAAC,EAClD,IAAI,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,SAAS,EAAE,aAAa,CAAA;CAAE,GACnD,OAAO,CAAC,wBAAwB,GAAG,IAAI,CAAC,CAO1C"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { maybeObjectId } from "../mongo/id-normalize.js";
|
|
2
|
+
function flatIdFieldForTarget(target) {
|
|
3
|
+
if (target === "event")
|
|
4
|
+
return "eventId";
|
|
5
|
+
if (target === "knowledge")
|
|
6
|
+
return "knowledgeId";
|
|
7
|
+
return "entityId";
|
|
8
|
+
}
|
|
9
|
+
function dedupeCandidates(candidates) {
|
|
10
|
+
const seen = new Set();
|
|
11
|
+
const out = [];
|
|
12
|
+
for (const candidate of candidates) {
|
|
13
|
+
const key = JSON.stringify(candidate.filter);
|
|
14
|
+
if (seen.has(key))
|
|
15
|
+
continue;
|
|
16
|
+
seen.add(key);
|
|
17
|
+
out.push(candidate);
|
|
18
|
+
}
|
|
19
|
+
return out;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Ordered identity probes for locating a Memorix record by a caller-supplied id value.
|
|
23
|
+
* Tries nested `memorix-record.2.0` fields first, then legacy flat ids, then `_id`.
|
|
24
|
+
*/
|
|
25
|
+
export function buildIdentityValueLookupCandidates(target, idValue) {
|
|
26
|
+
const flatField = flatIdFieldForTarget(target);
|
|
27
|
+
return dedupeCandidates([
|
|
28
|
+
{ idField: "identity.recordId", filter: { "identity.recordId": idValue } },
|
|
29
|
+
{ idField: "identity.targetId", filter: { "identity.targetId": idValue } },
|
|
30
|
+
{ idField: flatField, filter: { [flatField]: idValue } },
|
|
31
|
+
{ idField: "id", filter: { id: idValue } },
|
|
32
|
+
{ idField: "_id", filter: { _id: maybeObjectId(idValue) } },
|
|
33
|
+
]);
|
|
34
|
+
}
|
|
35
|
+
export function buildRecordRefLookupCandidates(ref) {
|
|
36
|
+
return buildIdentityValueLookupCandidates(ref.target, ref.recordId);
|
|
37
|
+
}
|
|
38
|
+
export function buildRecordRefLookupFilter(ref) {
|
|
39
|
+
const candidates = buildRecordRefLookupCandidates(ref);
|
|
40
|
+
if (candidates.length === 1)
|
|
41
|
+
return candidates[0].filter;
|
|
42
|
+
return { $or: candidates.map((candidate) => candidate.filter) };
|
|
43
|
+
}
|
|
44
|
+
export function buildPersistencyResultLookupFilter(target, identityId, recordId) {
|
|
45
|
+
const candidates = dedupeCandidates([
|
|
46
|
+
...buildIdentityValueLookupCandidates(target, recordId),
|
|
47
|
+
...(recordId === identityId
|
|
48
|
+
? []
|
|
49
|
+
: buildIdentityValueLookupCandidates(target, identityId)),
|
|
50
|
+
]);
|
|
51
|
+
if (candidates.length === 1)
|
|
52
|
+
return candidates[0].filter;
|
|
53
|
+
return { $or: candidates.map((candidate) => candidate.filter) };
|
|
54
|
+
}
|
|
55
|
+
export async function findRecordByLookupCandidates(adapter, collection, candidates, opts) {
|
|
56
|
+
for (const candidate of candidates) {
|
|
57
|
+
const doc = await adapter.findOne(collection, candidate.filter, opts);
|
|
58
|
+
if (doc)
|
|
59
|
+
return { doc, matched: candidate };
|
|
60
|
+
}
|
|
61
|
+
return null;
|
|
62
|
+
}
|
|
63
|
+
export async function findRecordByRef(adapter, collection, ref, opts) {
|
|
64
|
+
return findRecordByLookupCandidates(adapter, collection, buildRecordRefLookupCandidates(ref), opts);
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=record-lookup.js.map
|