@memberjunction/server 0.9.128 → 0.9.141

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 (65) hide show
  1. package/build.log.json +27 -0
  2. package/dist/apolloServer/TransactionPlugin.js +45 -45
  3. package/dist/apolloServer/TransactionPlugin.js.map +1 -1
  4. package/dist/apolloServer/index.js +26 -26
  5. package/dist/auth/exampleNewUserSubClass.js +53 -63
  6. package/dist/auth/exampleNewUserSubClass.js.map +1 -1
  7. package/dist/auth/index.js +110 -104
  8. package/dist/auth/index.js.map +1 -1
  9. package/dist/auth/newUsers.js +65 -66
  10. package/dist/auth/newUsers.js.map +1 -1
  11. package/dist/cache.js +10 -10
  12. package/dist/config.js +62 -61
  13. package/dist/config.js.map +1 -1
  14. package/dist/context.js +101 -101
  15. package/dist/context.js.map +1 -1
  16. package/dist/directives/Public.js +33 -33
  17. package/dist/directives/Public.js.map +1 -1
  18. package/dist/directives/index.js +17 -17
  19. package/dist/entitySubclasses/userViewEntity.server.js +127 -127
  20. package/dist/entitySubclasses/userViewEntity.server.js.map +1 -1
  21. package/dist/generated/generated.js +20205 -19004
  22. package/dist/generated/generated.js.map +1 -1
  23. package/dist/generic/PushStatusResolver.js +58 -58
  24. package/dist/generic/PushStatusResolver.js.map +1 -1
  25. package/dist/generic/ResolverBase.js +231 -231
  26. package/dist/generic/ResolverBase.js.map +1 -1
  27. package/dist/generic/RunViewResolver.js +400 -400
  28. package/dist/generic/RunViewResolver.js.map +1 -1
  29. package/dist/index.js +131 -131
  30. package/dist/index.js.map +1 -1
  31. package/dist/orm.js +33 -33
  32. package/dist/orm.js.map +1 -1
  33. package/dist/resolvers/AskSkipResolver.js +246 -246
  34. package/dist/resolvers/AskSkipResolver.js.map +1 -1
  35. package/dist/resolvers/ColorResolver.js +93 -93
  36. package/dist/resolvers/ColorResolver.js.map +1 -1
  37. package/dist/resolvers/DatasetResolver.js +167 -167
  38. package/dist/resolvers/DatasetResolver.js.map +1 -1
  39. package/dist/resolvers/EntityRecordNameResolver.js +111 -111
  40. package/dist/resolvers/EntityRecordNameResolver.js.map +1 -1
  41. package/dist/resolvers/EntityResolver.js +59 -59
  42. package/dist/resolvers/EntityResolver.js.map +1 -1
  43. package/dist/resolvers/MergeRecordsResolver.js +282 -282
  44. package/dist/resolvers/MergeRecordsResolver.js.map +1 -1
  45. package/dist/resolvers/QueryResolver.js +74 -0
  46. package/dist/resolvers/QueryResolver.js.map +1 -0
  47. package/dist/resolvers/ReportResolver.js +73 -73
  48. package/dist/resolvers/ReportResolver.js.map +1 -1
  49. package/dist/resolvers/UserFavoriteResolver.js +161 -161
  50. package/dist/resolvers/UserFavoriteResolver.js.map +1 -1
  51. package/dist/resolvers/UserResolver.js +69 -69
  52. package/dist/resolvers/UserResolver.js.map +1 -1
  53. package/dist/resolvers/UserViewResolver.js +101 -101
  54. package/dist/resolvers/UserViewResolver.js.map +1 -1
  55. package/dist/types.js +2 -2
  56. package/package.json +11 -11
  57. package/src/apolloServer/TransactionPlugin.ts +1 -1
  58. package/src/auth/exampleNewUserSubClass.ts +3 -1
  59. package/src/auth/index.ts +13 -4
  60. package/src/config.ts +1 -0
  61. package/src/generated/generated.ts +921 -2
  62. package/src/resolvers/AskSkipResolver.ts +1 -1
  63. package/src/resolvers/QueryResolver.ts +42 -0
  64. package/src/resolvers/ReportResolver.ts +0 -15
  65. package/tsconfig.json +2 -2
