@x12i/memorix-retrieval 1.6.5 → 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.
Files changed (130) hide show
  1. package/README.md +115 -59
  2. package/dist/client/types.d.ts +2 -0
  3. package/dist/client/types.d.ts.map +1 -1
  4. package/dist/data/collection-parser.d.ts +14 -0
  5. package/dist/data/collection-parser.d.ts.map +1 -0
  6. package/dist/data/collection-parser.js +31 -0
  7. package/dist/data/collection-parser.js.map +1 -0
  8. package/dist/data/identity.d.ts +15 -4
  9. package/dist/data/identity.d.ts.map +1 -1
  10. package/dist/data/identity.js +22 -12
  11. package/dist/data/identity.js.map +1 -1
  12. package/dist/data/memorix-read.d.ts.map +1 -1
  13. package/dist/data/memorix-read.js +1 -0
  14. package/dist/data/memorix-read.js.map +1 -1
  15. package/dist/data/record-identity.d.ts +11 -0
  16. package/dist/data/record-identity.d.ts.map +1 -0
  17. package/dist/data/record-identity.js +50 -0
  18. package/dist/data/record-identity.js.map +1 -0
  19. package/dist/data/target-read.d.ts +19 -0
  20. package/dist/data/target-read.d.ts.map +1 -0
  21. package/dist/data/target-read.js +85 -0
  22. package/dist/data/target-read.js.map +1 -0
  23. package/dist/descriptors/descriptor-types.d.ts +22 -6
  24. package/dist/descriptors/descriptor-types.d.ts.map +1 -1
  25. package/dist/descriptors/discover-entities.d.ts +1 -1
  26. package/dist/descriptors/discover-entities.d.ts.map +1 -1
  27. package/dist/descriptors/load-slice-descriptor.d.ts +6 -0
  28. package/dist/descriptors/load-slice-descriptor.d.ts.map +1 -0
  29. package/dist/descriptors/load-slice-descriptor.js +20 -0
  30. package/dist/descriptors/load-slice-descriptor.js.map +1 -0
  31. package/dist/descriptors/validate-descriptor.d.ts.map +1 -1
  32. package/dist/descriptors/validate-descriptor.js +5 -2
  33. package/dist/descriptors/validate-descriptor.js.map +1 -1
  34. package/dist/explorer/collection-inventory.d.ts +1 -0
  35. package/dist/explorer/collection-inventory.d.ts.map +1 -1
  36. package/dist/explorer/collection-inventory.js +20 -13
  37. package/dist/explorer/collection-inventory.js.map +1 -1
  38. package/dist/explorer/collection-records.d.ts +46 -0
  39. package/dist/explorer/collection-records.d.ts.map +1 -0
  40. package/dist/explorer/collection-records.js +106 -0
  41. package/dist/explorer/collection-records.js.map +1 -0
  42. package/dist/explorer/entity-graph.d.ts +21 -0
  43. package/dist/explorer/entity-graph.d.ts.map +1 -1
  44. package/dist/explorer/entity-graph.js +124 -12
  45. package/dist/explorer/entity-graph.js.map +1 -1
  46. package/dist/explorer/health.d.ts +43 -10
  47. package/dist/explorer/health.d.ts.map +1 -1
  48. package/dist/explorer/health.js +216 -102
  49. package/dist/explorer/health.js.map +1 -1
  50. package/dist/explorer/inventory-policy.d.ts +10 -0
  51. package/dist/explorer/inventory-policy.d.ts.map +1 -0
  52. package/dist/explorer/inventory-policy.js +20 -0
  53. package/dist/explorer/inventory-policy.js.map +1 -0
  54. package/dist/explorer/raw-collection-records.d.ts +62 -0
  55. package/dist/explorer/raw-collection-records.d.ts.map +1 -0
  56. package/dist/explorer/raw-collection-records.js +218 -0
  57. package/dist/explorer/raw-collection-records.js.map +1 -0
  58. package/dist/explorer/unified-inventory.d.ts +82 -0
  59. package/dist/explorer/unified-inventory.d.ts.map +1 -0
  60. package/dist/explorer/unified-inventory.js +544 -0
  61. package/dist/explorer/unified-inventory.js.map +1 -0
  62. package/dist/index.d.ts +16 -3
  63. package/dist/index.d.ts.map +1 -1
  64. package/dist/index.js +12 -0
  65. package/dist/index.js.map +1 -1
  66. package/dist/mongo/env.d.ts +1 -0
  67. package/dist/mongo/env.d.ts.map +1 -1
  68. package/dist/mongo/env.js +14 -0
  69. package/dist/mongo/env.js.map +1 -1
  70. package/dist/mongo/resolve-db.d.ts +2 -0
  71. package/dist/mongo/resolve-db.d.ts.map +1 -1
  72. package/dist/mongo/resolve-db.js +2 -0
  73. package/dist/mongo/resolve-db.js.map +1 -1
  74. package/dist/mongo/target-config.d.ts +28 -0
  75. package/dist/mongo/target-config.d.ts.map +1 -0
  76. package/dist/mongo/target-config.js +31 -0
  77. package/dist/mongo/target-config.js.map +1 -0
  78. package/dist/mongo/types.d.ts +1 -1
  79. package/dist/mongo/types.d.ts.map +1 -1
  80. package/dist/retrieval/batch-fetch.d.ts +6 -4
  81. package/dist/retrieval/batch-fetch.d.ts.map +1 -1
  82. package/dist/retrieval/batch-fetch.js +1 -1
  83. package/dist/retrieval/batch-fetch.js.map +1 -1
  84. package/dist/retrieval/fetch-item.d.ts.map +1 -1
  85. package/dist/retrieval/fetch-item.js +4 -2
  86. package/dist/retrieval/fetch-item.js.map +1 -1
  87. package/dist/retrieval/fetch-list.d.ts.map +1 -1
  88. package/dist/retrieval/fetch-list.js +5 -1
  89. package/dist/retrieval/fetch-list.js.map +1 -1
  90. package/dist/retrieval/fetch-slices.d.ts +85 -0
  91. package/dist/retrieval/fetch-slices.d.ts.map +1 -0
  92. package/dist/retrieval/fetch-slices.js +332 -0
  93. package/dist/retrieval/fetch-slices.js.map +1 -0
  94. package/dist/retrieval/resolve-fields.js +1 -1
  95. package/dist/retrieval/resolve-fields.js.map +1 -1
  96. package/dist/retrieval/runtime-filters.d.ts +9 -0
  97. package/dist/retrieval/runtime-filters.d.ts.map +1 -0
  98. package/dist/retrieval/runtime-filters.js +139 -0
  99. package/dist/retrieval/runtime-filters.js.map +1 -0
  100. package/dist/retrieval/slice-filters.d.ts +12 -0
  101. package/dist/retrieval/slice-filters.d.ts.map +1 -0
  102. package/dist/retrieval/slice-filters.js +153 -0
  103. package/dist/retrieval/slice-filters.js.map +1 -0
  104. package/dist/tests/collection-inventory.test.js +1 -0
  105. package/dist/tests/collection-inventory.test.js.map +1 -1
  106. package/dist/tests/collection-parser.test.d.ts +2 -0
  107. package/dist/tests/collection-parser.test.d.ts.map +1 -0
  108. package/dist/tests/collection-parser.test.js +77 -0
  109. package/dist/tests/collection-parser.test.js.map +1 -0
  110. package/dist/tests/entity-graph.test.js +2 -1
  111. package/dist/tests/entity-graph.test.js.map +1 -1
  112. package/dist/tests/fetch-list.test.js +1 -0
  113. package/dist/tests/fetch-list.test.js.map +1 -1
  114. package/dist/tests/load-slice-descriptor.test.d.ts +2 -0
  115. package/dist/tests/load-slice-descriptor.test.d.ts.map +1 -0
  116. package/dist/tests/load-slice-descriptor.test.js +58 -0
  117. package/dist/tests/load-slice-descriptor.test.js.map +1 -0
  118. package/dist/tests/slice-filters.test.d.ts +2 -0
  119. package/dist/tests/slice-filters.test.d.ts.map +1 -0
  120. package/dist/tests/slice-filters.test.js +36 -0
  121. package/dist/tests/slice-filters.test.js.map +1 -0
  122. package/docs/DATA-TIER-CONTRACT.md +34 -7
  123. package/docs/EXPLORER-HOST-APIS.md +13 -10
  124. package/docs/MEMORIX-CATALOX-CONTRACTS.md +5 -3
  125. package/docs/MEMORIX-DATABASE-CONVENTIONS.md +24 -2
  126. package/package.json +4 -2
  127. package/dist/data/xronox-read.d.ts +0 -13
  128. package/dist/data/xronox-read.d.ts.map +0 -1
  129. package/dist/data/xronox-read.js +0 -34
  130. package/dist/data/xronox-read.js.map +0 -1
