@x12i/memorix-retrieval 1.1.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 (232) hide show
  1. package/README.md +124 -0
  2. package/catalox-seeds/inputs/entity-descriptors/assets.json +296 -0
  3. package/catalox-seeds/inputs/entity-descriptors/variabilities-groups.json +312 -0
  4. package/catalox-seeds/inputs/entity-descriptors/vulnerabilities.json +419 -0
  5. package/catalox-seeds/inputs/item-descriptors/asset-detail-item.json +85 -0
  6. package/catalox-seeds/inputs/item-descriptors/variabilities-group-detail-item.json +87 -0
  7. package/catalox-seeds/inputs/item-descriptors/vulnerability-detail-item.json +106 -0
  8. package/catalox-seeds/inputs/list-descriptors/assets-main-list.json +46 -0
  9. package/catalox-seeds/inputs/list-descriptors/critical-vulnerabilities-list.json +44 -0
  10. package/catalox-seeds/inputs/list-descriptors/variabilities-groups-main-list.json +43 -0
  11. package/catalox-seeds/inputs/list-descriptors/vulnerabilities-main-list.json +47 -0
  12. package/catalox-seeds/inputs/manifest.json +44 -0
  13. package/catalox-seeds/inputs/memorix-catalog-ids.json +8 -0
  14. package/catalox-seeds/inputs/memorix-descriptors.bundle.json +1502 -0
  15. package/catalox-seeds/inputs/memorix-entity-descriptors.catalog.json +1029 -0
  16. package/catalox-seeds/inputs/memorix-entity-descriptors.items.json +1026 -0
  17. package/catalox-seeds/inputs/memorix-item-descriptors.catalog.json +283 -0
  18. package/catalox-seeds/inputs/memorix-item-descriptors.items.json +280 -0
  19. package/catalox-seeds/inputs/memorix-list-descriptors.catalog.json +185 -0
  20. package/catalox-seeds/inputs/memorix-list-descriptors.items.json +182 -0
  21. package/catalox-seeds/inputs/scope.json +4 -0
  22. package/catalox-seeds/memorix-retrieval-descriptors.manifest.json +1844 -0
  23. package/dist/client/catalox-like.d.ts +16 -0
  24. package/dist/client/catalox-like.d.ts.map +1 -0
  25. package/dist/client/catalox-like.js +2 -0
  26. package/dist/client/catalox-like.js.map +1 -0
  27. package/dist/client/create-client.d.ts +3 -0
  28. package/dist/client/create-client.d.ts.map +1 -0
  29. package/dist/client/create-client.js +50 -0
  30. package/dist/client/create-client.js.map +1 -0
  31. package/dist/client/create-from-env.d.ts +3 -0
  32. package/dist/client/create-from-env.d.ts.map +1 -0
  33. package/dist/client/create-from-env.js +10 -0
  34. package/dist/client/create-from-env.js.map +1 -0
  35. package/dist/client/types.d.ts +109 -0
  36. package/dist/client/types.d.ts.map +1 -0
  37. package/dist/client/types.js +2 -0
  38. package/dist/client/types.js.map +1 -0
  39. package/dist/client/xronox-like.d.ts +18 -0
  40. package/dist/client/xronox-like.d.ts.map +1 -0
  41. package/dist/client/xronox-like.js +2 -0
  42. package/dist/client/xronox-like.js.map +1 -0
  43. package/dist/content/fetch-content-object.d.ts +16 -0
  44. package/dist/content/fetch-content-object.d.ts.map +1 -0
  45. package/dist/content/fetch-content-object.js +54 -0
  46. package/dist/content/fetch-content-object.js.map +1 -0
  47. package/dist/content/map-content-errors.d.ts +5 -0
  48. package/dist/content/map-content-errors.d.ts.map +1 -0
  49. package/dist/content/map-content-errors.js +39 -0
  50. package/dist/content/map-content-errors.js.map +1 -0
  51. package/dist/content/memorix-content-object.d.ts +21 -0
  52. package/dist/content/memorix-content-object.d.ts.map +1 -0
  53. package/dist/content/memorix-content-object.js +54 -0
  54. package/dist/content/memorix-content-object.js.map +1 -0
  55. package/dist/content/resolve-content-config.d.ts +19 -0
  56. package/dist/content/resolve-content-config.d.ts.map +1 -0
  57. package/dist/content/resolve-content-config.js +37 -0
  58. package/dist/content/resolve-content-config.js.map +1 -0
  59. package/dist/data/collection-name.d.ts +4 -0
  60. package/dist/data/collection-name.d.ts.map +1 -0
  61. package/dist/data/collection-name.js +23 -0
  62. package/dist/data/collection-name.js.map +1 -0
  63. package/dist/data/identity.d.ts +36 -0
  64. package/dist/data/identity.d.ts.map +1 -0
  65. package/dist/data/identity.js +68 -0
  66. package/dist/data/identity.js.map +1 -0
  67. package/dist/data/memorix-read.d.ts +17 -0
  68. package/dist/data/memorix-read.d.ts.map +1 -0
  69. package/dist/data/memorix-read.js +55 -0
  70. package/dist/data/memorix-read.js.map +1 -0
  71. package/dist/data/multi-match.d.ts +16 -0
  72. package/dist/data/multi-match.d.ts.map +1 -0
  73. package/dist/data/multi-match.js +65 -0
  74. package/dist/data/multi-match.js.map +1 -0
  75. package/dist/data/path.d.ts +3 -0
  76. package/dist/data/path.d.ts.map +1 -0
  77. package/dist/data/path.js +23 -0
  78. package/dist/data/path.js.map +1 -0
  79. package/dist/data/xronox-read.d.ts +13 -0
  80. package/dist/data/xronox-read.d.ts.map +1 -0
  81. package/dist/data/xronox-read.js +34 -0
  82. package/dist/data/xronox-read.js.map +1 -0
  83. package/dist/descriptors/catalog-ids.d.ts +5 -0
  84. package/dist/descriptors/catalog-ids.d.ts.map +1 -0
  85. package/dist/descriptors/catalog-ids.js +5 -0
  86. package/dist/descriptors/catalog-ids.js.map +1 -0
  87. package/dist/descriptors/descriptor-types.d.ts +187 -0
  88. package/dist/descriptors/descriptor-types.d.ts.map +1 -0
  89. package/dist/descriptors/descriptor-types.js +2 -0
  90. package/dist/descriptors/descriptor-types.js.map +1 -0
  91. package/dist/descriptors/load-entity-descriptor.d.ts +4 -0
  92. package/dist/descriptors/load-entity-descriptor.d.ts.map +1 -0
  93. package/dist/descriptors/load-entity-descriptor.js +15 -0
  94. package/dist/descriptors/load-entity-descriptor.js.map +1 -0
  95. package/dist/descriptors/load-item-descriptor.d.ts +4 -0
  96. package/dist/descriptors/load-item-descriptor.d.ts.map +1 -0
  97. package/dist/descriptors/load-item-descriptor.js +15 -0
  98. package/dist/descriptors/load-item-descriptor.js.map +1 -0
  99. package/dist/descriptors/load-list-descriptor.d.ts +4 -0
  100. package/dist/descriptors/load-list-descriptor.d.ts.map +1 -0
  101. package/dist/descriptors/load-list-descriptor.js +15 -0
  102. package/dist/descriptors/load-list-descriptor.js.map +1 -0
  103. package/dist/descriptors/validate-descriptor.d.ts +7 -0
  104. package/dist/descriptors/validate-descriptor.d.ts.map +1 -0
  105. package/dist/descriptors/validate-descriptor.js +80 -0
  106. package/dist/descriptors/validate-descriptor.js.map +1 -0
  107. package/dist/errors/errors.d.ts +6 -0
  108. package/dist/errors/errors.d.ts.map +1 -0
  109. package/dist/errors/errors.js +12 -0
  110. package/dist/errors/errors.js.map +1 -0
  111. package/dist/errors/issues.d.ts +14 -0
  112. package/dist/errors/issues.d.ts.map +1 -0
  113. package/dist/errors/issues.js +7 -0
  114. package/dist/errors/issues.js.map +1 -0
  115. package/dist/index.d.ts +22 -0
  116. package/dist/index.d.ts.map +1 -0
  117. package/dist/index.js +18 -0
  118. package/dist/index.js.map +1 -0
  119. package/dist/mongo/connection.d.ts +3 -0
  120. package/dist/mongo/connection.d.ts.map +1 -0
  121. package/dist/mongo/connection.js +8 -0
  122. package/dist/mongo/connection.js.map +1 -0
  123. package/dist/mongo/env.d.ts +6 -0
  124. package/dist/mongo/env.d.ts.map +1 -0
  125. package/dist/mongo/env.js +33 -0
  126. package/dist/mongo/env.js.map +1 -0
  127. package/dist/mongo/read-collection.d.ts +14 -0
  128. package/dist/mongo/read-collection.d.ts.map +1 -0
  129. package/dist/mongo/read-collection.js +45 -0
  130. package/dist/mongo/read-collection.js.map +1 -0
  131. package/dist/mongo/resolve-db.d.ts +6 -0
  132. package/dist/mongo/resolve-db.d.ts.map +1 -0
  133. package/dist/mongo/resolve-db.js +9 -0
  134. package/dist/mongo/resolve-db.js.map +1 -0
  135. package/dist/mongo/types.d.ts +2 -0
  136. package/dist/mongo/types.d.ts.map +1 -0
  137. package/dist/mongo/types.js +2 -0
  138. package/dist/mongo/types.js.map +1 -0
  139. package/dist/relations/fetch-relation.d.ts +5 -0
  140. package/dist/relations/fetch-relation.d.ts.map +1 -0
  141. package/dist/relations/fetch-relation.js +57 -0
  142. package/dist/relations/fetch-relation.js.map +1 -0
  143. package/dist/relations/resolve-relations.d.ts +6 -0
  144. package/dist/relations/resolve-relations.d.ts.map +1 -0
  145. package/dist/relations/resolve-relations.js +20 -0
  146. package/dist/relations/resolve-relations.js.map +1 -0
  147. package/dist/retrieval/batch-fetch.d.ts +11 -0
  148. package/dist/retrieval/batch-fetch.d.ts.map +1 -0
  149. package/dist/retrieval/batch-fetch.js +80 -0
  150. package/dist/retrieval/batch-fetch.js.map +1 -0
  151. package/dist/retrieval/compose-item.d.ts +11 -0
  152. package/dist/retrieval/compose-item.d.ts.map +1 -0
  153. package/dist/retrieval/compose-item.js +18 -0
  154. package/dist/retrieval/compose-item.js.map +1 -0
  155. package/dist/retrieval/compose-row.d.ts +4 -0
  156. package/dist/retrieval/compose-row.d.ts.map +1 -0
  157. package/dist/retrieval/compose-row.js +14 -0
  158. package/dist/retrieval/compose-row.js.map +1 -0
  159. package/dist/retrieval/fetch-item.d.ts +3 -0
  160. package/dist/retrieval/fetch-item.d.ts.map +1 -0
  161. package/dist/retrieval/fetch-item.js +107 -0
  162. package/dist/retrieval/fetch-item.js.map +1 -0
  163. package/dist/retrieval/fetch-list.d.ts +3 -0
  164. package/dist/retrieval/fetch-list.d.ts.map +1 -0
  165. package/dist/retrieval/fetch-list.js +148 -0
  166. package/dist/retrieval/fetch-list.js.map +1 -0
  167. package/dist/retrieval/resolve-fields.d.ts +10 -0
  168. package/dist/retrieval/resolve-fields.d.ts.map +1 -0
  169. package/dist/retrieval/resolve-fields.js +52 -0
  170. package/dist/retrieval/resolve-fields.js.map +1 -0
  171. package/dist/retrieval/resolve-filters.d.ts +3 -0
  172. package/dist/retrieval/resolve-filters.d.ts.map +1 -0
  173. package/dist/retrieval/resolve-filters.js +57 -0
  174. package/dist/retrieval/resolve-filters.js.map +1 -0
  175. package/dist/retrieval/resolve-pagination-driver.d.ts +6 -0
  176. package/dist/retrieval/resolve-pagination-driver.d.ts.map +1 -0
  177. package/dist/retrieval/resolve-pagination-driver.js +22 -0
  178. package/dist/retrieval/resolve-pagination-driver.js.map +1 -0
  179. package/dist/retrieval/resolve-property-source.d.ts +10 -0
  180. package/dist/retrieval/resolve-property-source.d.ts.map +1 -0
  181. package/dist/retrieval/resolve-property-source.js +48 -0
  182. package/dist/retrieval/resolve-property-source.js.map +1 -0
  183. package/dist/retrieval/resolve-sort.d.ts +14 -0
  184. package/dist/retrieval/resolve-sort.d.ts.map +1 -0
  185. package/dist/retrieval/resolve-sort.js +28 -0
  186. package/dist/retrieval/resolve-sort.js.map +1 -0
  187. package/dist/tests/collection-env.test.d.ts +2 -0
  188. package/dist/tests/collection-env.test.d.ts.map +1 -0
  189. package/dist/tests/collection-env.test.js +44 -0
  190. package/dist/tests/collection-env.test.js.map +1 -0
  191. package/dist/tests/content-object.test.d.ts +2 -0
  192. package/dist/tests/content-object.test.d.ts.map +1 -0
  193. package/dist/tests/content-object.test.js +39 -0
  194. package/dist/tests/content-object.test.js.map +1 -0
  195. package/dist/tests/descriptor-validation.test.d.ts +2 -0
  196. package/dist/tests/descriptor-validation.test.d.ts.map +1 -0
  197. package/dist/tests/descriptor-validation.test.js +25 -0
  198. package/dist/tests/descriptor-validation.test.js.map +1 -0
  199. package/dist/tests/env.test.d.ts +2 -0
  200. package/dist/tests/env.test.d.ts.map +1 -0
  201. package/dist/tests/env.test.js +17 -0
  202. package/dist/tests/env.test.js.map +1 -0
  203. package/dist/tests/fetch-item.test.d.ts +2 -0
  204. package/dist/tests/fetch-item.test.d.ts.map +1 -0
  205. package/dist/tests/fetch-item.test.js +86 -0
  206. package/dist/tests/fetch-item.test.js.map +1 -0
  207. package/dist/tests/fetch-list.test.d.ts +2 -0
  208. package/dist/tests/fetch-list.test.d.ts.map +1 -0
  209. package/dist/tests/fetch-list.test.js +85 -0
  210. package/dist/tests/fetch-list.test.js.map +1 -0
  211. package/dist/tests/fixtures.d.ts +5 -0
  212. package/dist/tests/fixtures.d.ts.map +1 -0
  213. package/dist/tests/fixtures.js +137 -0
  214. package/dist/tests/fixtures.js.map +1 -0
  215. package/dist/tests/identity.test.d.ts +2 -0
  216. package/dist/tests/identity.test.d.ts.map +1 -0
  217. package/dist/tests/identity.test.js +32 -0
  218. package/dist/tests/identity.test.js.map +1 -0
  219. package/dist/tests/multi-match.test.d.ts +2 -0
  220. package/dist/tests/multi-match.test.d.ts.map +1 -0
  221. package/dist/tests/multi-match.test.js +31 -0
  222. package/dist/tests/multi-match.test.js.map +1 -0
  223. package/dist/tests/read-collection.test.d.ts +2 -0
  224. package/dist/tests/read-collection.test.d.ts.map +1 -0
  225. package/dist/tests/read-collection.test.js +19 -0
  226. package/dist/tests/read-collection.test.js.map +1 -0
  227. package/dist/tests/relations.test.d.ts +2 -0
  228. package/dist/tests/relations.test.d.ts.map +1 -0
  229. package/dist/tests/relations.test.js +77 -0
  230. package/dist/tests/relations.test.js.map +1 -0
  231. package/docs/MEMORIX-DATABASE-CONVENTIONS.md +325 -0
  232. package/package.json +52 -0