@@ -1,70 +1,70 @@
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.UserResolver = void 0;
16
- const server_1 = require("@memberjunction/server");
17
- const generated_1 = require("../generated/generated");
18
- let UserResolver = class UserResolver extends generated_1.UserResolverBase {
19
- async CurrentUser({ dataSource, userPayload }) {
20
- return await this.UserByEmail(userPayload.email, { dataSource, userPayload });
21
- }
22
- async UserByID(ID, { dataSource }) {
23
- return super.safeFirstArrayElement(await this.findBy(dataSource, 'Users', { ID }));
24
- }
25
- async UserByEmployeeID(EmployeeID, { dataSource }) {
26
- return super.safeFirstArrayElement(await this.findBy(dataSource, 'Users', { EmployeeID }));
27
- }
28
- async UserByEmail(Email, { dataSource }) {
29
- const searchEmail = Email;
30
- const returnVal = super.safeFirstArrayElement(await this.findBy(dataSource, 'Users', { Email: searchEmail }));
31
- return returnVal;
32
- }
33
- };
34
- __decorate([
35
- (0, server_1.Query)(() => generated_1.User_),
36
- __param(0, (0, server_1.Ctx)()),
37
- __metadata("design:type", Function),
38
- __metadata("design:paramtypes", [Object]),
39
- __metadata("design:returntype", Promise)
40
- ], UserResolver.prototype, "CurrentUser", null);
41
- __decorate([
42
- (0, server_1.Query)(() => generated_1.User_),
43
- __param(0, (0, server_1.Arg)('ID', () => server_1.Int)),
44
- __param(1, (0, server_1.Ctx)()),
45
- __metadata("design:type", Function),
46
- __metadata("design:paramtypes", [Number, Object]),
47
- __metadata("design:returntype", Promise)
48
- ], UserResolver.prototype, "UserByID", null);
49
- __decorate([
50
- (0, server_1.Query)(() => generated_1.User_),
51
- __param(0, (0, server_1.Arg)('EmployeeID', () => server_1.Int)),
52
- __param(1, (0, server_1.Ctx)()),
53
- __metadata("design:type", Function),
54
- __metadata("design:paramtypes", [Number, Object]),
55
- __metadata("design:returntype", Promise)
56
- ], UserResolver.prototype, "UserByEmployeeID", null);
57
- __decorate([
58
- (0, server_1.Query)(() => generated_1.User_),
59
- __param(0, (0, server_1.Arg)('Email', () => String)),
60
- __param(1, (0, server_1.Ctx)()),
61
- __metadata("design:type", Function),
62
- __metadata("design:paramtypes", [String, Object]),
63
- __metadata("design:returntype", Promise)
64
- ], UserResolver.prototype, "UserByEmail", null);
65
- UserResolver = __decorate([
66
- (0, server_1.Resolver)(generated_1.User_)
67
- ], UserResolver);
68
- exports.UserResolver = UserResolver;
69
- exports.default = UserResolver;
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.UserResolver = void 0;
16
+ const server_1 = require("@memberjunction/server");
17
+ const generated_1 = require("../generated/generated");
18
+ let UserResolver = class UserResolver extends generated_1.UserResolverBase {
19
+ async CurrentUser({ dataSource, userPayload }) {
20
+ return await this.UserByEmail(userPayload.email, { dataSource, userPayload });
21
+ }
22
+ async UserByID(ID, { dataSource }) {
23
+ return super.safeFirstArrayElement(await this.findBy(dataSource, 'Users', { ID }));
24
+ }
25
+ async UserByEmployeeID(EmployeeID, { dataSource }) {
26
+ return super.safeFirstArrayElement(await this.findBy(dataSource, 'Users', { EmployeeID }));
27
+ }
28
+ async UserByEmail(Email, { dataSource }) {
29
+ const searchEmail = Email;
30
+ const returnVal = super.safeFirstArrayElement(await this.findBy(dataSource, 'Users', { Email: searchEmail }));
31
+ return returnVal;
32
+ }
33
+ };
34
+ exports.UserResolver = UserResolver;
35
+ __decorate([
36
+ (0, server_1.Query)(() => generated_1.User_),
37
+ __param(0, (0, server_1.Ctx)()),
38
+ __metadata("design:type", Function),
39
+ __metadata("design:paramtypes", [Object]),
40
+ __metadata("design:returntype", Promise)
41
+ ], UserResolver.prototype, "CurrentUser", null);
42
+ __decorate([
43
+ (0, server_1.Query)(() => generated_1.User_),
44
+ __param(0, (0, server_1.Arg)('ID', () => server_1.Int)),
45
+ __param(1, (0, server_1.Ctx)()),
46
+ __metadata("design:type", Function),
47
+ __metadata("design:paramtypes", [Number, Object]),
48
+ __metadata("design:returntype", Promise)
49
+ ], UserResolver.prototype, "UserByID", null);
50
+ __decorate([
51
+ (0, server_1.Query)(() => generated_1.User_),
52
+ __param(0, (0, server_1.Arg)('EmployeeID', () => server_1.Int)),
53
+ __param(1, (0, server_1.Ctx)()),
54
+ __metadata("design:type", Function),
55
+ __metadata("design:paramtypes", [Number, Object]),
56
+ __metadata("design:returntype", Promise)
57
+ ], UserResolver.prototype, "UserByEmployeeID", null);
58
+ __decorate([
59
+ (0, server_1.Query)(() => generated_1.User_),
60
+ __param(0, (0, server_1.Arg)('Email', () => String)),
61
+ __param(1, (0, server_1.Ctx)()),
62
+ __metadata("design:type", Function),
63
+ __metadata("design:paramtypes", [String, Object]),
64
+ __metadata("design:returntype", Promise)
65
+ ], UserResolver.prototype, "UserByEmail", null);
66
+ exports.UserResolver = UserResolver = __decorate([
67
+ (0, server_1.Resolver)(generated_1.User_)
68
+ ], UserResolver);
69
+ exports.default = UserResolver;
70
70
  //# sourceMappingURL=UserResolver.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"UserResolver.js","sourceRoot":"","sources":["../../src/resolvers/UserResolver.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,mDAAoF;AACpF,sDAAiE;AAG1D,IAAM,YAAY,GAAlB,MAAM,YAAa,SAAQ,4BAAgB;IAE1C,AAAN,KAAK,CAAC,WAAW,CAAQ,EAAE,UAAU,EAAE,WAAW,EAAc;QAC9D,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,KAAK,EAAE,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC,CAAC;IAChF,CAAC;IAGK,AAAN,KAAK,CAAC,QAAQ,CAAuB,EAAU,EAAS,EAAE,UAAU,EAAc;QAChF,OAAO,KAAK,CAAC,qBAAqB,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IACrF,CAAC;IAGK,AAAN,KAAK,CAAC,gBAAgB,CAA+B,UAAkB,EAAS,EAAE,UAAU,EAAc;QACxG,OAAO,KAAK,CAAC,qBAAqB,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;IAC7F,CAAC;IAGK,AAAN,KAAK,CAAC,WAAW,CAA6B,KAAa,EAAS,EAAE,UAAU,EAAc;QAE5F,MAAM,WAAW,GAAG,KAAK,CAAC;QAC1B,MAAM,SAAS,GAAG,KAAK,CAAC,qBAAqB,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;QAC9G,OAAO,SAAS,CAAC;IACnB,CAAC;CACF,CAAA;AArBO;IADL,IAAA,cAAK,EAAC,GAAG,EAAE,CAAC,iBAAK,CAAC;IACA,WAAA,IAAA,YAAG,GAAE,CAAA;;;;+CAEvB;AAGK;IADL,IAAA,cAAK,EAAC,GAAG,EAAE,CAAC,iBAAK,CAAC;IACH,WAAA,IAAA,YAAG,EAAC,IAAI,EAAE,GAAG,EAAE,CAAC,YAAG,CAAC,CAAA;IAAc,WAAA,IAAA,YAAG,GAAE,CAAA;;;;4CAEtD;AAGK;IADL,IAAA,cAAK,EAAC,GAAG,EAAE,CAAC,iBAAK,CAAC;IACK,WAAA,IAAA,YAAG,EAAC,YAAY,EAAE,GAAG,EAAE,CAAC,YAAG,CAAC,CAAA;IAAsB,WAAA,IAAA,YAAG,GAAE,CAAA;;;;oDAE9E;AAGK;IADL,IAAA,cAAK,EAAC,GAAG,EAAE,CAAC,iBAAK,CAAC;IACA,WAAA,IAAA,YAAG,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,CAAA;IAAiB,WAAA,IAAA,YAAG,GAAE,CAAA;;;;+CAKlE;AAtBU,YAAY;IADxB,IAAA,iBAAQ,EAAC,iBAAK,CAAC;GACH,YAAY,CAuBxB;AAvBY,oCAAY;AAwBzB,kBAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"UserResolver.js","sourceRoot":"","sources":["../../src/resolvers/UserResolver.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,mDAAoF;AACpF,sDAAiE;AAG1D,IAAM,YAAY,GAAlB,MAAM,YAAa,SAAQ,4BAAgB;IAE1C,AAAN,KAAK,CAAC,WAAW,CAAQ,EAAE,UAAU,EAAE,WAAW,EAAc;QAC9D,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,KAAK,EAAE,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC,CAAC;IAChF,CAAC;IAGK,AAAN,KAAK,CAAC,QAAQ,CAAuB,EAAU,EAAS,EAAE,UAAU,EAAc;QAChF,OAAO,KAAK,CAAC,qBAAqB,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IACrF,CAAC;IAGK,AAAN,KAAK,CAAC,gBAAgB,CAA+B,UAAkB,EAAS,EAAE,UAAU,EAAc;QACxG,OAAO,KAAK,CAAC,qBAAqB,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;IAC7F,CAAC;IAGK,AAAN,KAAK,CAAC,WAAW,CAA6B,KAAa,EAAS,EAAE,UAAU,EAAc;QAE5F,MAAM,WAAW,GAAG,KAAK,CAAC;QAC1B,MAAM,SAAS,GAAG,KAAK,CAAC,qBAAqB,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;QAC9G,OAAO,SAAS,CAAC;IACnB,CAAC;CACF,CAAA;AAvBY,oCAAY;AAEjB;IADL,IAAA,cAAK,EAAC,GAAG,EAAE,CAAC,iBAAK,CAAC;IACA,WAAA,IAAA,YAAG,GAAE,CAAA;;;;+CAEvB;AAGK;IADL,IAAA,cAAK,EAAC,GAAG,EAAE,CAAC,iBAAK,CAAC;IACH,WAAA,IAAA,YAAG,EAAC,IAAI,EAAE,GAAG,EAAE,CAAC,YAAG,CAAC,CAAA;IAAc,WAAA,IAAA,YAAG,GAAE,CAAA;;;;4CAEtD;AAGK;IADL,IAAA,cAAK,EAAC,GAAG,EAAE,CAAC,iBAAK,CAAC;IACK,WAAA,IAAA,YAAG,EAAC,YAAY,EAAE,GAAG,EAAE,CAAC,YAAG,CAAC,CAAA;IAAsB,WAAA,IAAA,YAAG,GAAE,CAAA;;;;oDAE9E;AAGK;IADL,IAAA,cAAK,EAAC,GAAG,EAAE,CAAC,iBAAK,CAAC;IACA,WAAA,IAAA,YAAG,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,CAAA;IAAiB,WAAA,IAAA,YAAG,GAAE,CAAA;;;;+CAKlE;uBAtBU,YAAY;IADxB,IAAA,iBAAQ,EAAC,iBAAK,CAAC;GACH,YAAY,CAuBxB;AACD,kBAAe,YAAY,CAAC"}
