@memberjunction/server 1.8.0 → 2.0.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.
Files changed (191) hide show
  1. package/CHANGELOG.json +160 -1
  2. package/CHANGELOG.md +34 -2
  3. package/package.json +30 -39
  4. package/src/apolloServer/index.ts +0 -1
  5. package/src/auth/newUsers.ts +4 -3
  6. package/src/context.ts +19 -27
  7. package/src/entitySubclasses/entityPermissions.server.ts +3 -3
  8. package/src/generated/generated.ts +13440 -12226
  9. package/src/generic/ResolverBase.ts +297 -172
  10. package/src/generic/RunViewResolver.ts +204 -14
  11. package/src/index.ts +18 -19
  12. package/src/resolvers/AskSkipResolver.ts +44 -44
  13. package/src/resolvers/ColorResolver.ts +3 -14
  14. package/src/resolvers/DatasetResolver.ts +4 -4
  15. package/src/resolvers/EntityCommunicationsResolver.ts +42 -20
  16. package/src/resolvers/FileCategoryResolver.ts +2 -2
  17. package/src/resolvers/FileResolver.ts +6 -4
  18. package/src/resolvers/MergeRecordsResolver.ts +3 -2
  19. package/src/resolvers/PotentialDuplicateRecordResolver.ts +48 -40
  20. package/src/resolvers/QueryResolver.ts +2 -2
  21. package/src/resolvers/ReportResolver.ts +6 -6
  22. package/src/resolvers/UserFavoriteResolver.ts +8 -8
  23. package/src/resolvers/UserResolver.ts +3 -1
  24. package/src/resolvers/UserViewResolver.ts +1 -1
  25. package/src/types.ts +21 -0
  26. package/tsconfig.json +3 -4
  27. package/dist/apolloServer/TransactionPlugin.d.ts +0 -4
  28. package/dist/apolloServer/TransactionPlugin.d.ts.map +0 -1
  29. package/dist/apolloServer/TransactionPlugin.js +0 -49
  30. package/dist/apolloServer/TransactionPlugin.js.map +0 -1
  31. package/dist/apolloServer/index.d.ts +0 -11
  32. package/dist/apolloServer/index.d.ts.map +0 -1
  33. package/dist/apolloServer/index.js +0 -27
  34. package/dist/apolloServer/index.js.map +0 -1
  35. package/dist/auth/exampleNewUserSubClass.d.ts +0 -6
  36. package/dist/auth/exampleNewUserSubClass.d.ts.map +0 -1
  37. package/dist/auth/exampleNewUserSubClass.js +0 -54
  38. package/dist/auth/exampleNewUserSubClass.js.map +0 -1
  39. package/dist/auth/index.d.ts +0 -30
  40. package/dist/auth/index.d.ts.map +0 -1
  41. package/dist/auth/index.js +0 -129
  42. package/dist/auth/index.js.map +0 -1
  43. package/dist/auth/newUsers.d.ts +0 -5
  44. package/dist/auth/newUsers.d.ts.map +0 -1
  45. package/dist/auth/newUsers.js +0 -66
  46. package/dist/auth/newUsers.js.map +0 -1
  47. package/dist/auth/tokenExpiredError.d.ts +0 -5
  48. package/dist/auth/tokenExpiredError.d.ts.map +0 -1
  49. package/dist/auth/tokenExpiredError.js +0 -16
  50. package/dist/auth/tokenExpiredError.js.map +0 -1
  51. package/dist/cache.d.ts +0 -3
  52. package/dist/cache.d.ts.map +0 -1
  53. package/dist/cache.js +0 -11
  54. package/dist/cache.js.map +0 -1
  55. package/dist/config.d.ts +0 -196
  56. package/dist/config.d.ts.map +0 -1
  57. package/dist/config.js +0 -72
  58. package/dist/config.js.map +0 -1
  59. package/dist/context.d.ts +0 -17
  60. package/dist/context.d.ts.map +0 -1
  61. package/dist/context.js +0 -114
  62. package/dist/context.js.map +0 -1
  63. package/dist/directives/Public.d.ts +0 -4
  64. package/dist/directives/Public.d.ts.map +0 -1
  65. package/dist/directives/Public.js +0 -34
  66. package/dist/directives/Public.js.map +0 -1
  67. package/dist/directives/index.d.ts +0 -2
  68. package/dist/directives/index.d.ts.map +0 -1
  69. package/dist/directives/index.js +0 -18
  70. package/dist/directives/index.js.map +0 -1
  71. package/dist/entitySubclasses/DuplicateRunEntity.server.d.ts +0 -6
  72. package/dist/entitySubclasses/DuplicateRunEntity.server.d.ts.map +0 -1
  73. package/dist/entitySubclasses/DuplicateRunEntity.server.js +0 -37
  74. package/dist/entitySubclasses/DuplicateRunEntity.server.js.map +0 -1
  75. package/dist/entitySubclasses/EntityBehavior.server.d.ts +0 -29
  76. package/dist/entitySubclasses/EntityBehavior.server.d.ts.map +0 -1
  77. package/dist/entitySubclasses/EntityBehavior.server.js +0 -213
  78. package/dist/entitySubclasses/EntityBehavior.server.js.map +0 -1
  79. package/dist/entitySubclasses/entityPermissions.server.d.ts +0 -23
  80. package/dist/entitySubclasses/entityPermissions.server.d.ts.map +0 -1
  81. package/dist/entitySubclasses/entityPermissions.server.js +0 -99
  82. package/dist/entitySubclasses/entityPermissions.server.js.map +0 -1
  83. package/dist/entitySubclasses/userViewEntity.server.d.ts +0 -13
  84. package/dist/entitySubclasses/userViewEntity.server.d.ts.map +0 -1
  85. package/dist/entitySubclasses/userViewEntity.server.js +0 -164
  86. package/dist/entitySubclasses/userViewEntity.server.js.map +0 -1
  87. package/dist/generated/generated.d.ts +0 -6420
  88. package/dist/generated/generated.d.ts.map +0 -1
  89. package/dist/generated/generated.js +0 -34770
  90. package/dist/generated/generated.js.map +0 -1
  91. package/dist/generic/DeleteOptionsInput.d.ts +0 -5
  92. package/dist/generic/DeleteOptionsInput.d.ts.map +0 -1
  93. package/dist/generic/DeleteOptionsInput.js +0 -28
  94. package/dist/generic/DeleteOptionsInput.js.map +0 -1
  95. package/dist/generic/KeyInputOutputTypes.d.ts +0 -16
  96. package/dist/generic/KeyInputOutputTypes.d.ts.map +0 -1
  97. package/dist/generic/KeyInputOutputTypes.js +0 -62
  98. package/dist/generic/KeyInputOutputTypes.js.map +0 -1
  99. package/dist/generic/KeyValuePairInput.d.ts +0 -5
  100. package/dist/generic/KeyValuePairInput.d.ts.map +0 -1
  101. package/dist/generic/KeyValuePairInput.js +0 -28
  102. package/dist/generic/KeyValuePairInput.js.map +0 -1
  103. package/dist/generic/PushStatusResolver.d.ts +0 -14
  104. package/dist/generic/PushStatusResolver.d.ts.map +0 -1
  105. package/dist/generic/PushStatusResolver.js +0 -58
  106. package/dist/generic/PushStatusResolver.js.map +0 -1
  107. package/dist/generic/ResolverBase.d.ts +0 -37
  108. package/dist/generic/ResolverBase.d.ts.map +0 -1
  109. package/dist/generic/ResolverBase.js +0 -468
  110. package/dist/generic/ResolverBase.js.map +0 -1
  111. package/dist/generic/RunViewResolver.d.ts +0 -88
  112. package/dist/generic/RunViewResolver.d.ts.map +0 -1
  113. package/dist/generic/RunViewResolver.js +0 -443
  114. package/dist/generic/RunViewResolver.js.map +0 -1
  115. package/dist/index.d.ts +0 -28
  116. package/dist/index.d.ts.map +0 -1
  117. package/dist/index.js +0 -145
  118. package/dist/index.js.map +0 -1
  119. package/dist/orm.d.ts +0 -4
  120. package/dist/orm.d.ts.map +0 -1
  121. package/dist/orm.js +0 -34
  122. package/dist/orm.js.map +0 -1
  123. package/dist/resolvers/AskSkipResolver.d.ts +0 -54
  124. package/dist/resolvers/AskSkipResolver.d.ts.map +0 -1
  125. package/dist/resolvers/AskSkipResolver.js +0 -800
  126. package/dist/resolvers/AskSkipResolver.js.map +0 -1
  127. package/dist/resolvers/ColorResolver.d.ts +0 -22
  128. package/dist/resolvers/ColorResolver.d.ts.map +0 -1
  129. package/dist/resolvers/ColorResolver.js +0 -94
  130. package/dist/resolvers/ColorResolver.js.map +0 -1
  131. package/dist/resolvers/DatasetResolver.d.ts +0 -42
  132. package/dist/resolvers/DatasetResolver.d.ts.map +0 -1
  133. package/dist/resolvers/DatasetResolver.js +0 -168
  134. package/dist/resolvers/DatasetResolver.js.map +0 -1
  135. package/dist/resolvers/EntityCommunicationsResolver.d.ts +0 -49
  136. package/dist/resolvers/EntityCommunicationsResolver.d.ts.map +0 -1
  137. package/dist/resolvers/EntityCommunicationsResolver.js +0 -228
  138. package/dist/resolvers/EntityCommunicationsResolver.js.map +0 -1
  139. package/dist/resolvers/EntityRecordNameResolver.d.ts +0 -21
  140. package/dist/resolvers/EntityRecordNameResolver.d.ts.map +0 -1
  141. package/dist/resolvers/EntityRecordNameResolver.js +0 -113
  142. package/dist/resolvers/EntityRecordNameResolver.js.map +0 -1
  143. package/dist/resolvers/EntityResolver.d.ts +0 -6
  144. package/dist/resolvers/EntityResolver.d.ts.map +0 -1
  145. package/dist/resolvers/EntityResolver.js +0 -60
  146. package/dist/resolvers/EntityResolver.js.map +0 -1
  147. package/dist/resolvers/FileCategoryResolver.d.ts +0 -6
  148. package/dist/resolvers/FileCategoryResolver.d.ts.map +0 -1
  149. package/dist/resolvers/FileCategoryResolver.js +0 -65
  150. package/dist/resolvers/FileCategoryResolver.js.map +0 -1
  151. package/dist/resolvers/FileResolver.d.ts +0 -24
  152. package/dist/resolvers/FileResolver.d.ts.map +0 -1
  153. package/dist/resolvers/FileResolver.js +0 -162
  154. package/dist/resolvers/FileResolver.js.map +0 -1
  155. package/dist/resolvers/MergeRecordsResolver.d.ts +0 -59
  156. package/dist/resolvers/MergeRecordsResolver.d.ts.map +0 -1
  157. package/dist/resolvers/MergeRecordsResolver.js +0 -256
  158. package/dist/resolvers/MergeRecordsResolver.js.map +0 -1
  159. package/dist/resolvers/PotentialDuplicateRecordResolver.d.ts +0 -29
  160. package/dist/resolvers/PotentialDuplicateRecordResolver.d.ts.map +0 -1
  161. package/dist/resolvers/PotentialDuplicateRecordResolver.js +0 -127
  162. package/dist/resolvers/PotentialDuplicateRecordResolver.js.map +0 -1
  163. package/dist/resolvers/QueryResolver.d.ts +0 -13
  164. package/dist/resolvers/QueryResolver.d.ts.map +0 -1
  165. package/dist/resolvers/QueryResolver.js +0 -74
  166. package/dist/resolvers/QueryResolver.js.map +0 -1
  167. package/dist/resolvers/ReportResolver.d.ts +0 -20
  168. package/dist/resolvers/ReportResolver.d.ts.map +0 -1
  169. package/dist/resolvers/ReportResolver.js +0 -175
  170. package/dist/resolvers/ReportResolver.js.map +0 -1
  171. package/dist/resolvers/UserFavoriteResolver.d.ts +0 -42
  172. package/dist/resolvers/UserFavoriteResolver.d.ts.map +0 -1
  173. package/dist/resolvers/UserFavoriteResolver.js +0 -221
  174. package/dist/resolvers/UserFavoriteResolver.js.map +0 -1
  175. package/dist/resolvers/UserResolver.d.ts +0 -10
  176. package/dist/resolvers/UserResolver.d.ts.map +0 -1
  177. package/dist/resolvers/UserResolver.js +0 -72
  178. package/dist/resolvers/UserResolver.js.map +0 -1
  179. package/dist/resolvers/UserViewResolver.d.ts +0 -13
  180. package/dist/resolvers/UserViewResolver.d.ts.map +0 -1
  181. package/dist/resolvers/UserViewResolver.js +0 -102
  182. package/dist/resolvers/UserViewResolver.js.map +0 -1
  183. package/dist/types.d.ts +0 -17
  184. package/dist/types.d.ts.map +0 -1
  185. package/dist/types.js +0 -3
  186. package/dist/types.js.map +0 -1
  187. package/dist/util.d.ts +0 -4
  188. package/dist/util.d.ts.map +0 -1
  189. package/dist/util.js +0 -89
  190. package/dist/util.js.map +0 -1
  191. package/src/entitySubclasses/EntityBehavior.server.ts +0 -241
