@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.
Files changed (177) hide show
  1. package/README.md +87 -0
  2. package/catalox-seeds/inputs/entity-descriptors/assets.json +7 -7
  3. package/catalox-seeds/inputs/entity-descriptors/vulnerabilities.json +7 -7
  4. package/catalox-seeds/inputs/item-descriptors/asset-detail-item.json +2 -2
  5. package/catalox-seeds/inputs/item-descriptors/topology-subnet-detail-item.json +2 -2
  6. package/catalox-seeds/inputs/item-descriptors/vulnerability-detail-item.json +2 -2
  7. package/catalox-seeds/inputs/list-descriptors/critical-vulnerabilities-slice.json +1 -1
  8. package/catalox-seeds/inputs/manifest.json +1 -1
  9. package/catalox-seeds/inputs/memorix-catalog-ids.json +1 -1
  10. package/catalox-seeds/memorix-retrieval-descriptors.manifest.json +33 -33
  11. package/dist/client/catalox-mongo-bootstrap.d.ts +13 -0
  12. package/dist/client/catalox-mongo-bootstrap.d.ts.map +1 -0
  13. package/dist/client/catalox-mongo-bootstrap.js +22 -0
  14. package/dist/client/catalox-mongo-bootstrap.js.map +1 -0
  15. package/dist/client/create-stack-from-env.js +2 -2
  16. package/dist/client/create-stack-from-env.js.map +1 -1
  17. package/dist/client/types.d.ts +17 -9
  18. package/dist/client/types.d.ts.map +1 -1
  19. package/dist/data/record-display-name.d.ts +4 -0
  20. package/dist/data/record-display-name.d.ts.map +1 -0
  21. package/dist/data/record-display-name.js +48 -0
  22. package/dist/data/record-display-name.js.map +1 -0
  23. package/dist/data/record-display-name.test.d.ts +2 -0
  24. package/dist/data/record-display-name.test.d.ts.map +1 -0
  25. package/dist/data/record-display-name.test.js +72 -0
  26. package/dist/data/record-display-name.test.js.map +1 -0
  27. package/dist/data/record-id.d.ts.map +1 -1
  28. package/dist/data/record-id.js +1 -1
  29. package/dist/data/record-id.js.map +1 -1
  30. package/dist/data/record-identity.d.ts +2 -2
  31. package/dist/data/record-identity.d.ts.map +1 -1
  32. package/dist/data/record-identity.js +23 -20
  33. package/dist/data/record-identity.js.map +1 -1
  34. package/dist/data/record-info.d.ts +32 -0
  35. package/dist/data/record-info.d.ts.map +1 -0
  36. package/dist/data/record-info.js +90 -0
  37. package/dist/data/record-info.js.map +1 -0
  38. package/dist/data/record-info.test.d.ts +2 -0
  39. package/dist/data/record-info.test.d.ts.map +1 -0
  40. package/dist/data/record-info.test.js +62 -0
  41. package/dist/data/record-info.test.js.map +1 -0
  42. package/dist/descriptors/catalog-ids.d.ts +2 -1
  43. package/dist/descriptors/catalog-ids.d.ts.map +1 -1
  44. package/dist/descriptors/catalog-ids.js +2 -1
  45. package/dist/descriptors/catalog-ids.js.map +1 -1
  46. package/dist/descriptors/descriptor-types.d.ts +14 -2
  47. package/dist/descriptors/descriptor-types.d.ts.map +1 -1
  48. package/dist/descriptors/internal-object-types.d.ts +3 -0
  49. package/dist/descriptors/internal-object-types.d.ts.map +1 -0
  50. package/dist/descriptors/internal-object-types.js +7 -0
  51. package/dist/descriptors/internal-object-types.js.map +1 -0
  52. package/dist/descriptors/load-list-descriptor.d.ts.map +1 -1
  53. package/dist/descriptors/load-list-descriptor.js +2 -1
  54. package/dist/descriptors/load-list-descriptor.js.map +1 -1
  55. package/dist/descriptors/normalize-list-sort.d.ts +5 -0
  56. package/dist/descriptors/normalize-list-sort.d.ts.map +1 -0
  57. package/dist/descriptors/normalize-list-sort.js +20 -0
  58. package/dist/descriptors/normalize-list-sort.js.map +1 -0
  59. package/dist/descriptors/validate-descriptor.d.ts +1 -0
  60. package/dist/descriptors/validate-descriptor.d.ts.map +1 -1
  61. package/dist/descriptors/validate-descriptor.js +25 -1
  62. package/dist/descriptors/validate-descriptor.js.map +1 -1
  63. package/dist/explorer/collection-records.d.ts +3 -2
  64. package/dist/explorer/collection-records.d.ts.map +1 -1
  65. package/dist/explorer/collection-records.js +4 -3
  66. package/dist/explorer/collection-records.js.map +1 -1
  67. package/dist/explorer/entity-graph.d.ts +2 -0
  68. package/dist/explorer/entity-graph.d.ts.map +1 -1
  69. package/dist/explorer/entity-graph.js +7 -1
  70. package/dist/explorer/entity-graph.js.map +1 -1
  71. package/dist/explorer/health.d.ts.map +1 -1
  72. package/dist/explorer/health.js +65 -30
  73. package/dist/explorer/health.js.map +1 -1
  74. package/dist/explorer/raw-collection-records.d.ts +2 -0
  75. package/dist/explorer/raw-collection-records.d.ts.map +1 -1
  76. package/dist/explorer/raw-collection-records.js +19 -14
  77. package/dist/explorer/raw-collection-records.js.map +1 -1
  78. package/dist/explorer/raw-reads.d.ts +2 -2
  79. package/dist/explorer/raw-reads.d.ts.map +1 -1
  80. package/dist/explorer/raw-reads.js +15 -2
  81. package/dist/explorer/raw-reads.js.map +1 -1
  82. package/dist/explorer/slice-index.d.ts.map +1 -1
  83. package/dist/explorer/slice-index.js +19 -11
  84. package/dist/explorer/slice-index.js.map +1 -1
  85. package/dist/explorer/unified-inventory.d.ts +3 -1
  86. package/dist/explorer/unified-inventory.d.ts.map +1 -1
  87. package/dist/explorer/unified-inventory.js +9 -2
  88. package/dist/explorer/unified-inventory.js.map +1 -1
  89. package/dist/index.d.ts +4 -0
  90. package/dist/index.d.ts.map +1 -1
  91. package/dist/index.js +4 -0
  92. package/dist/index.js.map +1 -1
  93. package/dist/mongo/env.d.ts +2 -0
  94. package/dist/mongo/env.d.ts.map +1 -1
  95. package/dist/mongo/env.js +4 -0
  96. package/dist/mongo/env.js.map +1 -1
  97. package/dist/retrieval/compose-row.d.ts.map +1 -1
  98. package/dist/retrieval/compose-row.js +10 -0
  99. package/dist/retrieval/compose-row.js.map +1 -1
  100. package/dist/retrieval/fetch-full-record.d.ts +22 -0
  101. package/dist/retrieval/fetch-full-record.d.ts.map +1 -0
  102. package/dist/retrieval/fetch-full-record.js +68 -0
  103. package/dist/retrieval/fetch-full-record.js.map +1 -0
  104. package/dist/retrieval/fetch-item.d.ts.map +1 -1
  105. package/dist/retrieval/fetch-item.js +15 -0
  106. package/dist/retrieval/fetch-item.js.map +1 -1
  107. package/dist/retrieval/fetch-list.d.ts.map +1 -1
  108. package/dist/retrieval/fetch-list.js +16 -7
  109. package/dist/retrieval/fetch-list.js.map +1 -1
  110. package/dist/retrieval/fetch-narratives.d.ts.map +1 -1
  111. package/dist/retrieval/fetch-narratives.js +2 -9
  112. package/dist/retrieval/fetch-narratives.js.map +1 -1
  113. package/dist/retrieval/fetch-record-info.d.ts +33 -0
  114. package/dist/retrieval/fetch-record-info.d.ts.map +1 -0
  115. package/dist/retrieval/fetch-record-info.js +39 -0
  116. package/dist/retrieval/fetch-record-info.js.map +1 -0
  117. package/dist/retrieval/fetch-workspace-list.d.ts.map +1 -1
  118. package/dist/retrieval/fetch-workspace-list.js +18 -7
  119. package/dist/retrieval/fetch-workspace-list.js.map +1 -1
  120. package/dist/retrieval/graph-run-buckets.js +1 -1
  121. package/dist/retrieval/graph-run-buckets.js.map +1 -1
  122. package/dist/retrieval/graph-run-buckets.test.js +1 -1
  123. package/dist/retrieval/graph-run-buckets.test.js.map +1 -1
  124. package/dist/retrieval/graph-run-filters.d.ts.map +1 -1
  125. package/dist/retrieval/graph-run-filters.js +1 -1
  126. package/dist/retrieval/graph-run-filters.js.map +1 -1
  127. package/dist/retrieval/graph-run-filters.test.js +11 -11
  128. package/dist/retrieval/graph-run-filters.test.js.map +1 -1
  129. package/dist/retrieval/processing-overview.test.js +2 -2
  130. package/dist/retrieval/processing-overview.test.js.map +1 -1
  131. package/dist/retrieval/resolve-filters.d.ts.map +1 -1
  132. package/dist/retrieval/resolve-filters.js +0 -4
  133. package/dist/retrieval/resolve-filters.js.map +1 -1
  134. package/dist/retrieval/resolve-list-analytics.d.ts +5 -0
  135. package/dist/retrieval/resolve-list-analytics.d.ts.map +1 -0
  136. package/dist/retrieval/resolve-list-analytics.js +63 -0
  137. package/dist/retrieval/resolve-list-analytics.js.map +1 -0
  138. package/dist/retrieval/resolve-pagination-driver.js +2 -2
  139. package/dist/retrieval/resolve-pagination-driver.js.map +1 -1
  140. package/dist/retrieval/resolve-sort.d.ts +8 -6
  141. package/dist/retrieval/resolve-sort.d.ts.map +1 -1
  142. package/dist/retrieval/resolve-sort.js +38 -15
  143. package/dist/retrieval/resolve-sort.js.map +1 -1
  144. package/dist/tests/collection-parser.test.js +14 -0
  145. package/dist/tests/collection-parser.test.js.map +1 -1
  146. package/dist/tests/create-stack-from-env.test.js +4 -3
  147. package/dist/tests/create-stack-from-env.test.js.map +1 -1
  148. package/dist/tests/entity-graph.test.js +45 -0
  149. package/dist/tests/entity-graph.test.js.map +1 -1
  150. package/dist/tests/env.test.js +9 -1
  151. package/dist/tests/env.test.js.map +1 -1
  152. package/dist/tests/fetch-item.test.js +71 -0
  153. package/dist/tests/fetch-item.test.js.map +1 -1
  154. package/dist/tests/fetch-list.test.js +84 -3
  155. package/dist/tests/fetch-list.test.js.map +1 -1
  156. package/dist/tests/fetch-narratives.test.js +1 -1
  157. package/dist/tests/fetch-narratives.test.js.map +1 -1
  158. package/dist/tests/fetch-record-info.test.d.ts +2 -0
  159. package/dist/tests/fetch-record-info.test.d.ts.map +1 -0
  160. package/dist/tests/fetch-record-info.test.js +68 -0
  161. package/dist/tests/fetch-record-info.test.js.map +1 -0
  162. package/dist/tests/fixtures.js +3 -3
  163. package/dist/tests/fixtures.js.map +1 -1
  164. package/dist/tests/internal-object-types.test.d.ts +2 -0
  165. package/dist/tests/internal-object-types.test.d.ts.map +1 -0
  166. package/dist/tests/internal-object-types.test.js +16 -0
  167. package/dist/tests/internal-object-types.test.js.map +1 -0
  168. package/dist/tests/raw-reads.test.d.ts +2 -0
  169. package/dist/tests/raw-reads.test.d.ts.map +1 -0
  170. package/dist/tests/raw-reads.test.js +122 -0
  171. package/dist/tests/raw-reads.test.js.map +1 -0
  172. package/dist/tests/unified-inventory.test.js +1 -1
  173. package/dist/tests/unified-inventory.test.js.map +1 -1
  174. package/docs/EXPLORER-HOST-APIS.md +1 -1
  175. package/docs/MEMORIX-CATALOX-CONTRACTS.md +1 -1
  176. package/docs/MEMORIX-DATABASE-CONVENTIONS.md +27 -39
  177. package/package.json +2 -2
