@memberjunction/server 0.9.235 → 0.9.236

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. package/build.log.json +3 -0
  2. package/dist/entitySubclasses/userViewEntity.server.d.ts.map +1 -0
  3. package/dist/generated/generated.d.ts.map +1 -0
  4. package/dist/index.d.ts.map +1 -0
  5. package/dist/resolvers/AskSkipResolver.d.ts.map +1 -0
  6. package/dist/resolvers/ColorResolver.d.ts.map +1 -0
  7. package/dist/resolvers/EntityResolver.d.ts.map +1 -0
  8. package/dist/resolvers/UserFavoriteResolver.d.ts.map +1 -0
  9. package/dist/resolvers/UserResolver.d.ts.map +1 -0
  10. package/dist/resolvers/UserViewResolver.d.ts.map +1 -0
  11. package/package.json +11 -11
  12. package/src/generated/generated.ts +1301 -344
  13. package/tsconfig.json +30 -28
  14. package/dist/apolloServer/TransactionPlugin.js +0 -49
  15. package/dist/apolloServer/TransactionPlugin.js.map +0 -1
  16. package/dist/apolloServer/index.js +0 -27
  17. package/dist/apolloServer/index.js.map +0 -1
  18. package/dist/auth/exampleNewUserSubClass.js +0 -54
  19. package/dist/auth/exampleNewUserSubClass.js.map +0 -1
  20. package/dist/auth/index.js +0 -129
  21. package/dist/auth/index.js.map +0 -1
  22. package/dist/auth/newUsers.js +0 -66
  23. package/dist/auth/newUsers.js.map +0 -1
  24. package/dist/auth/tokenExpiredError.js +0 -16
  25. package/dist/auth/tokenExpiredError.js.map +0 -1
  26. package/dist/cache.js +0 -11
  27. package/dist/cache.js.map +0 -1
  28. package/dist/config.js +0 -69
  29. package/dist/config.js.map +0 -1
  30. package/dist/context.js +0 -111
  31. package/dist/context.js.map +0 -1
  32. package/dist/directives/Public.js +0 -34
  33. package/dist/directives/Public.js.map +0 -1
  34. package/dist/directives/index.js +0 -18
  35. package/dist/directives/index.js.map +0 -1
  36. package/dist/generated/generated.js +0 -23173
  37. package/dist/generated/generated.js.map +0 -1
  38. package/dist/generic/PushStatusResolver.js +0 -58
  39. package/dist/generic/PushStatusResolver.js.map +0 -1
  40. package/dist/generic/ResolverBase.js +0 -232
  41. package/dist/generic/ResolverBase.js.map +0 -1
  42. package/dist/generic/RunViewResolver.js +0 -401
  43. package/dist/generic/RunViewResolver.js.map +0 -1
  44. package/dist/index.js +0 -135
  45. package/dist/index.js.map +0 -1
  46. package/dist/orm.js +0 -34
  47. package/dist/orm.js.map +0 -1
  48. package/dist/resolvers/ColorResolver.js +0 -94
  49. package/dist/resolvers/ColorResolver.js.map +0 -1
  50. package/dist/resolvers/DatasetResolver.js +0 -168
  51. package/dist/resolvers/DatasetResolver.js.map +0 -1
  52. package/dist/resolvers/EntityRecordNameResolver.js +0 -112
  53. package/dist/resolvers/EntityRecordNameResolver.js.map +0 -1
  54. package/dist/resolvers/EntityResolver.js +0 -60
  55. package/dist/resolvers/EntityResolver.js.map +0 -1
  56. package/dist/resolvers/MergeRecordsResolver.js +0 -283
  57. package/dist/resolvers/MergeRecordsResolver.js.map +0 -1
  58. package/dist/resolvers/PotentialDuplicateRecordResolver.js +0 -97
  59. package/dist/resolvers/PotentialDuplicateRecordResolver.js.map +0 -1
  60. package/dist/resolvers/QueryResolver.js +0 -74
  61. package/dist/resolvers/QueryResolver.js.map +0 -1
  62. package/dist/resolvers/ReportResolver.js +0 -160
  63. package/dist/resolvers/ReportResolver.js.map +0 -1
  64. package/dist/resolvers/UserFavoriteResolver.js +0 -162
  65. package/dist/resolvers/UserFavoriteResolver.js.map +0 -1
  66. package/dist/resolvers/UserResolver.js +0 -70
  67. package/dist/resolvers/UserResolver.js.map +0 -1
  68. package/dist/resolvers/UserViewResolver.js +0 -102
  69. package/dist/resolvers/UserViewResolver.js.map +0 -1
  70. package/dist/types.js +0 -3
  71. package/dist/types.js.map +0 -1
  72. package/dist/util.js +0 -89
  73. package/dist/util.js.map +0 -1