package/README.md CHANGED
@@ -1,18 +1,22 @@
1
1
  # @x12i/memorix-retrieval
2
2
 
3
- Descriptor-driven retrieval/composition layer for Memorix entity and event data.
3
+ @x12i/memorix-retrieval is the read-side runtime data tier for Memorix.
4
+
5
+ It loads Catalox descriptors, inventories Mongo databases, resolves collection bindings, reads mapped and unmapped records, executes list/slice descriptors, composes item views, builds graph/inventory views, and returns Explorer/API-ready JSON.
4
6
 
5
7
  ## Positioning
6
8
 
7
9
  | Package | Role |
8
10
  |---------|------|
9
- | `@x12i/memorix-retrieval` | **The** data tier: Catalox descriptors + Mongo reads → lists, items, graph, health |
11
+ | `@x12i/memorix-retrieval` | **Runtime reads/views** Catalox descriptors + Mongo reads → lists, items, inventory, slices, graph, health |
12
+ | `@x12i/memorix-descriptors` | Descriptor writes, slice schema, inventory ignore policy |
13
+ | `@x12i/memorix-completion` | Payload writes |
10
14
 
11
- **Catalox** defines what to fetch. This package reads Mongo and composes API-ready JSON. **@x12i/helpers** fetches external content objects when needed.
15
+ Retrieval does **not** write descriptors and does **not** write Memorix payload documents.
12
16
 
13
17
  ## Quick start
14
18
 
15
- Set `MONGO_URI`. Database names, entity vs event routing, and collection resolution are handled internally.
19
+ Set `MONGO_URI`. Database names, entity/event/knowledge routing, and collection resolution are handled internally.
16
20
 
17
21
  ```bash
18
22
  MONGO_URI=mongodb://localhost:27017
@@ -44,47 +48,122 @@ const item = await fetchMemorixItemForEntity(client, {
44
48
  await client.close?.();
45
49
  ```
46
50
 
47
- App id resolves: option `CATALOX_APP_ID` → `MEMORIX_APP_ID` → `memorix`.
51
+ ## Targets: entity, event, knowledge
48
52
 
49
- ### Bring your own Catalox client
53
+ | Target | Default DB | Identity field | Env override |
54
+ |--------|------------|----------------|--------------|
55
+ | `entity` | `memorix-entities` | `entityId` | `MEMORIX_ENTITIES_DB` |
56
+ | `event` | `memorix-events` | `eventId` | `MEMORIX_EVENTS_DB` |
57
+ | `knowledge` | `memorix-knowledge` | `knowledgeId` | `MEMORIX_KNOWLEDGE_DB` |
50
58
 