@@ -1,102 +1,102 @@
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.UserViewResolver = void 0;
16
- const core_1 = require("@memberjunction/core");
17
- const server_1 = require("@memberjunction/server");
18
- const generated_1 = require("../generated/generated");
19
- const UserResolver_1 = require("./UserResolver");
20
- let UserViewResolver = class UserViewResolver extends generated_1.UserViewResolverBase {
21
- async UserViewsByUserID(UserID, { dataSource }) {
22
- return await this.findBy(dataSource, 'User Views', { UserID });
23
- }
24
- async DefaultViewByUserAndEntity(UserID, EntityID, { dataSource }) {
25
- return await this.findBy(dataSource, 'User Views', { UserID, EntityID, IsDefault: true });
26
- }
27
- async CurrentUserDefaultViewByEntityID(EntityID, { dataSource, userPayload }) {
28
- return await this.findBy(dataSource, 'User Views', {
29
- UserID: await this.getCurrentUserID(dataSource, userPayload),
30
- EntityID,
31
- IsDefault: true,
32
- });
33
- }
34
- async getCurrentUserID(dataSource, userPayload) {
35
- const userResolver = new UserResolver_1.UserResolver();
36
- const user = await userResolver.UserByEmail(userPayload.email, { dataSource, userPayload });
37
- return user.ID;
38
- }
39
- async CurrentUserUserViewsByEntityID(EntityID, { dataSource, userPayload }) {
40
- return this.findBy(dataSource, 'User Views', { UserID: await this.getCurrentUserID(dataSource, userPayload), EntityID });
41
- }
42
- async UpdateWhereClause(ID, { userPayload }) {
43
- const md = new core_1.Metadata();
44
- const u = this.GetUserFromPayload(userPayload);
45
- const viewEntity = await md.GetEntityObject('User Views', u);
46
- await viewEntity.Load(ID);
47
- viewEntity.UpdateWhereClause();
48
- if (await viewEntity.Save()) {
49
- return viewEntity.GetAll();
50
- }
51
- else {
52
- throw new Error('Failed to update where clause');
53
- }
54
- }
55
- };
56
- __decorate([
57
- (0, server_1.Query)(() => [generated_1.UserView_]),
58
- __param(0, (0, server_1.Arg)('UserID', () => server_1.Int)),
59
- __param(1, (0, server_1.Ctx)()),
60
- __metadata("design:type", Function),
61
- __metadata("design:paramtypes", [Number, Object]),
62
- __metadata("design:returntype", Promise)
63
- ], UserViewResolver.prototype, "UserViewsByUserID", null);
64
- __decorate([
65
- (0, server_1.Query)(() => [generated_1.UserView_]),
66
- __param(0, (0, server_1.Arg)('UserID', () => server_1.Int)),
67
- __param(1, (0, server_1.Arg)('EntityID', () => server_1.Int)),
68
- __param(2, (0, server_1.Ctx)()),
69
- __metadata("design:type", Function),
70
- __metadata("design:paramtypes", [Number, Number, Object]),
71
- __metadata("design:returntype", Promise)
72
- ], UserViewResolver.prototype, "DefaultViewByUserAndEntity", null);
73
- __decorate([
74
- (0, server_1.Query)(() => [generated_1.UserView_]),
75
- __param(0, (0, server_1.Arg)('EntityID', () => server_1.Int)),
76
- __param(1, (0, server_1.Ctx)()),
77
- __metadata("design:type", Function),
78
- __metadata("design:paramtypes", [Number, Object]),
79
- __metadata("design:returntype", Promise)
80
- ], UserViewResolver.prototype, "CurrentUserDefaultViewByEntityID", null);
81
- __decorate([
82
- (0, server_1.Query)(() => [generated_1.UserView_]),
83
- __param(0, (0, server_1.Arg)('EntityID', () => server_1.Int)),
84
- __param(1, (0, server_1.Ctx)()),
85
- __metadata("design:type", Function),
86
- __metadata("design:paramtypes", [Number, Object]),
87
- __metadata("design:returntype", Promise)
88
- ], UserViewResolver.prototype, "CurrentUserUserViewsByEntityID", null);
89
- __decorate([
90
- (0, server_1.Query)(() => [generated_1.UserView_]),
91
- __param(0, (0, server_1.Arg)('ID', () => server_1.Int)),
92
- __param(1, (0, server_1.Ctx)()),
93
- __metadata("design:type", Function),
94
- __metadata("design:paramtypes", [Number, Object]),
95
- __metadata("design:returntype", Promise)
96
- ], UserViewResolver.prototype, "UpdateWhereClause", null);
97
- UserViewResolver = __decorate([
98
- (0, server_1.Resolver)(generated_1.UserView_)
99
- ], UserViewResolver);
100
- exports.UserViewResolver = UserViewResolver;
101
- exports.default = UserViewResolver;
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.UserViewResolver = void 0;
16
+ const core_1 = require("@memberjunction/core");
17
+ const server_1 = require("@memberjunction/server");
18
+ const generated_1 = require("../generated/generated");
19
+ const UserResolver_1 = require("./UserResolver");
20
+ let UserViewResolver = class UserViewResolver extends generated_1.UserViewResolverBase {
21
+ async UserViewsByUserID(UserID, { dataSource }) {
22
+ return await this.findBy(dataSource, 'User Views', { UserID });
23
+ }
24
+ async DefaultViewByUserAndEntity(UserID, EntityID, { dataSource }) {
25
+ return await this.findBy(dataSource, 'User Views', { UserID, EntityID, IsDefault: true });
26
+ }
27
+ async CurrentUserDefaultViewByEntityID(EntityID, { dataSource, userPayload }) {
28
+ return await this.findBy(dataSource, 'User Views', {
29
+ UserID: await this.getCurrentUserID(dataSource, userPayload),
30
+ EntityID,
31
+ IsDefault: true,
32
+ });
33
+ }
34
+ async getCurrentUserID(dataSource, userPayload) {
35
+ const userResolver = new UserResolver_1.UserResolver();
36
+ const user = await userResolver.UserByEmail(userPayload.email, { dataSource, userPayload });
37
+ return user.ID;
38
+ }
39
+ async CurrentUserUserViewsByEntityID(EntityID, { dataSource, userPayload }) {
40
+ return this.findBy(dataSource, 'User Views', { UserID: await this.getCurrentUserID(dataSource, userPayload), EntityID });
41
+ }
42
+ async UpdateWhereClause(ID, { userPayload }) {
43
+ const md = new core_1.Metadata();
44
+ const u = this.GetUserFromPayload(userPayload);
45
+ const viewEntity = await md.GetEntityObject('User Views', u);
46
+ await viewEntity.Load(ID);
47
+ viewEntity.UpdateWhereClause();
48
+ if (await viewEntity.Save()) {
49
+ return viewEntity.GetAll();
50
+ }
51
+ else {
52
+ throw new Error('Failed to update where clause');
53
+ }
54
+ }
55
+ };
56
+ exports.UserViewResolver = UserViewResolver;
57
+ __decorate([
58
+ (0, server_1.Query)(() => [generated_1.UserView_]),
59
+ __param(0, (0, server_1.Arg)('UserID', () => server_1.Int)),
60
+ __param(1, (0, server_1.Ctx)()),
61
+ __metadata("design:type", Function),
62
+ __metadata("design:paramtypes", [Number, Object]),
63
+ __metadata("design:returntype", Promise)
64
+ ], UserViewResolver.prototype, "UserViewsByUserID", null);
65
+ __decorate([
66
+ (0, server_1.Query)(() => [generated_1.UserView_]),
67
+ __param(0, (0, server_1.Arg)('UserID', () => server_1.Int)),
68
+ __param(1, (0, server_1.Arg)('EntityID', () => server_1.Int)),
69
+ __param(2, (0, server_1.Ctx)()),
70
+ __metadata("design:type", Function),
71
+ __metadata("design:paramtypes", [Number, Number, Object]),
72
+ __metadata("design:returntype", Promise)
73
+ ], UserViewResolver.prototype, "DefaultViewByUserAndEntity", null);
74
+ __decorate([
75
+ (0, server_1.Query)(() => [generated_1.UserView_]),
76
+ __param(0, (0, server_1.Arg)('EntityID', () => server_1.Int)),
77
+ __param(1, (0, server_1.Ctx)()),
78
+ __metadata("design:type", Function),
79
+ __metadata("design:paramtypes", [Number, Object]),
80
+ __metadata("design:returntype", Promise)
81
+ ], UserViewResolver.prototype, "CurrentUserDefaultViewByEntityID", null);
82
+ __decorate([
83
+ (0, server_1.Query)(() => [generated_1.UserView_]),
84
+ __param(0, (0, server_1.Arg)('EntityID', () => server_1.Int)),
85
+ __param(1, (0, server_1.Ctx)()),
86
+ __metadata("design:type", Function),
87
+ __metadata("design:paramtypes", [Number, Object]),
88
+ __metadata("design:returntype", Promise)
89
+ ], UserViewResolver.prototype, "CurrentUserUserViewsByEntityID", null);
90
+ __decorate([
91
+ (0, server_1.Query)(() => [generated_1.UserView_]),
92
+ __param(0, (0, server_1.Arg)('ID', () => server_1.Int)),
93
+ __param(1, (0, server_1.Ctx)()),
94
+ __metadata("design:type", Function),
95
+ __metadata("design:paramtypes", [Number, Object]),
96
+ __metadata("design:returntype", Promise)
97
+ ], UserViewResolver.prototype, "UpdateWhereClause", null);
98
+ exports.UserViewResolver = UserViewResolver = __decorate([
99
+ (0, server_1.Resolver)(generated_1.UserView_)
100
+ ], UserViewResolver);
101
+ exports.default = UserViewResolver;
102
102
  //# sourceMappingURL=UserViewResolver.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"UserViewResolver.js","sourceRoot":"","sources":["../../src/resolvers/UserViewResolver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"UserViewResolver.js","sourceRoot":"","sources":["../../src/resolvers/UserViewResolver.ts"],"names":[],"mappings":"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"}
