@memberjunction/server 1.8.1 → 2.1.1
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/CHANGELOG.json +130 -1
- package/CHANGELOG.md +29 -2
- package/package.json +31 -40
- package/src/apolloServer/index.ts +0 -1
- package/src/auth/newUsers.ts +4 -3
- package/src/context.ts +19 -27
- package/src/entitySubclasses/entityPermissions.server.ts +3 -3
- package/src/entitySubclasses/userViewEntity.server.ts +1 -1
- package/src/generated/generated.ts +9482 -8398
- package/src/generic/ResolverBase.ts +299 -172
- package/src/generic/RunViewResolver.ts +204 -14
- package/src/index.ts +18 -19
- package/src/resolvers/AskSkipResolver.ts +35 -35
- package/src/resolvers/ColorResolver.ts +3 -14
- package/src/resolvers/DatasetResolver.ts +4 -4
- package/src/resolvers/EntityCommunicationsResolver.ts +37 -15
- package/src/resolvers/FileCategoryResolver.ts +2 -2
- package/src/resolvers/FileResolver.ts +6 -4
- package/src/resolvers/MergeRecordsResolver.ts +3 -2
- package/src/resolvers/PotentialDuplicateRecordResolver.ts +48 -40
- package/src/resolvers/QueryResolver.ts +2 -2
- package/src/resolvers/ReportResolver.ts +6 -6
- package/src/resolvers/UserFavoriteResolver.ts +8 -8
- package/src/resolvers/UserResolver.ts +3 -1
- package/src/resolvers/UserViewResolver.ts +1 -1
- package/src/types.ts +21 -0
- package/tsconfig.json +3 -4
- package/dist/apolloServer/TransactionPlugin.d.ts +0 -4
- package/dist/apolloServer/TransactionPlugin.d.ts.map +0 -1
- package/dist/apolloServer/TransactionPlugin.js +0 -49
- package/dist/apolloServer/TransactionPlugin.js.map +0 -1
- package/dist/apolloServer/index.d.ts +0 -11
- package/dist/apolloServer/index.d.ts.map +0 -1
- package/dist/apolloServer/index.js +0 -27
- package/dist/apolloServer/index.js.map +0 -1
- package/dist/auth/exampleNewUserSubClass.d.ts +0 -6
- package/dist/auth/exampleNewUserSubClass.d.ts.map +0 -1
- package/dist/auth/exampleNewUserSubClass.js +0 -54
- package/dist/auth/exampleNewUserSubClass.js.map +0 -1
- package/dist/auth/index.d.ts +0 -30
- package/dist/auth/index.d.ts.map +0 -1
- package/dist/auth/index.js +0 -129
- package/dist/auth/index.js.map +0 -1
- package/dist/auth/newUsers.d.ts +0 -5
- package/dist/auth/newUsers.d.ts.map +0 -1
- package/dist/auth/newUsers.js +0 -66
- package/dist/auth/newUsers.js.map +0 -1
- package/dist/auth/tokenExpiredError.d.ts +0 -5
- package/dist/auth/tokenExpiredError.d.ts.map +0 -1
- package/dist/auth/tokenExpiredError.js +0 -16
- package/dist/auth/tokenExpiredError.js.map +0 -1
- package/dist/cache.d.ts +0 -3
- package/dist/cache.d.ts.map +0 -1
- package/dist/cache.js +0 -11
- package/dist/cache.js.map +0 -1
- package/dist/config.d.ts +0 -196
- package/dist/config.d.ts.map +0 -1
- package/dist/config.js +0 -72
- package/dist/config.js.map +0 -1
- package/dist/context.d.ts +0 -17
- package/dist/context.d.ts.map +0 -1
- package/dist/context.js +0 -114
- package/dist/context.js.map +0 -1
- package/dist/directives/Public.d.ts +0 -4
- package/dist/directives/Public.d.ts.map +0 -1
- package/dist/directives/Public.js +0 -34
- package/dist/directives/Public.js.map +0 -1
- package/dist/directives/index.d.ts +0 -2
- package/dist/directives/index.d.ts.map +0 -1
- package/dist/directives/index.js +0 -18
- package/dist/directives/index.js.map +0 -1
- package/dist/entitySubclasses/DuplicateRunEntity.server.d.ts +0 -6
- package/dist/entitySubclasses/DuplicateRunEntity.server.d.ts.map +0 -1
- package/dist/entitySubclasses/DuplicateRunEntity.server.js +0 -37
- package/dist/entitySubclasses/DuplicateRunEntity.server.js.map +0 -1
- package/dist/entitySubclasses/EntityBehavior.server.d.ts +0 -29
- package/dist/entitySubclasses/EntityBehavior.server.d.ts.map +0 -1
- package/dist/entitySubclasses/EntityBehavior.server.js +0 -213
- package/dist/entitySubclasses/EntityBehavior.server.js.map +0 -1
- package/dist/entitySubclasses/entityPermissions.server.d.ts +0 -23
- package/dist/entitySubclasses/entityPermissions.server.d.ts.map +0 -1
- package/dist/entitySubclasses/entityPermissions.server.js +0 -99
- package/dist/entitySubclasses/entityPermissions.server.js.map +0 -1
- package/dist/entitySubclasses/userViewEntity.server.d.ts +0 -13
- package/dist/entitySubclasses/userViewEntity.server.d.ts.map +0 -1
- package/dist/entitySubclasses/userViewEntity.server.js +0 -164
- package/dist/entitySubclasses/userViewEntity.server.js.map +0 -1
- package/dist/generated/generated.d.ts +0 -6482
- package/dist/generated/generated.d.ts.map +0 -1
- package/dist/generated/generated.js +0 -35073
- package/dist/generated/generated.js.map +0 -1
- package/dist/generic/DeleteOptionsInput.d.ts +0 -5
- package/dist/generic/DeleteOptionsInput.d.ts.map +0 -1
- package/dist/generic/DeleteOptionsInput.js +0 -28
- package/dist/generic/DeleteOptionsInput.js.map +0 -1
- package/dist/generic/KeyInputOutputTypes.d.ts +0 -16
- package/dist/generic/KeyInputOutputTypes.d.ts.map +0 -1
- package/dist/generic/KeyInputOutputTypes.js +0 -62
- package/dist/generic/KeyInputOutputTypes.js.map +0 -1
- package/dist/generic/KeyValuePairInput.d.ts +0 -5
- package/dist/generic/KeyValuePairInput.d.ts.map +0 -1
- package/dist/generic/KeyValuePairInput.js +0 -28
- package/dist/generic/KeyValuePairInput.js.map +0 -1
- package/dist/generic/PushStatusResolver.d.ts +0 -14
- package/dist/generic/PushStatusResolver.d.ts.map +0 -1
- package/dist/generic/PushStatusResolver.js +0 -58
- package/dist/generic/PushStatusResolver.js.map +0 -1
- package/dist/generic/ResolverBase.d.ts +0 -37
- package/dist/generic/ResolverBase.d.ts.map +0 -1
- package/dist/generic/ResolverBase.js +0 -468
- package/dist/generic/ResolverBase.js.map +0 -1
- package/dist/generic/RunViewResolver.d.ts +0 -88
- package/dist/generic/RunViewResolver.d.ts.map +0 -1
- package/dist/generic/RunViewResolver.js +0 -443
- package/dist/generic/RunViewResolver.js.map +0 -1
- package/dist/index.d.ts +0 -28
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -145
- package/dist/index.js.map +0 -1
- package/dist/orm.d.ts +0 -4
- package/dist/orm.d.ts.map +0 -1
- package/dist/orm.js +0 -34
- package/dist/orm.js.map +0 -1
- package/dist/resolvers/AskSkipResolver.d.ts +0 -54
- package/dist/resolvers/AskSkipResolver.d.ts.map +0 -1
- package/dist/resolvers/AskSkipResolver.js +0 -800
- package/dist/resolvers/AskSkipResolver.js.map +0 -1
- package/dist/resolvers/ColorResolver.d.ts +0 -22
- package/dist/resolvers/ColorResolver.d.ts.map +0 -1
- package/dist/resolvers/ColorResolver.js +0 -94
- package/dist/resolvers/ColorResolver.js.map +0 -1
- package/dist/resolvers/DatasetResolver.d.ts +0 -42
- package/dist/resolvers/DatasetResolver.d.ts.map +0 -1
- package/dist/resolvers/DatasetResolver.js +0 -168
- package/dist/resolvers/DatasetResolver.js.map +0 -1
- package/dist/resolvers/EntityCommunicationsResolver.d.ts +0 -49
- package/dist/resolvers/EntityCommunicationsResolver.d.ts.map +0 -1
- package/dist/resolvers/EntityCommunicationsResolver.js +0 -228
- package/dist/resolvers/EntityCommunicationsResolver.js.map +0 -1
- package/dist/resolvers/EntityRecordNameResolver.d.ts +0 -21
- package/dist/resolvers/EntityRecordNameResolver.d.ts.map +0 -1
- package/dist/resolvers/EntityRecordNameResolver.js +0 -113
- package/dist/resolvers/EntityRecordNameResolver.js.map +0 -1
- package/dist/resolvers/EntityResolver.d.ts +0 -6
- package/dist/resolvers/EntityResolver.d.ts.map +0 -1
- package/dist/resolvers/EntityResolver.js +0 -60
- package/dist/resolvers/EntityResolver.js.map +0 -1
- package/dist/resolvers/FileCategoryResolver.d.ts +0 -6
- package/dist/resolvers/FileCategoryResolver.d.ts.map +0 -1
- package/dist/resolvers/FileCategoryResolver.js +0 -65
- package/dist/resolvers/FileCategoryResolver.js.map +0 -1
- package/dist/resolvers/FileResolver.d.ts +0 -24
- package/dist/resolvers/FileResolver.d.ts.map +0 -1
- package/dist/resolvers/FileResolver.js +0 -162
- package/dist/resolvers/FileResolver.js.map +0 -1
- package/dist/resolvers/MergeRecordsResolver.d.ts +0 -59
- package/dist/resolvers/MergeRecordsResolver.d.ts.map +0 -1
- package/dist/resolvers/MergeRecordsResolver.js +0 -256
- package/dist/resolvers/MergeRecordsResolver.js.map +0 -1
- package/dist/resolvers/PotentialDuplicateRecordResolver.d.ts +0 -29
- package/dist/resolvers/PotentialDuplicateRecordResolver.d.ts.map +0 -1
- package/dist/resolvers/PotentialDuplicateRecordResolver.js +0 -127
- package/dist/resolvers/PotentialDuplicateRecordResolver.js.map +0 -1
- package/dist/resolvers/QueryResolver.d.ts +0 -13
- package/dist/resolvers/QueryResolver.d.ts.map +0 -1
- package/dist/resolvers/QueryResolver.js +0 -74
- package/dist/resolvers/QueryResolver.js.map +0 -1
- package/dist/resolvers/ReportResolver.d.ts +0 -20
- package/dist/resolvers/ReportResolver.d.ts.map +0 -1
- package/dist/resolvers/ReportResolver.js +0 -175
- package/dist/resolvers/ReportResolver.js.map +0 -1
- package/dist/resolvers/UserFavoriteResolver.d.ts +0 -42
- package/dist/resolvers/UserFavoriteResolver.d.ts.map +0 -1
- package/dist/resolvers/UserFavoriteResolver.js +0 -221
- package/dist/resolvers/UserFavoriteResolver.js.map +0 -1
- package/dist/resolvers/UserResolver.d.ts +0 -10
- package/dist/resolvers/UserResolver.d.ts.map +0 -1
- package/dist/resolvers/UserResolver.js +0 -72
- package/dist/resolvers/UserResolver.js.map +0 -1
- package/dist/resolvers/UserViewResolver.d.ts +0 -13
- package/dist/resolvers/UserViewResolver.d.ts.map +0 -1
- package/dist/resolvers/UserViewResolver.js +0 -102
- package/dist/resolvers/UserViewResolver.js.map +0 -1
- package/dist/types.d.ts +0 -17
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -3
- package/dist/types.js.map +0 -1
- package/dist/util.d.ts +0 -4
- package/dist/util.d.ts.map +0 -1
- package/dist/util.js +0 -89
- package/dist/util.js.map +0 -1
- package/src/entitySubclasses/EntityBehavior.server.ts +0 -241
package/dist/config.js
DELETED
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.loadConfig = exports.configInfo = exports.configFile = exports.mj_core_schema = exports.auth0ClientSecret = exports.auth0WebClientID = exports.auth0Domain = exports.___skipAPIOrgId = exports.___skipAPIurl = exports.userEmailMap = exports.websiteRunFromPackage = exports.enableIntrospection = exports.tenantID = exports.webClientID = exports.graphqlRootPath = exports.___codeGenAPISubmissionDelay = exports.___codeGenAPIPort = exports.___codeGenAPIURL = exports.graphqlPort = exports.dbTrustServerCertificate = exports.dbInstanceName = exports.dbDatabase = exports.dbPassword = exports.dbUsername = exports.dbPort = exports.dbHost = exports.nodeEnv = void 0;
|
|
7
|
-
const env_var_1 = __importDefault(require("env-var"));
|
|
8
|
-
const fs_1 = __importDefault(require("fs"));
|
|
9
|
-
const path_1 = __importDefault(require("path"));
|
|
10
|
-
const zod_1 = require("zod");
|
|
11
|
-
exports.nodeEnv = env_var_1.default.get('NODE_ENV').asString();
|
|
12
|
-
exports.dbHost = env_var_1.default.get('DB_HOST').required().asString();
|
|
13
|
-
exports.dbPort = env_var_1.default.get('DB_PORT').default('1433').asPortNumber();
|
|
14
|
-
exports.dbUsername = env_var_1.default.get('DB_USERNAME').required().asString();
|
|
15
|
-
exports.dbPassword = env_var_1.default.get('DB_PASSWORD').required().asString();
|
|
16
|
-
exports.dbDatabase = env_var_1.default.get('DB_DATABASE').required().asString();
|
|
17
|
-
exports.dbInstanceName = env_var_1.default.get('DB_INSTANCE_NAME').asString();
|
|
18
|
-
exports.dbTrustServerCertificate = env_var_1.default.get('DB_TRUST_SERVER_CERTIFICATE').asBool();
|
|
19
|
-
exports.graphqlPort = env_var_1.default.get('PORT').default('4000').asPortNumber();
|
|
20
|
-
exports.___codeGenAPIURL = env_var_1.default.get('CODEGEN_API_URL').asString();
|
|
21
|
-
exports.___codeGenAPIPort = env_var_1.default.get('CODEGEN_API_PORT').default('3999').asPortNumber();
|
|
22
|
-
exports.___codeGenAPISubmissionDelay = env_var_1.default.get('CODEGEN_API_SUBMISSION_DELAY').default(5000).asIntPositive();
|
|
23
|
-
exports.graphqlRootPath = env_var_1.default.get('ROOT_PATH').default('/').asString();
|
|
24
|
-
exports.webClientID = env_var_1.default.get('WEB_CLIENT_ID').asString();
|
|
25
|
-
exports.tenantID = env_var_1.default.get('TENANT_ID').asString();
|
|
26
|
-
exports.enableIntrospection = env_var_1.default.get('ENABLE_INTROSPECTION').default('false').asBool();
|
|
27
|
-
exports.websiteRunFromPackage = env_var_1.default.get('WEBSITE_RUN_FROM_PACKAGE').asIntPositive();
|
|
28
|
-
exports.userEmailMap = env_var_1.default.get('USER_EMAIL_MAP').default('{}').asJsonObject();
|
|
29
|
-
exports.___skipAPIurl = env_var_1.default.get('ASK_SKIP_API_URL').asString();
|
|
30
|
-
exports.___skipAPIOrgId = env_var_1.default.get('ASK_SKIP_ORGANIZATION_ID').asString();
|
|
31
|
-
exports.auth0Domain = env_var_1.default.get('AUTH0_DOMAIN').asString();
|
|
32
|
-
exports.auth0WebClientID = env_var_1.default.get('AUTH0_CLIENT_ID').asString();
|
|
33
|
-
exports.auth0ClientSecret = env_var_1.default.get('AUTH0_CLIENT_SECRET').asString();
|
|
34
|
-
exports.mj_core_schema = env_var_1.default.get('MJ_CORE_SCHEMA').asString();
|
|
35
|
-
exports.configFile = env_var_1.default.get('CONFIG_FILE').asString();
|
|
36
|
-
const userHandlingInfoSchema = zod_1.z.object({
|
|
37
|
-
autoCreateNewUsers: zod_1.z.boolean().optional().default(false),
|
|
38
|
-
newUserLimitedToAuthorizedDomains: zod_1.z.boolean().optional().default(false),
|
|
39
|
-
newUserAuthorizedDomains: zod_1.z.array(zod_1.z.string()).optional().default([]),
|
|
40
|
-
newUserRoles: zod_1.z.array(zod_1.z.string()).optional().default([]),
|
|
41
|
-
updateCacheWhenNotFound: zod_1.z.boolean().optional().default(false),
|
|
42
|
-
updateCacheWhenNotFoundDelay: zod_1.z.number().optional().default(30000),
|
|
43
|
-
contextUserForNewUserCreation: zod_1.z.string().optional().default(''),
|
|
44
|
-
});
|
|
45
|
-
const databaseSettingsInfoSchema = zod_1.z.object({
|
|
46
|
-
connectionTimeout: zod_1.z.number(),
|
|
47
|
-
requestTimeout: zod_1.z.number(),
|
|
48
|
-
metadataCacheRefreshInterval: zod_1.z.number(),
|
|
49
|
-
});
|
|
50
|
-
const viewingSystemInfoSchema = zod_1.z.object({
|
|
51
|
-
enableSmartFilters: zod_1.z.boolean().optional(),
|
|
52
|
-
});
|
|
53
|
-
const askSkipInfoSchema = zod_1.z.object({
|
|
54
|
-
organizationInfo: zod_1.z.string().optional(),
|
|
55
|
-
});
|
|
56
|
-
const configInfoSchema = zod_1.z.object({
|
|
57
|
-
userHandling: userHandlingInfoSchema,
|
|
58
|
-
databaseSettings: databaseSettingsInfoSchema,
|
|
59
|
-
viewingSystem: viewingSystemInfoSchema.optional(),
|
|
60
|
-
askSkip: askSkipInfoSchema.optional(),
|
|
61
|
-
});
|
|
62
|
-
exports.configInfo = loadConfig();
|
|
63
|
-
function loadConfig() {
|
|
64
|
-
const configPath = exports.configFile ?? path_1.default.resolve('config.json');
|
|
65
|
-
if (!fs_1.default.existsSync(configPath)) {
|
|
66
|
-
throw new Error(`Config file ${configPath} does not exist.`);
|
|
67
|
-
}
|
|
68
|
-
const configData = fs_1.default.readFileSync(configPath, 'utf-8');
|
|
69
|
-
return configInfoSchema.parse(JSON.parse(configData));
|
|
70
|
-
}
|
|
71
|
-
exports.loadConfig = loadConfig;
|
|
72
|
-
//# sourceMappingURL=config.js.map
|
package/dist/config.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/context.d.ts
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
|
-
import { IncomingMessage } from 'http';
|
|
3
|
-
import 'reflect-metadata';
|
|
4
|
-
import { Subject } from 'rxjs';
|
|
5
|
-
import { DataSource } from 'typeorm';
|
|
6
|
-
import { UserPayload } from './types';
|
|
7
|
-
export declare const getUserPayload: (bearerToken: string, sessionId: string, dataSource: DataSource, requestDomain?: string) => Promise<UserPayload>;
|
|
8
|
-
export declare const contextFunction: ({ setupComplete$, dataSource }: {
|
|
9
|
-
setupComplete$: Subject<unknown>;
|
|
10
|
-
dataSource: DataSource;
|
|
11
|
-
}) => ({ req }: {
|
|
12
|
-
req: IncomingMessage;
|
|
13
|
-
}) => Promise<{
|
|
14
|
-
dataSource: DataSource;
|
|
15
|
-
userPayload: UserPayload;
|
|
16
|
-
}>;
|
|
17
|
-
//# sourceMappingURL=context.d.ts.map
|
package/dist/context.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,MAAM,CAAC;AAGvC,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAkB,MAAM,MAAM,CAAC;AAE/C,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAIrC,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AA0BtC,eAAO,MAAM,cAAc,gBACZ,MAAM,iCAEP,UAAU,kBACN,MAAM,KACrB,QAAQ,WAAW,CAwDrB,CAAC;AAEF,eAAO,MAAM,eAAe,mCACO;IAAE,cAAc,EAAE,QAAQ,OAAO,CAAC,CAAC;IAAC,UAAU,EAAE,UAAU,CAAA;CAAE,eAC7E;IAAE,GAAG,EAAE,eAAe,CAAA;CAAE;;;EAiBvC,CAAC"}
|
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
|
package/dist/context.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"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"}
|
|
@@ -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 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/directives/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC"}
|
package/dist/directives/index.js
DELETED
|
@@ -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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"}
|