@x12i/memorix-retrieval 1.2.0 → 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +64 -24
- package/catalox-seeds/inputs/entity-descriptors/assets.json +2 -0
- package/catalox-seeds/inputs/entity-descriptors/variabilities-groups.json +2 -0
- package/catalox-seeds/inputs/entity-descriptors/vulnerabilities.json +2 -0
- package/catalox-seeds/memorix-retrieval-descriptors.manifest.json +6 -0
- package/dist/client/create-client.js +2 -2
- package/dist/client/create-client.js.map +1 -1
- package/dist/client/create-stack-from-env.js +4 -6
- package/dist/client/create-stack-from-env.js.map +1 -1
- package/dist/client/types.d.ts +4 -0
- package/dist/client/types.d.ts.map +1 -1
- package/dist/descriptors/descriptor-types.d.ts +4 -0
- package/dist/descriptors/descriptor-types.d.ts.map +1 -1
- package/dist/descriptors/discover-entities.d.ts +3 -1
- package/dist/descriptors/discover-entities.d.ts.map +1 -1
- package/dist/descriptors/discover-entities.js +14 -43
- package/dist/descriptors/discover-entities.js.map +1 -1
- package/dist/descriptors/resolve-app-id.d.ts +4 -0
- package/dist/descriptors/resolve-app-id.d.ts.map +1 -0
- package/dist/descriptors/resolve-app-id.js +8 -0
- package/dist/descriptors/resolve-app-id.js.map +1 -0
- package/dist/descriptors/resolve-default-descriptors.d.ts +11 -0
- package/dist/descriptors/resolve-default-descriptors.d.ts.map +1 -0
- package/dist/descriptors/resolve-default-descriptors.js +22 -0
- package/dist/descriptors/resolve-default-descriptors.js.map +1 -0
- package/dist/descriptors/validate-descriptor.d.ts.map +1 -1
- package/dist/descriptors/validate-descriptor.js +11 -0
- package/dist/descriptors/validate-descriptor.js.map +1 -1
- package/dist/explorer/entity-graph.d.ts +3 -1
- package/dist/explorer/entity-graph.d.ts.map +1 -1
- package/dist/explorer/entity-graph.js +4 -0
- package/dist/explorer/entity-graph.js.map +1 -1
- package/dist/index.d.ts +12 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -3
- package/dist/index.js.map +1 -1
- package/dist/retrieval/fetch-for-entity.d.ts +18 -0
- package/dist/retrieval/fetch-for-entity.d.ts.map +1 -0
- package/dist/retrieval/fetch-for-entity.js +21 -0
- package/dist/retrieval/fetch-for-entity.js.map +1 -0
- package/dist/retrieval/fetch-list.d.ts.map +1 -1
- package/dist/retrieval/fetch-list.js +16 -1
- package/dist/retrieval/fetch-list.js.map +1 -1
- package/dist/retrieval/resolve-filters.d.ts +2 -0
- package/dist/retrieval/resolve-filters.d.ts.map +1 -1
- package/dist/retrieval/resolve-filters.js +24 -3
- package/dist/retrieval/resolve-filters.js.map +1 -1
- package/dist/retrieval/resolve-list-search.d.ts +6 -0
- package/dist/retrieval/resolve-list-search.d.ts.map +1 -0
- package/dist/retrieval/resolve-list-search.js +25 -0
- package/dist/retrieval/resolve-list-search.js.map +1 -0
- package/dist/seeds/build-manifest.d.ts +8 -0
- package/dist/seeds/build-manifest.d.ts.map +1 -0
- package/dist/seeds/build-manifest.js +83 -0
- package/dist/seeds/build-manifest.js.map +1 -0
- package/dist/seeds/check-needs-seed.d.ts +10 -0
- package/dist/seeds/check-needs-seed.d.ts.map +1 -0
- package/dist/seeds/check-needs-seed.js +66 -0
- package/dist/seeds/check-needs-seed.js.map +1 -0
- package/dist/seeds/default-seed-spec.d.ts +12 -0
- package/dist/seeds/default-seed-spec.d.ts.map +1 -0
- package/dist/seeds/default-seed-spec.js +89 -0
- package/dist/seeds/default-seed-spec.js.map +1 -0
- package/dist/seeds/merge-for-apply.d.ts +28 -0
- package/dist/seeds/merge-for-apply.d.ts.map +1 -0
- package/dist/seeds/merge-for-apply.js +31 -0
- package/dist/seeds/merge-for-apply.js.map +1 -0
- package/dist/seeds/paths.d.ts +10 -0
- package/dist/seeds/paths.d.ts.map +1 -0
- package/dist/seeds/paths.js +40 -0
- package/dist/seeds/paths.js.map +1 -0
- package/dist/seeds/seed-types.d.ts +57 -0
- package/dist/seeds/seed-types.d.ts.map +1 -0
- package/dist/seeds/seed-types.js +2 -0
- package/dist/seeds/seed-types.js.map +1 -0
- package/dist/tests/descriptor-validation.test.js +15 -0
- package/dist/tests/descriptor-validation.test.js.map +1 -1
- package/dist/tests/fixtures.d.ts.map +1 -1
- package/dist/tests/fixtures.js +2 -0
- package/dist/tests/fixtures.js.map +1 -1
- package/dist/tests/relations.test.js +3 -0
- package/dist/tests/relations.test.js.map +1 -1
- package/dist/tests/resolve-app-id.test.d.ts +2 -0
- package/dist/tests/resolve-app-id.test.d.ts.map +1 -0
- package/dist/tests/resolve-app-id.test.js +19 -0
- package/dist/tests/resolve-app-id.test.js.map +1 -0
- package/dist/tests/resolve-filters.test.d.ts +2 -0
- package/dist/tests/resolve-filters.test.d.ts.map +1 -0
- package/dist/tests/resolve-filters.test.js +47 -0
- package/dist/tests/resolve-filters.test.js.map +1 -0
- package/dist/tests/seed-check.test.d.ts +2 -0
- package/dist/tests/seed-check.test.d.ts.map +1 -0
- package/dist/tests/seed-check.test.js +47 -0
- package/dist/tests/seed-check.test.js.map +1 -0
- package/dist/tests/seed-manifest.test.d.ts +2 -0
- package/dist/tests/seed-manifest.test.d.ts.map +1 -0
- package/dist/tests/seed-manifest.test.js +80 -0
- package/dist/tests/seed-manifest.test.js.map +1 -0
- package/docs/DATA-TIER-CONTRACT.md +138 -0
- package/docs/EXPLORER-HOST-APIS.md +8 -6
- package/docs/MEMORIX-CATALOX-CONTRACTS.md +540 -0
- package/package.json +4 -3
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { throwRetrievalError } from "../errors/errors.js";
|
|
2
|
+
import { listExpectedMemorixRetrievalSeedItemIds } from "./default-seed-spec.js";
|
|
3
|
+
async function listCatalogItemIds(client, catalogId) {
|
|
4
|
+
const listFn = client.catalox.listCatalogItems;
|
|
5
|
+
if (!listFn) {
|
|
6
|
+
throwRetrievalError("CATALOX_LIST_UNSUPPORTED", "Catalox client must support listCatalogItems to check seed status");
|
|
7
|
+
}
|
|
8
|
+
const ids = [];
|
|
9
|
+
let offset = 0;
|
|
10
|
+
const pageSize = 200;
|
|
11
|
+
for (;;) {
|
|
12
|
+
const page = await listFn({ appId: client.appId }, catalogId, {
|
|
13
|
+
limit: pageSize,
|
|
14
|
+
offset,
|
|
15
|
+
});
|
|
16
|
+
ids.push(...page.items.map((item) => item.id));
|
|
17
|
+
if (!page.hasMore || page.items.length === 0)
|
|
18
|
+
break;
|
|
19
|
+
offset += page.items.length;
|
|
20
|
+
if (offset > 10_000)
|
|
21
|
+
break;
|
|
22
|
+
}
|
|
23
|
+
return ids;
|
|
24
|
+
}
|
|
25
|
+
export async function checkMemorixRetrievalSeedNeeds(client, options = {}) {
|
|
26
|
+
const expected = options.expected ?? listExpectedMemorixRetrievalSeedItemIds();
|
|
27
|
+
const catalogs = [];
|
|
28
|
+
let needed = false;
|
|
29
|
+
const reasons = [];
|
|
30
|
+
for (const { catalogId, itemIds } of expected) {
|
|
31
|
+
let presentItemIds = [];
|
|
32
|
+
try {
|
|
33
|
+
presentItemIds = await listCatalogItemIds(client, catalogId);
|
|
34
|
+
}
|
|
35
|
+
catch (e) {
|
|
36
|
+
needed = true;
|
|
37
|
+
const msg = e instanceof Error ? e.message : String(e);
|
|
38
|
+
reasons.push(`${catalogId}: ${msg}`);
|
|
39
|
+
catalogs.push({
|
|
40
|
+
catalogId,
|
|
41
|
+
expectedItemIds: itemIds,
|
|
42
|
+
presentItemIds: [],
|
|
43
|
+
missingItemIds: itemIds,
|
|
44
|
+
});
|
|
45
|
+
continue;
|
|
46
|
+
}
|
|
47
|
+
const presentSet = new Set(presentItemIds);
|
|
48
|
+
const missingItemIds = itemIds.filter((id) => !presentSet.has(id));
|
|
49
|
+
if (missingItemIds.length) {
|
|
50
|
+
needed = true;
|
|
51
|
+
reasons.push(`${catalogId}: missing ${missingItemIds.join(", ")}`);
|
|
52
|
+
}
|
|
53
|
+
catalogs.push({
|
|
54
|
+
catalogId,
|
|
55
|
+
expectedItemIds: itemIds,
|
|
56
|
+
presentItemIds,
|
|
57
|
+
missingItemIds,
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
return {
|
|
61
|
+
needed,
|
|
62
|
+
reason: reasons.length ? reasons.join("; ") : undefined,
|
|
63
|
+
catalogs,
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=check-needs-seed.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check-needs-seed.js","sourceRoot":"","sources":["../../src/seeds/check-needs-seed.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { MemorixSeedCatalogSpec, MemorixSeedScope } from "./seed-types.js";
|
|
2
|
+
export declare const MEMORIX_RETRIEVAL_SEED_PRESET_ID = "memorix-retrieval-descriptors";
|
|
3
|
+
export declare const MEMORIX_RETRIEVAL_DEFAULT_SCOPE: MemorixSeedScope;
|
|
4
|
+
/** Entity descriptor id → Memorix target database role (applied at seed build). */
|
|
5
|
+
export declare const MEMORIX_RETRIEVAL_ENTITY_TARGETS: Record<string, "entity" | "event">;
|
|
6
|
+
export declare const MEMORIX_RETRIEVAL_SEED_CATALOGS: MemorixSeedCatalogSpec[];
|
|
7
|
+
export declare const MEMORIX_RETRIEVAL_SEED_APP_ID = "memorix";
|
|
8
|
+
export declare function listExpectedMemorixRetrievalSeedItemIds(): Array<{
|
|
9
|
+
catalogId: string;
|
|
10
|
+
itemIds: string[];
|
|
11
|
+
}>;
|
|
12
|
+
//# sourceMappingURL=default-seed-spec.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"default-seed-spec.d.ts","sourceRoot":"","sources":["../../src/seeds/default-seed-spec.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEhF,eAAO,MAAM,gCAAgC,kCAAkC,CAAC;AAEhF,eAAO,MAAM,+BAA+B,EAAE,gBAG7C,CAAC;AAEF,mFAAmF;AACnF,eAAO,MAAM,gCAAgC,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,GAAG,OAAO,CAI/E,CAAC;AAEF,eAAO,MAAM,+BAA+B,EAAE,sBAAsB,EAiEnE,CAAC;AAEF,eAAO,MAAM,6BAA6B,YAAiB,CAAC;AAE5D,wBAAgB,uCAAuC,IAAI,KAAK,CAAC;IAC/D,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB,CAAC,CAQD"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { MEMORIX_APP_ID, MEMORIX_ENTITY_DESCRIPTORS_CATALOG, MEMORIX_ITEM_DESCRIPTORS_CATALOG, MEMORIX_LIST_DESCRIPTORS_CATALOG, } from "../descriptors/catalog-ids.js";
|
|
2
|
+
export const MEMORIX_RETRIEVAL_SEED_PRESET_ID = "memorix-retrieval-descriptors";
|
|
3
|
+
export const MEMORIX_RETRIEVAL_DEFAULT_SCOPE = {
|
|
4
|
+
domains: ["network", "vulnerabilities"],
|
|
5
|
+
agents: ["neo"],
|
|
6
|
+
};
|
|
7
|
+
/** Entity descriptor id → Memorix target database role (applied at seed build). */
|
|
8
|
+
export const MEMORIX_RETRIEVAL_ENTITY_TARGETS = {
|
|
9
|
+
assets: "entity",
|
|
10
|
+
"variabilities-groups": "entity",
|
|
11
|
+
vulnerabilities: "event",
|
|
12
|
+
};
|
|
13
|
+
export const MEMORIX_RETRIEVAL_SEED_CATALOGS = [
|
|
14
|
+
{
|
|
15
|
+
catalogId: MEMORIX_ENTITY_DESCRIPTORS_CATALOG,
|
|
16
|
+
name: "Memorix entity descriptors",
|
|
17
|
+
catalogType: "memorix",
|
|
18
|
+
sourceMode: "native",
|
|
19
|
+
native: { itemIdField: "id", titleField: "entityName" },
|
|
20
|
+
descriptor: {
|
|
21
|
+
itemIdField: "id",
|
|
22
|
+
titleField: "entityName",
|
|
23
|
+
queryableFields: [
|
|
24
|
+
{ key: "id", label: "Id" },
|
|
25
|
+
{ key: "entityName", label: "Entity name" },
|
|
26
|
+
{ key: "target", label: "Target" },
|
|
27
|
+
],
|
|
28
|
+
},
|
|
29
|
+
inputFiles: [
|
|
30
|
+
"entity-descriptors/assets.json",
|
|
31
|
+
"entity-descriptors/variabilities-groups.json",
|
|
32
|
+
"entity-descriptors/vulnerabilities.json",
|
|
33
|
+
],
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
catalogId: MEMORIX_LIST_DESCRIPTORS_CATALOG,
|
|
37
|
+
name: "Memorix list descriptors",
|
|
38
|
+
catalogType: "memorix",
|
|
39
|
+
sourceMode: "native",
|
|
40
|
+
native: { itemIdField: "id", titleField: "title" },
|
|
41
|
+
descriptor: {
|
|
42
|
+
itemIdField: "id",
|
|
43
|
+
titleField: "title",
|
|
44
|
+
queryableFields: [
|
|
45
|
+
{ key: "id", label: "Id" },
|
|
46
|
+
{ key: "entity", label: "Entity" },
|
|
47
|
+
{ key: "title", label: "Title" },
|
|
48
|
+
],
|
|
49
|
+
},
|
|
50
|
+
inputFiles: [
|
|
51
|
+
"list-descriptors/assets-main-list.json",
|
|
52
|
+
"list-descriptors/vulnerabilities-main-list.json",
|
|
53
|
+
"list-descriptors/critical-vulnerabilities-list.json",
|
|
54
|
+
"list-descriptors/variabilities-groups-main-list.json",
|
|
55
|
+
],
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
catalogId: MEMORIX_ITEM_DESCRIPTORS_CATALOG,
|
|
59
|
+
name: "Memorix item descriptors",
|
|
60
|
+
catalogType: "memorix",
|
|
61
|
+
sourceMode: "native",
|
|
62
|
+
native: { itemIdField: "id", titleField: "title" },
|
|
63
|
+
descriptor: {
|
|
64
|
+
itemIdField: "id",
|
|
65
|
+
titleField: "title",
|
|
66
|
+
queryableFields: [
|
|
67
|
+
{ key: "id", label: "Id" },
|
|
68
|
+
{ key: "entity", label: "Entity" },
|
|
69
|
+
{ key: "title", label: "Title" },
|
|
70
|
+
],
|
|
71
|
+
},
|
|
72
|
+
inputFiles: [
|
|
73
|
+
"item-descriptors/asset-detail-item.json",
|
|
74
|
+
"item-descriptors/vulnerability-detail-item.json",
|
|
75
|
+
"item-descriptors/variabilities-group-detail-item.json",
|
|
76
|
+
],
|
|
77
|
+
},
|
|
78
|
+
];
|
|
79
|
+
export const MEMORIX_RETRIEVAL_SEED_APP_ID = MEMORIX_APP_ID;
|
|
80
|
+
export function listExpectedMemorixRetrievalSeedItemIds() {
|
|
81
|
+
return MEMORIX_RETRIEVAL_SEED_CATALOGS.map((spec) => ({
|
|
82
|
+
catalogId: spec.catalogId,
|
|
83
|
+
itemIds: spec.inputFiles.map((file) => {
|
|
84
|
+
const base = file.split("/").pop() ?? file;
|
|
85
|
+
return base.replace(/\.json$/i, "");
|
|
86
|
+
}),
|
|
87
|
+
}));
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=default-seed-spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"default-seed-spec.js","sourceRoot":"","sources":["../../src/seeds/default-seed-spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { MemorixRetrievalSeedManifest, MemorixSeedScope } from "./seed-types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Catalox seed apply upserts `row.data` only; merge scope into data for native items.
|
|
4
|
+
*/
|
|
5
|
+
export declare function mergeSeedItemScopeIntoUpsertData(data: Record<string, unknown>, scope: MemorixSeedScope | undefined): Record<string, unknown>;
|
|
6
|
+
export declare function prepareSeedManifestItemForApply(item: {
|
|
7
|
+
catalogId: string;
|
|
8
|
+
data: Record<string, unknown>;
|
|
9
|
+
scope?: MemorixSeedScope;
|
|
10
|
+
}): {
|
|
11
|
+
catalogId: string;
|
|
12
|
+
data: Record<string, unknown>;
|
|
13
|
+
};
|
|
14
|
+
export declare function prepareMemorixRetrievalSeedManifestForApply(manifest: MemorixRetrievalSeedManifest): MemorixRetrievalSeedManifest;
|
|
15
|
+
/** Shape expected by {@link applyCataloxSeedPreset} after scope merge into item data. */
|
|
16
|
+
export declare function prepareMemorixRetrievalSeedManifestForCataloxApply(manifest: Omit<MemorixRetrievalSeedManifest, "items"> & {
|
|
17
|
+
items: Array<{
|
|
18
|
+
catalogId: string;
|
|
19
|
+
data: Record<string, unknown>;
|
|
20
|
+
scope?: MemorixSeedScope;
|
|
21
|
+
}>;
|
|
22
|
+
}): Omit<MemorixRetrievalSeedManifest, "items"> & {
|
|
23
|
+
items: Array<{
|
|
24
|
+
catalogId: string;
|
|
25
|
+
data: Record<string, unknown>;
|
|
26
|
+
}>;
|
|
27
|
+
};
|
|
28
|
+
//# sourceMappingURL=merge-for-apply.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"merge-for-apply.d.ts","sourceRoot":"","sources":["../../src/seeds/merge-for-apply.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,4BAA4B,EAE5B,gBAAgB,EACjB,MAAM,iBAAiB,CAAC;AAEzB;;GAEG;AACH,wBAAgB,gCAAgC,CAC9C,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,KAAK,EAAE,gBAAgB,GAAG,SAAS,GAClC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAGzB;AAED,wBAAgB,+BAA+B,CAAC,IAAI,EAAE;IACpD,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,KAAK,CAAC,EAAE,gBAAgB,CAAC;CAC1B,GAAG;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,CAKvD;AAED,wBAAgB,2CAA2C,CACzD,QAAQ,EAAE,4BAA4B,GACrC,4BAA4B,CAQ9B;AAED,yFAAyF;AACzF,wBAAgB,kDAAkD,CAChE,QAAQ,EAAE,IAAI,CAAC,4BAA4B,EAAE,OAAO,CAAC,GAAG;IACtD,KAAK,EAAE,KAAK,CAAC;QACX,SAAS,EAAE,MAAM,CAAC;QAClB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC9B,KAAK,CAAC,EAAE,gBAAgB,CAAC;KAC1B,CAAC,CAAC;CACJ,GACA,IAAI,CAAC,4BAA4B,EAAE,OAAO,CAAC,GAAG;IAC/C,KAAK,EAAE,KAAK,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC,CAAC;CACpE,CAKA"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Catalox seed apply upserts `row.data` only; merge scope into data for native items.
|
|
3
|
+
*/
|
|
4
|
+
export function mergeSeedItemScopeIntoUpsertData(data, scope) {
|
|
5
|
+
if (scope == null)
|
|
6
|
+
return data;
|
|
7
|
+
return { ...data, scope };
|
|
8
|
+
}
|
|
9
|
+
export function prepareSeedManifestItemForApply(item) {
|
|
10
|
+
return {
|
|
11
|
+
catalogId: item.catalogId,
|
|
12
|
+
data: mergeSeedItemScopeIntoUpsertData(item.data, item.scope),
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
export function prepareMemorixRetrievalSeedManifestForApply(manifest) {
|
|
16
|
+
return {
|
|
17
|
+
...manifest,
|
|
18
|
+
items: manifest.items.map((item) => ({
|
|
19
|
+
...item,
|
|
20
|
+
data: mergeSeedItemScopeIntoUpsertData(item.data, item.scope),
|
|
21
|
+
})),
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
/** Shape expected by {@link applyCataloxSeedPreset} after scope merge into item data. */
|
|
25
|
+
export function prepareMemorixRetrievalSeedManifestForCataloxApply(manifest) {
|
|
26
|
+
return {
|
|
27
|
+
...manifest,
|
|
28
|
+
items: manifest.items.map(prepareSeedManifestItemForApply),
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=merge-for-apply.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"merge-for-apply.js","sourceRoot":"","sources":["../../src/seeds/merge-for-apply.ts"],"names":[],"mappings":"AAMA;;GAEG;AACH,MAAM,UAAU,gCAAgC,CAC9C,IAA6B,EAC7B,KAAmC;IAEnC,IAAI,KAAK,IAAI,IAAI;QAAE,OAAO,IAAI,CAAC;IAC/B,OAAO,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,+BAA+B,CAAC,IAI/C;IACC,OAAO;QACL,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,IAAI,EAAE,gCAAgC,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC;KAC9D,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,2CAA2C,CACzD,QAAsC;IAEtC,OAAO;QACL,GAAG,QAAQ;QACX,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACnC,GAAG,IAAI;YACP,IAAI,EAAE,gCAAgC,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC;SAC9D,CAAC,CAAC;KACJ,CAAC;AACJ,CAAC;AAED,yFAAyF;AACzF,MAAM,UAAU,kDAAkD,CAChE,QAMC;IAID,OAAO;QACL,GAAG,QAAQ;QACX,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,+BAA+B,CAAC;KAC3D,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { MemorixRetrievalSeedManifest } from "./seed-types.js";
|
|
2
|
+
/** Package root (memorix-retrieval/) when running from compiled `dist/seeds/`. */
|
|
3
|
+
export declare function resolveMemorixRetrievalPackageRoot(): string;
|
|
4
|
+
export declare function resolveMemorixRetrievalSeedInputsDir(packageRoot?: string): string;
|
|
5
|
+
export declare function resolveMemorixRetrievalSeedManifestPath(packageRoot?: string): string;
|
|
6
|
+
export declare function createSeedInputsReader(inputsDir: string): (relativePath: string) => Promise<Record<string, unknown>>;
|
|
7
|
+
export declare function loadMemorixRetrievalSeedScopeFromInputs(inputsDir?: string): Promise<import("./seed-types.js").MemorixSeedScope>;
|
|
8
|
+
export declare function buildMemorixRetrievalSeedManifestFromInputs(inputsDir?: string): Promise<MemorixRetrievalSeedManifest>;
|
|
9
|
+
export declare function writeMemorixRetrievalSeedManifest(manifest: MemorixRetrievalSeedManifest, manifestPath?: string): Promise<void>;
|
|
10
|
+
//# sourceMappingURL=paths.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../src/seeds/paths.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,iBAAiB,CAAC;AAIpE,kFAAkF;AAClF,wBAAgB,kCAAkC,IAAI,MAAM,CAE3D;AAED,wBAAgB,oCAAoC,CAClD,WAAW,SAAuC,GACjD,MAAM,CAER;AAED,wBAAgB,uCAAuC,CACrD,WAAW,SAAuC,GACjD,MAAM,CAMR;AAED,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM,IACxC,cAAc,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAItE;AAED,wBAAsB,uCAAuC,CAC3D,SAAS,SAAyC,GACjD,OAAO,CAAC,OAAO,iBAAiB,EAAE,gBAAgB,CAAC,CAUrD;AAED,wBAAsB,2CAA2C,CAC/D,SAAS,SAAyC,GACjD,OAAO,CAAC,4BAA4B,CAAC,CAIvC;AAED,wBAAsB,iCAAiC,CACrD,QAAQ,EAAE,4BAA4B,EACtC,YAAY,SAA4C,GACvD,OAAO,CAAC,IAAI,CAAC,CAEf"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { readFile, writeFile } from "node:fs/promises";
|
|
2
|
+
import { dirname, join } from "node:path";
|
|
3
|
+
import { fileURLToPath } from "node:url";
|
|
4
|
+
import { buildMemorixRetrievalSeedManifest } from "./build-manifest.js";
|
|
5
|
+
const moduleDir = dirname(fileURLToPath(import.meta.url));
|
|
6
|
+
/** Package root (memorix-retrieval/) when running from compiled `dist/seeds/`. */
|
|
7
|
+
export function resolveMemorixRetrievalPackageRoot() {
|
|
8
|
+
return join(moduleDir, "..", "..");
|
|
9
|
+
}
|
|
10
|
+
export function resolveMemorixRetrievalSeedInputsDir(packageRoot = resolveMemorixRetrievalPackageRoot()) {
|
|
11
|
+
return join(packageRoot, "catalox-seeds", "inputs");
|
|
12
|
+
}
|
|
13
|
+
export function resolveMemorixRetrievalSeedManifestPath(packageRoot = resolveMemorixRetrievalPackageRoot()) {
|
|
14
|
+
return join(packageRoot, "catalox-seeds", "memorix-retrieval-descriptors.manifest.json");
|
|
15
|
+
}
|
|
16
|
+
export function createSeedInputsReader(inputsDir) {
|
|
17
|
+
return async (relativePath) => {
|
|
18
|
+
const raw = await readFile(join(inputsDir, relativePath), "utf8");
|
|
19
|
+
return JSON.parse(raw);
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
export async function loadMemorixRetrievalSeedScopeFromInputs(inputsDir = resolveMemorixRetrievalSeedInputsDir()) {
|
|
23
|
+
try {
|
|
24
|
+
const raw = await readFile(join(inputsDir, "scope.json"), "utf8");
|
|
25
|
+
return JSON.parse(raw);
|
|
26
|
+
}
|
|
27
|
+
catch {
|
|
28
|
+
const { MEMORIX_RETRIEVAL_DEFAULT_SCOPE } = await import("./default-seed-spec.js");
|
|
29
|
+
return MEMORIX_RETRIEVAL_DEFAULT_SCOPE;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
export async function buildMemorixRetrievalSeedManifestFromInputs(inputsDir = resolveMemorixRetrievalSeedInputsDir()) {
|
|
33
|
+
const readJson = createSeedInputsReader(inputsDir);
|
|
34
|
+
const scope = await loadMemorixRetrievalSeedScopeFromInputs(inputsDir);
|
|
35
|
+
return buildMemorixRetrievalSeedManifest({ readJson, scope });
|
|
36
|
+
}
|
|
37
|
+
export async function writeMemorixRetrievalSeedManifest(manifest, manifestPath = resolveMemorixRetrievalSeedManifestPath()) {
|
|
38
|
+
await writeFile(manifestPath, `${JSON.stringify(manifest, null, 2)}\n`, "utf8");
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=paths.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"paths.js","sourceRoot":"","sources":["../../src/seeds/paths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,iCAAiC,EAAE,MAAM,qBAAqB,CAAC;AAGxE,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAE1D,kFAAkF;AAClF,MAAM,UAAU,kCAAkC;IAChD,OAAO,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,oCAAoC,CAClD,WAAW,GAAG,kCAAkC,EAAE;IAElD,OAAO,IAAI,CAAC,WAAW,EAAE,eAAe,EAAE,QAAQ,CAAC,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,uCAAuC,CACrD,WAAW,GAAG,kCAAkC,EAAE;IAElD,OAAO,IAAI,CACT,WAAW,EACX,eAAe,EACf,6CAA6C,CAC9C,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,SAAiB;IACtD,OAAO,KAAK,EAAE,YAAoB,EAAoC,EAAE;QACtE,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,EAAE,MAAM,CAAC,CAAC;QAClE,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAA4B,CAAC;IACpD,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uCAAuC,CAC3D,SAAS,GAAG,oCAAoC,EAAE;IAElD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,EAAE,MAAM,CAAC,CAAC;QAClE,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,EAAE,+BAA+B,EAAE,GAAG,MAAM,MAAM,CACtD,wBAAwB,CACzB,CAAC;QACF,OAAO,+BAA+B,CAAC;IACzC,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,2CAA2C,CAC/D,SAAS,GAAG,oCAAoC,EAAE;IAElD,MAAM,QAAQ,GAAG,sBAAsB,CAAC,SAAS,CAAC,CAAC;IACnD,MAAM,KAAK,GAAG,MAAM,uCAAuC,CAAC,SAAS,CAAC,CAAC;IACvE,OAAO,iCAAiC,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;AAChE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iCAAiC,CACrD,QAAsC,EACtC,YAAY,GAAG,uCAAuC,EAAE;IAExD,MAAM,SAAS,CAAC,YAAY,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAClF,CAAC"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
export type MemorixSeedScope = {
|
|
2
|
+
domains: string[];
|
|
3
|
+
agents: string[];
|
|
4
|
+
};
|
|
5
|
+
export type MemorixSeedCatalogSpec = {
|
|
6
|
+
catalogId: string;
|
|
7
|
+
name: string;
|
|
8
|
+
catalogType: "memorix";
|
|
9
|
+
sourceMode: "native";
|
|
10
|
+
native: {
|
|
11
|
+
itemIdField: string;
|
|
12
|
+
titleField: string;
|
|
13
|
+
};
|
|
14
|
+
descriptor: {
|
|
15
|
+
itemIdField: string;
|
|
16
|
+
titleField: string;
|
|
17
|
+
queryableFields: Array<{
|
|
18
|
+
key: string;
|
|
19
|
+
label: string;
|
|
20
|
+
}>;
|
|
21
|
+
};
|
|
22
|
+
inputFiles: string[];
|
|
23
|
+
};
|
|
24
|
+
export type MemorixRetrievalSeedManifestItem = {
|
|
25
|
+
catalogId: string;
|
|
26
|
+
scope: MemorixSeedScope;
|
|
27
|
+
data: Record<string, unknown>;
|
|
28
|
+
};
|
|
29
|
+
export type MemorixRetrievalSeedManifest = {
|
|
30
|
+
presetVersion: 1;
|
|
31
|
+
id: string;
|
|
32
|
+
name: string;
|
|
33
|
+
description: string;
|
|
34
|
+
catalogs: Array<Omit<MemorixSeedCatalogSpec, "descriptor" | "inputFiles">>;
|
|
35
|
+
descriptors: unknown[];
|
|
36
|
+
bindings: Array<{
|
|
37
|
+
appId: string;
|
|
38
|
+
catalogId: string;
|
|
39
|
+
access: {
|
|
40
|
+
canRead: boolean;
|
|
41
|
+
canWrite: boolean;
|
|
42
|
+
};
|
|
43
|
+
}>;
|
|
44
|
+
items: MemorixRetrievalSeedManifestItem[];
|
|
45
|
+
};
|
|
46
|
+
export type MemorixRetrievalSeedCatalogPresence = {
|
|
47
|
+
catalogId: string;
|
|
48
|
+
expectedItemIds: string[];
|
|
49
|
+
presentItemIds: string[];
|
|
50
|
+
missingItemIds: string[];
|
|
51
|
+
};
|
|
52
|
+
export type MemorixRetrievalSeedCheckResult = {
|
|
53
|
+
needed: boolean;
|
|
54
|
+
reason?: string;
|
|
55
|
+
catalogs: MemorixRetrievalSeedCatalogPresence[];
|
|
56
|
+
};
|
|
57
|
+
//# sourceMappingURL=seed-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"seed-types.d.ts","sourceRoot":"","sources":["../../src/seeds/seed-types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GAAG;IAC7B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,SAAS,CAAC;IACvB,UAAU,EAAE,QAAQ,CAAC;IACrB,MAAM,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;IACpD,UAAU,EAAE;QACV,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,EAAE,MAAM,CAAC;QACnB,eAAe,EAAE,KAAK,CAAC;YAAE,GAAG,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KACxD,CAAC;IACF,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,gCAAgC,GAAG;IAC7C,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,gBAAgB,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG;IACzC,aAAa,EAAE,CAAC,CAAC;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,sBAAsB,EAAE,YAAY,GAAG,YAAY,CAAC,CAAC,CAAC;IAC3E,WAAW,EAAE,OAAO,EAAE,CAAC;IACvB,QAAQ,EAAE,KAAK,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE;YAAE,OAAO,EAAE,OAAO,CAAC;YAAC,QAAQ,EAAE,OAAO,CAAA;SAAE,CAAC;KACjD,CAAC,CAAC;IACH,KAAK,EAAE,gCAAgC,EAAE,CAAC;CAC3C,CAAC;AAEF,MAAM,MAAM,mCAAmC,GAAG;IAChD,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,cAAc,EAAE,MAAM,EAAE,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,+BAA+B,GAAG;IAC5C,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,mCAAmC,EAAE,CAAC;CACjD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"seed-types.js","sourceRoot":"","sources":["../../src/seeds/seed-types.ts"],"names":[],"mappings":""}
|
|
@@ -7,6 +7,21 @@ describe("descriptor validation", () => {
|
|
|
7
7
|
const d = validateMemorixEntityDescriptor(assetsEntity);
|
|
8
8
|
expect(d.id).toBe("assets");
|
|
9
9
|
});
|
|
10
|
+
it("requires default list and item descriptor ids", () => {
|
|
11
|
+
expect(() => validateMemorixEntityDescriptor({
|
|
12
|
+
...assetsEntity,
|
|
13
|
+
defaultListDescriptorId: "",
|
|
14
|
+
})).toThrow(MemorixRetrievalError);
|
|
15
|
+
});
|
|
16
|
+
it("requires exactly one isCanonical content type", () => {
|
|
17
|
+
expect(() => validateMemorixEntityDescriptor({
|
|
18
|
+
...assetsEntity,
|
|
19
|
+
contentTypes: {
|
|
20
|
+
...assetsEntity.contentTypes,
|
|
21
|
+
extra: { postfix: "extra", isCanonical: true },
|
|
22
|
+
},
|
|
23
|
+
})).toThrow(MemorixRetrievalError);
|
|
24
|
+
});
|
|
10
25
|
it("rejects non-human-readable list fields", () => {
|
|
11
26
|
const badList = {
|
|
12
27
|
...assetsMainList,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"descriptor-validation.test.js","sourceRoot":"","sources":["../../src/tests/descriptor-validation.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EACL,6BAA6B,EAC7B,+BAA+B,GAChC,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE7D,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACrC,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;QACzC,MAAM,CAAC,GAAG,+BAA+B,CACvC,YAAkD,CACnD,CAAC;QACF,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;QAChD,MAAM,OAAO,GAAG;YACd,GAAG,cAAc;YACjB,MAAM,EAAE,CAAC,WAAW,EAAE,UAAU,CAAC;SAClC,CAAC;QACF,MAAM,MAAM,GAAG;YACb,GAAG,YAAY;YACf,UAAU,EAAE;gBACV,GAAG,YAAY,CAAC,UAAU;gBAC1B,QAAQ,EAAE,EAAE,GAAG,YAAY,CAAC,UAAU,CAAC,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE;aACxE;SACF,CAAC;QACF,MAAM,CAAC,GAAG,EAAE,CACV,6BAA6B,CAAC,OAAO,EAAE,MAAM,CAAC,CAC/C,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"descriptor-validation.test.js","sourceRoot":"","sources":["../../src/tests/descriptor-validation.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EACL,6BAA6B,EAC7B,+BAA+B,GAChC,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE7D,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACrC,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;QACzC,MAAM,CAAC,GAAG,+BAA+B,CACvC,YAAkD,CACnD,CAAC;QACF,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;QACvD,MAAM,CAAC,GAAG,EAAE,CACV,+BAA+B,CAAC;YAC9B,GAAI,YAAmD;YACvD,uBAAuB,EAAE,EAAE;SAC5B,CAAC,CACH,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;QACvD,MAAM,CAAC,GAAG,EAAE,CACV,+BAA+B,CAAC;YAC9B,GAAI,YAAmD;YACvD,YAAY,EAAE;gBACZ,GAAI,YAAY,CAAC,YAAwC;gBACzD,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE;aAC/C;SACF,CAAC,CACH,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;QAChD,MAAM,OAAO,GAAG;YACd,GAAG,cAAc;YACjB,MAAM,EAAE,CAAC,WAAW,EAAE,UAAU,CAAC;SAClC,CAAC;QACF,MAAM,MAAM,GAAG;YACb,GAAG,YAAY;YACf,UAAU,EAAE;gBACV,GAAG,YAAY,CAAC,UAAU;gBAC1B,QAAQ,EAAE,EAAE,GAAG,YAAY,CAAC,UAAU,CAAC,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE;aACxE;SACF,CAAC;QACF,MAAM,CAAC,GAAG,EAAE,CACV,6BAA6B,CAAC,OAAO,EAAE,MAAM,CAAC,CAC/C,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fixtures.d.ts","sourceRoot":"","sources":["../../src/tests/fixtures.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,uBAAuB,EACvB,qBAAqB,EACrB,qBAAqB,EACtB,MAAM,oCAAoC,CAAC;AAE5C,eAAO,MAAM,YAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"fixtures.d.ts","sourceRoot":"","sources":["../../src/tests/fixtures.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,uBAAuB,EACvB,qBAAqB,EACrB,qBAAqB,EACtB,MAAM,oCAAoC,CAAC;AAE5C,eAAO,MAAM,YAAY,EAAE,uBAyF1B,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,qBAmB5B,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,qBA2B7B,CAAC"}
|
package/dist/tests/fixtures.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fixtures.js","sourceRoot":"","sources":["../../src/tests/fixtures.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fixtures.js","sourceRoot":"","sources":["../../src/tests/fixtures.ts"],"names":[],"mappings":"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"}
|
|
@@ -26,12 +26,15 @@ describe("relations", () => {
|
|
|
26
26
|
...entityWithRelation,
|
|
27
27
|
id: "users",
|
|
28
28
|
entityName: "users",
|
|
29
|
+
defaultListDescriptorId: "users-main-list",
|
|
30
|
+
defaultItemDescriptorId: "user-detail-item",
|
|
29
31
|
collectionPrefix: "users",
|
|
30
32
|
contentTypes: {
|
|
31
33
|
snapshots: {
|
|
32
34
|
postfix: "snapshots",
|
|
33
35
|
collection: "users-snapshots",
|
|
34
36
|
dataRoot: "data",
|
|
37
|
+
isCanonical: true,
|
|
35
38
|
},
|
|
36
39
|
},
|
|
37
40
|
properties: {},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relations.test.js","sourceRoot":"","sources":["../../src/tests/relations.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAClD,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,kCAAkC,EAAE,MAAM,+BAA+B,CAAC;AACnF,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,MAAM,kBAAkB,GAAG;IACzB,GAAG,YAAY;IACf,SAAS,EAAE;QACT,KAAK,EAAE;YACL,YAAY,EAAE,OAAO;YACrB,IAAI,EAAE,WAAoB;YAC1B,MAAM,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,cAAc,EAAE;YAC1D,MAAM,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE;YACtD,YAAY,EAAE,CAAC,kBAAkB,CAAC;SACnC;KACF;CACF,CAAC;AAEF,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;IACzB,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;QAC1D,MAAM,cAAc,GAAG,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,SAAiB,EAAE,MAAc,EAAE,EAAE;YAC7E,IAAI,SAAS,KAAK,kCAAkC,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;gBAC3E,OAAO;oBACL,OAAO,EAAE,OAAgB;oBACzB,IAAI,EAAE;wBACJ,IAAI,EAAE;4BACJ,GAAG,kBAAkB;4BACrB,EAAE,EAAE,OAAO;4BACX,UAAU,EAAE,OAAO;4BACnB,gBAAgB,EAAE,OAAO;4BACzB,YAAY,EAAE;gCACZ,SAAS,EAAE;oCACT,OAAO,EAAE,WAAW;oCACpB,UAAU,EAAE,iBAAiB;oCAC7B,QAAQ,EAAE,MAAM;
|
|
1
|
+
{"version":3,"file":"relations.test.js","sourceRoot":"","sources":["../../src/tests/relations.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-app-id.test.d.ts","sourceRoot":"","sources":["../../src/tests/resolve-app-id.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { describe, expect, it } from "vitest";
|
|
2
|
+
import { resolveMemorixAppId } from "../descriptors/resolve-app-id.js";
|
|
3
|
+
import { MEMORIX_APP_ID } from "../descriptors/catalog-ids.js";
|
|
4
|
+
describe("resolveMemorixAppId", () => {
|
|
5
|
+
it("prefers explicit option", () => {
|
|
6
|
+
expect(resolveMemorixAppId({ appId: "custom" }, {})).toBe("custom");
|
|
7
|
+
});
|
|
8
|
+
it("reads CATALOX_APP_ID then MEMORIX_APP_ID", () => {
|
|
9
|
+
expect(resolveMemorixAppId(undefined, {
|
|
10
|
+
CATALOX_APP_ID: "from-catalox",
|
|
11
|
+
MEMORIX_APP_ID: "from-memorix",
|
|
12
|
+
})).toBe("from-catalox");
|
|
13
|
+
expect(resolveMemorixAppId(undefined, { MEMORIX_APP_ID: "from-memorix" })).toBe("from-memorix");
|
|
14
|
+
});
|
|
15
|
+
it("defaults to memorix", () => {
|
|
16
|
+
expect(resolveMemorixAppId(undefined, {})).toBe(MEMORIX_APP_ID);
|
|
17
|
+
});
|
|
18
|
+
});
|
|
19
|
+
//# sourceMappingURL=resolve-app-id.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-app-id.test.js","sourceRoot":"","sources":["../../src/tests/resolve-app-id.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAE/D,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;IACnC,EAAE,CAAC,yBAAyB,EAAE,GAAG,EAAE;QACjC,MAAM,CAAC,mBAAmB,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACtE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;QAClD,MAAM,CACJ,mBAAmB,CAAC,SAAS,EAAE;YAC7B,cAAc,EAAE,cAAc;YAC9B,cAAc,EAAE,cAAc;SAC/B,CAAC,CACH,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACvB,MAAM,CACJ,mBAAmB,CAAC,SAAS,EAAE,EAAE,cAAc,EAAE,cAAc,EAAE,CAAC,CACnE,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACzB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qBAAqB,EAAE,GAAG,EAAE;QAC7B,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-filters.test.d.ts","sourceRoot":"","sources":["../../src/tests/resolve-filters.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { describe, expect, it } from "vitest";
|
|
2
|
+
import { mergeListDescriptorFilters, resolveMemorixFilters, } from "../retrieval/resolve-filters.js";
|
|
3
|
+
import { assetsEntity } from "./fixtures.js";
|
|
4
|
+
describe("resolveMemorixFilters", () => {
|
|
5
|
+
it("applies list descriptor default filters when request has none", () => {
|
|
6
|
+
const list = {
|
|
7
|
+
id: "filtered-assets-list",
|
|
8
|
+
entity: "assets",
|
|
9
|
+
leadingContentType: "snapshots",
|
|
10
|
+
pagination: { enabled: true, defaultLimit: 50, maxLimit: 200 },
|
|
11
|
+
filters: [
|
|
12
|
+
{ property: "ipAddress", operator: "eq", value: "10.0.0.1" },
|
|
13
|
+
],
|
|
14
|
+
fields: ["ipAddress"],
|
|
15
|
+
};
|
|
16
|
+
const query = resolveMemorixFilters(assetsEntity, list, undefined, "snapshots");
|
|
17
|
+
expect(query).toEqual({ "data.ip_address": "10.0.0.1" });
|
|
18
|
+
});
|
|
19
|
+
it("merges request filters over list defaults on the same property", () => {
|
|
20
|
+
const list = {
|
|
21
|
+
id: "critical-vulnerabilities-list",
|
|
22
|
+
entity: "assets",
|
|
23
|
+
leadingContentType: "snapshots",
|
|
24
|
+
pagination: { enabled: true, defaultLimit: 50, maxLimit: 200 },
|
|
25
|
+
filters: [
|
|
26
|
+
{ property: "ipAddress", operator: "eq", value: "10.0.0.1" },
|
|
27
|
+
],
|
|
28
|
+
fields: ["ipAddress"],
|
|
29
|
+
};
|
|
30
|
+
const query = resolveMemorixFilters(assetsEntity, list, [{ property: "ipAddress", operator: "eq", value: "10.0.0.2" }], "snapshots");
|
|
31
|
+
expect(query).toEqual({ "data.ip_address": "10.0.0.2" });
|
|
32
|
+
});
|
|
33
|
+
it("mergeListDescriptorFilters keeps allowlist-only entries out of defaults", () => {
|
|
34
|
+
const merged = mergeListDescriptorFilters({
|
|
35
|
+
id: "x",
|
|
36
|
+
entity: "assets",
|
|
37
|
+
leadingContentType: "snapshots",
|
|
38
|
+
pagination: { enabled: true, defaultLimit: 50, maxLimit: 200 },
|
|
39
|
+
filters: [{ property: "ipAddress" }],
|
|
40
|
+
fields: ["ipAddress"],
|
|
41
|
+
}, [{ property: "ipAddress", operator: "eq", value: "1.2.3.4" }]);
|
|
42
|
+
expect(merged).toEqual([
|
|
43
|
+
{ property: "ipAddress", operator: "eq", value: "1.2.3.4" },
|
|
44
|
+
]);
|
|
45
|
+
});
|
|
46
|
+
});
|
|
47
|
+
//# sourceMappingURL=resolve-filters.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-filters.test.js","sourceRoot":"","sources":["../../src/tests/resolve-filters.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EACL,0BAA0B,EAC1B,qBAAqB,GACtB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACrC,EAAE,CAAC,+DAA+D,EAAE,GAAG,EAAE;QACvE,MAAM,IAAI,GAAG;YACX,EAAE,EAAE,sBAAsB;YAC1B,MAAM,EAAE,QAAQ;YAChB,kBAAkB,EAAE,WAAW;YAC/B,UAAU,EAAE,EAAE,OAAO,EAAE,IAAa,EAAE,YAAY,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE;YACvE,OAAO,EAAE;gBACP,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAa,EAAE,KAAK,EAAE,UAAU,EAAE;aACtE;YACD,MAAM,EAAE,CAAC,WAAW,CAAC;SACtB,CAAC;QAEF,MAAM,KAAK,GAAG,qBAAqB,CACjC,YAAY,EACZ,IAAI,EACJ,SAAS,EACT,WAAW,CACZ,CAAC;QAEF,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,EAAE,iBAAiB,EAAE,UAAU,EAAE,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gEAAgE,EAAE,GAAG,EAAE;QACxE,MAAM,IAAI,GAAG;YACX,EAAE,EAAE,+BAA+B;YACnC,MAAM,EAAE,QAAQ;YAChB,kBAAkB,EAAE,WAAW;YAC/B,UAAU,EAAE,EAAE,OAAO,EAAE,IAAa,EAAE,YAAY,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE;YACvE,OAAO,EAAE;gBACP,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAa,EAAE,KAAK,EAAE,UAAU,EAAE;aACtE;YACD,MAAM,EAAE,CAAC,WAAW,CAAC;SACtB,CAAC;QAEF,MAAM,KAAK,GAAG,qBAAqB,CACjC,YAAY,EACZ,IAAI,EACJ,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,EAC9D,WAAW,CACZ,CAAC;QAEF,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,EAAE,iBAAiB,EAAE,UAAU,EAAE,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yEAAyE,EAAE,GAAG,EAAE;QACjF,MAAM,MAAM,GAAG,0BAA0B,CACvC;YACE,EAAE,EAAE,GAAG;YACP,MAAM,EAAE,QAAQ;YAChB,kBAAkB,EAAE,WAAW;YAC/B,UAAU,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE;YAC9D,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC;YACpC,MAAM,EAAE,CAAC,WAAW,CAAC;SACtB,EACD,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAC9D,CAAC;QAEF,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;YACrB,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE;SAC5D,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"seed-check.test.d.ts","sourceRoot":"","sources":["../../src/tests/seed-check.test.ts"],"names":[],"mappings":""}
|