@memberjunction/core-entities 5.48.0 → 5.50.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/dist/custom/MJListEntityExtended.d.ts +27 -0
- package/dist/custom/MJListEntityExtended.d.ts.map +1 -0
- package/dist/custom/MJListEntityExtended.js +52 -0
- package/dist/custom/MJListEntityExtended.js.map +1 -0
- package/dist/custom/Permissions/BaseShareEntityExtended.d.ts.map +1 -1
- package/dist/custom/Permissions/BaseShareEntityExtended.js +6 -1
- package/dist/custom/Permissions/BaseShareEntityExtended.js.map +1 -1
- package/dist/custom/Permissions/MJArtifactPermissionEntityExtended.d.ts.map +1 -1
- package/dist/custom/Permissions/MJArtifactPermissionEntityExtended.js +6 -4
- package/dist/custom/Permissions/MJArtifactPermissionEntityExtended.js.map +1 -1
- package/dist/custom/Permissions/MJCollectionPermissionEntityExtended.d.ts.map +1 -1
- package/dist/custom/Permissions/MJCollectionPermissionEntityExtended.js +4 -2
- package/dist/custom/Permissions/MJCollectionPermissionEntityExtended.js.map +1 -1
- package/dist/engines/PermissionEngine.d.ts +14 -0
- package/dist/engines/PermissionEngine.d.ts.map +1 -1
- package/dist/engines/PermissionEngine.js +30 -34
- package/dist/engines/PermissionEngine.js.map +1 -1
- package/dist/engines/UserInfoEngine.d.ts +13 -0
- package/dist/engines/UserInfoEngine.d.ts.map +1 -1
- package/dist/engines/UserInfoEngine.js +23 -5
- package/dist/engines/UserInfoEngine.js.map +1 -1
- package/dist/engines/artifacts.d.ts +87 -12
- package/dist/engines/artifacts.d.ts.map +1 -1
- package/dist/engines/artifacts.js +140 -35
- package/dist/engines/artifacts.js.map +1 -1
- package/dist/engines/conversations.d.ts +128 -0
- package/dist/engines/conversations.d.ts.map +1 -1
- package/dist/engines/conversations.js +152 -2
- package/dist/engines/conversations.js.map +1 -1
- package/dist/engines/knowledgeHubMetadata.d.ts +26 -4
- package/dist/engines/knowledgeHubMetadata.d.ts.map +1 -1
- package/dist/engines/knowledgeHubMetadata.js +70 -16
- package/dist/engines/knowledgeHubMetadata.js.map +1 -1
- package/dist/generated/entity_subclasses.d.ts +1612 -109
- package/dist/generated/entity_subclasses.d.ts.map +1 -1
- package/dist/generated/entity_subclasses.js +2021 -174
- package/dist/generated/entity_subclasses.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/package.json +6 -6
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { BaseEngine } from "@memberjunction/core";
|
|
2
|
-
import {
|
|
2
|
+
import { NormalizeUUID } from "@memberjunction/global";
|
|
3
3
|
/**
|
|
4
4
|
* Caches Knowledge Hub metadata: entity documents, vector indexes, vector databases,
|
|
5
5
|
* content sources, content types, content source types, and content file types.
|
|
@@ -7,15 +7,6 @@ import { UUIDsEqual } from "@memberjunction/global";
|
|
|
7
7
|
* caching and entity-event auto-refresh.
|
|
8
8
|
*/
|
|
9
9
|
export class KnowledgeHubMetadataEngine extends BaseEngine {
|
|
10
|
-
constructor() {
|
|
11
|
-
super(...arguments);
|
|
12
|
-
this._entityDocuments = [];
|
|
13
|
-
this._vectorIndexes = [];
|
|
14
|
-
this._contentSources = [];
|
|
15
|
-
this._contentTypes = [];
|
|
16
|
-
this._contentSourceTypes = [];
|
|
17
|
-
this._contentFileTypes = [];
|
|
18
|
-
}
|
|
19
10
|
/**
|
|
20
11
|
* Returns the global instance of the class. This is a singleton class, so there
|
|
21
12
|
* is only one instance of it in the application. Do not directly create new instances
|
|
@@ -24,6 +15,25 @@ export class KnowledgeHubMetadataEngine extends BaseEngine {
|
|
|
24
15
|
static get Instance() {
|
|
25
16
|
return super.getInstance();
|
|
26
17
|
}
|
|
18
|
+
constructor() {
|
|
19
|
+
super();
|
|
20
|
+
this._entityDocuments = [];
|
|
21
|
+
this._vectorIndexes = [];
|
|
22
|
+
this._contentSources = [];
|
|
23
|
+
this._contentTypes = [];
|
|
24
|
+
this._contentSourceTypes = [];
|
|
25
|
+
this._contentFileTypes = [];
|
|
26
|
+
/**
|
|
27
|
+
* Lazily-built `NormalizeUUID(ID) → row` indexes, one per cached array (keyed by array name),
|
|
28
|
+
* powering the O(1) `Get…ByID` helpers. Cleared wholesale on any {@link DataChange$} emission
|
|
29
|
+
* (see the constructor) so entries never go stale as the underlying caches mutate.
|
|
30
|
+
*/
|
|
31
|
+
this._idIndexes = new Map();
|
|
32
|
+
// Any data change (add/update/delete or full refresh, on any cached array) invalidates the
|
|
33
|
+
// by-id indexes wholesale — the cheapest correct strategy, since NotifyDataChange fires on
|
|
34
|
+
// every BaseEngine mutation path. Lazily rebuilt on the next lookup.
|
|
35
|
+
this.DataChange$.subscribe(() => this._idIndexes.clear());
|
|
36
|
+
}
|
|
27
37
|
async Config(forceRefresh, contextUser, provider) {
|
|
28
38
|
const c = [
|
|
29
39
|
{
|
|
@@ -99,11 +109,55 @@ export class KnowledgeHubMetadataEngine extends BaseEngine {
|
|
|
99
109
|
GetActiveEntityDocuments() {
|
|
100
110
|
return this._entityDocuments.filter(d => d.Status === 'Active');
|
|
101
111
|
}
|
|
102
|
-
/**
|
|
103
|
-
|
|
112
|
+
/**
|
|
113
|
+
* Returns a cached `NormalizeUUID(ID) → row` index for one of the engine's cached arrays,
|
|
114
|
+
* building it on first use. The whole index cache is cleared on any {@link DataChange$}
|
|
115
|
+
* emission, so a returned index is always consistent with the current cache contents.
|
|
116
|
+
* O(N) to build once, then O(1) per lookup.
|
|
117
|
+
*/
|
|
118
|
+
getIDIndex(key, rows, idOf) {
|
|
119
|
+
// Downcast is safe by construction: each `key` is only ever paired with one row type.
|
|
120
|
+
let index = this._idIndexes.get(key);
|
|
121
|
+
if (!index) {
|
|
122
|
+
index = new Map();
|
|
123
|
+
for (const row of rows) {
|
|
124
|
+
const id = idOf(row);
|
|
125
|
+
if (id)
|
|
126
|
+
index.set(NormalizeUUID(id), row);
|
|
127
|
+
}
|
|
128
|
+
this._idIndexes.set(key, index);
|
|
129
|
+
}
|
|
130
|
+
return index;
|
|
131
|
+
}
|
|
132
|
+
/** Find an entity document by ID (case-insensitive UUID comparison). O(1) after first hit. */
|
|
133
|
+
GetEntityDocumentByID(id) {
|
|
134
|
+
if (!id)
|
|
135
|
+
return undefined;
|
|
136
|
+
return this.getIDIndex('entityDocuments', this._entityDocuments, d => d.ID).get(NormalizeUUID(id));
|
|
137
|
+
}
|
|
138
|
+
/** Find a content source by ID (case-insensitive UUID comparison). O(1) after first hit. */
|
|
139
|
+
GetContentSourceByID(id) {
|
|
140
|
+
if (!id)
|
|
141
|
+
return undefined;
|
|
142
|
+
return this.getIDIndex('contentSources', this._contentSources, s => s.ID).get(NormalizeUUID(id));
|
|
143
|
+
}
|
|
144
|
+
/** Find a content type by ID (case-insensitive UUID comparison). O(1) after first hit. */
|
|
145
|
+
GetContentTypeByID(id) {
|
|
146
|
+
if (!id)
|
|
147
|
+
return undefined;
|
|
148
|
+
return this.getIDIndex('contentTypes', this._contentTypes, t => t.ID).get(NormalizeUUID(id));
|
|
149
|
+
}
|
|
150
|
+
/** Find a content source type by ID (case-insensitive UUID comparison). O(1) after first hit. */
|
|
151
|
+
GetContentSourceTypeByID(id) {
|
|
152
|
+
if (!id)
|
|
153
|
+
return undefined;
|
|
154
|
+
return this.getIDIndex('contentSourceTypes', this._contentSourceTypes, t => t.ID).get(NormalizeUUID(id));
|
|
155
|
+
}
|
|
156
|
+
/** Find a content file type by ID (case-insensitive UUID comparison). O(1) after first hit. */
|
|
157
|
+
GetContentFileTypeByID(id) {
|
|
104
158
|
if (!id)
|
|
105
159
|
return undefined;
|
|
106
|
-
return this.
|
|
160
|
+
return this.getIDIndex('contentFileTypes', this._contentFileTypes, t => t.ID).get(NormalizeUUID(id));
|
|
107
161
|
}
|
|
108
162
|
/** Find all entity documents for a given entity name (case-insensitive) */
|
|
109
163
|
GetEntityDocumentsForEntity(entityName) {
|
|
@@ -112,11 +166,11 @@ export class KnowledgeHubMetadataEngine extends BaseEngine {
|
|
|
112
166
|
const lower = entityName.trim().toLowerCase();
|
|
113
167
|
return this._entityDocuments.filter(d => d.Entity?.trim().toLowerCase() === lower);
|
|
114
168
|
}
|
|
115
|
-
/** Find a vector index by ID (case-insensitive UUID comparison) */
|
|
116
|
-
|
|
169
|
+
/** Find a vector index by ID (case-insensitive UUID comparison). O(1) after first hit. */
|
|
170
|
+
GetVectorIndexByID(id) {
|
|
117
171
|
if (!id)
|
|
118
172
|
return undefined;
|
|
119
|
-
return this._vectorIndexes
|
|
173
|
+
return this.getIDIndex('vectorIndexes', this._vectorIndexes, v => v.ID).get(NormalizeUUID(id));
|
|
120
174
|
}
|
|
121
175
|
/**
|
|
122
176
|
* Returns distinct entity names that have active entity documents (for dropdowns).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"knowledgeHubMetadata.js","sourceRoot":"","sources":["../../src/engines/knowledgeHubMetadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,
|
|
1
|
+
{"version":3,"file":"knowledgeHubMetadata.js","sourceRoot":"","sources":["../../src/engines/knowledgeHubMetadata.ts"],"names":[],"mappings":"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"}
|