@memberjunction/core-entities-server 5.26.0 → 5.27.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/index.d.ts +0 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -1
- package/dist/index.js.map +1 -1
- package/package.json +21 -21
- package/dist/custom/MJReportEntityServer.server.d.ts +0 -10
- package/dist/custom/MJReportEntityServer.server.d.ts.map +0 -1
- package/dist/custom/MJReportEntityServer.server.js +0 -125
- package/dist/custom/MJReportEntityServer.server.js.map +0 -1
package/dist/index.d.ts
CHANGED
|
@@ -3,7 +3,6 @@ export * from './custom/MJAIPromptRunEntityServer.server.js';
|
|
|
3
3
|
export * from './custom/MJConversationDetailEntityServer.server.js';
|
|
4
4
|
export * from './custom/MJDuplicateRunEntityServer.server.js';
|
|
5
5
|
export * from './custom/MJQueryEntityServer.server.js';
|
|
6
|
-
export * from './custom/MJReportEntityServer.server.js';
|
|
7
6
|
export * from './custom/MJTemplateContentEntityServer.server.js';
|
|
8
7
|
export * from './custom/MJUserViewEntityServer.server.js';
|
|
9
8
|
export * from './custom/MJActionEntityServer.server.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,wCAAwC,CAAC;AACvD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,kDAAkD,CAAC;AACjE,cAAc,4CAA4C,CAAC;AAC3D,cAAc,qCAAqC,CAAC;AACpD,cAAc
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,wCAAwC,CAAC;AACvD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,kDAAkD,CAAC;AACjE,cAAc,4CAA4C,CAAC;AAC3D,cAAc,qCAAqC,CAAC;AACpD,cAAc,+CAA+C,CAAC;AAC9D,cAAc,wCAAwC,CAAC;AACvD,cAAc,sCAAsC,CAAC;AACrD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,yCAAyC,CAAC;AACxD,cAAc,+CAA+C,CAAC;AAC9D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,8CAA8C,CAAC;AAC7D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,mCAAmC,CAAC;AAClD,cAAc,eAAe,CAAC;AAE9B,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -3,7 +3,6 @@ export * from './custom/MJAIPromptRunEntityServer.server.js';
|
|
|
3
3
|
export * from './custom/MJConversationDetailEntityServer.server.js';
|
|
4
4
|
export * from './custom/MJDuplicateRunEntityServer.server.js';
|
|
5
5
|
export * from './custom/MJQueryEntityServer.server.js';
|
|
6
|
-
export * from './custom/MJReportEntityServer.server.js';
|
|
7
6
|
export * from './custom/MJTemplateContentEntityServer.server.js';
|
|
8
7
|
export * from './custom/MJUserViewEntityServer.server.js';
|
|
9
8
|
export * from './custom/MJActionEntityServer.server.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,wCAAwC,CAAC;AACvD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,kDAAkD,CAAC;AACjE,cAAc,4CAA4C,CAAC;AAC3D,cAAc,qCAAqC,CAAC;AACpD,cAAc
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,wCAAwC,CAAC;AACvD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,kDAAkD,CAAC;AACjE,cAAc,4CAA4C,CAAC;AAC3D,cAAc,qCAAqC,CAAC;AACpD,cAAc,+CAA+C,CAAC;AAC9D,cAAc,wCAAwC,CAAC;AACvD,cAAc,sCAAsC,CAAC;AACrD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,yCAAyC,CAAC;AACxD,cAAc,+CAA+C,CAAC;AAC9D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,8CAA8C,CAAC;AAC7D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,mCAAmC,CAAC;AAClD,cAAc,eAAe,CAAC;AAE9B,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@memberjunction/core-entities-server",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "5.
|
|
4
|
+
"version": "5.27.0",
|
|
5
5
|
"description": "Entity subclasses for the metadata layer of MemberJunction that are only used on server side applications like MJAPI, distributed as part of each release of MemberJunction",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
7
|
"types": "dist/index.d.ts",
|
|
@@ -21,26 +21,26 @@
|
|
|
21
21
|
"typescript": "^5.9.3"
|
|
22
22
|
},
|
|
23
23
|
"dependencies": {
|
|
24
|
-
"@memberjunction/actions-base": "5.
|
|
25
|
-
"@memberjunction/ai": "5.
|
|
26
|
-
"@memberjunction/ai-core-plus": "5.
|
|
27
|
-
"@memberjunction/ai-engine-base": "5.
|
|
28
|
-
"@memberjunction/ai-prompts": "5.
|
|
29
|
-
"@memberjunction/ai-provider-bundle": "5.
|
|
30
|
-
"@memberjunction/ai-vectordb": "5.
|
|
31
|
-
"@memberjunction/tag-engine": "5.
|
|
32
|
-
"@memberjunction/ai-vector-dupe": "5.
|
|
33
|
-
"@memberjunction/ai-vectors-memory": "5.
|
|
34
|
-
"@memberjunction/aiengine": "5.
|
|
35
|
-
"@memberjunction/core": "5.
|
|
36
|
-
"@memberjunction/core-entities": "5.
|
|
37
|
-
"@memberjunction/generic-database-provider": "5.
|
|
38
|
-
"@memberjunction/doc-utils": "5.
|
|
39
|
-
"@memberjunction/global": "5.
|
|
40
|
-
"@memberjunction/skip-types": "5.
|
|
41
|
-
"@memberjunction/sql-converter": "5.
|
|
42
|
-
"@memberjunction/sql-parser": "5.
|
|
43
|
-
"@memberjunction/sqlserver-dataprovider": "5.
|
|
24
|
+
"@memberjunction/actions-base": "5.27.0",
|
|
25
|
+
"@memberjunction/ai": "5.27.0",
|
|
26
|
+
"@memberjunction/ai-core-plus": "5.27.0",
|
|
27
|
+
"@memberjunction/ai-engine-base": "5.27.0",
|
|
28
|
+
"@memberjunction/ai-prompts": "5.27.0",
|
|
29
|
+
"@memberjunction/ai-provider-bundle": "5.27.0",
|
|
30
|
+
"@memberjunction/ai-vectordb": "5.27.0",
|
|
31
|
+
"@memberjunction/tag-engine": "5.27.0",
|
|
32
|
+
"@memberjunction/ai-vector-dupe": "5.27.0",
|
|
33
|
+
"@memberjunction/ai-vectors-memory": "5.27.0",
|
|
34
|
+
"@memberjunction/aiengine": "5.27.0",
|
|
35
|
+
"@memberjunction/core": "5.27.0",
|
|
36
|
+
"@memberjunction/core-entities": "5.27.0",
|
|
37
|
+
"@memberjunction/generic-database-provider": "5.27.0",
|
|
38
|
+
"@memberjunction/doc-utils": "5.27.0",
|
|
39
|
+
"@memberjunction/global": "5.27.0",
|
|
40
|
+
"@memberjunction/skip-types": "5.27.0",
|
|
41
|
+
"@memberjunction/sql-converter": "5.27.0",
|
|
42
|
+
"@memberjunction/sql-parser": "5.27.0",
|
|
43
|
+
"@memberjunction/sqlserver-dataprovider": "5.27.0",
|
|
44
44
|
"nunjucks": "3.2.4",
|
|
45
45
|
"rxjs": "~7.8.1",
|
|
46
46
|
"zod": "~3.24.4"
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { MJReportEntity } from "@memberjunction/core-entities";
|
|
2
|
-
export declare class MJReportEntityServer extends MJReportEntity {
|
|
3
|
-
/**
|
|
4
|
-
* The server side Report Entity sub-class has a simple logic that will create a snapshot of the report when it is first created and each time it is modified, but only
|
|
5
|
-
* if it is either newly created or if the Configuration field has changed.
|
|
6
|
-
* @returns
|
|
7
|
-
*/
|
|
8
|
-
Save(): Promise<boolean>;
|
|
9
|
-
}
|
|
10
|
-
//# sourceMappingURL=MJReportEntityServer.server.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MJReportEntityServer.server.d.ts","sourceRoot":"","sources":["../../src/custom/MJReportEntityServer.server.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAiD,MAAM,+BAA+B,CAAC;AAG9G,qBACa,oBAAqB,SAAQ,cAAc;IACpD;;;;OAIG;IACU,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC;CAoHxC"}
|
|
@@ -1,125 +0,0 @@
|
|
|
1
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
-
};
|
|
7
|
-
import { BaseEntity } from "@memberjunction/core";
|
|
8
|
-
import { RegisterClass, SafeJSONParse } from "@memberjunction/global";
|
|
9
|
-
import { MJReportEntity } from "@memberjunction/core-entities";
|
|
10
|
-
let MJReportEntityServer = class MJReportEntityServer extends MJReportEntity {
|
|
11
|
-
/**
|
|
12
|
-
* The server side Report Entity sub-class has a simple logic that will create a snapshot of the report when it is first created and each time it is modified, but only
|
|
13
|
-
* if it is either newly created or if the Configuration field has changed.
|
|
14
|
-
* @returns
|
|
15
|
-
*/
|
|
16
|
-
async Save() {
|
|
17
|
-
try {
|
|
18
|
-
// first let's get the actual parsed object for the Configuration field
|
|
19
|
-
const config = this.Configuration && this.Configuration.length > 0 ? SafeJSONParse(this.Configuration) : null;
|
|
20
|
-
const oldTextConfig = this.GetFieldByName('Configuration')?.OldValue;
|
|
21
|
-
const oldConfig = oldTextConfig && oldTextConfig.length > 0 ? SafeJSONParse(oldTextConfig) : null;
|
|
22
|
-
if ((config && oldConfig) || (config && !this.IsSaved)) {
|
|
23
|
-
let createSnapshot = false;
|
|
24
|
-
let createReportVersion = false;
|
|
25
|
-
if (this.IsSaved) {
|
|
26
|
-
// existing record
|
|
27
|
-
// we nave a configuration and an old configuration, so we can compare them, cast them to their strong types first
|
|
28
|
-
const castedConfig = config;
|
|
29
|
-
const castedOldConfig = oldConfig;
|
|
30
|
-
// Next, we need to see if the data context has changed at all. We do this by comparing the # of items in the data context. a Data context's items are immutable and we only add new Data Context Items
|
|
31
|
-
// so we can simply check to see if we have new data context items or not
|
|
32
|
-
const dataContextChanged = Object.keys(castedConfig.dataContext || {})?.length !== Object.keys(castedOldConfig.dataContext || {})?.length;
|
|
33
|
-
// next up, we check to see if anything in the execution results changed. The simple way to do that is convert the execution results back to a string and compare those strings
|
|
34
|
-
const executionResultsChanged = JSON.stringify(castedConfig.executionResults) !== JSON.stringify(castedOldConfig.executionResults);
|
|
35
|
-
// next up we check to see if the analysis changed, which would also represent a "data" change
|
|
36
|
-
const analysisChanged = castedConfig.analysis !== castedOldConfig.analysis;
|
|
37
|
-
// finally, we check to see if the configuration itself has OUTSIDE of the data elements we just checked. We do that by deleting those properties from those objects, converting to strings
|
|
38
|
-
// and comparing them
|
|
39
|
-
delete castedConfig.dataContext;
|
|
40
|
-
delete castedConfig.analysis;
|
|
41
|
-
delete castedConfig.executionResults;
|
|
42
|
-
delete castedOldConfig.dataContext;
|
|
43
|
-
delete castedOldConfig.executionResults;
|
|
44
|
-
delete castedOldConfig.analysis;
|
|
45
|
-
// we can now compare the two objects
|
|
46
|
-
const configChanged = JSON.stringify(castedConfig) !== JSON.stringify(castedOldConfig);
|
|
47
|
-
// now our logic is this - if the DATA changed, but the configuration did NOT change, that means we want to create a new SNAPSHOT of the report - which is the data changing side
|
|
48
|
-
// if the configuration changed at all we wnat to create a new Report Version. Sometimes both changd and we do both
|
|
49
|
-
createSnapshot = dataContextChanged || executionResultsChanged || analysisChanged;
|
|
50
|
-
createReportVersion = configChanged;
|
|
51
|
-
}
|
|
52
|
-
else {
|
|
53
|
-
// we have a new record set createSnapshot to true and createReportVersion to true
|
|
54
|
-
createSnapshot = true;
|
|
55
|
-
createReportVersion = true;
|
|
56
|
-
}
|
|
57
|
-
const wasNewRecord = !this.IsSaved;
|
|
58
|
-
const saveResult = await super.Save();
|
|
59
|
-
if (saveResult && (createSnapshot || createReportVersion)) {
|
|
60
|
-
// here we either have a new record or the configuration has changed, so we need to create a snapshot of the report
|
|
61
|
-
let success = true;
|
|
62
|
-
// Use the entity's provider instead of creating new Metadata instance
|
|
63
|
-
const md = this.ProviderToUse;
|
|
64
|
-
if (createReportVersion) {
|
|
65
|
-
const reportVersion = await md.GetEntityObject('MJ: Report Versions', this.ContextCurrentUser);
|
|
66
|
-
reportVersion.ReportID = this.ID;
|
|
67
|
-
// const get highest new version number already in DB
|
|
68
|
-
let newVersionNumber = 1;
|
|
69
|
-
if (!wasNewRecord) {
|
|
70
|
-
const rv = this.RunViewProviderToUse;
|
|
71
|
-
const rvResult = await rv.RunView({
|
|
72
|
-
Fields: ['VersionNumber'],
|
|
73
|
-
EntityName: 'MJ: Report Versions',
|
|
74
|
-
ExtraFilter: `ReportID = '${this.ID}'`,
|
|
75
|
-
MaxRows: 1,
|
|
76
|
-
OrderBy: 'VersionNumber DESC',
|
|
77
|
-
}, this.ContextCurrentUser);
|
|
78
|
-
if (rvResult.Success && rvResult.Results.length > 0) {
|
|
79
|
-
newVersionNumber = parseInt(rvResult.Results[0].VersionNumber) + 1;
|
|
80
|
-
}
|
|
81
|
-
else {
|
|
82
|
-
newVersionNumber = 1; // this is an error state as we previously had a saved report, BUT there were no saved versions for the report, so we are going to use 1 here, but let's log a warning
|
|
83
|
-
console.warn('MJReportEntityServer.Save(): No report versions found for report ID:', this.ID);
|
|
84
|
-
console.warn('MJReportEntityServer.Save(): Using version number 1 for new report version');
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
reportVersion.Name = this.Name; // copy current name to the new version
|
|
88
|
-
reportVersion.Description = this.Description; // copy current description to the new version
|
|
89
|
-
reportVersion.VersionNumber = newVersionNumber;
|
|
90
|
-
reportVersion.Configuration = JSON.stringify(this.Configuration);
|
|
91
|
-
success = success && await reportVersion.Save();
|
|
92
|
-
if (!success) {
|
|
93
|
-
console.error('MJReportEntityServer.Save(): Error saving report version\n' + reportVersion.LatestResult.CompleteMessage);
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
if (createSnapshot) {
|
|
97
|
-
const snapshot = await md.GetEntityObject('MJ: Report Snapshots', this.ContextCurrentUser);
|
|
98
|
-
snapshot.ReportID = this.ID;
|
|
99
|
-
snapshot.UserID = this.ContextCurrentUser.ID;
|
|
100
|
-
// in the snapshot entity the ResultSet column is the Configuration column from the Report entity
|
|
101
|
-
snapshot.ResultSet = JSON.stringify(this.Configuration);
|
|
102
|
-
success = success && await snapshot.Save();
|
|
103
|
-
}
|
|
104
|
-
return success;
|
|
105
|
-
}
|
|
106
|
-
else {
|
|
107
|
-
return saveResult;
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
else {
|
|
111
|
-
// no configuration or no parseable configuration, so we just call super.Save();
|
|
112
|
-
return super.Save();
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
catch (e) {
|
|
116
|
-
console.error('Error in MJReportEntityServer.Save():', e);
|
|
117
|
-
return false;
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
};
|
|
121
|
-
MJReportEntityServer = __decorate([
|
|
122
|
-
RegisterClass(BaseEntity, 'MJ: Reports')
|
|
123
|
-
], MJReportEntityServer);
|
|
124
|
-
export { MJReportEntityServer };
|
|
125
|
-
//# sourceMappingURL=MJReportEntityServer.server.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MJReportEntityServer.server.js","sourceRoot":"","sources":["../../src/custom/MJReportEntityServer.server.ts"],"names":[],"mappings":"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"}
|