package/dist/types.js CHANGED
@@ -1,3 +1,3 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  //# sourceMappingURL=types.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@memberjunction/server",
3
- "version": "0.9.128",
3
+ "version": "0.9.141",
4
4
  "description": "MemberJunction: This project provides API access via GraphQL to the common data store.",
5
5
  "main": "dist/index.js",
6
6
  "types": "src/index.ts",
@@ -21,13 +21,13 @@
21
21
  "dependencies": {
22
22
  "@apollo/server": "^4.9.1",
23
23
  "@graphql-tools/utils": "^10.0.1",
24
- "@memberjunction/ai": "^0.9.119",
25
- "@memberjunction/core": "^0.9.128",
26
- "@memberjunction/core-entities": "^0.9.105",
27
- "@memberjunction/global": "^0.9.117",
28
- "@memberjunction/queue": "^0.9.122",
29
- "@memberjunction/sqlserver-dataprovider": "^0.9.132",
30
- "@types/axios": "^0.14.0",
24
+ "@memberjunction/ai": "^0.9.127",
25
+ "@memberjunction/aiengine": "^0.9.9",
26
+ "@memberjunction/core": "^0.9.134",
27
+ "@memberjunction/core-entities": "^0.9.112",
28
+ "@memberjunction/global": "^0.9.123",
29
+ "@memberjunction/queue": "^0.9.131",
30
+ "@memberjunction/sqlserver-dataprovider": "^0.9.142",
31
31
  "@types/cors": "^2.8.13",
32
32
  "@types/jsonwebtoken": "^8.5.9",
33
33
  "@types/node": "^18.11.14",
@@ -45,12 +45,12 @@
45
45
  "jsonwebtoken": "^8.5.1",
46
46
  "jwks-rsa": "^3.0.0",
47
47
  "lru-cache": "^10.0.0",
48
- "mssql": "^9.1.1",
48
+ "mssql": "^10.0.2",
49
49
  "reflect-metadata": "^0.1.13",
50
50
  "rxjs": "^7.8.1",
51
51
  "type-graphql": "2.0.0-beta.3",
52
52
  "typedi": "^0.10.0",
53
- "typeorm": "^0.3.17",
53
+ "typeorm": "^0.3.20",
54
54
  "ws": "^8.13.0",
55
55
  "zod": "^3.22.4"
56
56
  },