@@ -0,0 +1,36 @@
1
+ import { type MemorixRetrievalIssue } from "../errors/issues.js";
2
+ export type MemorixIdentity = {
3
+ entityId?: string;
4
+ eventId?: string;
5
+ };
6
+ export type IdentityValidationResult = {
7
+ ok: true;
8
+ identity: {
9
+ entityId: string;
10
+ eventId?: undefined;
11
+ };
12
+ } | {
13
+ ok: true;
14
+ identity: {
15
+ eventId: string;
16
+ entityId?: undefined;
17
+ };
18
+ } | {
19
+ ok: false;
20
+ issue: MemorixRetrievalIssue;
21
+ };
22
+ export declare function validateMemorixIdentity(record: Record<string, unknown>, context?: {
23
+ entityId?: string;
24
+ eventId?: string;
25
+ path?: string;
26
+ }): IdentityValidationResult;
27
+ export declare function getIdentityFromRecord(record: Record<string, unknown>): {
28
+ field: "entityId" | "eventId";
29
+ value: string;
30
+ } | 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";
34
+ value: string;
35
+ };
36
+ //# sourceMappingURL=identity.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,68 @@
1
+ import { throwRetrievalError } from "../errors/errors.js";
2
+ import { createIssue } from "../errors/issues.js";
3
+ export function validateMemorixIdentity(record, context) {
4
+ const entityId = typeof record.entityId === "string" ? record.entityId : undefined;
5
+ const eventId = typeof record.eventId === "string" ? record.eventId : undefined;
6
+ const hasEntity = entityId != null && entityId !== "";
7
+ const hasEvent = eventId != null && eventId !== "";
8
+ if (hasEntity && hasEvent) {
9
+ return {
10
+ ok: false,
11
+ issue: createIssue({
12
+ code: "INVALID_IDENTITY",
13
+ message: "Record has both entityId and eventId",
14
+ path: context?.path,
15
+ entityId,
16
+ eventId,
17
+ }),
18
+ };
19
+ }
20
+ if (!hasEntity && !hasEvent) {
21
+ return {
22
+ ok: false,
23
+ issue: createIssue({
24
+ code: "INVALID_IDENTITY",
25
+ message: "Record has neither entityId nor eventId",
26
+ path: context?.path,
27
+ entityId: context?.entityId,
28
+ eventId: context?.eventId,
29
+ }),
30
+ };
31
+ }
32
+ if (hasEntity) {
33
+ return { ok: true, identity: { entityId: entityId } };
34
+ }
35
+ return { ok: true, identity: { eventId: eventId } };
36
+ }
37
+ export function getIdentityFromRecord(record) {
38
+ const result = validateMemorixIdentity(record);
39
+ if (!result.ok)
40
+ return null;
41
+ if ("entityId" in result.identity && result.identity.entityId) {
42
+ return { field: "entityId", value: result.identity.entityId };
43
+ }
44
+ if ("eventId" in result.identity && result.identity.eventId) {
45
+ return { field: "eventId", value: result.identity.eventId };
46
+ }
47
+ return null;
48
+ }
49
+ export function buildIdFilter(field, values) {
50
+ if (values.length === 1) {
51
+ return { [field]: values[0] };
52
+ }
53
+ return { [field]: { $in: values } };
54
+ }
55
+ export function assertRequestIdentity(entityId, eventId) {
56
+ const hasEntity = entityId != null && entityId !== "";
57
+ 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");
63
+ }
64
+ if (hasEntity)
65
+ return { field: "entityId", value: entityId };
66
+ return { field: "eventId", value: eventId };
67
+ }
68
+ //# sourceMappingURL=identity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"identity.js","sourceRoot":"","sources":["../../src/data/identity.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import type { MemorixRetrievalClient } from "../client/types.js";
2
+ import type { XronoxReadParams } from "../client/xronox-like.js";
3
+ import type { MemorixEntityDescriptor } from "../descriptors/descriptor-types.js";
4
+ import type { MemorixTarget } from "../mongo/types.js";
5
+ /** Advanced only: Xronox role names when passing a custom `xronox` client. */
6
+ export declare const DEFAULT_MEMORIX_XRONOX_ROLES: Record<MemorixTarget, string>;
7
+ export declare function resolveMemorixXronoxRole(entity: MemorixEntityDescriptor, client: MemorixRetrievalClient): string;
8
+ export type MemorixReadParams = Omit<XronoxReadParams, "dataType" | "sourceType" | "subSourceType" | "role"> & {
9
+ source: string;
10
+ entity: MemorixEntityDescriptor;
11
+ db?: string;
12
+ role?: string;
13
+ };
14
+ export declare function memorixRead(client: MemorixRetrievalClient, params: MemorixReadParams): Promise<Record<string, unknown>[]>;
15
+ /** @deprecated Use {@link memorixRead}. */
16
+ export declare const memorixXronoxRead: typeof memorixRead;
17
+ //# sourceMappingURL=memorix-read.d.ts.map
@@ -0,0 +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;AAGlF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvD,8EAA8E;AAC9E,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,CA+CpC;AAED,2CAA2C;AAC3C,eAAO,MAAM,iBAAiB,oBAAc,CAAC"}
@@ -0,0 +1,55 @@
1
+ import { readMemorixCollection } from "../mongo/read-collection.js";
2
+ import { resolveMemorixDbNameForEntity } from "../mongo/resolve-db.js";
3
+ /** Advanced only: Xronox role names when passing a custom `xronox` client. */
4
+ export const DEFAULT_MEMORIX_XRONOX_ROLES = {
5
+ entity: "operational",
6
+ event: "logs",
7
+ };
8
+ export function resolveMemorixXronoxRole(entity, client) {
9
+ const target = entity.target ?? "entity";
10
+ return client.xronoxRoles?.[target] ?? DEFAULT_MEMORIX_XRONOX_ROLES[target];
11
+ }
12
+ export async function memorixRead(client, params) {
13
+ const { entity, db: dbOverride, role: roleOverride, ...readParams } = params;
14
+ const db = dbOverride ?? resolveMemorixDbNameForEntity(entity, client);
15
+ if (client.xronox) {
16
+ const fullParams = {
17
+ dataType: "metadata",
18
+ sourceType: "database",
19
+ subSourceType: "mongo",
20
+ role: roleOverride ?? resolveMemorixXronoxRole(entity, client),
21
+ ...readParams,
22
+ source: params.source,
23
+ };
24
+ if (client.xronox.readArray) {
25
+ const rows = await client.xronox.readArray(fullParams);
26
+ return rows.map((r) => r);
27
+ }
28
+ const result = await client.xronox.read(fullParams);
29
+ if (Array.isArray(result)) {
30
+ return result.map((r) => r);
31
+ }
32
+ const rows = [];
33
+ for await (const row of result) {
34
+ rows.push(row);
35
+ }
36
+ return rows;
37
+ }
38
+ if (!client.getMongo) {
39
+ throw new Error("Memorix retrieval client is missing Mongo access. Use createMemorixRetrieval({ catalox }) " +
40
+ "or createMemorixRetrievalFromEnv({ catalox }).");
41
+ }
42
+ const mongo = await client.getMongo();
43
+ return readMemorixCollection(mongo, {
44
+ db,
45
+ collection: params.source,
46
+ query: readParams.query,
47
+ project: readParams.project,
48
+ sort: readParams.sort,
49
+ limit: readParams.limit,
50
+ skip: readParams.skip,
51
+ });
52
+ }
53
+ /** @deprecated Use {@link memorixRead}. */
54
+ export const memorixXronoxRead = memorixRead;
55
+ //# sourceMappingURL=memorix-read.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memorix-read.js","sourceRoot":"","sources":["../../src/data/memorix-read.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,6BAA6B,EAAE,MAAM,wBAAwB,CAAC;AAGvE,8EAA8E;AAC9E,MAAM,CAAC,MAAM,4BAA4B,GAAkC;IACzE,MAAM,EAAE,aAAa;IACrB,KAAK,EAAE,MAAM;CACd,CAAC;AAEF,MAAM,UAAU,wBAAwB,CACtC,MAA+B,EAC/B,MAA8B;IAE9B,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,QAAQ,CAAC;IACzC,OAAO,MAAM,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,4BAA4B,CAAC,MAAM,CAAC,CAAC;AAC9E,CAAC;AAYD,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,MAA8B,EAC9B,MAAyB;IAEzB,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,UAAU,EAAE,GAAG,MAAM,CAAC;IAC7E,MAAM,EAAE,GAAG,UAAU,IAAI,6BAA6B,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEvE,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClB,MAAM,UAAU,GAAqB;YACnC,QAAQ,EAAE,UAAU;YACpB,UAAU,EAAE,UAAU;YACtB,aAAa,EAAE,OAAO;YACtB,IAAI,EAAE,YAAY,IAAI,wBAAwB,CAAC,MAAM,EAAE,MAAM,CAAC;YAC9D,GAAG,UAAU;YACb,MAAM,EAAE,MAAM,CAAC,MAAM;SACtB,CAAC;QAEF,IAAI,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;YAC5B,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;YACvD,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAA4B,CAAC,CAAC;QACvD,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACpD,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1B,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAA4B,CAAC,CAAC;QACzD,CAAC;QACD,MAAM,IAAI,GAA8B,EAAE,CAAC;QAC3C,IAAI,KAAK,EAAE,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;YAC/B,IAAI,CAAC,IAAI,CAAC,GAA8B,CAAC,CAAC;QAC5C,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CACb,4FAA4F;YAC1F,gDAAgD,CACnD,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAC;IACtC,OAAO,qBAAqB,CAAC,KAAK,EAAE;QAClC,EAAE;QACF,UAAU,EAAE,MAAM,CAAC,MAAM;QACzB,KAAK,EAAE,UAAU,CAAC,KAAK;QACvB,OAAO,EAAE,UAAU,CAAC,OAAO;QAC3B,IAAI,EAAE,UAAU,CAAC,IAAI;QACrB,KAAK,EAAE,UAAU,CAAC,KAAK;QACvB,IAAI,EAAE,UAAU,CAAC,IAAI;KACtB,CAAC,CAAC;AACL,CAAC;AAED,2CAA2C;AAC3C,MAAM,CAAC,MAAM,iBAAiB,GAAG,WAAW,CAAC"}
@@ -0,0 +1,16 @@
1
+ import type { MemorixRetrievalClient } from "../client/types.js";
2
+ import type { MemorixEntityDescriptor, MemorixMultiMatchRule } from "../descriptors/descriptor-types.js";
3
+ import { type MemorixRetrievalIssue } from "../errors/issues.js";
4
+ export type MultiMatchResult<T> = {
5
+ ok: true;
6
+ records: T[];
7
+ } | {
8
+ ok: false;
9
+ issue: MemorixRetrievalIssue;
10
+ };
11
+ export declare function resolveEffectiveDatePaths(entity: MemorixEntityDescriptor, rule?: MemorixMultiMatchRule, client?: MemorixRetrievalClient): string[];
12
+ export declare function applyMultiMatch<T extends Record<string, unknown>>(records: T[], rule: MemorixMultiMatchRule, entity: MemorixEntityDescriptor, client?: MemorixRetrievalClient, context?: {
13
+ path?: string;
14
+ }): MultiMatchResult<T>;
15
+ export declare function defaultExtensionMultiMatch(mode: "extendFields" | "array"): MemorixMultiMatchRule;
16
+ //# sourceMappingURL=multi-match.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multi-match.d.ts","sourceRoot":"","sources":["../../src/data/multi-match.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,KAAK,EACV,uBAAuB,EACvB,qBAAqB,EACtB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAe,KAAK,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAG9E,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAC1B;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,CAAC,EAAE,CAAA;CAAE,GAC1B;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,qBAAqB,CAAA;CAAE,CAAC;AAEhD,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,uBAAuB,EAC/B,IAAI,CAAC,EAAE,qBAAqB,EAC5B,MAAM,CAAC,EAAE,sBAAsB,GAC9B,MAAM,EAAE,CAYV;AAoBD,wBAAgB,eAAe,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/D,OAAO,EAAE,CAAC,EAAE,EACZ,IAAI,EAAE,qBAAqB,EAC3B,MAAM,EAAE,uBAAuB,EAC/B,MAAM,CAAC,EAAE,sBAAsB,EAC/B,OAAO,CAAC,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GAC1B,gBAAgB,CAAC,CAAC,CAAC,CAiCrB;AAED,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,cAAc,GAAG,OAAO,GAC7B,qBAAqB,CAKvB"}
@@ -0,0 +1,65 @@
1
+ import { createIssue } from "../errors/issues.js";
2
+ import { getByPath } from "./path.js";
3
+ export function resolveEffectiveDatePaths(entity, rule, client) {
4
+ const primary = rule?.effectiveDatePath ??
5
+ entity.defaults.effectiveDatePath ??
6
+ client?.defaults.effectiveDatePath ??
7
+ "modifiedAt";
8
+ const fallbacks = rule?.fallbackEffectiveDatePaths ??
9
+ entity.defaults.fallbackEffectiveDatePaths ??
10
+ client?.defaults.fallbackEffectiveDatePaths ??
11
+ ["capturedAt", "snapshot.capturedAt"];
12
+ return [primary, ...fallbacks.filter((p) => p !== primary)];
13
+ }
14
+ function getEffectiveDate(record, paths) {
15
+ for (const path of paths) {
16
+ const value = getByPath(record, path);
17
+ if (value == null)
18
+ continue;
19
+ const ts = value instanceof Date
20
+ ? value.getTime()
21
+ : typeof value === "string" || typeof value === "number"
22
+ ? new Date(value).getTime()
23
+ : NaN;
24
+ if (!Number.isNaN(ts))
25
+ return ts;
26
+ }
27
+ return 0;
28
+ }
29
+ export function applyMultiMatch(records, rule, entity, client, context) {
30
+ const strategy = rule.strategy ?? "last";
31
+ if (records.length === 0) {
32
+ return { ok: true, records: [] };
33
+ }
34
+ if (strategy === "all") {
35
+ return { ok: true, records };
36
+ }
37
+ if (strategy === "ignore") {
38
+ return { ok: true, records: [] };
39
+ }
40
+ if (strategy === "error" && records.length > 1) {
41
+ return {
42
+ ok: false,
43
+ issue: createIssue({
44
+ code: "MULTI_MATCH_ERROR",
45
+ message: `Multiple records (${records.length}) matched; strategy is error`,
46
+ path: context?.path,
47
+ details: { count: records.length },
48
+ }),
49
+ };
50
+ }
51
+ const paths = resolveEffectiveDatePaths(entity, rule, client);
52
+ const sorted = [...records].sort((a, b) => getEffectiveDate(b, paths) - getEffectiveDate(a, paths));
53
+ if (strategy === "first") {
54
+ return { ok: true, records: [sorted[sorted.length - 1]] };
55
+ }
56
+ // last (default)
57
+ return { ok: true, records: [sorted[0]] };
58
+ }
59
+ export function defaultExtensionMultiMatch(mode) {
60
+ if (mode === "array") {
61
+ return { strategy: "all" };
62
+ }
63
+ return { strategy: "last" };
64
+ }
65
+ //# sourceMappingURL=multi-match.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multi-match.js","sourceRoot":"","sources":["../../src/data/multi-match.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export declare function getByPath(obj: Record<string, unknown>, path: string): unknown;
2
+ export declare function resolveDataRoot(dataRoot: string | undefined, record: Record<string, unknown>): Record<string, unknown>;
3
+ //# sourceMappingURL=path.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"path.d.ts","sourceRoot":"","sources":["../../src/data/path.ts"],"names":[],"mappings":"AAAA,wBAAgB,SAAS,CACvB,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC5B,IAAI,EAAE,MAAM,GACX,OAAO,CAWT;AAED,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAOzB"}
@@ -0,0 +1,23 @@
1
+ export function getByPath(obj, path) {
2
+ if (!path)
3
+ return obj;
4
+ const parts = path.split(".");
5
+ let current = obj;
6
+ for (const part of parts) {
7
+ if (current == null || typeof current !== "object") {
8
+ return undefined;
9
+ }
10
+ current = current[part];
11
+ }
12
+ return current;
13
+ }
14
+ export function resolveDataRoot(dataRoot, record) {
15
+ if (!dataRoot || dataRoot === ".")
16
+ return record;
17
+ const nested = getByPath(record, dataRoot);
18
+ if (nested && typeof nested === "object" && !Array.isArray(nested)) {
19
+ return nested;
20
+ }
21
+ return record;
22
+ }
23
+ //# sourceMappingURL=path.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"path.js","sourceRoot":"","sources":["../../src/data/path.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,SAAS,CACvB,GAA4B,EAC5B,IAAY;IAEZ,IAAI,CAAC,IAAI;QAAE,OAAO,GAAG,CAAC;IACtB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC9B,IAAI,OAAO,GAAY,GAAG,CAAC;IAC3B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,OAAO,IAAI,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YACnD,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,OAAO,GAAI,OAAmC,CAAC,IAAI,CAAC,CAAC;IACvD,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,QAA4B,EAC5B,MAA+B;IAE/B,IAAI,CAAC,QAAQ,IAAI,QAAQ,KAAK,GAAG;QAAE,OAAO,MAAM,CAAC;IACjD,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC3C,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACnE,OAAO,MAAiC,CAAC;IAC3C,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,13 @@
1
+ import type { MemorixRetrievalClient } from "../client/types.js";
2
+ import type { XronoxReadParams } from "../client/xronox-like.js";
3
+ import type { MemorixEntityDescriptor } from "../descriptors/descriptor-types.js";
4
+ import type { MemorixTarget } from "../mongo/types.js";
5
+ /** Default Xronox role names for Memorix entity/event databases (see README). */
6
+ export declare const DEFAULT_MEMORIX_XRONOX_ROLES: Record<MemorixTarget, string>;
7
+ export declare function resolveMemorixXronoxRole(entity: MemorixEntityDescriptor, client: MemorixRetrievalClient): string;
8
+ export declare function memorixXronoxRead(client: MemorixRetrievalClient, params: Omit<XronoxReadParams, "dataType" | "sourceType" | "subSourceType"> & {
9
+ source: string;
10
+ entity: MemorixEntityDescriptor;
11
+ role?: string;
12
+ }): Promise<Record<string, unknown>[]>;
13
+ //# sourceMappingURL=xronox-read.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xronox-read.d.ts","sourceRoot":"","sources":["../../src/data/xronox-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;AAElF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvD,iFAAiF;AACjF,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,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,sBAAsB,EAC9B,MAAM,EAAE,IAAI,CAAC,gBAAgB,EAAE,UAAU,GAAG,YAAY,GAAG,eAAe,CAAC,GAAG;IAC5E,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,uBAAuB,CAAC;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,GACA,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,CAyBpC"}
@@ -0,0 +1,34 @@
1
+ import { resolveEntityTarget } from "../mongo/resolve-db.js";
2
+ /** Default Xronox role names for Memorix entity/event databases (see README). */
3
+ export const DEFAULT_MEMORIX_XRONOX_ROLES = {
4
+ entity: "operational",
5
+ event: "logs",
6
+ };
7
+ export function resolveMemorixXronoxRole(entity, client) {
8
+ const target = resolveEntityTarget(entity);
9
+ return client.xronoxRoles?.[target] ?? DEFAULT_MEMORIX_XRONOX_ROLES[target];
10
+ }
11
+ export async function memorixXronoxRead(client, params) {
12
+ const { entity, role: roleOverride, ...readParams } = params;
13
+ const fullParams = {
14
+ dataType: "metadata",
15
+ sourceType: "database",
16
+ subSourceType: "mongo",
17
+ role: roleOverride ?? resolveMemorixXronoxRole(entity, client),
18
+ ...readParams,
19
+ };
20
+ if (client.xronox.readArray) {
21
+ const rows = await client.xronox.readArray(fullParams);
22
+ return rows.map((r) => r);
23
+ }
24
+ const result = await client.xronox.read(fullParams);
25
+ if (Array.isArray(result)) {
26
+ return result.map((r) => r);
27
+ }
28
+ const rows = [];
29
+ for await (const row of result) {
30
+ rows.push(row);
31
+ }
32
+ return rows;
33
+ }
34
+ //# sourceMappingURL=xronox-read.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xronox-read.js","sourceRoot":"","sources":["../../src/data/xronox-read.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAG7D,iFAAiF;AACjF,MAAM,CAAC,MAAM,4BAA4B,GAAkC;IACzE,MAAM,EAAE,aAAa;IACrB,KAAK,EAAE,MAAM;CACd,CAAC;AAEF,MAAM,UAAU,wBAAwB,CACtC,MAA+B,EAC/B,MAA8B;IAE9B,MAAM,MAAM,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAC3C,OAAO,MAAM,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,4BAA4B,CAAC,MAAM,CAAC,CAAC;AAC9E,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,MAA8B,EAC9B,MAIC;IAED,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,UAAU,EAAE,GAAG,MAAM,CAAC;IAE7D,MAAM,UAAU,GAAqB;QACnC,QAAQ,EAAE,UAAU;QACpB,UAAU,EAAE,UAAU;QACtB,aAAa,EAAE,OAAO;QACtB,IAAI,EAAE,YAAY,IAAI,wBAAwB,CAAC,MAAM,EAAE,MAAM,CAAC;QAC9D,GAAG,UAAU;KACd,CAAC;IAEF,IAAI,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QACvD,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAA4B,CAAC,CAAC;IACvD,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACpD,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAA4B,CAAC,CAAC;IACzD,CAAC;IACD,MAAM,IAAI,GAA8B,EAAE,CAAC;IAC3C,IAAI,KAAK,EAAE,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;QAC/B,IAAI,CAAC,IAAI,CAAC,GAA8B,CAAC,CAAC;IAC5C,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,5 @@
1
+ export declare const MEMORIX_APP_ID = "memorix";
2
+ export declare const MEMORIX_ENTITY_DESCRIPTORS_CATALOG = "memorix-entity-descriptors";
3
+ export declare const MEMORIX_LIST_DESCRIPTORS_CATALOG = "memorix-list-descriptors";
4
+ export declare const MEMORIX_ITEM_DESCRIPTORS_CATALOG = "memorix-item-descriptors";
5
+ //# sourceMappingURL=catalog-ids.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"catalog-ids.d.ts","sourceRoot":"","sources":["../../src/descriptors/catalog-ids.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc,YAAY,CAAC;AAExC,eAAO,MAAM,kCAAkC,+BAA+B,CAAC;AAC/E,eAAO,MAAM,gCAAgC,6BAA6B,CAAC;AAC3E,eAAO,MAAM,gCAAgC,6BAA6B,CAAC"}
@@ -0,0 +1,5 @@
1
+ export const MEMORIX_APP_ID = "memorix";
2
+ export const MEMORIX_ENTITY_DESCRIPTORS_CATALOG = "memorix-entity-descriptors";
3
+ export const MEMORIX_LIST_DESCRIPTORS_CATALOG = "memorix-list-descriptors";
4
+ export const MEMORIX_ITEM_DESCRIPTORS_CATALOG = "memorix-item-descriptors";
5
+ //# sourceMappingURL=catalog-ids.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"catalog-ids.js","sourceRoot":"","sources":["../../src/descriptors/catalog-ids.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,cAAc,GAAG,SAAS,CAAC;AAExC,MAAM,CAAC,MAAM,kCAAkC,GAAG,4BAA4B,CAAC;AAC/E,MAAM,CAAC,MAAM,gCAAgC,GAAG,0BAA0B,CAAC;AAC3E,MAAM,CAAC,MAAM,gCAAgC,GAAG,0BAA0B,CAAC"}
@@ -0,0 +1,187 @@
1
+ export type MemorixContentObject = {
2
+ contentKey: string;
3
+ metadata?: Record<string, unknown>;
4
+ preview?: string;
5
+ };
6
+ export type MemorixContentStorageDescriptor = {
7
+ provider: "gcs" | "s3";
8
+ bucket: string;
9
+ prefix?: string;
10
+ maxBytes?: number;
11
+ encoding?: "utf8";
12
+ credentialsRef?: string;
13
+ };
14
+ export type MemorixContentDefaults = {
15
+ format?: "markdown" | "text";
16
+ storage?: MemorixContentStorageDescriptor;
17
+ maxBytes?: number;
18
+ encoding?: "utf8";
19
+ };
20
+ export type MemorixMultiMatchRule = {
21
+ strategy: "last" | "first" | "all" | "error" | "ignore";
22
+ effectiveDatePath?: string;
23
+ fallbackEffectiveDatePaths?: string[];
24
+ };
25
+ export type MemorixContentTypeDescriptor = {
26
+ postfix: string;
27
+ collection?: string;
28
+ dataRoot?: string;
29
+ isCanonical?: boolean;
30
+ effectiveDatePath?: string;
31
+ fallbackEffectiveDatePaths?: string[];
32
+ defaultMultiMatch?: {
33
+ extendFields?: MemorixMultiMatchRule["strategy"];
34
+ array?: MemorixMultiMatchRule["strategy"];
35
+ };
36
+ };
37
+ export type MemorixPropertyContentDescriptor = {
38
+ enabled: true;
39
+ objectType: "memorix-content-object";
40
+ format?: "markdown" | "text";
41
+ storage?: MemorixContentStorageDescriptor;
42
+ listBehavior?: {
43
+ returnPreview?: boolean;
44
+ returnMetadata?: boolean;
45
+ returnContentKey?: boolean;
46
+ fetchContent?: false;
47
+ };
48
+ itemBehavior?: {
49
+ returnPreview?: boolean;
50
+ returnMetadata?: boolean;
51
+ returnContentKey?: boolean;
52
+ fetchContentWhenRequested?: boolean;
53
+ };
54
+ };
55
+ export type MemorixPropertyDescriptor = {
56
+ label: string;
57
+ source: {
58
+ contentType: string;
59
+ path: string;
60
+ };
61
+ humanReadable: boolean;
62
+ sortable?: boolean;
63
+ filterable?: boolean;
64
+ list?: boolean;
65
+ item?: boolean;
66
+ content?: MemorixPropertyContentDescriptor;
67
+ valueType?: "string" | "number" | "boolean" | "date" | "datetime" | "enum" | "object" | "array" | "content";
68
+ format?: string;
69
+ metadata?: Record<string, unknown>;
70
+ };
71
+ export type MemorixRelationDescriptor = {
72
+ targetEntity: string;
73
+ type: "oneToOne" | "oneToMany" | "manyToOne" | "manyToMany";
74
+ source: {
75
+ contentType: string;
76
+ path: string;
77
+ };
78
+ target: {
79
+ contentType: string;
80
+ path: string;
81
+ };
82
+ defaultMode?: "extendFields" | "array";
83
+ defaultArrayProperty?: string;
84
+ targetFields?: string[];
85
+ };
86
+ export type MemorixEntityDescriptor = {
87
+ id: string;
88
+ entityName: string;
89
+ /** Selects memorix-entities vs memorix-events via env (default: entity). */
90
+ target?: "entity" | "event";
91
+ collectionPrefix: string;
92
+ identity: {
93
+ allowedIdFields: Array<"entityId" | "eventId">;
94
+ requiredExactlyOne: true;
95
+ defaultIdField: "entityId" | "eventId";
96
+ };
97
+ defaults: {
98
+ canonicalContentType: string;
99
+ dataRoot: string;
100
+ effectiveDatePath: string;
101
+ fallbackEffectiveDatePaths: string[];
102
+ };
103
+ contentDefaults?: MemorixContentDefaults;
104
+ contentTypes: Record<string, MemorixContentTypeDescriptor>;
105
+ properties: Record<string, MemorixPropertyDescriptor>;
106
+ relations?: Record<string, MemorixRelationDescriptor>;
107
+ };
108
+ export type MemorixDescriptorFilter = {
109
+ property: string;
110
+ operator?: MemorixFilterOperator;
111
+ value?: unknown;
112
+ default?: unknown;
113
+ };
114
+ export type MemorixFilterOperator = "eq" | "ne" | "in" | "nin" | "gt" | "gte" | "lt" | "lte" | "exists" | "regex";
115
+ export type MemorixFilterInput = {
116
+ property: string;
117
+ operator: MemorixFilterOperator;
118
+ value?: unknown;
119
+ };
120
+ export type MemorixContentExtensionDescriptor = {
121
+ contentType: string;
122
+ mode: "extendFields" | "array";
123
+ join: {
124
+ by: "entityId" | "eventId";
125
+ };
126
+ arrayProperty?: string;
127
+ multiMatch?: MemorixMultiMatchRule;
128
+ onMissing?: {
129
+ includeRow?: boolean;
130
+ defaultValue?: unknown;
131
+ };
132
+ fields?: Record<string, string>;
133
+ };
134
+ export type MemorixRelationIncludeDescriptor = {
135
+ relation: string;
136
+ mode?: "extendFields" | "array";
137
+ arrayProperty?: string;
138
+ limit?: number;
139
+ fields?: string[];
140
+ };
141
+ export type MemorixListDescriptor = {
142
+ id: string;
143
+ entity: string;
144
+ title?: string;
145
+ leadingContentType: string;
146
+ pagination: {
147
+ enabled: true;
148
+ defaultLimit: number;
149
+ maxLimit: number;
150
+ };
151
+ filters?: MemorixDescriptorFilter[];
152
+ fields: string[];
153
+ extensions?: MemorixContentExtensionDescriptor[];
154
+ includeRelations?: MemorixRelationIncludeDescriptor[];
155
+ allowedSorts?: string[];
156
+ defaultSort?: {
157
+ property: string;
158
+ direction: "asc" | "desc";
159
+ };
160
+ allowSortDrivenLeadingOverride?: boolean;
161
+ };
162
+ export type MemorixItemDescriptor = {
163
+ id: string;
164
+ entity: string;
165
+ title?: string;
166
+ identity: {
167
+ idField: "entityId" | "eventId";
168
+ };
169
+ contentTypes: Array<{
170
+ contentType: string;
171
+ required: boolean;
172
+ multiMatch?: MemorixMultiMatchRule;
173
+ }>;
174
+ sections: Array<{
175
+ id: string;
176
+ title: string;
177
+ fields: string[];
178
+ }>;
179
+ includeRelations?: MemorixRelationIncludeDescriptor[];
180
+ content?: {
181
+ allowed: true;
182
+ defaultIncludeFullContent?: boolean;
183
+ allowedFields?: string[];
184
+ maxBytes?: number;
185
+ };
186
+ };
187
+ //# sourceMappingURL=descriptor-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"descriptor-types.d.ts","sourceRoot":"","sources":["../../src/descriptors/descriptor-types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=descriptor-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"descriptor-types.js","sourceRoot":"","sources":["../../src/descriptors/descriptor-types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ import type { MemorixRetrievalClient } from "../client/types.js";
2
+ import type { MemorixEntityDescriptor } from "./descriptor-types.js";
3
+ export declare function loadMemorixEntityDescriptor(client: MemorixRetrievalClient, entityDescriptorId: string): Promise<MemorixEntityDescriptor>;
4
+ //# sourceMappingURL=load-entity-descriptor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"load-entity-descriptor.d.ts","sourceRoot":"","sources":["../../src/descriptors/load-entity-descriptor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAGjE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAMrE,wBAAsB,2BAA2B,CAC/C,MAAM,EAAE,sBAAsB,EAC9B,kBAAkB,EAAE,MAAM,GACzB,OAAO,CAAC,uBAAuB,CAAC,CAoBlC"}