@@ -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,4 @@
1
+ export declare function resolveMemorixRecordDisplayName(record: Record<string, unknown>, options?: {
2
+ preferredLocale?: string;
3
+ }): string | undefined;
4
+ //# sourceMappingURL=record-display-name.d.ts.map
@@ -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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=record-display-name.test.d.ts.map
@@ -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,EAAuC,GAC7D,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"}
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"}
@@ -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;IAE9D,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"}
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(target: MemorixTarget, record: Record<string, unknown>, options?: {
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;CACpE,CAAC;AAkCF,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,CA6DvB"}
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 readIdentityBlock(record) {
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 identityBlock = readIdentityBlock(record);
40
- if (identityBlock) {
41
- const recordId = stringifyId(identityBlock.recordId);
42
- if (recordId) {
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: recordId,
47
+ recordId: nestedRecordId,
48
+ id: nestedRecordId,
46
49
  identityField: "identity.recordId",
47
50
  source: "identity",
48
51
  };
49
52
  }
50
- const targetId = stringifyId(identityBlock.targetId);
51
- if (targetId) {
53
+ const nestedTargetId = stringifyId(nested.targetId);
54
+ if (nestedTargetId) {
52
55
  return {
53
- recordId: targetId,
54
- id: targetId,
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: "identity.targetId",
81
- source: "identity",
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":"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"}
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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=record-info.test.d.ts.map
@@ -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 = "memorix-list-descriptors";
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";