@x12i/memorix-retrieval 1.5.0 → 1.6.2
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 +1 -0
- package/dist/client/create-client.d.ts.map +1 -1
- package/dist/client/create-client.js +17 -12
- package/dist/client/create-client.js.map +1 -1
- package/dist/client/create-from-env.d.ts +4 -0
- package/dist/client/create-from-env.d.ts.map +1 -1
- package/dist/client/create-from-env.js +10 -3
- package/dist/client/create-from-env.js.map +1 -1
- package/dist/client/create-xronox-from-env.d.ts +16 -0
- package/dist/client/create-xronox-from-env.d.ts.map +1 -0
- package/dist/client/create-xronox-from-env.js +17 -0
- package/dist/client/create-xronox-from-env.js.map +1 -0
- package/dist/client/types.d.ts +7 -5
- package/dist/client/types.d.ts.map +1 -1
- package/dist/client/xronox-adapter.d.ts +14 -0
- package/dist/client/xronox-adapter.d.ts.map +1 -0
- package/dist/client/xronox-adapter.js +69 -0
- package/dist/client/xronox-adapter.js.map +1 -0
- package/dist/client/xronox-like.d.ts +24 -0
- package/dist/client/xronox-like.d.ts.map +1 -1
- package/dist/data/memorix-count.d.ts +11 -0
- package/dist/data/memorix-count.d.ts.map +1 -0
- package/dist/data/memorix-count.js +38 -0
- package/dist/data/memorix-count.js.map +1 -0
- package/dist/data/memorix-read.d.ts +1 -1
- package/dist/data/memorix-read.d.ts.map +1 -1
- package/dist/data/memorix-read.js +21 -16
- package/dist/data/memorix-read.js.map +1 -1
- package/dist/explorer/collection-inventory.d.ts +77 -0
- package/dist/explorer/collection-inventory.d.ts.map +1 -0
- package/dist/explorer/collection-inventory.js +302 -0
- package/dist/explorer/collection-inventory.js.map +1 -0
- package/dist/explorer/entity-graph.d.ts +35 -12
- package/dist/explorer/entity-graph.d.ts.map +1 -1
- package/dist/explorer/entity-graph.js +117 -55
- package/dist/explorer/entity-graph.js.map +1 -1
- package/dist/explorer/health.d.ts +1 -0
- package/dist/explorer/health.d.ts.map +1 -1
- package/dist/explorer/health.js +53 -0
- package/dist/explorer/health.js.map +1 -1
- package/dist/explorer/raw-reads.d.ts.map +1 -1
- package/dist/explorer/raw-reads.js +4 -12
- package/dist/explorer/raw-reads.js.map +1 -1
- package/dist/explorer/scoped-workspace.d.ts.map +1 -1
- package/dist/explorer/scoped-workspace.js +20 -58
- package/dist/explorer/scoped-workspace.js.map +1 -1
- package/dist/index.d.ts +5 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/retrieval/fetch-list.d.ts.map +1 -1
- package/dist/retrieval/fetch-list.js +5 -8
- package/dist/retrieval/fetch-list.js.map +1 -1
- package/dist/tests/collection-inventory.test.d.ts +2 -0
- package/dist/tests/collection-inventory.test.d.ts.map +1 -0
- package/dist/tests/collection-inventory.test.js +207 -0
- package/dist/tests/collection-inventory.test.js.map +1 -0
- package/dist/tests/entity-graph.test.d.ts +2 -0
- package/dist/tests/entity-graph.test.d.ts.map +1 -0
- package/dist/tests/entity-graph.test.js +148 -0
- package/dist/tests/entity-graph.test.js.map +1 -0
- package/dist/tests/fetch-list.test.js +1 -1
- package/dist/tests/fetch-list.test.js.map +1 -1
- package/dist/tests/package-json.test.d.ts +2 -0
- package/dist/tests/package-json.test.d.ts.map +1 -0
- package/dist/tests/package-json.test.js +14 -0
- package/dist/tests/package-json.test.js.map +1 -0
- package/docs/DATA-TIER-CONTRACT.md +16 -8
- package/docs/EXPLORER-HOST-APIS.md +16 -2
- package/docs/MEMORIX-CATALOX-CONTRACTS.md +8 -4
- package/docs/XRONOX-DATA-TIER-REQUIREMENTS.md +132 -0
- package/docs/fr/README.md +15 -0
- package/docs/fr/xronox-fr-list-collections.md +196 -0
- package/docs/fr/xronox-fr-memorix-env-preset.md +69 -0
- package/docs/fr/xronox-fr-per-role-selftest.md +60 -0
- package/package.json +3 -12
package/README.md
CHANGED
|
@@ -90,6 +90,7 @@ const client = await createMemorixRetrievalFromEnv({
|
|
|
90
90
|
| Doc | Purpose |
|
|
91
91
|
|-----|---------|
|
|
92
92
|
| [DATA-TIER-CONTRACT.md](docs/DATA-TIER-CONTRACT.md) | Public API surface (what hosts may call) |
|
|
93
|
+
| [XRONOX-DATA-TIER-REQUIREMENTS.md](docs/XRONOX-DATA-TIER-REQUIREMENTS.md) | Xronox API/env requirements for Memorix data tier |
|
|
93
94
|
| [MEMORIX-CATALOX-CONTRACTS.md](docs/MEMORIX-CATALOX-CONTRACTS.md) | Descriptor catalogs, JSON formats, cross-component sync |
|
|
94
95
|
| [MEMORIX-DATABASE-CONVENTIONS.md](docs/MEMORIX-DATABASE-CONVENTIONS.md) | Mongo DB names, collections, env vars |
|
|
95
96
|
| [EXPLORER-HOST-APIS.md](docs/EXPLORER-HOST-APIS.md) | Graph, raw reads, scoped workspace (Explorer hosts) |
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-client.d.ts","sourceRoot":"","sources":["../../src/client/create-client.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,6BAA6B,EAC7B,sBAAsB,EACvB,MAAM,YAAY,CAAC;AAKpB,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,6BAA6B,GACrC,sBAAsB,
|
|
1
|
+
{"version":3,"file":"create-client.d.ts","sourceRoot":"","sources":["../../src/client/create-client.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,6BAA6B,EAC7B,sBAAsB,EACvB,MAAM,YAAY,CAAC;AAKpB,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,6BAA6B,GACrC,sBAAsB,CAqDxB"}
|
|
@@ -7,18 +7,23 @@ export function createMemorixRetrieval(options) {
|
|
|
7
7
|
const processEnv = options.processEnv ?? process.env;
|
|
8
8
|
let mongoClient = options.mongo ?? null;
|
|
9
9
|
let mongoConnect = null;
|
|
10
|
-
const getMongo =
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
10
|
+
const getMongo = options.mongo
|
|
11
|
+
? async () => {
|
|
12
|
+
if (mongoClient)
|
|
13
|
+
return mongoClient;
|
|
14
|
+
if (!mongoConnect) {
|
|
15
|
+
mongoConnect = connectMemorixMongo(processEnv).then((client) => {
|
|
16
|
+
mongoClient = client;
|
|
17
|
+
return client;
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
return mongoConnect;
|
|
18
21
|
}
|
|
19
|
-
|
|
20
|
-
};
|
|
22
|
+
: undefined;
|
|
21
23
|
const close = async () => {
|
|
24
|
+
if (options.close) {
|
|
25
|
+
await options.close();
|
|
26
|
+
}
|
|
22
27
|
if (mongoClient) {
|
|
23
28
|
await mongoClient.close();
|
|
24
29
|
mongoClient = null;
|
|
@@ -33,8 +38,8 @@ export function createMemorixRetrieval(options) {
|
|
|
33
38
|
processEnv,
|
|
34
39
|
memorixDb: options.memorixDb,
|
|
35
40
|
xronoxRoles: options.xronoxRoles,
|
|
36
|
-
getMongo
|
|
37
|
-
close: options.xronox ?
|
|
41
|
+
getMongo,
|
|
42
|
+
close: options.xronox || options.mongo || options.close ? close : undefined,
|
|
38
43
|
defaults: {
|
|
39
44
|
canonicalContentType: defaults.canonicalContentType ?? "snapshots",
|
|
40
45
|
effectiveDatePath: defaults.effectiveDatePath ?? "modifiedAt",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-client.js","sourceRoot":"","sources":["../../src/client/create-client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAM7D,MAAM,sBAAsB,GAAG,GAAG,CAAC;AACnC,MAAM,yBAAyB,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;AAElD,MAAM,UAAU,sBAAsB,CACpC,OAAsC;IAEtC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC;IACxC,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,GAAG,CAAC;IAErD,IAAI,WAAW,GAAG,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC;IACxC,IAAI,YAAY,GAAgC,IAAI,CAAC;IAErD,MAAM,QAAQ,GAAG,KAAK,IAA0B,EAAE;
|
|
1
|
+
{"version":3,"file":"create-client.js","sourceRoot":"","sources":["../../src/client/create-client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAM7D,MAAM,sBAAsB,GAAG,GAAG,CAAC;AACnC,MAAM,yBAAyB,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;AAElD,MAAM,UAAU,sBAAsB,CACpC,OAAsC;IAEtC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC;IACxC,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,GAAG,CAAC;IAErD,IAAI,WAAW,GAAG,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC;IACxC,IAAI,YAAY,GAAgC,IAAI,CAAC;IAErD,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK;QAC5B,CAAC,CAAC,KAAK,IAA0B,EAAE;YAC/B,IAAI,WAAW;gBAAE,OAAO,WAAW,CAAC;YACpC,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClB,YAAY,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;oBAC7D,WAAW,GAAG,MAAM,CAAC;oBACrB,OAAO,MAAM,CAAC;gBAChB,CAAC,CAAC,CAAC;YACL,CAAC;YACD,OAAO,YAAY,CAAC;QACtB,CAAC;QACH,CAAC,CAAC,SAAS,CAAC;IAEd,MAAM,KAAK,GAAG,KAAK,IAAmB,EAAE;QACtC,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YAClB,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;QACxB,CAAC;QACD,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,WAAW,CAAC,KAAK,EAAE,CAAC;YAC1B,WAAW,GAAG,IAAI,CAAC;YACnB,YAAY,GAAG,IAAI,CAAC;QACtB,CAAC;IACH,CAAC,CAAC;IAEF,OAAO;QACL,KAAK,EAAE,mBAAmB,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,EAAE,UAAU,CAAC;QAChE,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,cAAc,EAAE,OAAO,CAAC,cAAc;QACtC,UAAU;QACV,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,QAAQ;QACR,KAAK,EAAE,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;QAC3E,QAAQ,EAAE;YACR,oBAAoB,EAClB,QAAQ,CAAC,oBAAoB,IAAI,WAAW;YAC9C,iBAAiB,EAAE,QAAQ,CAAC,iBAAiB,IAAI,YAAY;YAC7D,0BAA0B,EAAE,QAAQ,CAAC,0BAA0B,IAAI;gBACjE,YAAY;gBACZ,qBAAqB;aACtB;YACD,YAAY,EAAE,QAAQ,CAAC,YAAY,IAAI,sBAAsB;YAC7D,eAAe,EAAE,QAAQ,CAAC,eAAe,IAAI,yBAAyB;SACvE;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -1,3 +1,7 @@
|
|
|
1
1
|
import type { CreateMemorixRetrievalFromEnvOptions, MemorixRetrievalClient } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Build a retrieval client with Catalox + Xronox (default data tier).
|
|
4
|
+
* Requires `MONGO_URI` and Xronox role env (see MEMORIX-DATABASE-CONVENTIONS.md).
|
|
5
|
+
*/
|
|
2
6
|
export declare function createMemorixRetrievalFromEnv(options: CreateMemorixRetrievalFromEnvOptions): Promise<MemorixRetrievalClient>;
|
|
3
7
|
//# sourceMappingURL=create-from-env.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-from-env.d.ts","sourceRoot":"","sources":["../../src/client/create-from-env.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,oCAAoC,EACpC,sBAAsB,EACvB,MAAM,YAAY,CAAC;AAEpB,wBAAsB,6BAA6B,CACjD,OAAO,EAAE,oCAAoC,GAC5C,OAAO,CAAC,sBAAsB,CAAC,
|
|
1
|
+
{"version":3,"file":"create-from-env.d.ts","sourceRoot":"","sources":["../../src/client/create-from-env.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,oCAAoC,EACpC,sBAAsB,EACvB,MAAM,YAAY,CAAC;AAEpB;;;GAGG;AACH,wBAAsB,6BAA6B,CACjD,OAAO,EAAE,oCAAoC,GAC5C,OAAO,CAAC,sBAAsB,CAAC,CASjC"}
|
|
@@ -1,10 +1,17 @@
|
|
|
1
|
-
import { connectMemorixMongo } from "../mongo/connection.js";
|
|
2
1
|
import { createMemorixRetrieval } from "./create-client.js";
|
|
2
|
+
import { createMemorixXronoxFromEnv } from "./create-xronox-from-env.js";
|
|
3
|
+
/**
|
|
4
|
+
* Build a retrieval client with Catalox + Xronox (default data tier).
|
|
5
|
+
* Requires `MONGO_URI` and Xronox role env (see MEMORIX-DATABASE-CONVENTIONS.md).
|
|
6
|
+
*/
|
|
3
7
|
export async function createMemorixRetrievalFromEnv(options) {
|
|
4
|
-
const
|
|
8
|
+
const xronox = await createMemorixXronoxFromEnv({
|
|
9
|
+
processEnv: options.processEnv,
|
|
10
|
+
});
|
|
5
11
|
return createMemorixRetrieval({
|
|
6
12
|
...options,
|
|
7
|
-
|
|
13
|
+
xronox,
|
|
14
|
+
close: xronox.close,
|
|
8
15
|
});
|
|
9
16
|
}
|
|
10
17
|
//# sourceMappingURL=create-from-env.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-from-env.js","sourceRoot":"","sources":["../../src/client/create-from-env.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"create-from-env.js","sourceRoot":"","sources":["../../src/client/create-from-env.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AAMzE;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,6BAA6B,CACjD,OAA6C;IAE7C,MAAM,MAAM,GAAG,MAAM,0BAA0B,CAAC;QAC9C,UAAU,EAAE,OAAO,CAAC,UAAU;KAC/B,CAAC,CAAC;IACH,OAAO,sBAAsB,CAAC;QAC5B,GAAG,OAAO;QACV,MAAM;QACN,KAAK,EAAE,MAAM,CAAC,KAAK;KACpB,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { XronoxLike } from "./xronox-like.js";
|
|
2
|
+
export type CreateMemorixXronoxFromEnvOptions = {
|
|
3
|
+
processEnv?: NodeJS.ProcessEnv;
|
|
4
|
+
};
|
|
5
|
+
export type MemorixXronoxAdapter = XronoxLike & {
|
|
6
|
+
close: () => Promise<void>;
|
|
7
|
+
selfTest?: (options?: {
|
|
8
|
+
testConnectivity?: boolean;
|
|
9
|
+
}) => Promise<unknown>;
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* Bootstrap Xronox from process env (`MONGO_URI`, role DB vars, etc.).
|
|
13
|
+
* Uses zero-config mode — same pattern as other x12i data-tier hosts.
|
|
14
|
+
*/
|
|
15
|
+
export declare function createMemorixXronoxFromEnv(options?: CreateMemorixXronoxFromEnvOptions): Promise<MemorixXronoxAdapter>;
|
|
16
|
+
//# sourceMappingURL=create-xronox-from-env.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-xronox-from-env.d.ts","sourceRoot":"","sources":["../../src/client/create-xronox-from-env.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,MAAM,MAAM,iCAAiC,GAAG;IAC9C,UAAU,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG,UAAU,GAAG;IAC9C,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,QAAQ,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE;QAAE,gBAAgB,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CAC3E,CAAC;AAEF;;;GAGG;AACH,wBAAsB,0BAA0B,CAC9C,OAAO,GAAE,iCAAsC,GAC9C,OAAO,CAAC,oBAAoB,CAAC,CAU/B"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { createXronox } from "@x12i/xronox";
|
|
2
|
+
import { createMemorixXronoxAdapter } from "./xronox-adapter.js";
|
|
3
|
+
/**
|
|
4
|
+
* Bootstrap Xronox from process env (`MONGO_URI`, role DB vars, etc.).
|
|
5
|
+
* Uses zero-config mode — same pattern as other x12i data-tier hosts.
|
|
6
|
+
*/
|
|
7
|
+
export async function createMemorixXronoxFromEnv(options = {}) {
|
|
8
|
+
const xronox = createXronox();
|
|
9
|
+
await xronox.init({
|
|
10
|
+
engine: "nxMongo",
|
|
11
|
+
zeroConfig: true,
|
|
12
|
+
lazyInit: true,
|
|
13
|
+
envFile: false,
|
|
14
|
+
});
|
|
15
|
+
return createMemorixXronoxAdapter(xronox);
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=create-xronox-from-env.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-xronox-from-env.js","sourceRoot":"","sources":["../../src/client/create-xronox-from-env.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AAYjE;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,UAA6C,EAAE;IAE/C,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;IAC9B,MAAM,MAAM,CAAC,IAAI,CAAC;QAChB,MAAM,EAAE,SAAS;QACjB,UAAU,EAAE,IAAI;QAChB,QAAQ,EAAE,IAAI;QACd,OAAO,EAAE,KAAK;KACf,CAAC,CAAC;IAEH,OAAO,0BAA0B,CAAC,MAAM,CAAC,CAAC;AAC5C,CAAC"}
|
package/dist/client/types.d.ts
CHANGED
|
@@ -13,16 +13,18 @@ export type ContentReaders = {
|
|
|
13
13
|
export type CreateMemorixRetrievalOptions = {
|
|
14
14
|
appId?: string;
|
|
15
15
|
catalox: CataloxLike;
|
|
16
|
-
/**
|
|
16
|
+
/** Xronox data tier (default via createMemorixRetrievalFromEnv). */
|
|
17
17
|
xronox?: XronoxLike;
|
|
18
|
-
/** Advanced:
|
|
18
|
+
/** Advanced escape hatch: inject Mongo directly (tests / legacy only). */
|
|
19
19
|
mongo?: MongoClient;
|
|
20
20
|
contentReaders?: ContentReaders;
|
|
21
21
|
processEnv?: NodeJS.ProcessEnv;
|
|
22
|
-
/** Advanced: per-target database overrides (
|
|
22
|
+
/** Advanced: per-target database overrides (Mongo escape hatch only). */
|
|
23
23
|
memorixDb?: Partial<Record<MemorixTarget, string>>;
|
|
24
24
|
/** Advanced with `xronox`: role names for entity/event databases. */
|
|
25
25
|
xronoxRoles?: Partial<Record<MemorixTarget, string>>;
|
|
26
|
+
/** Advanced: close hook when wrapping an external Xronox instance. */
|
|
27
|
+
close?: () => Promise<void>;
|
|
26
28
|
defaults?: {
|
|
27
29
|
canonicalContentType?: string;
|
|
28
30
|
effectiveDatePath?: string;
|
|
@@ -31,7 +33,7 @@ export type CreateMemorixRetrievalOptions = {
|
|
|
31
33
|
contentMaxBytes?: number;
|
|
32
34
|
};
|
|
33
35
|
};
|
|
34
|
-
export type CreateMemorixRetrievalFromEnvOptions = Omit<CreateMemorixRetrievalOptions, "xronox" | "mongo">;
|
|
36
|
+
export type CreateMemorixRetrievalFromEnvOptions = Omit<CreateMemorixRetrievalOptions, "xronox" | "mongo" | "close">;
|
|
35
37
|
export type MemorixRetrievalClient = {
|
|
36
38
|
appId: string;
|
|
37
39
|
catalox: CataloxLike;
|
|
@@ -40,7 +42,7 @@ export type MemorixRetrievalClient = {
|
|
|
40
42
|
processEnv: NodeJS.ProcessEnv;
|
|
41
43
|
memorixDb?: Partial<Record<MemorixTarget, string>>;
|
|
42
44
|
xronoxRoles?: Partial<Record<MemorixTarget, string>>;
|
|
43
|
-
/**
|
|
45
|
+
/** @deprecated Advanced escape hatch — prefer xronox data tier. */
|
|
44
46
|
getMongo?: () => Promise<MongoClient>;
|
|
45
47
|
close?: () => Promise<void>;
|
|
46
48
|
defaults: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/client/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvD,YAAY,EAAE,WAAW,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AACvG,YAAY,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAErE,MAAM,MAAM,cAAc,GAAG;IAC3B,GAAG,CAAC,EAAE,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC;IACzC,EAAE,CAAC,EAAE,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;CACxC,CAAC;AAEF,MAAM,MAAM,6BAA6B,GAAG;IAC1C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,WAAW,CAAC;IACrB,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/client/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { Xronox } from "@x12i/xronox";
|
|
2
|
+
import type { XronoxLike } from "./xronox-like.js";
|
|
3
|
+
/**
|
|
4
|
+
* Wrap a configured {@link Xronox} instance for {@link createMemorixRetrieval}.
|
|
5
|
+
* All Mongo I/O goes through Xronox routing (role + collection), not direct driver calls.
|
|
6
|
+
*/
|
|
7
|
+
export declare function createMemorixXronoxAdapter(xronox: Xronox): XronoxLike & {
|
|
8
|
+
close: () => Promise<void>;
|
|
9
|
+
selfTest?: (options?: {
|
|
10
|
+
testConnectivity?: boolean;
|
|
11
|
+
selfTestRoles?: string[];
|
|
12
|
+
}) => Promise<unknown>;
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=xronox-adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"xronox-adapter.d.ts","sourceRoot":"","sources":["../../src/client/xronox-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAkD,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3F,OAAO,KAAK,EAAE,UAAU,EAAiD,MAAM,kBAAkB,CAAC;AA0ClG;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,GAAG;IACvE,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,QAAQ,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE;QACpB,gBAAgB,CAAC,EAAE,OAAO,CAAC;QAC3B,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;KAC1B,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CACxB,CAgCA"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { DEFAULT_MEMORIX_XRONOX_ROLES } from "../data/memorix-read.js";
|
|
2
|
+
function toXronoxReadParams(params) {
|
|
3
|
+
return params;
|
|
4
|
+
}
|
|
5
|
+
function toXronoxCountParams(params) {
|
|
6
|
+
return {
|
|
7
|
+
dataType: params.dataType,
|
|
8
|
+
sourceType: params.sourceType,
|
|
9
|
+
subSourceType: "mongo",
|
|
10
|
+
source: params.source,
|
|
11
|
+
role: params.role,
|
|
12
|
+
query: params.query,
|
|
13
|
+
estimated: params.estimated,
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
function toXronoxListCollectionsParams(params) {
|
|
17
|
+
return params;
|
|
18
|
+
}
|
|
19
|
+
async function toArray(xronox, params) {
|
|
20
|
+
const readParams = toXronoxReadParams(params);
|
|
21
|
+
if (xronox.readArray) {
|
|
22
|
+
return xronox.readArray(readParams);
|
|
23
|
+
}
|
|
24
|
+
const result = await xronox.read(readParams);
|
|
25
|
+
if (Array.isArray(result))
|
|
26
|
+
return result;
|
|
27
|
+
const rows = [];
|
|
28
|
+
for await (const row of result) {
|
|
29
|
+
rows.push(row);
|
|
30
|
+
}
|
|
31
|
+
return rows;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Wrap a configured {@link Xronox} instance for {@link createMemorixRetrieval}.
|
|
35
|
+
* All Mongo I/O goes through Xronox routing (role + collection), not direct driver calls.
|
|
36
|
+
*/
|
|
37
|
+
export function createMemorixXronoxAdapter(xronox) {
|
|
38
|
+
return {
|
|
39
|
+
read: (params) => xronox.read(toXronoxReadParams(params)),
|
|
40
|
+
readArray: (params) => toArray(xronox, params),
|
|
41
|
+
async countDocuments(params) {
|
|
42
|
+
if (xronox.countDocuments) {
|
|
43
|
+
return xronox.countDocuments(toXronoxCountParams(params));
|
|
44
|
+
}
|
|
45
|
+
const rows = await toArray(xronox, {
|
|
46
|
+
...params,
|
|
47
|
+
project: ["_id"],
|
|
48
|
+
sort: undefined,
|
|
49
|
+
limit: undefined,
|
|
50
|
+
skip: undefined,
|
|
51
|
+
});
|
|
52
|
+
return rows.length;
|
|
53
|
+
},
|
|
54
|
+
listCollections: xronox.listCollections
|
|
55
|
+
? (params) => xronox.listCollections(toXronoxListCollectionsParams(params))
|
|
56
|
+
: undefined,
|
|
57
|
+
close: () => xronox.close(),
|
|
58
|
+
selfTest: xronox.selfTest
|
|
59
|
+
? (options) => xronox.selfTest({
|
|
60
|
+
...options,
|
|
61
|
+
selfTestRoles: options?.selfTestRoles ?? [
|
|
62
|
+
DEFAULT_MEMORIX_XRONOX_ROLES.entity,
|
|
63
|
+
DEFAULT_MEMORIX_XRONOX_ROLES.event,
|
|
64
|
+
],
|
|
65
|
+
})
|
|
66
|
+
: undefined,
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=xronox-adapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"xronox-adapter.js","sourceRoot":"","sources":["../../src/client/xronox-adapter.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,4BAA4B,EAAE,MAAM,yBAAyB,CAAC;AAEvE,SAAS,kBAAkB,CAAC,MAAwB;IAClD,OAAO,MAAoB,CAAC;AAC9B,CAAC;AAED,SAAS,mBAAmB,CAAC,MAAwB;IACnD,OAAO;QACL,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,aAAa,EAAE,OAAO;QACtB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,SAAS,EAAE,MAAM,CAAC,SAAS;KAC5B,CAAC;AACJ,CAAC;AAED,SAAS,6BAA6B,CACpC,MAAmC;IAEnC,OAAO,MAA+B,CAAC;AACzC,CAAC;AAED,KAAK,UAAU,OAAO,CACpB,MAAc,EACd,MAAwB;IAExB,MAAM,UAAU,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC9C,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;QACrB,OAAO,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IACtC,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC7C,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;QAAE,OAAO,MAAM,CAAC;IACzC,MAAM,IAAI,GAAc,EAAE,CAAC;IAC3B,IAAI,KAAK,EAAE,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;QAC/B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACjB,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,0BAA0B,CAAC,MAAc;IAOvD,OAAO;QACL,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;QACzD,SAAS,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC;QAC9C,KAAK,CAAC,cAAc,CAAC,MAAwB;YAC3C,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;gBAC1B,OAAO,MAAM,CAAC,cAAc,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC;YAC5D,CAAC;YACD,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,MAAM,EAAE;gBACjC,GAAG,MAAM;gBACT,OAAO,EAAE,CAAC,KAAK,CAAC;gBAChB,IAAI,EAAE,SAAS;gBACf,KAAK,EAAE,SAAS;gBAChB,IAAI,EAAE,SAAS;aAChB,CAAC,CAAC;YACH,OAAO,IAAI,CAAC,MAAM,CAAC;QACrB,CAAC;QACD,eAAe,EAAE,MAAM,CAAC,eAAe;YACrC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,eAAgB,CAAC,6BAA6B,CAAC,MAAM,CAAC,CAAC;YAC5E,CAAC,CAAC,SAAS;QACb,KAAK,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE;QAC3B,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACvB,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE,CACV,MAAM,CAAC,QAAS,CAAC;gBACf,GAAG,OAAO;gBACV,aAAa,EAAE,OAAO,EAAE,aAAa,IAAI;oBACvC,4BAA4B,CAAC,MAAM;oBACnC,4BAA4B,CAAC,KAAK;iBACnC;aACF,CAAC;YACN,CAAC,CAAC,SAAS;KACd,CAAC;AACJ,CAAC"}
|
|
@@ -10,9 +10,33 @@ export type XronoxReadParams = {
|
|
|
10
10
|
sort?: string | string[] | Record<string, 1 | -1>;
|
|
11
11
|
limit?: number;
|
|
12
12
|
skip?: number;
|
|
13
|
+
/** When true, use estimatedDocumentCount (ignores query filter). */
|
|
14
|
+
estimated?: boolean;
|
|
15
|
+
};
|
|
16
|
+
export type XronoxListedCollection = {
|
|
17
|
+
name: string;
|
|
18
|
+
type?: string;
|
|
19
|
+
};
|
|
20
|
+
export type XronoxListCollectionsParams = {
|
|
21
|
+
dataType: "metadata" | "memory" | "operation" | "knowledge";
|
|
22
|
+
sourceType: "database";
|
|
23
|
+
subSourceType: "mongo";
|
|
24
|
+
source: string;
|
|
25
|
+
role?: string;
|
|
26
|
+
filter?: Record<string, unknown>;
|
|
27
|
+
excludeSystem?: boolean;
|
|
28
|
+
nameOnly?: boolean;
|
|
29
|
+
};
|
|
30
|
+
export type XronoxListCollectionsResult = {
|
|
31
|
+
database: string;
|
|
32
|
+
collections: XronoxListedCollection[];
|
|
13
33
|
};
|
|
14
34
|
export type XronoxLike = {
|
|
15
35
|
read(params: XronoxReadParams): Promise<unknown[] | AsyncIterable<unknown>>;
|
|
16
36
|
readArray?(params: XronoxReadParams): Promise<unknown[]>;
|
|
37
|
+
/** Routed document count (same params as read, minus pagination). */
|
|
38
|
+
countDocuments?(params: XronoxReadParams): Promise<number>;
|
|
39
|
+
/** Routed database collection listing (role → db). */
|
|
40
|
+
listCollections?(params: XronoxListCollectionsParams): Promise<XronoxListCollectionsResult>;
|
|
17
41
|
};
|
|
18
42
|
//# sourceMappingURL=xronox-like.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"xronox-like.d.ts","sourceRoot":"","sources":["../../src/client/xronox-like.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,EAAE,UAAU,CAAC;IACrB,UAAU,EAAE,UAAU,CAAC;IACvB,aAAa,EAAE,OAAO,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,wFAAwF;IACxF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAClD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,EAAE,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;IAC5E,SAAS,CAAC,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"xronox-like.d.ts","sourceRoot":"","sources":["../../src/client/xronox-like.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,EAAE,UAAU,CAAC;IACrB,UAAU,EAAE,UAAU,CAAC;IACvB,aAAa,EAAE,OAAO,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,wFAAwF;IACxF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAClD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oEAAoE;IACpE,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG;IACxC,QAAQ,EAAE,UAAU,GAAG,QAAQ,GAAG,WAAW,GAAG,WAAW,CAAC;IAC5D,UAAU,EAAE,UAAU,CAAC;IACvB,aAAa,EAAE,OAAO,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG;IACxC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,sBAAsB,EAAE,CAAC;CACvC,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,EAAE,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;IAC5E,SAAS,CAAC,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IACzD,qEAAqE;IACrE,cAAc,CAAC,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC3D,sDAAsD;IACtD,eAAe,CAAC,CAAC,MAAM,EAAE,2BAA2B,GAAG,OAAO,CAAC,2BAA2B,CAAC,CAAC;CAC7F,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { MemorixRetrievalClient } from "../client/types.js";
|
|
2
|
+
import type { MemorixEntityDescriptor } from "../descriptors/descriptor-types.js";
|
|
3
|
+
export type MemorixCountParams = {
|
|
4
|
+
entity: MemorixEntityDescriptor;
|
|
5
|
+
source: string;
|
|
6
|
+
query?: Record<string, unknown>;
|
|
7
|
+
role?: string;
|
|
8
|
+
estimated?: boolean;
|
|
9
|
+
};
|
|
10
|
+
export declare function memorixCount(client: MemorixRetrievalClient, params: MemorixCountParams): Promise<number>;
|
|
11
|
+
//# sourceMappingURL=memorix-count.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memorix-count.d.ts","sourceRoot":"","sources":["../../src/data/memorix-count.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AAMlF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,MAAM,EAAE,uBAAuB,CAAC;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF,wBAAsB,YAAY,CAChC,MAAM,EAAE,sBAAsB,EAC9B,MAAM,EAAE,kBAAkB,GACzB,OAAO,CAAC,MAAM,CAAC,CAwCjB"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { memorixRead, resolveMemorixXronoxRole, } from "./memorix-read.js";
|
|
2
|
+
export async function memorixCount(client, params) {
|
|
3
|
+
if (client.xronox?.countDocuments) {
|
|
4
|
+
return client.xronox.countDocuments({
|
|
5
|
+
dataType: "metadata",
|
|
6
|
+
sourceType: "database",
|
|
7
|
+
subSourceType: "mongo",
|
|
8
|
+
source: params.source,
|
|
9
|
+
role: params.role ?? resolveMemorixXronoxRole(params.entity, client),
|
|
10
|
+
query: params.query,
|
|
11
|
+
estimated: params.estimated,
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
if (client.getMongo) {
|
|
15
|
+
const { countMemorixCollection } = await import("../mongo/read-collection.js");
|
|
16
|
+
const { resolveMemorixDbNameForEntity } = await import("../mongo/resolve-db.js");
|
|
17
|
+
const mongo = await client.getMongo();
|
|
18
|
+
const db = resolveMemorixDbNameForEntity(params.entity, client);
|
|
19
|
+
return countMemorixCollection(mongo, {
|
|
20
|
+
db,
|
|
21
|
+
collection: params.source,
|
|
22
|
+
query: params.query,
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
if (!client.xronox) {
|
|
26
|
+
throw new Error("Memorix retrieval requires a data tier. Use createMemorixRetrievalFromEnv() " +
|
|
27
|
+
"or pass xronox to createMemorixRetrieval().");
|
|
28
|
+
}
|
|
29
|
+
const rows = await memorixRead(client, {
|
|
30
|
+
entity: params.entity,
|
|
31
|
+
source: params.source,
|
|
32
|
+
query: params.query,
|
|
33
|
+
project: ["_id"],
|
|
34
|
+
role: params.role,
|
|
35
|
+
});
|
|
36
|
+
return rows.length;
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=memorix-count.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memorix-count.js","sourceRoot":"","sources":["../../src/data/memorix-count.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,WAAW,EACX,wBAAwB,GACzB,MAAM,mBAAmB,CAAC;AAU3B,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,MAA8B,EAC9B,MAA0B;IAE1B,IAAI,MAAM,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC;QAClC,OAAO,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC;YAClC,QAAQ,EAAE,UAAU;YACpB,UAAU,EAAE,UAAU;YACtB,aAAa,EAAE,OAAO;YACtB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,wBAAwB,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;YACpE,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,SAAS,EAAE,MAAM,CAAC,SAAS;SAC5B,CAAC,CAAC;IACL,CAAC;IAED,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACpB,MAAM,EAAE,sBAAsB,EAAE,GAAG,MAAM,MAAM,CAAC,6BAA6B,CAAC,CAAC;QAC/E,MAAM,EAAE,6BAA6B,EAAE,GAAG,MAAM,MAAM,CAAC,wBAAwB,CAAC,CAAC;QACjF,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAC;QACtC,MAAM,EAAE,GAAG,6BAA6B,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAChE,OAAO,sBAAsB,CAAC,KAAK,EAAE;YACnC,EAAE;YACF,UAAU,EAAE,MAAM,CAAC,MAAM;YACzB,KAAK,EAAE,MAAM,CAAC,KAAK;SACpB,CAAC,CAAC;IACL,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CACb,8EAA8E;YAC5E,6CAA6C,CAChD,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,MAAM,EAAE;QACrC,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,OAAO,EAAE,CAAC,KAAK,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC,IAAI;KAClB,CAAC,CAAC;IACH,OAAO,IAAI,CAAC,MAAM,CAAC;AACrB,CAAC"}
|
|
@@ -2,7 +2,7 @@ import type { MemorixRetrievalClient } from "../client/types.js";
|
|
|
2
2
|
import type { XronoxReadParams } from "../client/xronox-like.js";
|
|
3
3
|
import type { MemorixEntityDescriptor } from "../descriptors/descriptor-types.js";
|
|
4
4
|
import type { MemorixTarget } from "../mongo/types.js";
|
|
5
|
-
/**
|
|
5
|
+
/** Xronox role ids for Memorix targets (@x12i/xronox 3.8+ `MONGO_ROLE_MAP`). */
|
|
6
6
|
export declare const DEFAULT_MEMORIX_XRONOX_ROLES: Record<MemorixTarget, string>;
|
|
7
7
|
export declare function resolveMemorixXronoxRole(entity: MemorixEntityDescriptor, client: MemorixRetrievalClient): string;
|
|
8
8
|
export type MemorixReadParams = Omit<XronoxReadParams, "dataType" | "sourceType" | "subSourceType" | "role"> & {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memorix-read.d.ts","sourceRoot":"","sources":["../../src/data/memorix-read.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;
|
|
1
|
+
{"version":3,"file":"memorix-read.d.ts","sourceRoot":"","sources":["../../src/data/memorix-read.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AAIlF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvD,gFAAgF;AAChF,eAAO,MAAM,4BAA4B,EAAE,MAAM,CAAC,aAAa,EAAE,MAAM,CAGtE,CAAC;AAEF,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,uBAAuB,EAC/B,MAAM,EAAE,sBAAsB,GAC7B,MAAM,CAGR;AAED,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAClC,gBAAgB,EAChB,UAAU,GAAG,YAAY,GAAG,eAAe,GAAG,MAAM,CACrD,GAAG;IACF,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,uBAAuB,CAAC;IAChC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,wBAAsB,WAAW,CAC/B,MAAM,EAAE,sBAAsB,EAC9B,MAAM,EAAE,iBAAiB,GACxB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,CAoDpC;AAED,2CAA2C;AAC3C,eAAO,MAAM,iBAAiB,oBAAc,CAAC"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
+
import { sanitizeProjectionPaths } from "../mongo/read-collection.js";
|
|
1
2
|
import { readMemorixCollection } from "../mongo/read-collection.js";
|
|
2
3
|
import { resolveMemorixDbNameForEntity } from "../mongo/resolve-db.js";
|
|
3
|
-
/**
|
|
4
|
+
/** Xronox role ids for Memorix targets (@x12i/xronox 3.8+ `MONGO_ROLE_MAP`). */
|
|
4
5
|
export const DEFAULT_MEMORIX_XRONOX_ROLES = {
|
|
5
|
-
entity: "
|
|
6
|
-
event: "
|
|
6
|
+
entity: "memorix_entities",
|
|
7
|
+
event: "memorix_events",
|
|
7
8
|
};
|
|
8
9
|
export function resolveMemorixXronoxRole(entity, client) {
|
|
9
10
|
const target = entity.target ?? "entity";
|
|
@@ -13,6 +14,9 @@ export async function memorixRead(client, params) {
|
|
|
13
14
|
const { entity, db: dbOverride, role: roleOverride, ...readParams } = params;
|
|
14
15
|
const db = dbOverride ?? resolveMemorixDbNameForEntity(entity, client);
|
|
15
16
|
if (client.xronox) {
|
|
17
|
+
const project = readParams.project?.length
|
|
18
|
+
? sanitizeProjectionPaths(readParams.project)
|
|
19
|
+
: readParams.project;
|
|
16
20
|
const fullParams = {
|
|
17
21
|
dataType: "metadata",
|
|
18
22
|
sourceType: "database",
|
|
@@ -20,6 +24,7 @@ export async function memorixRead(client, params) {
|
|
|
20
24
|
role: roleOverride ?? resolveMemorixXronoxRole(entity, client),
|
|
21
25
|
...readParams,
|
|
22
26
|
source: params.source,
|
|
27
|
+
project,
|
|
23
28
|
};
|
|
24
29
|
if (client.xronox.readArray) {
|
|
25
30
|
const rows = await client.xronox.readArray(fullParams);
|
|
@@ -35,20 +40,20 @@ export async function memorixRead(client, params) {
|
|
|
35
40
|
}
|
|
36
41
|
return rows;
|
|
37
42
|
}
|
|
38
|
-
if (
|
|
39
|
-
|
|
40
|
-
|
|
43
|
+
if (client.getMongo) {
|
|
44
|
+
const mongo = await client.getMongo();
|
|
45
|
+
return readMemorixCollection(mongo, {
|
|
46
|
+
db,
|
|
47
|
+
collection: params.source,
|
|
48
|
+
query: readParams.query,
|
|
49
|
+
project: readParams.project,
|
|
50
|
+
sort: readParams.sort,
|
|
51
|
+
limit: readParams.limit,
|
|
52
|
+
skip: readParams.skip,
|
|
53
|
+
});
|
|
41
54
|
}
|
|
42
|
-
|
|
43
|
-
|
|
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
|
-
});
|
|
55
|
+
throw new Error("Memorix retrieval client is missing a data tier. Use createMemorixRetrievalFromEnv({ catalox }) " +
|
|
56
|
+
"or pass xronox to createMemorixRetrieval().");
|
|
52
57
|
}
|
|
53
58
|
/** @deprecated Use {@link memorixRead}. */
|
|
54
59
|
export const memorixXronoxRead = memorixRead;
|
|
@@ -1 +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,
|
|
1
|
+
{"version":3,"file":"memorix-read.js","sourceRoot":"","sources":["../../src/data/memorix-read.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import type { MemorixRetrievalClient } from "../client/types.js";
|
|
2
|
+
import type { MemorixTarget } from "../mongo/types.js";
|
|
3
|
+
import type { MemorixEntityGraphDiscovery } from "./entity-graph.js";
|
|
4
|
+
export type CollectionMatchStatus = "matched" | "empty" | "orphan" | "unresolved";
|
|
5
|
+
export type CollectionMatchConfidence = "descriptor" | "heuristic" | "unknown";
|
|
6
|
+
export type CollectionInventoryEntry = {
|
|
7
|
+
collection: string;
|
|
8
|
+
database: string;
|
|
9
|
+
target: MemorixTarget;
|
|
10
|
+
documentCount: number;
|
|
11
|
+
entityName: string | null;
|
|
12
|
+
contentType: string | null;
|
|
13
|
+
matchStatus: CollectionMatchStatus;
|
|
14
|
+
matchConfidence: CollectionMatchConfidence;
|
|
15
|
+
descriptorId?: string;
|
|
16
|
+
listable: boolean;
|
|
17
|
+
};
|
|
18
|
+
export type CollectionInventoryTargetSummary = {
|
|
19
|
+
matchedPopulated: number;
|
|
20
|
+
declaredEmpty: number;
|
|
21
|
+
orphans: number;
|
|
22
|
+
unresolved: number;
|
|
23
|
+
};
|
|
24
|
+
export type BuildMemorixCollectionInventoryOptions = {
|
|
25
|
+
scopedNamespace?: string | null;
|
|
26
|
+
/** Use countDocuments instead of estimatedDocumentCount for orphan scan. */
|
|
27
|
+
includeExactCounts?: boolean;
|
|
28
|
+
};
|
|
29
|
+
export type MemorixCollectionInventoryResult = {
|
|
30
|
+
scannedAt: string;
|
|
31
|
+
memorixDatabases: {
|
|
32
|
+
entity: string;
|
|
33
|
+
event: string;
|
|
34
|
+
};
|
|
35
|
+
databases: Array<{
|
|
36
|
+
name: string;
|
|
37
|
+
target: MemorixTarget;
|
|
38
|
+
collectionCount: number;
|
|
39
|
+
}>;
|
|
40
|
+
entries: CollectionInventoryEntry[];
|
|
41
|
+
summary: CollectionInventoryTargetSummary & {
|
|
42
|
+
byTarget: Record<MemorixTarget, CollectionInventoryTargetSummary>;
|
|
43
|
+
};
|
|
44
|
+
discovery: MemorixEntityGraphDiscovery;
|
|
45
|
+
};
|
|
46
|
+
export type MemorixOrphanGraphNode = {
|
|
47
|
+
entityName: string;
|
|
48
|
+
label: string;
|
|
49
|
+
target: MemorixTarget;
|
|
50
|
+
memorixDatabase: string;
|
|
51
|
+
contentTypes: Array<{
|
|
52
|
+
contentType: string;
|
|
53
|
+
collection: string;
|
|
54
|
+
database: string;
|
|
55
|
+
target: MemorixTarget;
|
|
56
|
+
documentCount: number;
|
|
57
|
+
}>;
|
|
58
|
+
totalDocuments: number;
|
|
59
|
+
inventoryStatus: "orphan";
|
|
60
|
+
listable: false;
|
|
61
|
+
drillable: false;
|
|
62
|
+
count: 0;
|
|
63
|
+
narratives: [];
|
|
64
|
+
connections: [];
|
|
65
|
+
connectedEntityTypes: 0;
|
|
66
|
+
contentTypesWithData: number;
|
|
67
|
+
defaultListDescriptorId: "";
|
|
68
|
+
defaultItemDescriptorId: "";
|
|
69
|
+
};
|
|
70
|
+
export declare function parseOrphanCollection(collection: string, knownPrefixes: string[]): {
|
|
71
|
+
entityName: string | null;
|
|
72
|
+
contentType: string | null;
|
|
73
|
+
confidence: CollectionMatchConfidence;
|
|
74
|
+
};
|
|
75
|
+
export declare function buildMemorixCollectionInventory(client: MemorixRetrievalClient, options?: BuildMemorixCollectionInventoryOptions): Promise<MemorixCollectionInventoryResult>;
|
|
76
|
+
export declare function orphanNodesFromInventory(entries: CollectionInventoryEntry[]): MemorixOrphanGraphNode[];
|
|
77
|
+
//# sourceMappingURL=collection-inventory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collection-inventory.d.ts","sourceRoot":"","sources":["../../src/explorer/collection-inventory.ts"],"names":[],"mappings":"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"}
|