@@ -70,6 +70,6 @@
70
70
  "rimraf": "^4.4.0",
71
71
  "ts-node": "^10.9.1",
72
72
  "ts-node-dev": "^2.0.0",
73
- "typescript": "^4.9.4"
73
+ "typescript": "^5.3.3"
74
74
  }
75
75
  }
@@ -9,7 +9,7 @@ export const TransactionPlugin: ApolloServerPlugin<AppContext> = {
9
9
  const isMutation = /^\s*mutation\b/i.test(query);
10
10
 
11
11
  if (!isMutation) {
12
- return;
12
+ return null;
13
13
  }
14
14
 
15
15
  // Start transaction, one or more mutations. If it is just one mutation, this trans wrapper isn't really needed
@@ -9,7 +9,9 @@ import { configInfo } from "../config";
9
9
  * called "Persons" that is mapped to the User table in the core MemberJunction schema. You can sub-class the NewUserBase to do whatever behavior you want and pre-process, post-process or entirely override the base
10
10
  * class behavior.
11
11
  */
12
- @RegisterClass(NewUserBase, undefined, 1) /*by putting 1 into the priority setting, MJGlobal ClassFactory will use this instead of the base class as that registration had no priority*/
12
+ // NOTE: This is commented out becuase it is turned off by default. To make this work, you'd have to do a real implementation below, and then uncomment this decorator
13
+ // so that your class is actually used.
14
+ //@RegisterClass(NewUserBase, undefined, 1) /*by putting 1 into the priority setting, MJGlobal ClassFactory will use this instead of the base class as that registration had no priority*/
13
15
  export class ExampleNewUserSubClass extends NewUserBase {
14
16
  public override async createNewUser(firstName: string, lastName: string, email: string) {
15
17
  try {
package/src/auth/index.ts CHANGED
@@ -87,10 +87,19 @@ export const verifyUserRecord = async (email?: string, firstName?: string, lastN
87
87
  });
88
88
 
89
89
  if (!user) {
90
- if (configInfo.userHandling.autoCreateNewUsers && firstName && lastName && requestDomain) {
90
+ if (configInfo.userHandling.autoCreateNewUsers && firstName && lastName && (requestDomain || configInfo.userHandling.newUserLimitedToAuthorizedDomains === false)) {
91
91
  // check to see if the domain that we have a request coming in from matches one of the domains in the autoCreateNewUsersDomains setting
92
- const domainMatch: boolean = configInfo.userHandling.newUserAuthorizedDomains.some((domain) => domain.toLowerCase().trim() === requestDomain.toLowerCase().trim());
93
- if (domainMatch) {
92
+ let passesDomainCheck: boolean = configInfo.userHandling.newUserLimitedToAuthorizedDomains === false /*in this first condition, we are set up to NOT care about domain */
93
+ if (!passesDomainCheck && requestDomain) {
94
+ /*in this second condition, we check the domain against authorized domains*/
95
+ passesDomainCheck = configInfo.userHandling.newUserAuthorizedDomains.some((pattern) => {
96
+ // Convert wildcard domain patterns to regular expressions
97
+ const regex = new RegExp('^' + pattern.toLowerCase().trim().replace(/\./g, '\\.').replace(/\*/g, '.*') + '$');
98
+ return regex.test(requestDomain?.toLowerCase().trim());
99
+ });
100
+ }
101
+
102
+ if (passesDomainCheck) {
94
103
  // we have a domain from the request that matches one of the domains provided by the configuration, so we will create a new user
95
104
  console.warn(`User ${email} not found in cache. Attempting to create a new user...`);
96
105
  const newUserCreator: NewUserBase = <NewUserBase>MJGlobal.Instance.ClassFactory.CreateInstance(NewUserBase); // this will create the object that handles creating the new user for us
@@ -106,7 +115,7 @@ export const verifyUserRecord = async (email?: string, firstName?: string, lastN
106
115
  }
107
116
  }
108
117
  else {
109
- console.warn(`User ${email} not found in cache. Request domain '${requestDomain}' does not match any of the domains in the newUserAuthorizedDomains setting. NOT creating a new user.`);
118
+ console.warn(`User ${email} not found in cache. Request domain '${requestDomain}' does not match any of the domains in the newUserAuthorizedDomains setting. To ignore domain, make sure you set the newUserLimitedToAuthorizedDomains setting to false. In this case we are NOT creating a new user.`);
110
119
  }
111
120
  }
112
121
  if(!user && configInfo.userHandling.updateCacheWhenNotFound && dataSource && attemptCacheUpdateIfNeeded) {
package/src/config.ts CHANGED
@@ -33,6 +33,7 @@ export const configFile = env.get('CONFIG_FILE').asString();
33
33
 
34
34
  const userHandlingInfoSchema = z.object({
35
35
  autoCreateNewUsers: z.boolean().optional().default(false),
36
+ newUserLimitedToAuthorizedDomains: z.boolean().optional().default(false),
36
37
  newUserAuthorizedDomains: z.array(z.string()).optional().default([]),
37
38
  newUserRoles: z.array(z.string()).optional().default([]),
38
39
  updateCacheWhenNotFound: z.boolean().optional().default(false),