@x12i/memorix-retrieval 1.21.0 → 1.23.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/README.md +87 -0
- package/catalox-seeds/inputs/entity-descriptors/assets.json +7 -7
- package/catalox-seeds/inputs/entity-descriptors/vulnerabilities.json +7 -7
- package/catalox-seeds/inputs/item-descriptors/asset-detail-item.json +2 -2
- package/catalox-seeds/inputs/item-descriptors/topology-subnet-detail-item.json +2 -2
- package/catalox-seeds/inputs/item-descriptors/vulnerability-detail-item.json +2 -2
- package/catalox-seeds/inputs/list-descriptors/critical-vulnerabilities-slice.json +1 -1
- package/catalox-seeds/inputs/manifest.json +1 -1
- package/catalox-seeds/inputs/memorix-catalog-ids.json +1 -1
- package/catalox-seeds/memorix-retrieval-descriptors.manifest.json +33 -33
- package/dist/client/catalox-mongo-bootstrap.d.ts +13 -0
- package/dist/client/catalox-mongo-bootstrap.d.ts.map +1 -0
- package/dist/client/catalox-mongo-bootstrap.js +22 -0
- package/dist/client/catalox-mongo-bootstrap.js.map +1 -0
- package/dist/client/create-stack-from-env.js +2 -2
- package/dist/client/create-stack-from-env.js.map +1 -1
- package/dist/client/types.d.ts +17 -9
- package/dist/client/types.d.ts.map +1 -1
- package/dist/data/record-display-name.d.ts +4 -0
- package/dist/data/record-display-name.d.ts.map +1 -0
- package/dist/data/record-display-name.js +48 -0
- package/dist/data/record-display-name.js.map +1 -0
- package/dist/data/record-display-name.test.d.ts +2 -0
- package/dist/data/record-display-name.test.d.ts.map +1 -0
- package/dist/data/record-display-name.test.js +72 -0
- package/dist/data/record-display-name.test.js.map +1 -0
- package/dist/data/record-id.d.ts.map +1 -1
- package/dist/data/record-id.js +1 -1
- package/dist/data/record-id.js.map +1 -1
- package/dist/data/record-identity.d.ts +2 -2
- package/dist/data/record-identity.d.ts.map +1 -1
- package/dist/data/record-identity.js +23 -20
- package/dist/data/record-identity.js.map +1 -1
- package/dist/data/record-info.d.ts +32 -0
- package/dist/data/record-info.d.ts.map +1 -0
- package/dist/data/record-info.js +90 -0
- package/dist/data/record-info.js.map +1 -0
- package/dist/data/record-info.test.d.ts +2 -0
- package/dist/data/record-info.test.d.ts.map +1 -0
- package/dist/data/record-info.test.js +62 -0
- package/dist/data/record-info.test.js.map +1 -0
- package/dist/descriptors/catalog-ids.d.ts +2 -1
- package/dist/descriptors/catalog-ids.d.ts.map +1 -1
- package/dist/descriptors/catalog-ids.js +2 -1
- package/dist/descriptors/catalog-ids.js.map +1 -1
- package/dist/descriptors/descriptor-types.d.ts +14 -2
- package/dist/descriptors/descriptor-types.d.ts.map +1 -1
- package/dist/descriptors/internal-object-types.d.ts +3 -0
- package/dist/descriptors/internal-object-types.d.ts.map +1 -0
- package/dist/descriptors/internal-object-types.js +7 -0
- package/dist/descriptors/internal-object-types.js.map +1 -0
- package/dist/descriptors/load-list-descriptor.d.ts.map +1 -1
- package/dist/descriptors/load-list-descriptor.js +2 -1
- package/dist/descriptors/load-list-descriptor.js.map +1 -1
- package/dist/descriptors/normalize-list-sort.d.ts +5 -0
- package/dist/descriptors/normalize-list-sort.d.ts.map +1 -0
- package/dist/descriptors/normalize-list-sort.js +20 -0
- package/dist/descriptors/normalize-list-sort.js.map +1 -0
- package/dist/descriptors/validate-descriptor.d.ts +1 -0
- package/dist/descriptors/validate-descriptor.d.ts.map +1 -1
- package/dist/descriptors/validate-descriptor.js +25 -1
- package/dist/descriptors/validate-descriptor.js.map +1 -1
- package/dist/explorer/collection-records.d.ts +3 -2
- package/dist/explorer/collection-records.d.ts.map +1 -1
- package/dist/explorer/collection-records.js +4 -3
- package/dist/explorer/collection-records.js.map +1 -1
- package/dist/explorer/entity-graph.d.ts +2 -0
- package/dist/explorer/entity-graph.d.ts.map +1 -1
- package/dist/explorer/entity-graph.js +7 -1
- package/dist/explorer/entity-graph.js.map +1 -1
- package/dist/explorer/health.d.ts.map +1 -1
- package/dist/explorer/health.js +65 -30
- package/dist/explorer/health.js.map +1 -1
- package/dist/explorer/raw-collection-records.d.ts +2 -0
- package/dist/explorer/raw-collection-records.d.ts.map +1 -1
- package/dist/explorer/raw-collection-records.js +19 -14
- package/dist/explorer/raw-collection-records.js.map +1 -1
- package/dist/explorer/raw-reads.d.ts +2 -2
- package/dist/explorer/raw-reads.d.ts.map +1 -1
- package/dist/explorer/raw-reads.js +15 -2
- package/dist/explorer/raw-reads.js.map +1 -1
- package/dist/explorer/slice-index.d.ts.map +1 -1
- package/dist/explorer/slice-index.js +19 -11
- package/dist/explorer/slice-index.js.map +1 -1
- package/dist/explorer/unified-inventory.d.ts +3 -1
- package/dist/explorer/unified-inventory.d.ts.map +1 -1
- package/dist/explorer/unified-inventory.js +9 -2
- package/dist/explorer/unified-inventory.js.map +1 -1
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/mongo/env.d.ts +2 -0
- package/dist/mongo/env.d.ts.map +1 -1
- package/dist/mongo/env.js +4 -0
- package/dist/mongo/env.js.map +1 -1
- package/dist/retrieval/compose-row.d.ts.map +1 -1
- package/dist/retrieval/compose-row.js +10 -0
- package/dist/retrieval/compose-row.js.map +1 -1
- package/dist/retrieval/fetch-full-record.d.ts +22 -0
- package/dist/retrieval/fetch-full-record.d.ts.map +1 -0
- package/dist/retrieval/fetch-full-record.js +68 -0
- package/dist/retrieval/fetch-full-record.js.map +1 -0
- package/dist/retrieval/fetch-item.d.ts.map +1 -1
- package/dist/retrieval/fetch-item.js +15 -0
- package/dist/retrieval/fetch-item.js.map +1 -1
- package/dist/retrieval/fetch-list.d.ts.map +1 -1
- package/dist/retrieval/fetch-list.js +16 -7
- package/dist/retrieval/fetch-list.js.map +1 -1
- package/dist/retrieval/fetch-narratives.d.ts.map +1 -1
- package/dist/retrieval/fetch-narratives.js +2 -9
- package/dist/retrieval/fetch-narratives.js.map +1 -1
- package/dist/retrieval/fetch-record-info.d.ts +33 -0
- package/dist/retrieval/fetch-record-info.d.ts.map +1 -0
- package/dist/retrieval/fetch-record-info.js +39 -0
- package/dist/retrieval/fetch-record-info.js.map +1 -0
- package/dist/retrieval/fetch-workspace-list.d.ts.map +1 -1
- package/dist/retrieval/fetch-workspace-list.js +18 -7
- package/dist/retrieval/fetch-workspace-list.js.map +1 -1
- package/dist/retrieval/graph-run-buckets.js +1 -1
- package/dist/retrieval/graph-run-buckets.js.map +1 -1
- package/dist/retrieval/graph-run-buckets.test.js +1 -1
- package/dist/retrieval/graph-run-buckets.test.js.map +1 -1
- package/dist/retrieval/graph-run-filters.d.ts.map +1 -1
- package/dist/retrieval/graph-run-filters.js +1 -1
- package/dist/retrieval/graph-run-filters.js.map +1 -1
- package/dist/retrieval/graph-run-filters.test.js +11 -11
- package/dist/retrieval/graph-run-filters.test.js.map +1 -1
- package/dist/retrieval/processing-overview.test.js +2 -2
- package/dist/retrieval/processing-overview.test.js.map +1 -1
- package/dist/retrieval/resolve-filters.d.ts.map +1 -1
- package/dist/retrieval/resolve-filters.js +0 -4
- package/dist/retrieval/resolve-filters.js.map +1 -1
- package/dist/retrieval/resolve-list-analytics.d.ts +5 -0
- package/dist/retrieval/resolve-list-analytics.d.ts.map +1 -0
- package/dist/retrieval/resolve-list-analytics.js +63 -0
- package/dist/retrieval/resolve-list-analytics.js.map +1 -0
- package/dist/retrieval/resolve-pagination-driver.js +2 -2
- package/dist/retrieval/resolve-pagination-driver.js.map +1 -1
- package/dist/retrieval/resolve-sort.d.ts +8 -6
- package/dist/retrieval/resolve-sort.d.ts.map +1 -1
- package/dist/retrieval/resolve-sort.js +38 -15
- package/dist/retrieval/resolve-sort.js.map +1 -1
- package/dist/tests/collection-parser.test.js +14 -0
- package/dist/tests/collection-parser.test.js.map +1 -1
- package/dist/tests/create-stack-from-env.test.js +4 -3
- package/dist/tests/create-stack-from-env.test.js.map +1 -1
- package/dist/tests/entity-graph.test.js +45 -0
- package/dist/tests/entity-graph.test.js.map +1 -1
- package/dist/tests/env.test.js +9 -1
- package/dist/tests/env.test.js.map +1 -1
- package/dist/tests/fetch-item.test.js +71 -0
- package/dist/tests/fetch-item.test.js.map +1 -1
- package/dist/tests/fetch-list.test.js +84 -3
- package/dist/tests/fetch-list.test.js.map +1 -1
- package/dist/tests/fetch-narratives.test.js +1 -1
- package/dist/tests/fetch-narratives.test.js.map +1 -1
- package/dist/tests/fetch-record-info.test.d.ts +2 -0
- package/dist/tests/fetch-record-info.test.d.ts.map +1 -0
- package/dist/tests/fetch-record-info.test.js +68 -0
- package/dist/tests/fetch-record-info.test.js.map +1 -0
- package/dist/tests/fixtures.js +3 -3
- package/dist/tests/fixtures.js.map +1 -1
- package/dist/tests/internal-object-types.test.d.ts +2 -0
- package/dist/tests/internal-object-types.test.d.ts.map +1 -0
- package/dist/tests/internal-object-types.test.js +16 -0
- package/dist/tests/internal-object-types.test.js.map +1 -0
- package/dist/tests/raw-reads.test.d.ts +2 -0
- package/dist/tests/raw-reads.test.d.ts.map +1 -0
- package/dist/tests/raw-reads.test.js +122 -0
- package/dist/tests/raw-reads.test.js.map +1 -0
- package/dist/tests/unified-inventory.test.js +1 -1
- package/dist/tests/unified-inventory.test.js.map +1 -1
- package/docs/EXPLORER-HOST-APIS.md +1 -1
- package/docs/MEMORIX-CATALOX-CONTRACTS.md +1 -1
- package/docs/MEMORIX-DATABASE-CONVENTIONS.md +27 -39
- package/package.json +2 -2
package/dist/client/types.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { MongoClient } from "mongodb";
|
|
2
2
|
import type { createGcsClient } from "@x12i/helpers/gcs";
|
|
3
3
|
import type { createS3Client } from "@x12i/helpers/s3";
|
|
4
|
+
import type { MemorixConcept } from "@x12i/memorix-descriptors";
|
|
4
5
|
import type { CataloxLike } from "./catalox-like.js";
|
|
5
6
|
import type { XronoxLike } from "./xronox-like.js";
|
|
6
7
|
import type { MemorixTarget } from "../mongo/types.js";
|
|
@@ -68,10 +69,10 @@ export type FetchMemorixListRequest = {
|
|
|
68
69
|
limit?: number;
|
|
69
70
|
offset?: number;
|
|
70
71
|
};
|
|
71
|
-
sort?: {
|
|
72
|
+
sort?: Array<{
|
|
72
73
|
property: string;
|
|
73
74
|
direction: "asc" | "desc";
|
|
74
|
-
}
|
|
75
|
+
}>;
|
|
75
76
|
filters?: Array<import("../descriptors/descriptor-types.js").MemorixFilterInput>;
|
|
76
77
|
/** Graph-run planning filters on reserved `_graphRuns.<graphId>` paths (MRX-FRS-001). */
|
|
77
78
|
graphRunFilter?: import("../retrieval/graph-run-filters.js").GraphRunFilterInput | import("../retrieval/graph-run-filters.js").GraphRunFilterInput[];
|
|
@@ -90,6 +91,11 @@ export type FetchMemorixListRequest = {
|
|
|
90
91
|
auditRead?: boolean;
|
|
91
92
|
includeSourceRefs?: boolean;
|
|
92
93
|
};
|
|
94
|
+
export type MemorixRecordDisplayFields = {
|
|
95
|
+
recordId?: string;
|
|
96
|
+
displayName?: string;
|
|
97
|
+
concept?: MemorixConcept;
|
|
98
|
+
};
|
|
93
99
|
export type FetchMemorixListResponse = {
|
|
94
100
|
listId: string;
|
|
95
101
|
entity: string;
|
|
@@ -101,12 +107,12 @@ export type FetchMemorixListResponse = {
|
|
|
101
107
|
hasMore: boolean;
|
|
102
108
|
total?: number;
|
|
103
109
|
};
|
|
104
|
-
sort?: {
|
|
110
|
+
sort?: Array<{
|
|
105
111
|
property: string;
|
|
106
112
|
direction: "asc" | "desc";
|
|
107
113
|
contentType: string;
|
|
108
|
-
}
|
|
109
|
-
rows: Array<Record<string, unknown
|
|
114
|
+
}>;
|
|
115
|
+
rows: Array<Record<string, unknown> & MemorixRecordDisplayFields>;
|
|
110
116
|
issues?: import("../errors/issues.js").MemorixRetrievalIssue[];
|
|
111
117
|
source?: import("../runtime/source-provenance.js").MemorixRuntimeSourceRef;
|
|
112
118
|
sources?: import("../runtime/source-provenance.js").MemorixRuntimeSourceRef[];
|
|
@@ -128,10 +134,10 @@ export type FetchMemorixWorkspaceListRequest = {
|
|
|
128
134
|
limit?: number;
|
|
129
135
|
offset?: number;
|
|
130
136
|
};
|
|
131
|
-
sort?: {
|
|
137
|
+
sort?: Array<{
|
|
132
138
|
property: string;
|
|
133
139
|
direction: "asc" | "desc";
|
|
134
|
-
}
|
|
140
|
+
}>;
|
|
135
141
|
filters?: Array<import("../descriptors/descriptor-types.js").MemorixFilterInput>;
|
|
136
142
|
/** Graph-run planning filters on reserved `_graphRuns.<graphId>` paths (MRX-FRS-001). */
|
|
137
143
|
graphRunFilter?: import("../retrieval/graph-run-filters.js").GraphRunFilterInput | import("../retrieval/graph-run-filters.js").GraphRunFilterInput[];
|
|
@@ -155,11 +161,11 @@ export type FetchMemorixWorkspaceListResponse = {
|
|
|
155
161
|
hasMore: boolean;
|
|
156
162
|
total?: number;
|
|
157
163
|
};
|
|
158
|
-
sort?: {
|
|
164
|
+
sort?: Array<{
|
|
159
165
|
property: string;
|
|
160
166
|
direction: "asc" | "desc";
|
|
161
167
|
contentType?: string;
|
|
162
|
-
}
|
|
168
|
+
}>;
|
|
163
169
|
issues?: import("../errors/issues.js").MemorixRetrievalIssue[];
|
|
164
170
|
includedEntities: string[];
|
|
165
171
|
discovery: {
|
|
@@ -191,6 +197,8 @@ export type FetchMemorixItemResponse = {
|
|
|
191
197
|
entityId?: string;
|
|
192
198
|
eventId?: string;
|
|
193
199
|
knowledgeId?: string;
|
|
200
|
+
displayName?: string;
|
|
201
|
+
concept?: MemorixConcept;
|
|
194
202
|
sections: Array<{
|
|
195
203
|
id: string;
|
|
196
204
|
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 @@
|
|
|
1
|
+
{"version":3,"file":"record-display-name.d.ts","sourceRoot":"","sources":["../../src/data/record-display-name.ts"],"names":[],"mappings":"AAuBA,wBAAgB,+BAA+B,CAC7C,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,OAAO,CAAC,EAAE;IAAE,eAAe,CAAC,EAAE,MAAM,CAAA;CAAE,GACrC,MAAM,GAAG,SAAS,CAgCpB"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { readConceptTitle } from "@x12i/memorix-descriptors";
|
|
2
|
+
function trimNonEmpty(value) {
|
|
3
|
+
if (typeof value !== "string")
|
|
4
|
+
return undefined;
|
|
5
|
+
const trimmed = value.trim();
|
|
6
|
+
return trimmed || undefined;
|
|
7
|
+
}
|
|
8
|
+
function resolveLocalizedName(names, preferredLocale) {
|
|
9
|
+
if (preferredLocale) {
|
|
10
|
+
const preferred = trimNonEmpty(names[preferredLocale]);
|
|
11
|
+
if (preferred)
|
|
12
|
+
return preferred;
|
|
13
|
+
}
|
|
14
|
+
for (const value of Object.values(names)) {
|
|
15
|
+
const resolved = trimNonEmpty(value);
|
|
16
|
+
if (resolved)
|
|
17
|
+
return resolved;
|
|
18
|
+
}
|
|
19
|
+
return undefined;
|
|
20
|
+
}
|
|
21
|
+
export function resolveMemorixRecordDisplayName(record, options) {
|
|
22
|
+
const fromTitle = readConceptTitle(record);
|
|
23
|
+
if (fromTitle)
|
|
24
|
+
return fromTitle;
|
|
25
|
+
const concept = record.concept;
|
|
26
|
+
if (!concept || typeof concept !== "object" || Array.isArray(concept)) {
|
|
27
|
+
return undefined;
|
|
28
|
+
}
|
|
29
|
+
const name = concept.name;
|
|
30
|
+
if (name == null)
|
|
31
|
+
return undefined;
|
|
32
|
+
if (typeof name === "string") {
|
|
33
|
+
return trimNonEmpty(name);
|
|
34
|
+
}
|
|
35
|
+
if (Array.isArray(name)) {
|
|
36
|
+
for (const entry of name) {
|
|
37
|
+
const resolved = trimNonEmpty(entry);
|
|
38
|
+
if (resolved)
|
|
39
|
+
return resolved;
|
|
40
|
+
}
|
|
41
|
+
return undefined;
|
|
42
|
+
}
|
|
43
|
+
if (typeof name === "object") {
|
|
44
|
+
return resolveLocalizedName(name, options?.preferredLocale);
|
|
45
|
+
}
|
|
46
|
+
return undefined;
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=record-display-name.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"record-display-name.js","sourceRoot":"","sources":["../../src/data/record-display-name.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAE7D,SAAS,YAAY,CAAC,KAAc;IAClC,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IAChD,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,OAAO,OAAO,IAAI,SAAS,CAAC;AAC9B,CAAC;AAED,SAAS,oBAAoB,CAC3B,KAA8B,EAC9B,eAAwB;IAExB,IAAI,eAAe,EAAE,CAAC;QACpB,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC;QACvD,IAAI,SAAS;YAAE,OAAO,SAAS,CAAC;IAClC,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QACzC,MAAM,QAAQ,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;QACrC,IAAI,QAAQ;YAAE,OAAO,QAAQ,CAAC;IAChC,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,+BAA+B,CAC7C,MAA+B,EAC/B,OAAsC;IAEtC,MAAM,SAAS,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAC3C,IAAI,SAAS;QAAE,OAAO,SAAS,CAAC;IAEhC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;IAC/B,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACtE,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,IAAI,GAAI,OAAmC,CAAC,IAAI,CAAC;IACvD,IAAI,IAAI,IAAI,IAAI;QAAE,OAAO,SAAS,CAAC;IAEnC,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACxB,KAAK,MAAM,KAAK,IAAI,IAAI,EAAE,CAAC;YACzB,MAAM,QAAQ,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;YACrC,IAAI,QAAQ;gBAAE,OAAO,QAAQ,CAAC;QAChC,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,OAAO,oBAAoB,CACzB,IAA+B,EAC/B,OAAO,EAAE,eAAe,CACzB,CAAC;IACJ,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"record-display-name.test.d.ts","sourceRoot":"","sources":["../../src/data/record-display-name.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { describe, expect, it } from "vitest";
|
|
2
|
+
import { resolveMemorixRecordDisplayName } from "./record-display-name.js";
|
|
3
|
+
describe("resolveMemorixRecordDisplayName", () => {
|
|
4
|
+
it("returns concept.title (live record format)", () => {
|
|
5
|
+
expect(resolveMemorixRecordDisplayName({
|
|
6
|
+
_id: "6914a132880706529ece3da1",
|
|
7
|
+
recordId: "69d216ed358778e93215787e",
|
|
8
|
+
concept: {
|
|
9
|
+
identifier: { kind: "cveId", cveId: "CVE-2020-14882" },
|
|
10
|
+
title: "Oracle WebLogic Server RCE (CVE-2020-14882)",
|
|
11
|
+
},
|
|
12
|
+
})).toBe("Oracle WebLogic Server RCE (CVE-2020-14882)");
|
|
13
|
+
});
|
|
14
|
+
it("synthesizes display name from concept.identifier when title is absent", () => {
|
|
15
|
+
expect(resolveMemorixRecordDisplayName({
|
|
16
|
+
concept: { identifier: { kind: "cveId", cveId: "CVE-2020-14882" } },
|
|
17
|
+
})).toBe("CVE-2020-14882");
|
|
18
|
+
});
|
|
19
|
+
it("prefers concept.title over concept.identifier when both are present", () => {
|
|
20
|
+
expect(resolveMemorixRecordDisplayName({
|
|
21
|
+
concept: {
|
|
22
|
+
identifier: { kind: "ipAddress", ipAddress: "10.150.68.31" },
|
|
23
|
+
title: "10.150.68.31",
|
|
24
|
+
},
|
|
25
|
+
})).toBe("10.150.68.31");
|
|
26
|
+
});
|
|
27
|
+
it("returns string concept.name", () => {
|
|
28
|
+
expect(resolveMemorixRecordDisplayName({
|
|
29
|
+
id: "69d216ed358778e93215788d",
|
|
30
|
+
concept: { name: "Group A" },
|
|
31
|
+
})).toBe("Group A");
|
|
32
|
+
});
|
|
33
|
+
it("trims string concept.name", () => {
|
|
34
|
+
expect(resolveMemorixRecordDisplayName({
|
|
35
|
+
concept: { name: " Group A " },
|
|
36
|
+
})).toBe("Group A");
|
|
37
|
+
});
|
|
38
|
+
it("returns first non-empty entry from string array", () => {
|
|
39
|
+
expect(resolveMemorixRecordDisplayName({
|
|
40
|
+
concept: { name: ["", "Primary", "Alias"] },
|
|
41
|
+
})).toBe("Primary");
|
|
42
|
+
});
|
|
43
|
+
it("resolves localized object with preferred locale", () => {
|
|
44
|
+
expect(resolveMemorixRecordDisplayName({ concept: { name: { en: "Group A", he: "קבוצה א" } } }, { preferredLocale: "he" })).toBe("קבוצה א");
|
|
45
|
+
});
|
|
46
|
+
it("falls back to first non-empty localized value", () => {
|
|
47
|
+
expect(resolveMemorixRecordDisplayName({
|
|
48
|
+
concept: { name: { en: "", he: "קבוצה א" } },
|
|
49
|
+
})).toBe("קבוצה א");
|
|
50
|
+
});
|
|
51
|
+
it("returns undefined when concept is absent", () => {
|
|
52
|
+
expect(resolveMemorixRecordDisplayName({
|
|
53
|
+
id: "69d216ed358778e93215788d",
|
|
54
|
+
recordId: "69d216ed358778e93215788d",
|
|
55
|
+
})).toBeUndefined();
|
|
56
|
+
});
|
|
57
|
+
it("returns undefined when concept.name is empty", () => {
|
|
58
|
+
expect(resolveMemorixRecordDisplayName({
|
|
59
|
+
concept: { name: " " },
|
|
60
|
+
})).toBeUndefined();
|
|
61
|
+
});
|
|
62
|
+
it("never falls back to id or identity fields", () => {
|
|
63
|
+
expect(resolveMemorixRecordDisplayName({
|
|
64
|
+
id: "69d216ed358778e93215788d",
|
|
65
|
+
recordId: "69d216ed358778e93215788d",
|
|
66
|
+
entityId: "ent-1",
|
|
67
|
+
name: "Top-level name",
|
|
68
|
+
title: "Top-level title",
|
|
69
|
+
})).toBeUndefined();
|
|
70
|
+
});
|
|
71
|
+
});
|
|
72
|
+
//# sourceMappingURL=record-display-name.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"record-display-name.test.js","sourceRoot":"","sources":["../../src/data/record-display-name.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"record-id.d.ts","sourceRoot":"","sources":["../../src/data/record-id.ts"],"names":[],"mappings":"AAEA,wBAAgB,4BAA4B,CAC1C,QAAQ,EAAE,MAAM,GACf,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAMzB;AAiBD,wBAAgB,+BAA+B,CAC7C,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC3B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEzB;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED,wBAAgB,wBAAwB,CACtC,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,MAAM,GAAE,SAAS,MAAM,
|
|
1
|
+
{"version":3,"file":"record-id.d.ts","sourceRoot":"","sources":["../../src/data/record-id.ts"],"names":[],"mappings":"AAEA,wBAAgB,4BAA4B,CAC1C,QAAQ,EAAE,MAAM,GACf,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAMzB;AAiBD,wBAAgB,+BAA+B,CAC7C,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC3B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEzB;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED,wBAAgB,wBAAwB,CACtC,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,MAAM,GAAE,SAAS,MAAM,EAAuD,GAC7E,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAMrC;AAED,wBAAgB,wBAAwB,CACtC,GAAG,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC,GACrD,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAOzB"}
|
package/dist/data/record-id.js
CHANGED
|
@@ -30,7 +30,7 @@ export function serializeMemorixDocumentForJson(doc) {
|
|
|
30
30
|
export function escapeMongoRegex(value) {
|
|
31
31
|
return value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
32
32
|
}
|
|
33
|
-
export function memorixLabelSearchFilter(searchText, fields = ["name", "title", "label", "slug"]) {
|
|
33
|
+
export function memorixLabelSearchFilter(searchText, fields = ["name", "title", "label", "slug", "concept.name"]) {
|
|
34
34
|
const trimmed = searchText?.trim();
|
|
35
35
|
if (!trimmed)
|
|
36
36
|
return undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"record-id.js","sourceRoot":"","sources":["../../src/data/record-id.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnC,MAAM,UAAU,4BAA4B,CAC1C,QAAgB;IAEhB,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;IAChC,IAAI,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACtC,OAAO,EAAE,GAAG,EAAE,IAAI,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;IACxC,CAAC;IACD,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;AAC1B,CAAC;AAED,SAAS,cAAc,CAAC,KAAc;IACpC,IAAI,KAAK,IAAI,IAAI;QAAE,OAAO,KAAK,CAAC;IAChC,IAAI,KAAK,YAAY,QAAQ;QAAE,OAAO,KAAK,CAAC,WAAW,EAAE,CAAC;IAC1D,IAAI,KAAK,YAAY,IAAI;QAAE,OAAO,KAAK,CAAC,WAAW,EAAE,CAAC;IACtD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAC3D,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,GAAG,GAA4B,EAAE,CAAC;QACxC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAgC,CAAC,EAAE,CAAC;YACtE,GAAG,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;QAC7B,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,+BAA+B,CAC7C,GAA4B;IAE5B,OAAO,cAAc,CAAC,GAAG,CAA4B,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAAa;IAC5C,OAAO,KAAK,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,UAA8B,EAC9B,SAA4B,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"record-id.js","sourceRoot":"","sources":["../../src/data/record-id.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnC,MAAM,UAAU,4BAA4B,CAC1C,QAAgB;IAEhB,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;IAChC,IAAI,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACtC,OAAO,EAAE,GAAG,EAAE,IAAI,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;IACxC,CAAC;IACD,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;AAC1B,CAAC;AAED,SAAS,cAAc,CAAC,KAAc;IACpC,IAAI,KAAK,IAAI,IAAI;QAAE,OAAO,KAAK,CAAC;IAChC,IAAI,KAAK,YAAY,QAAQ;QAAE,OAAO,KAAK,CAAC,WAAW,EAAE,CAAC;IAC1D,IAAI,KAAK,YAAY,IAAI;QAAE,OAAO,KAAK,CAAC,WAAW,EAAE,CAAC;IACtD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAC3D,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,GAAG,GAA4B,EAAE,CAAC;QACxC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAgC,CAAC,EAAE,CAAC;YACtE,GAAG,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;QAC7B,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,+BAA+B,CAC7C,GAA4B;IAE5B,OAAO,cAAc,CAAC,GAAG,CAA4B,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAAa;IAC5C,OAAO,KAAK,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,UAA8B,EAC9B,SAA4B,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,CAAC;IAE9E,MAAM,OAAO,GAAG,UAAU,EAAE,IAAI,EAAE,CAAC;IACnC,IAAI,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IAC/B,MAAM,EAAE,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACrC,MAAM,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;IAC/E,OAAO,EAAE,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,GAAG,OAAmD;IAEtD,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAC1B,CAAC,CAAC,EAAgC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAC9E,CAAC;IACF,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAClC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,CAAC,CAAE,CAAC;IACzC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AACzB,CAAC"}
|
|
@@ -4,9 +4,9 @@ export type MemorixRecordIdentity = {
|
|
|
4
4
|
/** @deprecated Use recordId */
|
|
5
5
|
id: string;
|
|
6
6
|
identityField: string;
|
|
7
|
-
source: "descriptor" | "identity" | "id" | "mongo-id" | "fallback";
|
|
7
|
+
source: "descriptor" | "recordId" | "identity" | "id" | "mongo-id" | "fallback";
|
|
8
8
|
};
|
|
9
|
-
export declare function resolveMemorixRecordIdentity(
|
|
9
|
+
export declare function resolveMemorixRecordIdentity(_target: MemorixTarget, record: Record<string, unknown>, options?: {
|
|
10
10
|
descriptorIdentityField?: string;
|
|
11
11
|
fallbackFields?: string[];
|
|
12
12
|
}): MemorixRecordIdentity;
|
|
@@ -1 +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;AAEvD,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,+BAA+B;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,YAAY,GAAG,UAAU,GAAG,IAAI,GAAG,UAAU,GAAG,UAAU,CAAC;
|
|
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;AAEvD,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,+BAA+B;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,YAAY,GAAG,UAAU,GAAG,UAAU,GAAG,IAAI,GAAG,UAAU,GAAG,UAAU,CAAC;CACjF,CAAC;AAwBF,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,aAAa,EACtB,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,CAuEvB"}
|
|
@@ -17,14 +17,7 @@ function stringifyId(value) {
|
|
|
17
17
|
function readField(record, field) {
|
|
18
18
|
return stringifyId(record[field]);
|
|
19
19
|
}
|
|
20
|
-
function
|
|
21
|
-
const identity = record.identity;
|
|
22
|
-
if (identity && typeof identity === "object" && !Array.isArray(identity)) {
|
|
23
|
-
return identity;
|
|
24
|
-
}
|
|
25
|
-
return null;
|
|
26
|
-
}
|
|
27
|
-
export function resolveMemorixRecordIdentity(target, record, options) {
|
|
20
|
+
export function resolveMemorixRecordIdentity(_target, record, options) {
|
|
28
21
|
if (options?.descriptorIdentityField) {
|
|
29
22
|
const id = readField(record, options.descriptorIdentityField);
|
|
30
23
|
if (id) {
|
|
@@ -36,22 +29,32 @@ export function resolveMemorixRecordIdentity(target, record, options) {
|
|
|
36
29
|
};
|
|
37
30
|
}
|
|
38
31
|
}
|
|
39
|
-
const
|
|
40
|
-
if (
|
|
41
|
-
|
|
42
|
-
|
|
32
|
+
const rootRecordId = stringifyId(record.recordId);
|
|
33
|
+
if (rootRecordId) {
|
|
34
|
+
return {
|
|
35
|
+
recordId: rootRecordId,
|
|
36
|
+
id: rootRecordId,
|
|
37
|
+
identityField: "recordId",
|
|
38
|
+
source: "recordId",
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
const identity = record.identity;
|
|
42
|
+
if (identity != null && typeof identity === "object") {
|
|
43
|
+
const nested = identity;
|
|
44
|
+
const nestedRecordId = stringifyId(nested.recordId);
|
|
45
|
+
if (nestedRecordId) {
|
|
43
46
|
return {
|
|
44
|
-
recordId,
|
|
45
|
-
id:
|
|
47
|
+
recordId: nestedRecordId,
|
|
48
|
+
id: nestedRecordId,
|
|
46
49
|
identityField: "identity.recordId",
|
|
47
50
|
source: "identity",
|
|
48
51
|
};
|
|
49
52
|
}
|
|
50
|
-
const
|
|
51
|
-
if (
|
|
53
|
+
const nestedTargetId = stringifyId(nested.targetId);
|
|
54
|
+
if (nestedTargetId) {
|
|
52
55
|
return {
|
|
53
|
-
recordId:
|
|
54
|
-
id:
|
|
56
|
+
recordId: nestedTargetId,
|
|
57
|
+
id: nestedTargetId,
|
|
55
58
|
identityField: "identity.targetId",
|
|
56
59
|
source: "identity",
|
|
57
60
|
};
|
|
@@ -77,8 +80,8 @@ export function resolveMemorixRecordIdentity(target, record, options) {
|
|
|
77
80
|
return {
|
|
78
81
|
recordId: "",
|
|
79
82
|
id: "",
|
|
80
|
-
identityField: "
|
|
81
|
-
source: "
|
|
83
|
+
identityField: "recordId",
|
|
84
|
+
source: "recordId",
|
|
82
85
|
};
|
|
83
86
|
}
|
|
84
87
|
//# sourceMappingURL=record-identity.js.map
|
|
@@ -1 +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;AAWnC,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,
|
|
1
|
+
{"version":3,"file":"record-identity.js","sourceRoot":"","sources":["../../src/data/record-identity.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { MemorixConcept } from "@x12i/memorix-descriptors";
|
|
2
|
+
import type { MemorixTarget } from "../mongo/types.js";
|
|
3
|
+
export type MemorixRecordInfo = {
|
|
4
|
+
recordId: string;
|
|
5
|
+
displayName?: string;
|
|
6
|
+
concept?: MemorixConcept;
|
|
7
|
+
entityId?: string;
|
|
8
|
+
eventId?: string;
|
|
9
|
+
knowledgeId?: string;
|
|
10
|
+
identityField?: "entityId" | "eventId" | "knowledgeId";
|
|
11
|
+
identityValue?: string;
|
|
12
|
+
};
|
|
13
|
+
export type ResolveMemorixRecordInfoOptions = {
|
|
14
|
+
preferredLocale?: string;
|
|
15
|
+
descriptorIdentityField?: string;
|
|
16
|
+
fallbackFields?: string[];
|
|
17
|
+
};
|
|
18
|
+
export declare function resolveMemorixRecordInfo(target: MemorixTarget, record: Record<string, unknown>, options?: ResolveMemorixRecordInfoOptions): MemorixRecordInfo;
|
|
19
|
+
export declare function resolveMemorixRecordInfoFromRow(row: Record<string, unknown>): MemorixRecordInfo;
|
|
20
|
+
export declare function resolveMemorixRecordInfoFromItem(item: {
|
|
21
|
+
displayName?: string;
|
|
22
|
+
entityId?: string;
|
|
23
|
+
eventId?: string;
|
|
24
|
+
knowledgeId?: string;
|
|
25
|
+
}): MemorixRecordInfo;
|
|
26
|
+
export declare function formatMemorixRecordLabel(info: MemorixRecordInfo, options?: {
|
|
27
|
+
/** When true and both name and id exist, returns `Name (id)`. Default false. */
|
|
28
|
+
includeIdSuffix?: boolean;
|
|
29
|
+
/** Truncate id suffix for display (default: no truncation). */
|
|
30
|
+
maxIdLength?: number;
|
|
31
|
+
}): string;
|
|
32
|
+
//# sourceMappingURL=record-info.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"record-info.d.ts","sourceRoot":"","sources":["../../src/data/record-info.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAIhE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AASvD,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,UAAU,GAAG,SAAS,GAAG,aAAa,CAAC;IACvD,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,+BAA+B,GAAG;IAC5C,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B,CAAC;AAEF,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,OAAO,CAAC,EAAE,+BAA+B,GACxC,iBAAiB,CAwBnB;AAED,wBAAgB,+BAA+B,CAC7C,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC3B,iBAAiB,CA2BnB;AAED,wBAAgB,gCAAgC,CAC9C,IAAI,EAAE;IACJ,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GACA,iBAAiB,CA6BnB;AAED,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,iBAAiB,EACvB,OAAO,CAAC,EAAE;IACR,gFAAgF;IAChF,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,+DAA+D;IAC/D,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GACA,MAAM,CAgBR"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { getIdentityFromRecord } from "./identity.js";
|
|
2
|
+
import { resolveMemorixRecordDisplayName } from "./record-display-name.js";
|
|
3
|
+
import { resolveMemorixRecordIdentity } from "./record-identity.js";
|
|
4
|
+
function readConcept(value) {
|
|
5
|
+
if (value != null && typeof value === "object" && !Array.isArray(value)) {
|
|
6
|
+
return value;
|
|
7
|
+
}
|
|
8
|
+
return undefined;
|
|
9
|
+
}
|
|
10
|
+
export function resolveMemorixRecordInfo(target, record, options) {
|
|
11
|
+
const identity = resolveMemorixRecordIdentity(target, record, {
|
|
12
|
+
descriptorIdentityField: options?.descriptorIdentityField,
|
|
13
|
+
fallbackFields: options?.fallbackFields,
|
|
14
|
+
});
|
|
15
|
+
const displayName = resolveMemorixRecordDisplayName(record, {
|
|
16
|
+
preferredLocale: options?.preferredLocale,
|
|
17
|
+
});
|
|
18
|
+
const targetIdentity = getIdentityFromRecord(record);
|
|
19
|
+
const concept = readConcept(record.concept);
|
|
20
|
+
const info = {
|
|
21
|
+
recordId: identity.recordId,
|
|
22
|
+
...(displayName ? { displayName } : {}),
|
|
23
|
+
...(concept ? { concept } : {}),
|
|
24
|
+
};
|
|
25
|
+
if (targetIdentity) {
|
|
26
|
+
info.identityField = targetIdentity.field;
|
|
27
|
+
info.identityValue = targetIdentity.value;
|
|
28
|
+
info[targetIdentity.field] = targetIdentity.value;
|
|
29
|
+
}
|
|
30
|
+
return info;
|
|
31
|
+
}
|
|
32
|
+
export function resolveMemorixRecordInfoFromRow(row) {
|
|
33
|
+
const targetIdentity = getIdentityFromRecord(row);
|
|
34
|
+
const recordId = typeof row.recordId === "string" && row.recordId.trim()
|
|
35
|
+
? row.recordId.trim()
|
|
36
|
+
: targetIdentity?.value ?? "";
|
|
37
|
+
const displayName = typeof row.displayName === "string" && row.displayName.trim()
|
|
38
|
+
? row.displayName.trim()
|
|
39
|
+
: undefined;
|
|
40
|
+
const concept = readConcept(row.concept);
|
|
41
|
+
const info = {
|
|
42
|
+
recordId,
|
|
43
|
+
...(displayName ? { displayName } : {}),
|
|
44
|
+
...(concept ? { concept } : {}),
|
|
45
|
+
};
|
|
46
|
+
if (targetIdentity) {
|
|
47
|
+
info.identityField = targetIdentity.field;
|
|
48
|
+
info.identityValue = targetIdentity.value;
|
|
49
|
+
info[targetIdentity.field] = targetIdentity.value;
|
|
50
|
+
}
|
|
51
|
+
return info;
|
|
52
|
+
}
|
|
53
|
+
export function resolveMemorixRecordInfoFromItem(item) {
|
|
54
|
+
const identity = item.entityId != null && item.entityId !== ""
|
|
55
|
+
? { field: "entityId", value: item.entityId }
|
|
56
|
+
: item.eventId != null && item.eventId !== ""
|
|
57
|
+
? { field: "eventId", value: item.eventId }
|
|
58
|
+
: item.knowledgeId != null && item.knowledgeId !== ""
|
|
59
|
+
? { field: "knowledgeId", value: item.knowledgeId }
|
|
60
|
+
: null;
|
|
61
|
+
const displayName = typeof item.displayName === "string" && item.displayName.trim()
|
|
62
|
+
? item.displayName.trim()
|
|
63
|
+
: undefined;
|
|
64
|
+
const recordId = identity?.value ?? "";
|
|
65
|
+
const info = {
|
|
66
|
+
recordId,
|
|
67
|
+
...(displayName ? { displayName } : {}),
|
|
68
|
+
};
|
|
69
|
+
if (identity) {
|
|
70
|
+
info.identityField = identity.field;
|
|
71
|
+
info.identityValue = identity.value;
|
|
72
|
+
info[identity.field] = identity.value;
|
|
73
|
+
}
|
|
74
|
+
return info;
|
|
75
|
+
}
|
|
76
|
+
export function formatMemorixRecordLabel(info, options) {
|
|
77
|
+
const id = info.recordId || info.identityValue || "";
|
|
78
|
+
const title = info.displayName?.trim();
|
|
79
|
+
if (title) {
|
|
80
|
+
if (options?.includeIdSuffix && id && id !== title) {
|
|
81
|
+
const suffix = options.maxIdLength && id.length > options.maxIdLength
|
|
82
|
+
? `${id.slice(0, options.maxIdLength)}…`
|
|
83
|
+
: id;
|
|
84
|
+
return `${title} (${suffix})`;
|
|
85
|
+
}
|
|
86
|
+
return title;
|
|
87
|
+
}
|
|
88
|
+
return id;
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=record-info.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"record-info.js","sourceRoot":"","sources":["../../src/data/record-info.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"record-info.test.d.ts","sourceRoot":"","sources":["../../src/data/record-info.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { describe, expect, it } from "vitest";
|
|
2
|
+
import { formatMemorixRecordLabel, resolveMemorixRecordInfo, resolveMemorixRecordInfoFromItem, resolveMemorixRecordInfoFromRow, } from "./record-info.js";
|
|
3
|
+
describe("resolveMemorixRecordInfo", () => {
|
|
4
|
+
it("combines record id, target identity, and concept name", () => {
|
|
5
|
+
expect(resolveMemorixRecordInfo("entity", {
|
|
6
|
+
_id: "507f1f77bcf86cd799439011",
|
|
7
|
+
entityId: "10.0.0.1",
|
|
8
|
+
concept: { name: "Host A" },
|
|
9
|
+
})).toEqual({
|
|
10
|
+
recordId: "507f1f77bcf86cd799439011",
|
|
11
|
+
displayName: "Host A",
|
|
12
|
+
concept: { name: "Host A" },
|
|
13
|
+
entityId: "10.0.0.1",
|
|
14
|
+
identityField: "entityId",
|
|
15
|
+
identityValue: "10.0.0.1",
|
|
16
|
+
});
|
|
17
|
+
});
|
|
18
|
+
});
|
|
19
|
+
describe("resolveMemorixRecordInfoFromRow", () => {
|
|
20
|
+
it("reads stamped list row fields", () => {
|
|
21
|
+
expect(resolveMemorixRecordInfoFromRow({
|
|
22
|
+
recordId: "rec-1",
|
|
23
|
+
displayName: "Group A",
|
|
24
|
+
entityId: "ent-1",
|
|
25
|
+
})).toEqual({
|
|
26
|
+
recordId: "rec-1",
|
|
27
|
+
displayName: "Group A",
|
|
28
|
+
entityId: "ent-1",
|
|
29
|
+
identityField: "entityId",
|
|
30
|
+
identityValue: "ent-1",
|
|
31
|
+
});
|
|
32
|
+
});
|
|
33
|
+
});
|
|
34
|
+
describe("resolveMemorixRecordInfoFromItem", () => {
|
|
35
|
+
it("reads item response fields", () => {
|
|
36
|
+
expect(resolveMemorixRecordInfoFromItem({
|
|
37
|
+
displayName: "Host A",
|
|
38
|
+
entityId: "10.0.0.1",
|
|
39
|
+
})).toEqual({
|
|
40
|
+
recordId: "10.0.0.1",
|
|
41
|
+
displayName: "Host A",
|
|
42
|
+
entityId: "10.0.0.1",
|
|
43
|
+
identityField: "entityId",
|
|
44
|
+
identityValue: "10.0.0.1",
|
|
45
|
+
});
|
|
46
|
+
});
|
|
47
|
+
});
|
|
48
|
+
describe("formatMemorixRecordLabel", () => {
|
|
49
|
+
it("prefers display name", () => {
|
|
50
|
+
expect(formatMemorixRecordLabel({
|
|
51
|
+
recordId: "rec-1",
|
|
52
|
+
displayName: "Group A",
|
|
53
|
+
})).toBe("Group A");
|
|
54
|
+
});
|
|
55
|
+
it("falls back to record id when no display name", () => {
|
|
56
|
+
expect(formatMemorixRecordLabel({ recordId: "rec-1" })).toBe("rec-1");
|
|
57
|
+
});
|
|
58
|
+
it("supports optional id suffix for pickers", () => {
|
|
59
|
+
expect(formatMemorixRecordLabel({ recordId: "rec-1", displayName: "Group A" }, { includeIdSuffix: true })).toBe("Group A (rec-1)");
|
|
60
|
+
});
|
|
61
|
+
});
|
|
62
|
+
//# sourceMappingURL=record-info.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"record-info.test.js","sourceRoot":"","sources":["../../src/data/record-info.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EACL,wBAAwB,EACxB,wBAAwB,EACxB,gCAAgC,EAChC,+BAA+B,GAChC,MAAM,kBAAkB,CAAC;AAE1B,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;IACxC,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;QAC/D,MAAM,CACJ,wBAAwB,CAAC,QAAQ,EAAE;YACjC,GAAG,EAAE,0BAA0B;YAC/B,QAAQ,EAAE,UAAU;YACpB,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;SAC5B,CAAC,CACH,CAAC,OAAO,CAAC;YACR,QAAQ,EAAE,0BAA0B;YACpC,WAAW,EAAE,QAAQ;YACrB,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC3B,QAAQ,EAAE,UAAU;YACpB,aAAa,EAAE,UAAU;YACzB,aAAa,EAAE,UAAU;SAC1B,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,iCAAiC,EAAE,GAAG,EAAE;IAC/C,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;QACvC,MAAM,CACJ,+BAA+B,CAAC;YAC9B,QAAQ,EAAE,OAAO;YACjB,WAAW,EAAE,SAAS;YACtB,QAAQ,EAAE,OAAO;SAClB,CAAC,CACH,CAAC,OAAO,CAAC;YACR,QAAQ,EAAE,OAAO;YACjB,WAAW,EAAE,SAAS;YACtB,QAAQ,EAAE,OAAO;YACjB,aAAa,EAAE,UAAU;YACzB,aAAa,EAAE,OAAO;SACvB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,kCAAkC,EAAE,GAAG,EAAE;IAChD,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;QACpC,MAAM,CACJ,gCAAgC,CAAC;YAC/B,WAAW,EAAE,QAAQ;YACrB,QAAQ,EAAE,UAAU;SACrB,CAAC,CACH,CAAC,OAAO,CAAC;YACR,QAAQ,EAAE,UAAU;YACpB,WAAW,EAAE,QAAQ;YACrB,QAAQ,EAAE,UAAU;YACpB,aAAa,EAAE,UAAU;YACzB,aAAa,EAAE,UAAU;SAC1B,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;IACxC,EAAE,CAAC,sBAAsB,EAAE,GAAG,EAAE;QAC9B,MAAM,CACJ,wBAAwB,CAAC;YACvB,QAAQ,EAAE,OAAO;YACjB,WAAW,EAAE,SAAS;SACvB,CAAC,CACH,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACpB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;QACtD,MAAM,CAAC,wBAAwB,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACxE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QACjD,MAAM,CACJ,wBAAwB,CACtB,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,EAC7C,EAAE,eAAe,EAAE,IAAI,EAAE,CAC1B,CACF,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
export declare const MEMORIX_APP_ID = "memorix";
|
|
2
2
|
export declare const MEMORIX_OBJECT_TYPE_DESCRIPTORS_CATALOG = "memorix-object-type-descriptors";
|
|
3
3
|
export declare const MEMORIX_LEGACY_ENTITY_DESCRIPTORS_CATALOG = "memorix-entity-descriptors";
|
|
4
|
-
export declare const MEMORIX_LIST_DESCRIPTORS_CATALOG = "
|
|
4
|
+
export declare const MEMORIX_LIST_DESCRIPTORS_CATALOG = "lists";
|
|
5
|
+
export declare const LEGACY_LIST_DESCRIPTORS_CATALOG = "memorix-list-descriptors";
|
|
5
6
|
export declare const MEMORIX_ITEM_DESCRIPTORS_CATALOG = "memorix-item-descriptors";
|
|
6
7
|
/** @deprecated Use MEMORIX_OBJECT_TYPE_DESCRIPTORS_CATALOG */
|
|
7
8
|
export declare const MEMORIX_ENTITY_DESCRIPTORS_CATALOG = "memorix-entity-descriptors";
|