package/dist/context.js DELETED
@@ -1,114 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.contextFunction = exports.getUserPayload = void 0;
27
- const url = __importStar(require("url"));
28
- const jsonwebtoken_1 = require("jsonwebtoken");
29
- require("reflect-metadata");
30
- const rxjs_1 = require("rxjs");
31
- const type_graphql_1 = require("type-graphql");
32
- const auth_1 = require("./auth");
33
- const cache_1 = require("./cache");
34
- const config_1 = require("./config");
35
- const auth_2 = require("./auth");
36
- const verifyAsync = async (issuer, options, token) => new Promise((resolve, reject) => {
37
- (0, jsonwebtoken_1.verify)(token, (0, auth_1.getSigningKeys)(issuer), options, (err, jwt) => {
38
- if (jwt && typeof jwt !== 'string' && !err) {
39
- const payload = jwt.payload ?? jwt;
40
- console.log(`Valid token: ${payload.name} (${payload.email ? payload.email : payload.preferred_username})`);
41
- resolve(payload);
42
- }
43
- else {
44
- console.warn('Invalid token');
45
- reject(err);
46
- }
47
- });
48
- });
49
- const getUserPayload = async (bearerToken, sessionId = 'default', dataSource, requestDomain) => {
50
- try {
51
- const token = bearerToken.replace('Bearer ', '');
52
- if (!token) {
53
- console.warn('No token to validate');
54
- throw new type_graphql_1.AuthenticationError('Missing token');
55
- }
56
- const payload = (0, jsonwebtoken_1.decode)(token);
57
- if (!payload || typeof payload === 'string') {
58
- throw new type_graphql_1.AuthenticationError('Invalid token payload');
59
- }
60
- const expiryDate = new Date((payload.exp ?? 0) * 1000);
61
- if (expiryDate.getTime() <= Date.now()) {
62
- throw new auth_2.TokenExpiredError(expiryDate);
63
- }
64
- if (!cache_1.authCache.has(token)) {
65
- const issuer = payload.iss;
66
- if (!issuer) {
67
- console.warn('No issuer claim on token');
68
- throw new type_graphql_1.AuthenticationError('Missing issuer claim on token');
69
- }
70
- await verifyAsync(issuer, auth_1.validationOptions[issuer], token);
71
- cache_1.authCache.set(token, true);
72
- }
73
- const email = payload?.email
74
- ? config_1.userEmailMap[payload?.email] ?? payload?.email
75
- : payload?.preferred_username;
76
- const fullName = payload?.name;
77
- const firstName = payload?.given_name || fullName?.split(' ')[0];
78
- const lastName = payload?.family_name || fullName?.split(' ')[1] || fullName?.split(' ')[0];
79
- const userRecord = await (0, auth_1.verifyUserRecord)(email, firstName, lastName, requestDomain, dataSource);
80
- if (!userRecord) {
81
- console.error(`User ${email} not found`);
82
- throw new type_graphql_1.AuthorizationError();
83
- }
84
- else if (!userRecord.IsActive) {
85
- console.error(`User ${email} found but inactive`);
86
- throw new type_graphql_1.AuthorizationError();
87
- }
88
- return { userRecord, email, sessionId };
89
- }
90
- catch (e) {
91
- console.error(e);
92
- if (e instanceof auth_2.TokenExpiredError) {
93
- throw e;
94
- }
95
- else
96
- return {};
97
- }
98
- };
99
- exports.getUserPayload = getUserPayload;
100
- const contextFunction = ({ setupComplete$, dataSource }) => async ({ req }) => {
101
- await (0, rxjs_1.firstValueFrom)(setupComplete$);
102
- const sessionIdRaw = req.headers['x-session-id'];
103
- const requestDomain = url.parse(req.headers.origin || '');
104
- const sessionId = sessionIdRaw ? sessionIdRaw.toString() : '';
105
- const bearerToken = req.headers.authorization ?? '';
106
- const userPayload = await (0, exports.getUserPayload)(bearerToken, sessionId, dataSource, requestDomain?.hostname ? requestDomain.hostname : undefined);
107
- const operationName = req.body?.operationName;
108
- if (operationName !== 'IntrospectionQuery') {
109
- console.log({ operationName });
110
- }
111
- return { dataSource, userPayload };
112
- };
113
- exports.contextFunction = contextFunction;
114
- //# sourceMappingURL=context.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"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"}
@@ -1,4 +0,0 @@
1
- import { DirectiveBuilder } from '../types';
2
- export declare function Public(): PropertyDecorator & MethodDecorator & ClassDecorator;
3
- export declare const publicDirective: DirectiveBuilder;
4
- //# sourceMappingURL=Public.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Public.d.ts","sourceRoot":"","sources":["../../src/directives/Public.ts"],"names":[],"mappings":"AAGA,OAAO,EAAc,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAIxD,wBAAgB,MAAM,IAAI,iBAAiB,GAAG,eAAe,GAAG,cAAc,CAAC;AAM/E,eAAO,MAAM,eAAe,EAAE,gBA4B7B,CAAC"}
@@ -1,34 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.publicDirective = exports.Public = void 0;
4
- const utils_1 = require("@graphql-tools/utils");
5
- const graphql_1 = require("graphql");
6
- const type_graphql_1 = require("type-graphql");
7
- const DIRECTIVE_NAME = 'Public';
8
- function Public() {
9
- return (targetOrPrototype, propertyKey, descriptor) => (0, type_graphql_1.Directive)(`@${DIRECTIVE_NAME}`)(targetOrPrototype, propertyKey, descriptor);
10
- }
11
- exports.Public = Public;
12
- exports.publicDirective = {
13
- typeDefs: `directive @${DIRECTIVE_NAME} on FIELD_DEFINITION`,
14
- transformer: (schema) => {
15
- const fieldMapper = (fieldConfig) => {
16
- const directive = (0, utils_1.getDirective)(schema, fieldConfig, DIRECTIVE_NAME)?.[0];
17
- if (directive) {
18
- return fieldConfig;
19
- }
20
- else {
21
- const { resolve = graphql_1.defaultFieldResolver } = fieldConfig;
22
- const directiveResolver = async (source, args, context, info) => {
23
- if (!context?.userPayload?.userRecord?.IsActive) {
24
- throw new type_graphql_1.AuthorizationError();
25
- }
26
- return await resolve(source, args, context, info);
27
- };
28
- return { ...fieldConfig, resolve: directiveResolver };
29
- }
30
- };
31
- return (0, utils_1.mapSchema)(schema, { [utils_1.MapperKind.OBJECT_FIELD]: fieldMapper });
32
- },
33
- };
34
- //# sourceMappingURL=Public.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Public.js","sourceRoot":"","sources":["../../src/directives/Public.ts"],"names":[],"mappings":";;;AAAA,gDAAwF;AACxF,qCAAqE;AACrE,+CAA6D;AAG7D,MAAM,cAAc,GAAG,QAAQ,CAAC;AAGhC,SAAgB,MAAM;IACpB,OAAO,CAAC,iBAAiB,EAAE,WAAW,EAAE,UAAU,EAAE,EAAE,CACpD,IAAA,wBAAS,EAAC,IAAI,cAAc,EAAE,CAAC,CAAC,iBAAiB,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;AAChF,CAAC;AAHD,wBAGC;AAEY,QAAA,eAAe,GAAqB;IAC/C,QAAQ,EAAE,cAAc,cAAc,sBAAsB;IAC5D,WAAW,EAAE,CAAC,MAAM,EAAE,EAAE;QACtB,MAAM,WAAW,GAAgB,CAAC,WAAW,EAAE,EAAE;YAC/C,MAAM,SAAS,GAAG,IAAA,oBAAY,EAAC,MAAM,EAAE,WAAW,EAAE,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACzE,IAAI,SAAS,EAAE,CAAC;gBACd,OAAO,WAAW,CAAC;YACrB,CAAC;iBAAM,CAAC;gBAEN,MAAM,EAAE,OAAO,GAAG,8BAAoB,EAAE,GAAG,WAAW,CAAC;gBACvD,MAAM,iBAAiB,GAA8C,KAAK,EACxE,MAAM,EACN,IAAI,EACJ,OAAO,EACP,IAAI,EACJ,EAAE;oBAEF,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC;wBAChD,MAAM,IAAI,iCAAkB,EAAE,CAAC;oBACjC,CAAC;oBACD,OAAO,MAAM,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;gBACpD,CAAC,CAAC;gBAEF,OAAO,EAAE,GAAG,WAAW,EAAE,OAAO,EAAE,iBAAiB,EAAE,CAAC;YACxD,CAAC;QACH,CAAC,CAAC;QACF,OAAO,IAAA,iBAAS,EAAC,MAAM,EAAE,EAAE,CAAC,kBAAU,CAAC,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC;IACvE,CAAC;CACF,CAAC"}
@@ -1,2 +0,0 @@
1
- export * from './Public';
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/directives/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC"}
@@ -1,18 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./Public"), exports);
18
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/directives/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB"}
@@ -1,6 +0,0 @@
1
- import { DuplicateRunEntity } from "@memberjunction/core-entities";
2
- export declare class DuplicateRunEntity_Server extends DuplicateRunEntity {
3
- Save(): Promise<boolean>;
4
- }
5
- export declare function LoadDuplicateRunEntityServerSubClass(): void;
6
- //# sourceMappingURL=DuplicateRunEntity.server.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DuplicateRunEntity.server.d.ts","sourceRoot":"","sources":["../../src/entitySubclasses/DuplicateRunEntity.server.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAGnE,qBACa,yBAA0B,SAAQ,kBAAkB;IAChD,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC;CAiBxC;AAED,wBAAgB,oCAAoC,SAEnD"}
@@ -1,37 +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
- Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.LoadDuplicateRunEntityServerSubClass = exports.DuplicateRunEntity_Server = void 0;
10
- const core_1 = require("@memberjunction/core");
11
- const global_1 = require("@memberjunction/global");
12
- const core_entities_1 = require("@memberjunction/core-entities");
13
- const ai_vector_dupe_1 = require("@memberjunction/ai-vector-dupe");
14
- let DuplicateRunEntity_Server = class DuplicateRunEntity_Server extends core_entities_1.DuplicateRunEntity {
15
- async Save() {
16
- const saveResult = await super.Save();
17
- if (saveResult && this.EndedAt === null) {
18
- const duplicateRecordDetector = new ai_vector_dupe_1.DuplicateRecordDetector();
19
- let request = new core_1.PotentialDuplicateRequest();
20
- request.EntityID = this.EntityID;
21
- request.ListID = this.SourceListID;
22
- request.Options = {
23
- DuplicateRunID: this.ID,
24
- };
25
- const response = await duplicateRecordDetector.getDuplicateRecords(request, this.ContextCurrentUser);
26
- }
27
- return saveResult;
28
- }
29
- };
30
- exports.DuplicateRunEntity_Server = DuplicateRunEntity_Server;
31
- exports.DuplicateRunEntity_Server = DuplicateRunEntity_Server = __decorate([
32
- (0, global_1.RegisterClass)(core_1.BaseEntity, 'Duplicate Runs', 3)
33
- ], DuplicateRunEntity_Server);
34
- function LoadDuplicateRunEntityServerSubClass() {
35
- }
36
- exports.LoadDuplicateRunEntityServerSubClass = LoadDuplicateRunEntityServerSubClass;
37
- //# sourceMappingURL=DuplicateRunEntity.server.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DuplicateRunEntity.server.js","sourceRoot":"","sources":["../../src/entitySubclasses/DuplicateRunEntity.server.ts"],"names":[],"mappings":";;;;;;;;;AAAA,+CAA6E;AAC7E,mDAAuD;AACvD,iEAAmE;AACnE,mEAAyE;AAGlE,IAAM,yBAAyB,GAA/B,MAAM,yBAA0B,SAAQ,kCAAkB;IACtD,KAAK,CAAC,IAAI;QACb,MAAM,UAAU,GAAY,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;QAC/C,IAAI,UAAU,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;YAEtC,MAAM,uBAAuB,GAA4B,IAAI,wCAAuB,EAAE,CAAC;YACvF,IAAI,OAAO,GAA8B,IAAI,gCAAyB,EAAE,CAAC;YACzE,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YACjC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC;YACnC,OAAO,CAAC,OAAO,GAAG;gBACd,cAAc,EAAE,IAAI,CAAC,EAAE;aAC1B,CAAC;YAEF,MAAM,QAAQ,GAAG,MAAM,uBAAuB,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACzG,CAAC;QAED,OAAO,UAAU,CAAC;IACtB,CAAC;CACJ,CAAA;AAlBY,8DAAyB;oCAAzB,yBAAyB;IADrC,IAAA,sBAAa,EAAC,iBAAU,EAAE,gBAAgB,EAAE,CAAC,CAAC;GAClC,yBAAyB,CAkBrC;AAED,SAAgB,oCAAoC;AAEpD,CAAC;AAFD,oFAEC"}
@@ -1,29 +0,0 @@
1
- import { EntityInfo, EntitySaveOptions } from "@memberjunction/core";
2
- import { AIModelEntityExtended, EntityBehaviorEntityExtended, EntityBehaviorTypeEntity } from '@memberjunction/core-entities';
3
- export declare class EntityBehaviorEntity_Server extends EntityBehaviorEntityExtended {
4
- protected get AIVendorName(): string;
5
- protected GetAIModel(): Promise<AIModelEntityExtended>;
6
- Save(options?: EntitySaveOptions): Promise<boolean>;
7
- GenerateCode(behaviorDescription: string, behaviorTypePrompt: string, behaviorType: EntityBehaviorTypeEntity, entityInfo: EntityInfo): Promise<{
8
- code: string;
9
- explanation: string;
10
- }>;
11
- GenerateSysPrompt(entityInfo: EntityInfo, behaviorTypePrompt: string, behaviorType: EntityBehaviorTypeEntity): string;
12
- }
13
- export declare abstract class EntityBehaviorTypeCodeGeneratorBase {
14
- abstract GenerateCode(behaviorDescription: string, behaviorType: EntityBehaviorTypeEntity, entityInfo: EntityInfo): Promise<{
15
- code: string;
16
- explanation: string;
17
- }>;
18
- abstract GenerateSysPrompt(entityInfo: EntityInfo, behaviorType: EntityBehaviorTypeEntity): Promise<string>;
19
- abstract get Type(): 'Prompt' | 'Function';
20
- }
21
- export declare class ValidateEntityBehaviorCodeGenerator extends EntityBehaviorTypeCodeGeneratorBase {
22
- get Type(): 'Prompt' | 'Function';
23
- GenerateCode(behaviorDescription: string, behaviorType: EntityBehaviorTypeEntity, entityInfo: EntityInfo): Promise<{
24
- code: string;
25
- explanation: string;
26
- }>;
27
- GenerateSysPrompt(entityInfo: EntityInfo, behaviorType: EntityBehaviorTypeEntity): Promise<string>;
28
- }
29
- //# sourceMappingURL=EntityBehavior.server.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"EntityBehavior.server.d.ts","sourceRoot":"","sources":["../../src/entitySubclasses/EntityBehavior.server.ts"],"names":[],"mappings":"AACA,OAAO,EAAc,UAAU,EAAE,iBAAiB,EAAsB,MAAM,sBAAsB,CAAC;AACrG,OAAO,EAAE,qBAAqB,EAAE,4BAA4B,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAA;AAM7H,qBACa,2BAA4B,SAAQ,4BAA4B;IAKzE,SAAS,KAAK,YAAY,IAAI,MAAM,CAEnC;cAMe,UAAU,IAAI,OAAO,CAAC,qBAAqB,CAAC;IAatC,IAAI,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,OAAO,CAAC;IAwC5D,YAAY,CAAC,mBAAmB,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,EAAE,YAAY,EAAE,wBAAwB,EAAE,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAC,CAAC;IAkEzL,iBAAiB,CAAC,UAAU,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,EAAE,YAAY,EAAE,wBAAwB,GAAG,MAAM;CAsC/H;AAMD,8BAAsB,mCAAmC;aACrC,YAAY,CAAC,mBAAmB,EAAE,MAAM,EAAE,YAAY,EAAE,wBAAwB,EAAE,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAC,CAAC;aACvJ,iBAAiB,CAAC,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,wBAAwB,GAAG,OAAO,CAAC,MAAM,CAAC;IAClH,aAAoB,IAAI,IAAI,QAAQ,GAAG,UAAU,CAAC;CACrD;AAED,qBACa,mCAAoC,SAAQ,mCAAmC;IACxF,IAAW,IAAI,IAAI,QAAQ,GAAG,UAAU,CAEvC;IACY,YAAY,CAAC,mBAAmB,EAAE,MAAM,EAAE,YAAY,EAAE,wBAAwB,EAAE,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAC,CAAC;IAGvJ,iBAAiB,CAAC,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,wBAAwB,GAAG,OAAO,CAAC,MAAM,CAAC;CAyClH"}
@@ -1,213 +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
- Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.ValidateEntityBehaviorCodeGenerator = exports.EntityBehaviorTypeCodeGeneratorBase = exports.EntityBehaviorEntity_Server = void 0;
10
- const global_1 = require("@memberjunction/global");
11
- const core_1 = require("@memberjunction/core");
12
- const core_entities_1 = require("@memberjunction/core-entities");
13
- const ai_1 = require("@memberjunction/ai");
14
- const aiengine_1 = require("@memberjunction/aiengine");
15
- const ai_openai_1 = require("@memberjunction/ai-openai");
16
- (0, ai_openai_1.LoadOpenAILLM)();
17
- let EntityBehaviorEntity_Server = class EntityBehaviorEntity_Server extends core_entities_1.EntityBehaviorEntityExtended {
18
- get AIVendorName() {
19
- return 'OpenAI';
20
- }
21
- async GetAIModel() {
22
- await aiengine_1.AIEngine.Instance.Config(false, this.ContextCurrentUser);
23
- const models = aiengine_1.AIEngine.Models.filter(m => m.AIModelType.trim().toLowerCase() === 'llm' &&
24
- m.Vendor.trim().toLowerCase() === this.AIVendorName.trim().toLowerCase());
25
- models.sort((a, b) => b.PowerRank - a.PowerRank);
26
- return models[0];
27
- }
28
- async Save(options) {
29
- if (this.CodeGenerated && this.RegenerateCode) {
30
- const md = new core_1.Metadata();
31
- const ei = md.Entities.find(e => e.ID === this.EntityID);
32
- const bt = await md.GetEntityObject("Entity Behavior Types", this.ContextCurrentUser);
33
- await bt.Load(this.BehaviorTypeID);
34
- const codeGen = global_1.MJGlobal.Instance.ClassFactory.CreateInstance(EntityBehaviorTypeCodeGeneratorBase, bt.Name);
35
- if (!codeGen)
36
- throw new Error(`No code generator found for behavior type ${bt.Name}`);
37
- let result;
38
- if (codeGen.Type == 'Prompt') {
39
- const btPrompt = await codeGen.GenerateSysPrompt(ei, bt);
40
- result = await this.GenerateCode(this.Description, btPrompt, bt, ei);
41
- }
42
- else {
43
- result = await codeGen.GenerateCode(this.Description, bt, ei);
44
- }
45
- if (result) {
46
- this.Code = result.code;
47
- this.CodeExplanation = result.explanation;
48
- }
49
- else {
50
- this.Code = null;
51
- this.CodeExplanation = 'No code generated';
52
- }
53
- this.RegenerateCode = false;
54
- }
55
- return super.Save(options);
56
- }
57
- async GenerateCode(behaviorDescription, behaviorTypePrompt, behaviorType, entityInfo) {
58
- try {
59
- const model = await this.GetAIModel();
60
- const llm = global_1.MJGlobal.Instance.ClassFactory.CreateInstance(ai_1.BaseLLM, model.DriverClass, (0, ai_1.GetAIAPIKey)(model.DriverClass));
61
- const chatParams = {
62
- model: model.APINameOrName,
63
- messages: [
64
- {
65
- role: 'system',
66
- content: this.GenerateSysPrompt(entityInfo, behaviorTypePrompt, behaviorType)
67
- },
68
- {
69
- role: 'user',
70
- content: behaviorDescription,
71
- },
72
- ],
73
- };
74
- const result = await llm.ChatCompletion(chatParams);
75
- if (result && result.data) {
76
- const llmResponse = result.data.choices[0].message.content;
77
- if (llmResponse) {
78
- try {
79
- const cleansed = (0, global_1.CleanJSON)(llmResponse);
80
- if (!cleansed)
81
- throw new Error('Invalid JSON response from AI: ' + llmResponse);
82
- const parsed = JSON.parse(cleansed);
83
- if (parsed.code && parsed.code.length > 0) {
84
- const trimmed = parsed.code.trim();
85
- return {
86
- code: trimmed,
87
- explanation: parsed.explanation
88
- };
89
- }
90
- else if (parsed.code !== undefined && parsed.code !== null) {
91
- return {
92
- code: '',
93
- explanation: parsed.explanation
94
- };
95
- }
96
- else {
97
- throw new Error('Invalid response from AI, no code property found in response: ' + llmResponse);
98
- }
99
- }
100
- catch (e) {
101
- (0, core_1.LogError)(e);
102
- throw new Error('Error parsing JSON response from AI: ' + llmResponse);
103
- }
104
- }
105
- else
106
- throw new Error('Null response from AI');
107
- }
108
- else
109
- throw new Error('No result returned from AI');
110
- }
111
- catch (e) {
112
- (0, core_1.LogError)(e);
113
- throw e;
114
- }
115
- }
116
- GenerateSysPrompt(entityInfo, behaviorTypePrompt, behaviorType) {
117
- const prompt = `You are an expert in TypeScript coding and business applications. You take great pride in easy to read, commented, and BEAUTIFULLY formatted code.
118
- You will be provided a system administrator's request for how to handle a specific type of behavior for the ${entityInfo.Name} entity in our system.
119
-
120
- The type of behavior is ${behaviorType.Name} and is described as follows:
121
- <BEHAVIOR_SPECIFIC_INFO>
122
- ${behaviorTypePrompt}
123
- </BEHAVIOR_SPECIFIC_INFO>
124
-
125
- The next message, which will be a user message in the conversation, will contain the sys admin's requested behavior for this entity.
126
-
127
- Here is the entity's schema information. When generating code that use the getter/setter methods for fields inside the object instance make sure to use the CodeName for the related entity field which sometimes
128
- is different from the SQL Field Name if the SQL Field Name contains characters that are not valid in TypeScript variable names.
129
-
130
- ${entityInfo.Name} (${entityInfo.SchemaName}.${entityInfo.BaseView})
131
- ${entityInfo.Description ? `Description: ${entityInfo.Description}` : ''}
132
- Fields:
133
- ${entityInfo.Fields.map(f => {
134
- let ret = `${f.Name} (${f.Type}) (CodeName: ${f.CodeName})`;
135
- if (f.RelatedEntity) {
136
- ret += ` (fkey to ${f.RelatedEntityBaseView})`;
137
- }
138
- return ret;
139
- }).join(',')}
140
-
141
- <CRITICAL>
142
- I am a bot and can only understand JSON. Your response must be parsable into this type:
143
- const returnType = {
144
- code: string, // The typescript code you will create that will work in the context described above. MAKE SURE TO PRETTY FORMAT THIS WITH SPACE INDENTS AND LINE BREAKS IN THE CODE!
145
- explanation: string // an explanation for the system admin of how the code works and why it was written that way
146
- };
147
- </CRITICAL>
148
- **** REMEMBER **** I am a BOT, do not return anything other than JSON to me or I will choke on your response!
149
- `;
150
- return prompt;
151
- }
152
- };
153
- exports.EntityBehaviorEntity_Server = EntityBehaviorEntity_Server;
154
- exports.EntityBehaviorEntity_Server = EntityBehaviorEntity_Server = __decorate([
155
- (0, global_1.RegisterClass)(core_1.BaseEntity, 'Entity Behaviors', 3)
156
- ], EntityBehaviorEntity_Server);
157
- class EntityBehaviorTypeCodeGeneratorBase {
158
- }
159
- exports.EntityBehaviorTypeCodeGeneratorBase = EntityBehaviorTypeCodeGeneratorBase;
160
- let ValidateEntityBehaviorCodeGenerator = class ValidateEntityBehaviorCodeGenerator extends EntityBehaviorTypeCodeGeneratorBase {
161
- get Type() {
162
- return 'Prompt';
163
- }
164
- async GenerateCode(behaviorDescription, behaviorType, entityInfo) {
165
- throw new Error('Not implemented');
166
- }
167
- async GenerateSysPrompt(entityInfo, behaviorType) {
168
- return `
169
- Your job is to create TypeScript code that will be executed within a Validate() method in a TypeScript sub-class of BaseEntity.
170
- BaseEntity is an ORM style model entity that is being sub-classed for this entity specifically and we want to incorporate the logic for
171
- the Validate method requested into TypeScript code that we will insert into an override of the BaseClass Validate method. It is important that you
172
- call super.Validate() at some point in your code to incorporate the base class Validation.
173
-
174
- For example, you might define the Validate() function as follows, and in your generated code you would get rid of the comments I have below and replace with your own relevant comments.
175
-
176
- public Validate(): ValidationResult {
177
- const result = super.Validate();
178
-
179
- // The above super.Validate() may have returned a false or true Success property. Either way, do your custom
180
- // validation here to add to
181
-
182
- // ADD YOUR CUSTOM VALIDATION LOGIC HERE and update result.Success to false if anything fails and for each
183
- // failed valdiation condition add the ValidationErrorInfo to the Errors array of the result variable.
184
-
185
- return result;
186
- }
187
-
188
- Validate must return a ValidationResult as defined below. Make sure your return type code complies with these strong type definitions.
189
- class ValidationErrorInfo {
190
- Source: string
191
- Message: string
192
- Value: string
193
- Type: ValidationErrorType
194
- }
195
- const ValidationErrorType = {
196
- Failure: ''Failure'',
197
- Warning: ''Warning'',
198
- } as const;
199
-
200
- class ValidationResult {
201
- Success: boolean
202
- Errors: ValidationErrorInfo[] = []
203
- }
204
-
205
- <IMPORTANT>The code you must return is ONLY the Validate() function, do not return anything else inside the code property in the JSON object!</IMPORTANT>
206
- `;
207
- }
208
- };
209
- exports.ValidateEntityBehaviorCodeGenerator = ValidateEntityBehaviorCodeGenerator;
210
- exports.ValidateEntityBehaviorCodeGenerator = ValidateEntityBehaviorCodeGenerator = __decorate([
211
- (0, global_1.RegisterClass)(EntityBehaviorTypeCodeGeneratorBase, 'Validation', 1)
212
- ], ValidateEntityBehaviorCodeGenerator);
213
- //# sourceMappingURL=EntityBehavior.server.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"EntityBehavior.server.js","sourceRoot":"","sources":["../../src/entitySubclasses/EntityBehavior.server.ts"],"names":[],"mappings":"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"}
@@ -1,23 +0,0 @@
1
- /// <reference types="node" />
2
- import { EntitySaveOptions } from "@memberjunction/core";
3
- import { EntityPermissionEntity } from '@memberjunction/core-entities';
4
- export declare class EntityPermissionsEntity_Server extends EntityPermissionEntity {
5
- protected static _entityIDQueue: number[];
6
- protected static _lastModifiedTime: Date | null;
7
- protected static _submissionTimer: NodeJS.Timeout | null;
8
- protected static _submissionDelay: number;
9
- protected static _baseURL: string;
10
- protected static _port: number;
11
- protected static _apiEndpoint: string;
12
- protected static getSubmissionURL(): string;
13
- static get EntityIDQueue(): number[];
14
- static ClearQueue(): void;
15
- static AddToQueue(entityID: number): void;
16
- protected static CheckStartSubmissionTimer(): void;
17
- protected static StartSubmissionTimer(): void;
18
- protected static SubmitQueue(): Promise<void>;
19
- Save(options?: EntitySaveOptions): Promise<boolean>;
20
- Delete(): Promise<boolean>;
21
- }
22
- export declare function LoadEntityPermissionsServerSubClass(): void;
23
- //# sourceMappingURL=entityPermissions.server.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"entityPermissions.server.d.ts","sourceRoot":"","sources":["../../src/entitySubclasses/entityPermissions.server.ts"],"names":[],"mappings":";AACA,OAAO,EAAc,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAA;AAQtE,qBACa,8BAA+B,SAAQ,sBAAsB;IACtE,SAAS,CAAC,MAAM,CAAC,cAAc,EAAE,MAAM,EAAE,CAAM;IAC/C,SAAS,CAAC,MAAM,CAAC,iBAAiB,EAAE,IAAI,GAAG,IAAI,CAAQ;IACvD,SAAS,CAAC,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAAC,OAAO,GAAG,IAAI,CAAQ;IAChE,SAAS,CAAC,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAAgC;IACzE,SAAS,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAoB;IACrD,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAqB;IACnD,SAAS,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAA6B;IAGlE,SAAS,CAAC,MAAM,CAAC,gBAAgB,IAAI,MAAM;IAI3C,WAAkB,aAAa,IAAI,MAAM,EAAE,CAE1C;WAEa,UAAU,IAAI,IAAI;WAIlB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAOhD,SAAS,CAAC,MAAM,CAAC,yBAAyB,IAAI,IAAI;IAWlD,SAAS,CAAC,MAAM,CAAC,oBAAoB,IAAI,IAAI;qBAMtB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAgC1C,IAAI,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,OAAO,CAAC;IAQ7C,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC;CAS5C;AAED,wBAAgB,mCAAmC,SAElD"}