@@ -1,58 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- 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;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- var __param = (this && this.__param) || function (paramIndex, decorator) {
12
- return function (target, key) { decorator(target, key, paramIndex); }
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.PushStatusResolver = exports.PushStatusNotification = exports.PUSH_STATUS_UPDATES_TOPIC = void 0;
16
- const type_graphql_1 = require("type-graphql");
17
- exports.PUSH_STATUS_UPDATES_TOPIC = 'PUSH_STATUS_UPDATES';
18
- let PushStatusNotification = class PushStatusNotification {
19
- };
20
- exports.PushStatusNotification = PushStatusNotification;
21
- __decorate([
22
- (0, type_graphql_1.Field)(() => String, { nullable: true }),
23
- __metadata("design:type", String)
24
- ], PushStatusNotification.prototype, "message", void 0);
25
- __decorate([
26
- (0, type_graphql_1.Field)((_type) => Date),
27
- __metadata("design:type", Date)
28
- ], PushStatusNotification.prototype, "date", void 0);
29
- __decorate([
30
- (0, type_graphql_1.Field)((_type) => type_graphql_1.ID),
31
- __metadata("design:type", String)
32
- ], PushStatusNotification.prototype, "sessionId", void 0);
33
- exports.PushStatusNotification = PushStatusNotification = __decorate([
34
- (0, type_graphql_1.ObjectType)()
35
- ], PushStatusNotification);
36
- let PushStatusResolver = class PushStatusResolver {
37
- statusUpdates({ message }, sessionId) {
38
- return { message, date: new Date(), sessionId };
39
- }
40
- };
41
- exports.PushStatusResolver = PushStatusResolver;
42
- __decorate([
43
- (0, type_graphql_1.Subscription)(() => PushStatusNotification, {
44
- topics: exports.PUSH_STATUS_UPDATES_TOPIC,
45
- filter: ({ payload, args, context }) => {
46
- return payload.sessionId === args.sessionId;
47
- },
48
- }),
49
- __param(0, (0, type_graphql_1.Root)()),
50
- __param(1, (0, type_graphql_1.Arg)('sessionId', () => String)),
51
- __metadata("design:type", Function),
52
- __metadata("design:paramtypes", [Object, String]),
53
- __metadata("design:returntype", PushStatusNotification)
54
- ], PushStatusResolver.prototype, "statusUpdates", null);
55
- exports.PushStatusResolver = PushStatusResolver = __decorate([
56
- (0, type_graphql_1.Resolver)()
57
- ], PushStatusResolver);
58
- //# sourceMappingURL=PushStatusResolver.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PushStatusResolver.js","sourceRoot":"","sources":["../../src/generic/PushStatusResolver.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,+CAA4G;AAE/F,QAAA,yBAAyB,GAAG,qBAAqB,CAAC;AAGxD,IAAM,sBAAsB,GAA5B,MAAM,sBAAsB;CASlC,CAAA;AATY,wDAAsB;AAEjC;IADC,IAAA,oBAAK,EAAC,GAAG,EAAE,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;uDACvB;AAGjB;IADC,IAAA,oBAAK,EAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC;8BAChB,IAAI;oDAAC;AAGZ;IADC,IAAA,oBAAK,EAAC,CAAC,KAAK,EAAE,EAAE,CAAC,iBAAE,CAAC;;yDACF;iCARR,sBAAsB;IADlC,IAAA,yBAAU,GAAE;GACA,sBAAsB,CASlC;AAYM,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;IAO7B,aAAa,CACH,EAAE,OAAO,EAAiC,EAClB,SAAiB;QAEjD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE,EAAE,SAAS,EAAE,CAAC;IAClD,CAAC;CACF,CAAA;AAbY,gDAAkB;AAO7B;IANC,IAAA,2BAAY,EAAC,GAAG,EAAE,CAAC,sBAAsB,EAAE;QAC1C,MAAM,EAAE,iCAAyB;QACjC,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAsF,EAAE,EAAE;YACzH,OAAO,OAAO,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,CAAC;QAC9C,CAAC;KACF,CAAC;IAEC,WAAA,IAAA,mBAAI,GAAE,CAAA;IACN,WAAA,IAAA,kBAAG,EAAC,WAAW,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,CAAA;;;oCAC9B,sBAAsB;uDAExB;6BAZU,kBAAkB;IAD9B,IAAA,uBAAQ,GAAE;GACE,kBAAkB,CAa9B"}
@@ -1,232 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ResolverBase = void 0;
4
- const core_1 = require("@memberjunction/core");
5
- const sqlserver_dataprovider_1 = require("@memberjunction/sqlserver-dataprovider");
6
- class ResolverBase {
7
- MapFieldNamesToCodeNames(entityName, dataObject) {
8
- if (dataObject) {
9
- const md = new core_1.Metadata();
10
- const entityInfo = md.Entities.find((e) => e.Name === entityName);
11
- if (!entityInfo)
12
- throw new Error(`Entity ${entityName} not found in metadata`);
13
- const fields = entityInfo.Fields.filter((f) => f.Name !== f.CodeName);
14
- fields.forEach((f) => {
15
- if (dataObject.hasOwnProperty(f.Name)) {
16
- dataObject[f.CodeName] = dataObject[f.Name];
17
- delete dataObject[f.Name];
18
- }
19
- });
20
- }
21
- return dataObject;
22
- }
23
- ArrayMapFieldNamesToCodeNames(entityName, dataObjectArray) {
24
- if (dataObjectArray && dataObjectArray.length > 0) {
25
- dataObjectArray.forEach((element) => {
26
- this.MapFieldNamesToCodeNames(entityName, element);
27
- });
28
- }
29
- return dataObjectArray;
30
- }
31
- async findBy(dataSource, entity, params) {
32
- const md = new core_1.Metadata();
33
- const e = md.Entities.find((e) => e.Name === entity);
34
- if (!e)
35
- throw new Error(`Entity ${entity} not found in metadata`);
36
- let sql = `SELECT * FROM ${e.SchemaName}.${e.BaseView} WHERE `;
37
- const keys = Object.keys(params);
38
- keys.forEach((k, i) => {
39
- if (i > 0)
40
- sql += ' AND ';
41
- const field = e.Fields.find((f) => f.Name === k);
42
- if (!field)
43
- throw new Error(`Field ${k} not found in entity ${entity}`);
44
- const quotes = field.NeedsQuotes ? "'" : '';
45
- sql += `${k} = ${quotes}${params[k]}${quotes}`;
46
- });
47
- const result = await dataSource.query(sql);
48
- return result;
49
- }
50
- async RunViewByNameGeneric(viewInput, dataSource, userPayload, pubSub) {
51
- try {
52
- const viewInfo = this.safeFirstArrayElement(await this.findBy(dataSource, 'User Views', { Name: viewInput.ViewName }));
53
- ;
54
- return this.RunViewGenericInternal(viewInfo, dataSource, viewInput.ExtraFilter, viewInput.OrderBy, viewInput.UserSearchString, viewInput.ExcludeUserViewRunID, viewInput.OverrideExcludeFilter, viewInput.SaveViewResults, viewInput.Fields, viewInput.IgnoreMaxRows, viewInput.ExcludeDataFromAllPriorViewRuns, viewInput.ForceAuditLog, viewInput.AuditLogDescription, userPayload, pubSub);
55
- }
56
- catch (err) {
57
- console.log(err);
58
- return null;
59
- }
60
- }
61
- async RunViewByIDGeneric(viewInput, dataSource, userPayload, pubSub) {
62
- try {
63
- const viewInfo = this.safeFirstArrayElement(await this.findBy(dataSource, 'User Views', { ID: viewInput.ViewID }));
64
- return this.RunViewGenericInternal(viewInfo, dataSource, viewInput.ExtraFilter, viewInput.OrderBy, viewInput.UserSearchString, viewInput.ExcludeUserViewRunID, viewInput.OverrideExcludeFilter, viewInput.SaveViewResults, viewInput.Fields, viewInput.IgnoreMaxRows, viewInput.ExcludeDataFromAllPriorViewRuns, viewInput.ForceAuditLog, viewInput.AuditLogDescription, userPayload, pubSub);
65
- }
66
- catch (err) {
67
- console.log(err);
68
- return null;
69
- }
70
- }
71
- async RunDynamicViewGeneric(viewInput, dataSource, userPayload, pubSub) {
72
- try {
73
- const md = new core_1.Metadata();
74
- const entity = md.Entities.find((e) => e.Name === viewInput.EntityName);
75
- if (!entity)
76
- throw new Error(`Entity ${viewInput.EntityName} not found in metadata`);
77
- const viewInfo = {
78
- ID: -1,
79
- Entity: viewInput.EntityName,
80
- EntityID: entity.ID,
81
- EntityBaseView: entity.BaseView,
82
- };
83
- return this.RunViewGenericInternal(viewInfo, dataSource, viewInput.ExtraFilter, viewInput.OrderBy, viewInput.UserSearchString, viewInput.ExcludeUserViewRunID, viewInput.OverrideExcludeFilter, false, viewInput.Fields, viewInput.IgnoreMaxRows, false, viewInput.ForceAuditLog, viewInput.AuditLogDescription, userPayload, pubSub);
84
- }
85
- catch (err) {
86
- console.log(err);
87
- return null;
88
- }
89
- }
90
- CheckUserReadPermissions(entityName, userPayload) {
91
- const md = new core_1.Metadata();
92
- const entityInfo = md.Entities.find((e) => e.Name === entityName);
93
- if (!userPayload)
94
- throw new Error(`userPayload is null`);
95
- if (entityInfo) {
96
- const userInfo = sqlserver_dataprovider_1.UserCache.Users.find((u) => u.Email.toLowerCase().trim() === userPayload.email.toLowerCase().trim());
97
- if (!userInfo)
98
- throw new Error(`User ${userPayload.email} not found in metadata`);
99
- const userPermissions = entityInfo.GetUserPermisions(userInfo);
100
- if (!userPermissions.CanRead)
101
- throw new Error(`User ${userPayload.email} does not have read permissions on ${entityInfo.Name}`);
102
- }
103
- else
104
- throw new Error(`Entity not found in metadata`);
105
- }
106
- async RunViewGenericInternal(viewInfo, dataSource, extraFilter, orderBy, userSearchString, excludeUserViewRunID, overrideExcludeFilter, saveViewResults, fields, ignoreMaxRows, excludeDataFromAllPriorViewRuns, forceAuditLog, auditLogDescription, userPayload, pubSub) {
107
- try {
108
- if (viewInfo && userPayload) {
109
- const md = new core_1.Metadata();
110
- const user = sqlserver_dataprovider_1.UserCache.Users.find((u) => u.Email.toLowerCase().trim() === userPayload?.email.toLowerCase().trim());
111
- if (!user)
112
- throw new Error(`User ${userPayload?.email} not found in metadata`);
113
- const entityInfo = md.Entities.find((e) => e.Name === viewInfo.Entity);
114
- if (!entityInfo)
115
- throw new Error(`Entity ${viewInfo.Entity} not found in metadata`);
116
- const rv = new core_1.RunView();
117
- const result = await rv.RunView({
118
- ViewID: viewInfo.ID,
119
- ViewName: viewInfo.Name,
120
- EntityName: viewInfo.Entity,
121
- ExtraFilter: extraFilter,
122
- OrderBy: orderBy,
123
- Fields: fields,
124
- UserSearchString: userSearchString,
125
- ExcludeUserViewRunID: excludeUserViewRunID,
126
- OverrideExcludeFilter: overrideExcludeFilter,
127
- SaveViewResults: saveViewResults,
128
- ExcludeDataFromAllPriorViewRuns: excludeDataFromAllPriorViewRuns,
129
- IgnoreMaxRows: ignoreMaxRows,
130
- ForceAuditLog: forceAuditLog,
131
- AuditLogDescription: auditLogDescription,
132
- }, user);
133
- return result;
134
- }
135
- else
136
- return null;
137
- }
138
- catch (err) {
139
- console.log(err);
140
- throw err;
141
- }
142
- }
143
- async createRecordAccessAuditLogRecord(userPayload, entityName, recordId) {
144
- try {
145
- const md = new core_1.Metadata();
146
- const entityInfo = md.Entities.find((e) => e.Name.trim().toLowerCase() === entityName.trim().toLowerCase());
147
- if (!entityInfo)
148
- throw new Error(`Entity ${entityName} not found in metadata`);
149
- if (entityInfo.AuditRecordAccess) {
150
- const userInfo = sqlserver_dataprovider_1.UserCache.Users.find((u) => u.Email.toLowerCase().trim() === userPayload?.email.toLowerCase().trim());
151
- const auditLogTypeName = 'Record Accessed';
152
- const auditLogType = md.AuditLogTypes.find((a) => a.Name.trim().toLowerCase() === auditLogTypeName.trim().toLowerCase());
153
- if (!userInfo)
154
- throw new Error(`User ${userPayload?.email} not found in metadata`);
155
- if (!auditLogType)
156
- throw new Error(`Audit Log Type ${auditLogTypeName} not found in metadata`);
157
- return await this.createAuditLogRecord(userPayload, null, auditLogTypeName, 'Success', null, entityInfo.ID, recordId);
158
- }
159
- }
160
- catch (e) {
161
- console.log(e);
162
- }
163
- }
164
- getRowLevelSecurityWhereClause(entityName, userPayload, type, returnPrefix) {
165
- const md = new core_1.Metadata();
166
- const entityInfo = md.Entities.find((e) => e.Name.trim().toLowerCase() === entityName.trim().toLowerCase());
167
- if (!entityInfo)
168
- throw new Error(`Entity ${entityName} not found in metadata`);
169
- const user = sqlserver_dataprovider_1.UserCache.Users.find((u) => u.Email.toLowerCase().trim() === userPayload?.email.toLowerCase().trim());
170
- if (!user)
171
- throw new Error(`User ${userPayload?.email} not found in metadata`);
172
- return entityInfo.GetUserRowLevelSecurityWhereClause(user, type, returnPrefix);
173
- }
174
- async createAuditLogRecord(userPayload, authorizationName, auditLogTypeName, status, details, entityId, recordId) {
175
- try {
176
- const md = new core_1.Metadata();
177
- const userInfo = sqlserver_dataprovider_1.UserCache.Users.find((u) => u.Email.toLowerCase().trim() === userPayload?.email.toLowerCase().trim());
178
- const authorization = authorizationName
179
- ? md.Authorizations.find((a) => a.Name.trim().toLowerCase() === authorizationName.trim().toLowerCase())
180
- : null;
181
- const auditLogType = md.AuditLogTypes.find((a) => a.Name.trim().toLowerCase() === auditLogTypeName.trim().toLowerCase());
182
- if (!userInfo)
183
- throw new Error(`User ${userPayload?.email} not found in metadata`);
184
- if (!auditLogType)
185
- throw new Error(`Audit Log Type ${auditLogTypeName} not found in metadata`);
186
- const auditLog = await md.GetEntityObject('Audit Logs', userInfo);
187
- auditLog.NewRecord();
188
- auditLog.UserID = userInfo.ID;
189
- auditLog.AuditLogTypeName = auditLogType.Name;
190
- if (authorization)
191
- auditLog.AuthorizationName = authorization.Name;
192
- auditLog.Status = status;
193
- if (details)
194
- auditLog.Details = details;
195
- auditLog.EntityID = entityId;
196
- if (recordId)
197
- auditLog.RecordID = recordId;
198
- if (await auditLog.Save())
199
- return auditLog;
200
- else
201
- throw new Error(`Error saving audit log record`);
202
- }
203
- catch (err) {
204
- console.log(err);
205
- return null;
206
- }
207
- }
208
- safeFirstArrayElement(arr) {
209
- if (arr && arr.length > 0) {
210
- return arr[0];
211
- }
212
- return null;
213
- }
214
- packageSPParam(paramValue, quoteString) {
215
- return paramValue === null || paramValue === undefined ? null : quoteString + paramValue + quoteString;
216
- }
217
- GetUserFromEmail(email) {
218
- const md = new core_1.Metadata();
219
- return sqlserver_dataprovider_1.UserCache.Users.find((u) => u.Email.toLowerCase().trim() === email.toLowerCase().trim());
220
- }
221
- GetUserFromPayload(userPayload) {
222
- if (!userPayload || !userPayload.email)
223
- return undefined;
224
- const md = new core_1.Metadata();
225
- return sqlserver_dataprovider_1.UserCache.Users.find((u) => u.Email.toLowerCase().trim() === userPayload.email.toLowerCase().trim());
226
- }
227
- get MJCoreSchema() {
228
- return core_1.Metadata.Provider.ConfigData.MJCoreSchemaName;
229
- }
230
- }
231
- exports.ResolverBase = ResolverBase;
232
- //# sourceMappingURL=ResolverBase.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ResolverBase.js","sourceRoot":"","sources":["../../src/generic/ResolverBase.ts"],"names":[],"mappings":"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"}