51
59
  ```typescript
52
60
  import {
53
- createMemorixRetrievalFromEnv,
54
- fetchMemorixList,
55
- fetchMemorixItem,
61
+ resolveMemorixDatabaseName,
62
+ resolveMemorixIdentityField,
63
+ resolveMemorixTargetFromDescriptor,
56
64
  } from "@x12i/memorix-retrieval";
65
+ ```
57
66
 
58
- const client = await createMemorixRetrievalFromEnv({ catalox });
67
+ ## Unified inventory
59
68
 
60
- const list = await fetchMemorixList(client, {
61
- listId: "assets-main-list",
62
- page: { limit: 50, offset: 0 },
69
+ One API powers Catalox-first and DB-first Explorer inventory modes:
70
+
71
+ ```typescript
72
+ import { buildMemorixUnifiedInventory } from "@x12i/memorix-retrieval";
73
+
74
+ const inventory = await buildMemorixUnifiedInventory(client, {
75
+ sourceLens: "catalox-first", // or "db-first"
76
+ targets: ["entity", "event", "knowledge"],
77
+ includeExactCounts: false,
63
78
  });
79
+ ```
64
80
 
65
- await client.close?.();
81
+ Returns normalized rows, issues, per-target summaries, and suggested actions.
82
+
83
+ ## Catalox-first vs DB-first
84
+
85
+ - **Catalox-first** — start from entity descriptors and declared content types; append orphan Mongo collections.
86
+ - **DB-first** — start from Mongo collections (parsed with last-dash rule); append missing Catalox-declared collections.
87
+
88
+ Both lenses use the same `MemorixUnifiedInventory` shape.
89
+
90
+ ## Last-dash collection parsing
91
+
92
+ Collection names follow `<objectName>-<contentType>` where the **last** dash is the separator (object names may contain dashes):
93
+
94
+ ```typescript
95
+ import { parseMemorixCollectionName } from "@x12i/memorix-retrieval";
96
+
97
+ parseMemorixCollectionName("topology-cidr-graphs-scoped");
98
+ // objectName = "topology-cidr-graphs", contentType = "scoped"
99
+ ```
100
+
101
+ ## Raw collection records
102
+
103
+ Read Mongo directly without a Catalox descriptor:
104
+
105
+ ```typescript
106
+ import { fetchMemorixRawCollectionRecords } from "@x12i/memorix-retrieval";
107
+
108
+ const raw = await fetchMemorixRawCollectionRecords(client, {
109
+ target: "entity",
110
+ collectionName: "assets-snapshots",
111
+ page: { limit: 50, offset: 0 },
112
+ });
66
113
  ```
67
114
 
68
- Lazy connect (no upfront `await`):
115
+ Open records from inventory rows with descriptor or raw fallback:
69
116
 
70
117
  ```typescript
71
- import { createMemorixRetrieval } from "@x12i/memorix-retrieval";
118
+ import { fetchMemorixCollectionRecords } from "@x12i/memorix-retrieval";
72
119
 
73
- const client = createMemorixRetrieval({ catalox });
74
- // connects to Mongo on first read using MONGO_URI
120
+ const records = await fetchMemorixCollectionRecords(client, {
121
+ entityName: "assets",
122
+ contentType: "snapshots",
123
+ mode: "auto",
124
+ });
75
125
  ```
76
126
 
77
- Optional content storage (credentials are never read from descriptors):
127
+ ## Slice execution
128
+
129
+ List descriptors with `kind: "slice"` are executable saved views:
130
+
131
+ Slice descriptors use the canonical shape from `@x12i/memorix-descriptors` (`entityName`, `target`, `contentType`, `filter`, `ui.group`). Create slices with `createSliceDescriptor` in descriptors; execute them here with `fetchMemorixSliceRecords`.
78
132
 
79
133
  ```typescript
80
- import { createGcsClient } from "@x12i/helpers/gcs";
134
+ import {
135
+ fetchMemorixSlices,
136
+ fetchMemorixSliceRecords,
137
+ fetchMemorixSliceItem,
138
+ loadMemorixSliceDescriptor,
139
+ } from "@x12i/memorix-retrieval";
81
140
 
82
- const client = await createMemorixRetrievalFromEnv({
83
- catalox,
84
- contentReaders: { gcs: createGcsClient({ bucket: "memorix-content" }) },
141
+ const slices = await fetchMemorixSlices(client, { includeHealth: true });
142
+ const page = await fetchMemorixSliceRecords(client, {
143
+ sliceId: "critical-vulnerabilities",
144
+ page: { limit: 50, offset: 0 },
85
145
  });
86
146
  ```
87
147
 
148
+ ## Record identity
149
+
150
+ ```typescript
151
+ import { resolveMemorixRecordIdentity } from "@x12i/memorix-retrieval";
152
+
153
+ const { id, identityField, source } = resolveMemorixRecordIdentity("knowledge", record);
154
+ ```
155
+
156
+ Resolution order: descriptor identity field → target default (`entityId` / `eventId` / `knowledgeId`) → `id` → Mongo `_id`.
157
+
158
+ ## Health model
159
+
160
+ ```typescript
161
+ import { getMemorixRetrievalHealth } from "@x12i/memorix-retrieval";
162
+
163
+ const health = await getMemorixRetrievalHealth(client, { includeInventory: true });
164
+ // health.catalox, health.mongo.targets, health.descriptors, health.inventory
165
+ ```
166
+
88
167
  ## Documentation
89
168
 
90
169
  | Doc | Purpose |
@@ -93,54 +172,29 @@ const client = await createMemorixRetrievalFromEnv({
93
172
  | [XRONOX-DATA-TIER-REQUIREMENTS.md](docs/XRONOX-DATA-TIER-REQUIREMENTS.md) | Xronox API/env requirements for Memorix data tier |
94
173
  | [MEMORIX-CATALOX-CONTRACTS.md](docs/MEMORIX-CATALOX-CONTRACTS.md) | Descriptor catalogs, JSON formats, cross-component sync |
95
174
  | [MEMORIX-DATABASE-CONVENTIONS.md](docs/MEMORIX-DATABASE-CONVENTIONS.md) | Mongo DB names, collections, env vars |
96
- | [EXPLORER-HOST-APIS.md](docs/EXPLORER-HOST-APIS.md) | Graph, raw reads, scoped workspace (Explorer hosts) |
175
+ | [EXPLORER-HOST-APIS.md](docs/EXPLORER-HOST-APIS.md) | Graph, raw reads, inventory, slices (Explorer hosts) |
97
176
 
98
177
  ## Advanced (optional)
99
178
 
100
179
  | Option / env | Purpose |
101
180
  |--------------|---------|
102
- | `MEMORIX_ENTITIES_DB` / `MEMORIX_EVENTS_DB` | Non-default database names (bridged to Xronox on bootstrap) |
103
- | `MEMORIX_ENTITIES_COLLECTION_*` / `MEMORIX_EVENTS_COLLECTION_*` | Per-type collection overrides |
181
+ | `MEMORIX_ENTITIES_DB` / `MEMORIX_EVENTS_DB` / `MEMORIX_KNOWLEDGE_DB` | Non-default database names |
182
+ | `MEMORIX_ENTITIES_COLLECTION_*` / `MEMORIX_EVENTS_COLLECTION_*` / `MEMORIX_KNOWLEDGE_COLLECTION_*` | Per-type collection overrides |
104
183
  | `CATALOX_APP_ID` / `MEMORIX_APP_ID` | Catalox app namespace (default: `memorix`) |
105
- | `memorixDb` | Code overrides for entity/event DB names |
184
+ | `memorixDb` | Code overrides for entity/event/knowledge DB names |
106
185
  | `xronox` | Inject a pre-configured Xronox client instead of built-in Mongo reads |
107
- | `mongo` | Reuse an existing `MongoClient` |
108
- | `processEnv` | Custom env object (default: `process.env`) |
109
-
110
- Entity descriptors declare `target: "entity" | "event"` (default `entity`):
111
-
112
- | Descriptor | Database |
113
- |------------|----------|
114
- | `assets`, `variabilities-groups` | `memorix-entities` |
115
- | `vulnerabilities` | `memorix-events` |
116
186
 
117
- Each entity descriptor must define `defaultListDescriptorId` and `defaultItemDescriptorId` (Option A wiring).
118
-
119
- Explorer **record counts** use the entity's **snapshots** collection when that content type is declared (e.g. `assets-snapshots`). Set `MEMORIX_ENTITIES_DB` / `MEMORIX_EVENTS_DB` when data is not in the default DB names — see [EXPLORER-HOST-APIS.md](docs/EXPLORER-HOST-APIS.md#snapshot-record-counts-explorer-records).
187
+ Entity descriptors declare `target: "entity" | "event" | "knowledge"` (default `entity`).
120
188
 
121
189
  ## Catalox seeds
122
190
 
123
191
  Source of truth: `catalox-seeds/inputs/`
124
192
 
125
- Seed **helpers** live in the package (`buildMemorixRetrievalSeedManifest`, `checkMemorixRetrievalSeedNeeds`, …). **Scripts** in `scripts/` call those helpers — seeding is not part of runtime retrieval.
126
-
127
193
  ```bash
128
- npm run catalox:seed:build # build manifest from inputs
194
+ npm run catalox:seed:build
129
195
  npm run catalox:seed:memorix-retrieval:validate
130
- npm run catalox:seed:memorix-retrieval:apply # always apply
131
- npm run catalox:seed:ensure # apply only if catalog items missing
132
- npm run catalox:seed:ensure -- --dry-run
133
- ```
134
-
135
- Every seeded item shares scope from `catalox-seeds/inputs/scope.json`:
136
-
137
- ```json
138
- {
139
- "scope": {
140
- "domains": ["network", "vulnerabilities"],
141
- "agents": ["neo"]
142
- }
143
- }
196
+ npm run catalox:seed:memorix-retrieval:apply
197
+ npm run catalox:seed:ensure
144
198
  ```
145
199
 
146
200
  ## Build, test, and live smoke
@@ -154,12 +208,14 @@ Live checks (require `.env` with `MONGO_URI` and Catalox/Firestore credentials):
154
208
 
155
209
  ```bash
156
210
  npm run mongo:check-collections
211
+ npm run mongo:inventory -- --sourceLens db-first --includeExactCounts
212
+ npm run mongo:inventory -- --sourceLens catalox-first
213
+ npm run smoke:retrieval -- --inventory --targets entity,event,knowledge
214
+ npm run smoke:retrieval -- --raw-records --target entity --collection assets-snapshots --limit 5
215
+ npm run smoke:retrieval -- --slice assets-open-slice --limit 5
157
216
  npm run smoke:retrieval -- --list assets-main-list --limit 5
158
- npm run smoke:retrieval -- --entity vulnerabilities --list critical-vulnerabilities-list --skip-graph
159
217
  ```
160
218
 
161
- Smoke runs discovery, health, list/item (by id and by entity defaults), and optionally the entity graph.
162
-
163
219
  ## Publish
164
220
 
165
221
  ```bash
@@ -136,6 +136,7 @@ export type FetchMemorixItemRequest = {
136
136
  itemDescriptorId: string;
137
137
  entityId?: string;
138
138
  eventId?: string;
139
+ knowledgeId?: string;
139
140
  content?: {
140
141
  include: boolean;
141
142
  fields?: string[];
@@ -148,6 +149,7 @@ export type FetchMemorixItemResponse = {
148
149
  entity: string;
149
150
  entityId?: string;
150
151
  eventId?: string;
152
+ knowledgeId?: string;
151
153
  sections: Array<{
152
154
  id: string;
153
155
  title: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/client/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/client/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ export type ParsedMemorixCollectionName = {
2
+ ok: true;
3
+ collectionName: string;
4
+ objectName: string;
5
+ contentType: string;
6
+ separatorIndex: number;
7
+ } | {
8
+ ok: false;
9
+ collectionName: string;
10
+ reason: "missing-dash" | "empty-object-name" | "empty-content-type";
11
+ };
12
+ /** Parse `<objectName>-<contentType>` using the last dash as the separator. */
13
+ export declare function parseMemorixCollectionName(collectionName: string): ParsedMemorixCollectionName;
14
+ //# sourceMappingURL=collection-parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collection-parser.d.ts","sourceRoot":"","sources":["../../src/data/collection-parser.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,2BAA2B,GACnC;IACE,EAAE,EAAE,IAAI,CAAC;IACT,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;CACxB,GACD;IACE,EAAE,EAAE,KAAK,CAAC;IACV,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,cAAc,GAAG,mBAAmB,GAAG,oBAAoB,CAAC;CACrE,CAAC;AAYN,+EAA+E;AAC/E,wBAAgB,0BAA0B,CACxC,cAAc,EAAE,MAAM,GACrB,2BAA2B,CAkB7B"}
@@ -0,0 +1,31 @@
1
+ import { parseMemorixCollectionName as parseFromDescriptors } from "@x12i/memorix-descriptors/collections/parse";
2
+ function unparseableReason(collectionName) {
3
+ const separatorIndex = collectionName.lastIndexOf("-");
4
+ if (separatorIndex < 0)
5
+ return "missing-dash";
6
+ if (separatorIndex === 0)
7
+ return "empty-object-name";
8
+ if (separatorIndex >= collectionName.length - 1)
9
+ return "empty-content-type";
10
+ return "empty-object-name";
11
+ }
12
+ /** Parse `<objectName>-<contentType>` using the last dash as the separator. */
13
+ export function parseMemorixCollectionName(collectionName) {
14
+ const parsed = parseFromDescriptors(collectionName);
15
+ if (parsed.parseStatus === "unparseable") {
16
+ return {
17
+ ok: false,
18
+ collectionName,
19
+ reason: unparseableReason(collectionName),
20
+ };
21
+ }
22
+ const separatorIndex = collectionName.lastIndexOf("-");
23
+ return {
24
+ ok: true,
25
+ collectionName,
26
+ objectName: parsed.objectName,
27
+ contentType: parsed.contentType,
28
+ separatorIndex,
29
+ };
30
+ }
31
+ //# sourceMappingURL=collection-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collection-parser.js","sourceRoot":"","sources":["../../src/data/collection-parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,IAAI,oBAAoB,EAAE,MAAM,6CAA6C,CAAC;AAgBjH,SAAS,iBAAiB,CACxB,cAAsB;IAEtB,MAAM,cAAc,GAAG,cAAc,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IACvD,IAAI,cAAc,GAAG,CAAC;QAAE,OAAO,cAAc,CAAC;IAC9C,IAAI,cAAc,KAAK,CAAC;QAAE,OAAO,mBAAmB,CAAC;IACrD,IAAI,cAAc,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,oBAAoB,CAAC;IAC7E,OAAO,mBAAmB,CAAC;AAC7B,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,0BAA0B,CACxC,cAAsB;IAEtB,MAAM,MAAM,GAAG,oBAAoB,CAAC,cAAc,CAAC,CAAC;IACpD,IAAI,MAAM,CAAC,WAAW,KAAK,aAAa,EAAE,CAAC;QACzC,OAAO;YACL,EAAE,EAAE,KAAK;YACT,cAAc;YACd,MAAM,EAAE,iBAAiB,CAAC,cAAc,CAAC;SAC1C,CAAC;IACJ,CAAC;IAED,MAAM,cAAc,GAAG,cAAc,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IACvD,OAAO;QACL,EAAE,EAAE,IAAI;QACR,cAAc;QACd,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,cAAc;KACf,CAAC;AACJ,CAAC"}
@@ -2,18 +2,28 @@ import { type MemorixRetrievalIssue } from "../errors/issues.js";
2
2
  export type MemorixIdentity = {
3
3
  entityId?: string;
4
4
  eventId?: string;
5
+ knowledgeId?: string;
5
6
  };
6
7
  export type IdentityValidationResult = {
7
8
  ok: true;
8
9
  identity: {
9
10
  entityId: string;
10
11
  eventId?: undefined;
12
+ knowledgeId?: undefined;
11
13
  };
12
14
  } | {
13
15
  ok: true;
14
16
  identity: {
15
17
  eventId: string;
16
18
  entityId?: undefined;
19
+ knowledgeId?: undefined;
20
+ };
21
+ } | {
22
+ ok: true;
23
+ identity: {
24
+ knowledgeId: string;
25
+ entityId?: undefined;
26
+ eventId?: undefined;
17
27
  };
18
28
  } | {
19
29
  ok: false;
@@ -22,15 +32,16 @@ export type IdentityValidationResult = {
22
32
  export declare function validateMemorixIdentity(record: Record<string, unknown>, context?: {
23
33
  entityId?: string;
24
34
  eventId?: string;
35
+ knowledgeId?: string;
25
36
  path?: string;
26
37
  }): IdentityValidationResult;
27
38
  export declare function getIdentityFromRecord(record: Record<string, unknown>): {
28
- field: "entityId" | "eventId";
39
+ field: "entityId" | "eventId" | "knowledgeId";
29
40
  value: string;
30
41
  } | null;
31
- export declare function buildIdFilter(field: "entityId" | "eventId", values: string[]): Record<string, unknown>;
32
- export declare function assertRequestIdentity(entityId?: string, eventId?: string): {
33
- field: "entityId" | "eventId";
42
+ export declare function buildIdFilter(field: "entityId" | "eventId" | "knowledgeId", values: string[]): Record<string, unknown>;
43
+ export declare function assertRequestIdentity(entityId?: string, eventId?: string, knowledgeId?: string): {
44
+ field: "entityId" | "eventId" | "knowledgeId";
34
45
  value: string;
35
46
  };
36
47
  //# sourceMappingURL=identity.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../../src/data/identity.ts"],"names":[],"mappings":"AACA,OAAO,EAAe,KAAK,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAE9E,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAChC;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,SAAS,CAAA;KAAE,CAAA;CAAE,GACjE;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,SAAS,CAAA;KAAE,CAAA;CAAE,GACjE;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,qBAAqB,CAAA;CAAE,CAAC;AAEhD,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,OAAO,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GAC/D,wBAAwB,CAoC1B;AAED,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B;IAAE,KAAK,EAAE,UAAU,GAAG,SAAS,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAUzD;AAED,wBAAgB,aAAa,CAC3B,KAAK,EAAE,UAAU,GAAG,SAAS,EAC7B,MAAM,EAAE,MAAM,EAAE,GACf,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAKzB;AAED,wBAAgB,qBAAqB,CACnC,QAAQ,CAAC,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,MAAM,GACf;IAAE,KAAK,EAAE,UAAU,GAAG,SAAS,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAiBlD"}
1
+ {"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../../src/data/identity.ts"],"names":[],"mappings":"AACA,OAAO,EAAe,KAAK,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAE9E,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAChC;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,SAAS,CAAC;QAAC,WAAW,CAAC,EAAE,SAAS,CAAA;KAAE,CAAA;CAAE,GAC1F;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,SAAS,CAAC;QAAC,WAAW,CAAC,EAAE,SAAS,CAAA;KAAE,CAAA;CAAE,GAC1F;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,SAAS,CAAC;QAAC,OAAO,CAAC,EAAE,SAAS,CAAA;KAAE,CAAA;CAAE,GAC1F;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,qBAAqB,CAAA;CAAE,CAAC;AAEhD,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,OAAO,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GACrF,wBAAwB,CA2C1B;AAED,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B;IAAE,KAAK,EAAE,UAAU,GAAG,SAAS,GAAG,aAAa,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAazE;AAED,wBAAgB,aAAa,CAC3B,KAAK,EAAE,UAAU,GAAG,SAAS,GAAG,aAAa,EAC7C,MAAM,EAAE,MAAM,EAAE,GACf,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAKzB;AAED,wBAAgB,qBAAqB,CACnC,QAAQ,CAAC,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,MAAM,EAChB,WAAW,CAAC,EAAE,MAAM,GACnB;IAAE,KAAK,EAAE,UAAU,GAAG,SAAS,GAAG,aAAa,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAelE"}
@@ -3,26 +3,29 @@ import { createIssue } from "../errors/issues.js";
3
3
  export function validateMemorixIdentity(record, context) {
4
4
  const entityId = typeof record.entityId === "string" ? record.entityId : undefined;
5
5
  const eventId = typeof record.eventId === "string" ? record.eventId : undefined;
6
+ const knowledgeId = typeof record.knowledgeId === "string" ? record.knowledgeId : undefined;
6
7
  const hasEntity = entityId != null && entityId !== "";
7
8
  const hasEvent = eventId != null && eventId !== "";
8
- if (hasEntity && hasEvent) {
9
+ const hasKnowledge = knowledgeId != null && knowledgeId !== "";
10
+ const count = [hasEntity, hasEvent, hasKnowledge].filter(Boolean).length;
11
+ if (count > 1) {
9
12
  return {
10
13
  ok: false,
11
14
  issue: createIssue({
12
15
  code: "INVALID_IDENTITY",
13
- message: "Record has both entityId and eventId",
16
+ message: "Record has multiple identity fields",
14
17
  path: context?.path,
15
18
  entityId,
16
19
  eventId,
17
20
  }),
18
21
  };
19
22
  }
20
- if (!hasEntity && !hasEvent) {
23
+ if (count === 0) {
21
24
  return {
22
25
  ok: false,
23
26
  issue: createIssue({
24
27
  code: "INVALID_IDENTITY",
25
- message: "Record has neither entityId nor eventId",
28
+ message: "Record has no entityId, eventId, or knowledgeId",
26
29
  path: context?.path,
27
30
  entityId: context?.entityId,
28
31
  eventId: context?.eventId,
@@ -32,7 +35,10 @@ export function validateMemorixIdentity(record, context) {
32
35
  if (hasEntity) {
33
36
  return { ok: true, identity: { entityId: entityId } };
34
37
  }
35
- return { ok: true, identity: { eventId: eventId } };
38
+ if (hasEvent) {
39
+ return { ok: true, identity: { eventId: eventId } };
40
+ }
41
+ return { ok: true, identity: { knowledgeId: knowledgeId } };
36
42
  }
37
43
  export function getIdentityFromRecord(record) {
38
44
  const result = validateMemorixIdentity(record);
@@ -44,6 +50,9 @@ export function getIdentityFromRecord(record) {
44
50
  if ("eventId" in result.identity && result.identity.eventId) {
45
51
  return { field: "eventId", value: result.identity.eventId };
46
52
  }
53
+ if ("knowledgeId" in result.identity && result.identity.knowledgeId) {
54
+ return { field: "knowledgeId", value: result.identity.knowledgeId };
55
+ }
47
56
  return null;
48
57
  }
49
58
  export function buildIdFilter(field, values) {
@@ -52,17 +61,18 @@ export function buildIdFilter(field, values) {
52
61
  }
53
62
  return { [field]: { $in: values } };
54
63
  }
55
- export function assertRequestIdentity(entityId, eventId) {
64
+ export function assertRequestIdentity(entityId, eventId, knowledgeId) {
56
65
  const hasEntity = entityId != null && entityId !== "";
57
66
  const hasEvent = eventId != null && eventId !== "";
58
- if (hasEntity && hasEvent) {
59
- throwRetrievalError("INVALID_REQUEST", "Request must provide exactly one of entityId or eventId");
60
- }
61
- if (!hasEntity && !hasEvent) {
62
- throwRetrievalError("INVALID_REQUEST", "Request must provide entityId or eventId");
67
+ const hasKnowledge = knowledgeId != null && knowledgeId !== "";
68
+ const count = [hasEntity, hasEvent, hasKnowledge].filter(Boolean).length;
69
+ if (count !== 1) {
70
+ throwRetrievalError("INVALID_REQUEST", "Request must provide exactly one of entityId, eventId, or knowledgeId");
63
71
  }
64
72
  if (hasEntity)
65
73
  return { field: "entityId", value: entityId };
66
- return { field: "eventId", value: eventId };
74
+ if (hasEvent)
75
+ return { field: "eventId", value: eventId };
76
+ return { field: "knowledgeId", value: knowledgeId };
67
77
  }
68
78
  //# sourceMappingURL=identity.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"identity.js","sourceRoot":"","sources":["../../src/data/identity.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"identity.js","sourceRoot":"","sources":["../../src/data/identity.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"memorix-read.d.ts","sourceRoot":"","sources":["../../src/data/memorix-read.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AAIlF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvD,gFAAgF;AAChF,eAAO,MAAM,4BAA4B,EAAE,MAAM,CAAC,aAAa,EAAE,MAAM,CAGtE,CAAC;AAEF,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,uBAAuB,EAC/B,MAAM,EAAE,sBAAsB,GAC7B,MAAM,CAGR;AAED,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAClC,gBAAgB,EAChB,UAAU,GAAG,YAAY,GAAG,eAAe,GAAG,MAAM,CACrD,GAAG;IACF,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,uBAAuB,CAAC;IAChC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,wBAAsB,WAAW,CAC/B,MAAM,EAAE,sBAAsB,EAC9B,MAAM,EAAE,iBAAiB,GACxB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,CAoDpC;AAED,2CAA2C;AAC3C,eAAO,MAAM,iBAAiB,oBAAc,CAAC"}
1
+ {"version":3,"file":"memorix-read.d.ts","sourceRoot":"","sources":["../../src/data/memorix-read.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AAIlF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvD,gFAAgF;AAChF,eAAO,MAAM,4BAA4B,EAAE,MAAM,CAAC,aAAa,EAAE,MAAM,CAItE,CAAC;AAEF,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,uBAAuB,EAC/B,MAAM,EAAE,sBAAsB,GAC7B,MAAM,CAGR;AAED,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAClC,gBAAgB,EAChB,UAAU,GAAG,YAAY,GAAG,eAAe,GAAG,MAAM,CACrD,GAAG;IACF,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,uBAAuB,CAAC;IAChC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,wBAAsB,WAAW,CAC/B,MAAM,EAAE,sBAAsB,EAC9B,MAAM,EAAE,iBAAiB,GACxB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,CAoDpC;AAED,2CAA2C;AAC3C,eAAO,MAAM,iBAAiB,oBAAc,CAAC"}
@@ -5,6 +5,7 @@ import { resolveMemorixDbNameForEntity } from "../mongo/resolve-db.js";
5
5
  export const DEFAULT_MEMORIX_XRONOX_ROLES = {
6
6
  entity: "memorix_entities",
7
7
  event: "memorix_events",
8
+ knowledge: "memorix_knowledge",
8
9
  };
9
10
  export function resolveMemorixXronoxRole(entity, client) {
10
11
  const target = entity.target ?? "entity";
@@ -1 +1 @@
1
- {"version":3,"file":"memorix-read.js","sourceRoot":"","sources":["../../src/data/memorix-read.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"memorix-read.js","sourceRoot":"","sources":["../../src/data/memorix-read.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import type { MemorixTarget } from "../mongo/types.js";
2
+ export type MemorixRecordIdentity = {
3
+ id: string;
4
+ identityField: string;
5
+ source: "descriptor" | "target-default" | "fallback" | "mongo-id";
6
+ };
7
+ export declare function resolveMemorixRecordIdentity(target: MemorixTarget, record: Record<string, unknown>, options?: {
8
+ descriptorIdentityField?: string;
9
+ fallbackFields?: string[];
10
+ }): MemorixRecordIdentity;
11
+ //# sourceMappingURL=record-identity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"record-identity.d.ts","sourceRoot":"","sources":["../../src/data/record-identity.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAGvD,MAAM,MAAM,qBAAqB,GAAG;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,YAAY,GAAG,gBAAgB,GAAG,UAAU,GAAG,UAAU,CAAC;CACnE,CAAC;AAwBF,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,OAAO,CAAC,EAAE;IACR,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B,GACA,qBAAqB,CAgCvB"}
@@ -0,0 +1,50 @@
1
+ import { ObjectId } from "mongodb";
2
+ import { resolveMemorixIdentityField } from "../mongo/target-config.js";
3
+ const DEFAULT_FALLBACK_FIELDS = ["id"];
4
+ function stringifyId(value) {
5
+ if (value == null)
6
+ return null;
7
+ if (typeof value === "string") {
8
+ const trimmed = value.trim();
9
+ return trimmed ? trimmed : null;
10
+ }
11
+ if (value instanceof ObjectId)
12
+ return value.toHexString();
13
+ if (typeof value === "number" || typeof value === "boolean") {
14
+ return String(value);
15
+ }
16
+ return null;
17
+ }
18
+ function readField(record, field) {
19
+ return stringifyId(record[field]);
20
+ }
21
+ export function resolveMemorixRecordIdentity(target, record, options) {
22
+ if (options?.descriptorIdentityField) {
23
+ const id = readField(record, options.descriptorIdentityField);
24
+ if (id) {
25
+ return {
26
+ id,
27
+ identityField: options.descriptorIdentityField,
28
+ source: "descriptor",
29
+ };
30
+ }
31
+ }
32
+ const targetField = resolveMemorixIdentityField(target);
33
+ const targetId = readField(record, targetField);
34
+ if (targetId) {
35
+ return { id: targetId, identityField: targetField, source: "target-default" };
36
+ }
37
+ const fallbacks = options?.fallbackFields ?? [...DEFAULT_FALLBACK_FIELDS];
38
+ for (const field of fallbacks) {
39
+ const id = readField(record, field);
40
+ if (id) {
41
+ return { id, identityField: field, source: "fallback" };
42
+ }
43
+ }
44
+ const mongoId = readField(record, "_id");
45
+ if (mongoId) {
46
+ return { id: mongoId, identityField: "_id", source: "mongo-id" };
47
+ }
48
+ return { id: "", identityField: targetField, source: "target-default" };
49
+ }
50
+ //# sourceMappingURL=record-identity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"record-identity.js","sourceRoot":"","sources":["../../src/data/record-identity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnC,OAAO,EAAE,2BAA2B,EAAE,MAAM,2BAA2B,CAAC;AAQxE,MAAM,uBAAuB,GAAG,CAAC,IAAI,CAAU,CAAC;AAEhD,SAAS,WAAW,CAAC,KAAc;IACjC,IAAI,KAAK,IAAI,IAAI;QAAE,OAAO,IAAI,CAAC;IAC/B,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;QAC7B,OAAO,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;IAClC,CAAC;IACD,IAAI,KAAK,YAAY,QAAQ;QAAE,OAAO,KAAK,CAAC,WAAW,EAAE,CAAC;IAC1D,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;QAC5D,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,SAAS,CAChB,MAA+B,EAC/B,KAAa;IAEb,OAAO,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,4BAA4B,CAC1C,MAAqB,EACrB,MAA+B,EAC/B,OAGC;IAED,IAAI,OAAO,EAAE,uBAAuB,EAAE,CAAC;QACrC,MAAM,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,uBAAuB,CAAC,CAAC;QAC9D,IAAI,EAAE,EAAE,CAAC;YACP,OAAO;gBACL,EAAE;gBACF,aAAa,EAAE,OAAO,CAAC,uBAAuB;gBAC9C,MAAM,EAAE,YAAY;aACrB,CAAC;QACJ,CAAC;IACH,CAAC;IAED,MAAM,WAAW,GAAG,2BAA2B,CAAC,MAAM,CAAC,CAAC;IACxD,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAChD,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC;IAChF,CAAC;IAED,MAAM,SAAS,GAAG,OAAO,EAAE,cAAc,IAAI,CAAC,GAAG,uBAAuB,CAAC,CAAC;IAC1E,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE,CAAC;QAC9B,MAAM,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACpC,IAAI,EAAE,EAAE,CAAC;YACP,OAAO,EAAE,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;QAC1D,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACzC,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;IACnE,CAAC;IAED,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC;AAC1E,CAAC"}
@@ -0,0 +1,19 @@
1
+ import type { MemorixRetrievalClient } from "../client/types.js";
2
+ import type { MemorixTarget } from "../mongo/types.js";
3
+ export type TargetReadParams = {
4
+ target: MemorixTarget;
5
+ collection: string;
6
+ query?: Record<string, unknown>;
7
+ project?: string[];
8
+ sort?: Record<string, 1 | -1> | string | string[];
9
+ limit?: number;
10
+ skip?: number;
11
+ };
12
+ export declare function memorixReadByTarget(client: MemorixRetrievalClient, params: TargetReadParams): Promise<Record<string, unknown>[]>;
13
+ export declare function memorixCountByTarget(client: MemorixRetrievalClient, params: {
14
+ target: MemorixTarget;
15
+ collection: string;
16
+ query?: Record<string, unknown>;
17
+ estimated?: boolean;
18
+ }): Promise<number>;
19
+ //# sourceMappingURL=target-read.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"target-read.d.ts","sourceRoot":"","sources":["../../src/data/target-read.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAKjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAGvD,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE,aAAa,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,MAAM,EAAE,CAAC;IAClD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,sBAAsB,EAC9B,MAAM,EAAE,gBAAgB,GACvB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,CAyDpC;AAED,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,sBAAsB,EAC9B,MAAM,EAAE;IACN,MAAM,EAAE,aAAa,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,GACA,OAAO,CAAC,MAAM,CAAC,CAmCjB"}