@memberjunction/server 0.9.161 → 0.9.162
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/build.log.json +3 -0
- package/dist/config.js +3 -1
- package/dist/config.js.map +1 -1
- package/dist/resolvers/AskSkipResolver.js +137 -66
- package/dist/resolvers/AskSkipResolver.js.map +1 -1
- package/package.json +2 -2
- package/src/config.ts +4 -0
- package/src/resolvers/AskSkipResolver.ts +151 -76
package/build.log.json
CHANGED
package/dist/config.js
CHANGED
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
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.userEmailMap = exports.websiteRunFromPackage = exports.enableIntrospection = exports.tenantID = exports.webClientID = exports.graphqlRootPath = exports.graphqlPort = exports.dbTrustServerCertificate = exports.dbInstanceName = exports.dbDatabase = exports.dbPassword = exports.dbUsername = exports.dbPort = exports.dbHost = exports.nodeEnv = void 0;
|
|
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.graphqlPort = exports.dbTrustServerCertificate = exports.dbInstanceName = exports.dbDatabase = exports.dbPassword = exports.dbUsername = exports.dbPort = exports.dbHost = exports.nodeEnv = void 0;
|
|
7
7
|
const env_var_1 = __importDefault(require("env-var"));
|
|
8
8
|
const fs_1 = __importDefault(require("fs"));
|
|
9
9
|
const path_1 = __importDefault(require("path"));
|
|
@@ -23,6 +23,8 @@ exports.tenantID = env_var_1.default.get('TENANT_ID').asString();
|
|
|
23
23
|
exports.enableIntrospection = env_var_1.default.get('ENABLE_INTROSPECTION').default('false').asBool();
|
|
24
24
|
exports.websiteRunFromPackage = env_var_1.default.get('WEBSITE_RUN_FROM_PACKAGE').asIntPositive();
|
|
25
25
|
exports.userEmailMap = env_var_1.default.get('USER_EMAIL_MAP').default('{}').asJsonObject();
|
|
26
|
+
exports.___skipAPIurl = env_var_1.default.get('ASK_SKIP_API_URL').required().asString();
|
|
27
|
+
exports.___skipAPIOrgId = env_var_1.default.get('ASK_SKIP_ORGANIZATION_ID').required().asString();
|
|
26
28
|
exports.auth0Domain = env_var_1.default.get('AUTH0_DOMAIN').asString();
|
|
27
29
|
exports.auth0WebClientID = env_var_1.default.get('AUTH0_CLIENT_ID').asString();
|
|
28
30
|
exports.auth0ClientSecret = env_var_1.default.get('AUTH0_CLIENT_SECRET').asString();
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -26,7 +26,18 @@ const zlib_1 = __importDefault(require("zlib"));
|
|
|
26
26
|
const util_1 = require("util");
|
|
27
27
|
const gzip = (0, util_1.promisify)(zlib_1.default.gzip);
|
|
28
28
|
const PushStatusResolver_1 = require("../generic/PushStatusResolver");
|
|
29
|
-
const
|
|
29
|
+
const config_1 = require("../config");
|
|
30
|
+
const type_graphql_2 = require("type-graphql");
|
|
31
|
+
var SkipResponsePhase;
|
|
32
|
+
(function (SkipResponsePhase) {
|
|
33
|
+
SkipResponsePhase["ClarifyingQuestion"] = "clarifying_question";
|
|
34
|
+
SkipResponsePhase["DataRequest"] = "data_request";
|
|
35
|
+
SkipResponsePhase["AnalysisComplete"] = "analysis_complete";
|
|
36
|
+
})(SkipResponsePhase || (SkipResponsePhase = {}));
|
|
37
|
+
(0, type_graphql_2.registerEnumType)(SkipResponsePhase, {
|
|
38
|
+
name: "SkipResponsePhase",
|
|
39
|
+
description: "The phase of the respons: clarifying_question, data_request, or analysis_complete",
|
|
40
|
+
});
|
|
30
41
|
let AskSkipResultType = class AskSkipResultType {
|
|
31
42
|
};
|
|
32
43
|
exports.AskSkipResultType = AskSkipResultType;
|
|
@@ -38,6 +49,10 @@ __decorate([
|
|
|
38
49
|
(0, type_graphql_1.Field)(() => String),
|
|
39
50
|
__metadata("design:type", String)
|
|
40
51
|
], AskSkipResultType.prototype, "Status", void 0);
|
|
52
|
+
__decorate([
|
|
53
|
+
(0, type_graphql_1.Field)(() => SkipResponsePhase),
|
|
54
|
+
__metadata("design:type", String)
|
|
55
|
+
], AskSkipResultType.prototype, "ResponsePhase", void 0);
|
|
41
56
|
__decorate([
|
|
42
57
|
(0, type_graphql_1.Field)(() => String),
|
|
43
58
|
__metadata("design:type", String)
|
|
@@ -87,7 +102,7 @@ let AskSkipResolver = AskSkipResolver_1 = class AskSkipResolver {
|
|
|
87
102
|
convoDetailEntity.Role = 'User';
|
|
88
103
|
convoDetailEntity.Set('Sequence', 1);
|
|
89
104
|
await convoDetailEntity.Save();
|
|
90
|
-
const OrganizationId =
|
|
105
|
+
const OrganizationId = config_1.___skipAPIOrgId;
|
|
91
106
|
const dataContext = new skip_types_1.SkipDataContext();
|
|
92
107
|
dataContext.Items.push({
|
|
93
108
|
Type: 'view',
|
|
@@ -119,7 +134,7 @@ let AskSkipResolver = AskSkipResolver_1 = class AskSkipResolver {
|
|
|
119
134
|
}
|
|
120
135
|
async HandleSkipRequest(input, UserQuestion, user, dataSource, ConversationId, userPayload, pubSub, md, convoEntity, convoDetailEntity) {
|
|
121
136
|
const compressedPayload = await gzip(Buffer.from(JSON.stringify(input)));
|
|
122
|
-
const response = await axios_1.default.post(___skipAPIurl, compressedPayload, {
|
|
137
|
+
const response = await axios_1.default.post(config_1.___skipAPIurl, compressedPayload, {
|
|
123
138
|
headers: {
|
|
124
139
|
'Content-Type': 'application/json',
|
|
125
140
|
'Content-Encoding': 'gzip'
|
|
@@ -127,42 +142,15 @@ let AskSkipResolver = AskSkipResolver_1 = class AskSkipResolver {
|
|
|
127
142
|
});
|
|
128
143
|
if (response.status === 200) {
|
|
129
144
|
const apiResponse = response.data;
|
|
130
|
-
|
|
131
|
-
switch (apiResponse.responsePhase) {
|
|
132
|
-
case 'data_request':
|
|
133
|
-
sUserMessage = 'We need to gather some more data, I will do that next and update you soon.';
|
|
134
|
-
break;
|
|
135
|
-
case 'analysis_complete':
|
|
136
|
-
sUserMessage = 'I have completed the analysis, the results will be available momentarily.';
|
|
137
|
-
break;
|
|
138
|
-
case 'clarifying_question':
|
|
139
|
-
sUserMessage = 'I have a clarifying question for you, please see review our chat so you can provide me a little more info.';
|
|
140
|
-
break;
|
|
141
|
-
}
|
|
142
|
-
pubSub.publish(PushStatusResolver_1.PUSH_STATUS_UPDATES_TOPIC, {
|
|
143
|
-
message: JSON.stringify({
|
|
144
|
-
type: 'AskSkip',
|
|
145
|
-
status: 'OK',
|
|
146
|
-
message: sUserMessage,
|
|
147
|
-
}),
|
|
148
|
-
sessionId: userPayload.sessionId,
|
|
149
|
-
});
|
|
145
|
+
this.PublishApiResponseUserUpdateMessage(apiResponse, userPayload, pubSub);
|
|
150
146
|
if (apiResponse.responsePhase === 'data_request') {
|
|
151
147
|
return await this.HandleDataRequestPhase(input, apiResponse, UserQuestion, user, dataSource, ConversationId, userPayload, pubSub, convoEntity, convoDetailEntity);
|
|
152
148
|
}
|
|
153
149
|
else if (apiResponse.responsePhase === 'clarifying_question') {
|
|
154
|
-
|
|
150
|
+
return await this.HandleClarifyingQuestionPhase(input, apiResponse, UserQuestion, user, dataSource, ConversationId, userPayload, pubSub, convoEntity, convoDetailEntity);
|
|
155
151
|
}
|
|
156
152
|
else {
|
|
157
|
-
|
|
158
|
-
return {
|
|
159
|
-
Success: true,
|
|
160
|
-
Status: 'OK',
|
|
161
|
-
ConversationId: ConversationId,
|
|
162
|
-
UserMessageConversationDetailId: convoDetailEntity.ID,
|
|
163
|
-
AIMessageConversationDetailId: AIMessageConversationDetailID,
|
|
164
|
-
Result: JSON.stringify(response.data)
|
|
165
|
-
};
|
|
153
|
+
return await this.HandleAnalysisComplete(input, apiResponse, UserQuestion, user, dataSource, ConversationId, userPayload, pubSub, convoEntity, convoDetailEntity);
|
|
166
154
|
}
|
|
167
155
|
}
|
|
168
156
|
else {
|
|
@@ -178,53 +166,136 @@ let AskSkipResolver = AskSkipResolver_1 = class AskSkipResolver {
|
|
|
178
166
|
Success: false,
|
|
179
167
|
Status: 'Error',
|
|
180
168
|
Result: `User Question ${UserQuestion} didn't work!`,
|
|
169
|
+
ResponsePhase: SkipResponsePhase.AnalysisComplete,
|
|
181
170
|
ConversationId: ConversationId,
|
|
182
171
|
UserMessageConversationDetailId: 0,
|
|
183
172
|
AIMessageConversationDetailId: 0,
|
|
184
173
|
};
|
|
185
174
|
}
|
|
186
175
|
}
|
|
176
|
+
async PublishApiResponseUserUpdateMessage(apiResponse, userPayload, pubSub) {
|
|
177
|
+
let sUserMessage = '';
|
|
178
|
+
switch (apiResponse.responsePhase) {
|
|
179
|
+
case 'data_request':
|
|
180
|
+
sUserMessage = 'We need to gather some more data, I will do that next and update you soon.';
|
|
181
|
+
break;
|
|
182
|
+
case 'analysis_complete':
|
|
183
|
+
sUserMessage = 'I have completed the analysis, the results will be available momentarily.';
|
|
184
|
+
break;
|
|
185
|
+
case 'clarifying_question':
|
|
186
|
+
sUserMessage = 'I have a clarifying question for you, please see review our chat so you can provide me a little more info.';
|
|
187
|
+
break;
|
|
188
|
+
}
|
|
189
|
+
pubSub.publish(PushStatusResolver_1.PUSH_STATUS_UPDATES_TOPIC, {
|
|
190
|
+
message: JSON.stringify({
|
|
191
|
+
type: 'AskSkip',
|
|
192
|
+
status: 'OK',
|
|
193
|
+
message: sUserMessage,
|
|
194
|
+
}),
|
|
195
|
+
sessionId: userPayload.sessionId,
|
|
196
|
+
});
|
|
197
|
+
}
|
|
198
|
+
async HandleAnalysisComplete(apiRequest, apiResponse, UserQuestion, user, dataSource, ConversationId, userPayload, pubSub, convoEntity, convoDetailEntity) {
|
|
199
|
+
const md = new core_1.Metadata();
|
|
200
|
+
const { AIMessageConversationDetailID } = await this.FinishConversationAndNotifyUser(apiResponse, md, user, convoEntity, pubSub, userPayload);
|
|
201
|
+
return {
|
|
202
|
+
Success: true,
|
|
203
|
+
Status: 'OK',
|
|
204
|
+
ResponsePhase: SkipResponsePhase.AnalysisComplete,
|
|
205
|
+
ConversationId: ConversationId,
|
|
206
|
+
UserMessageConversationDetailId: convoDetailEntity.ID,
|
|
207
|
+
AIMessageConversationDetailId: AIMessageConversationDetailID,
|
|
208
|
+
Result: JSON.stringify(apiResponse)
|
|
209
|
+
};
|
|
210
|
+
}
|
|
211
|
+
async HandleClarifyingQuestionPhase(apiRequest, apiResponse, UserQuestion, user, dataSource, ConversationId, userPayload, pubSub, convoEntity, convoDetailEntity) {
|
|
212
|
+
const md = new core_1.Metadata();
|
|
213
|
+
const convoDetailEntityAI = await md.GetEntityObject('Conversation Details', user);
|
|
214
|
+
convoDetailEntityAI.NewRecord();
|
|
215
|
+
convoDetailEntityAI.ConversationID = ConversationId;
|
|
216
|
+
convoDetailEntityAI.Message = apiResponse.clarifyingQuestion;
|
|
217
|
+
convoDetailEntityAI.Role = 'AI';
|
|
218
|
+
if (await convoDetailEntityAI.Save()) {
|
|
219
|
+
return {
|
|
220
|
+
Success: true,
|
|
221
|
+
Status: 'OK',
|
|
222
|
+
ResponsePhase: SkipResponsePhase.ClarifyingQuestion,
|
|
223
|
+
ConversationId: ConversationId,
|
|
224
|
+
UserMessageConversationDetailId: convoDetailEntity.ID,
|
|
225
|
+
AIMessageConversationDetailId: convoDetailEntityAI.ID,
|
|
226
|
+
Result: JSON.stringify(apiResponse)
|
|
227
|
+
};
|
|
228
|
+
}
|
|
229
|
+
else {
|
|
230
|
+
return {
|
|
231
|
+
Success: false,
|
|
232
|
+
Status: 'Error',
|
|
233
|
+
ResponsePhase: SkipResponsePhase.ClarifyingQuestion,
|
|
234
|
+
ConversationId: ConversationId,
|
|
235
|
+
UserMessageConversationDetailId: convoDetailEntity.ID,
|
|
236
|
+
AIMessageConversationDetailId: 0,
|
|
237
|
+
Result: JSON.stringify(apiResponse)
|
|
238
|
+
};
|
|
239
|
+
}
|
|
240
|
+
}
|
|
187
241
|
async HandleDataRequestPhase(apiRequest, apiResponse, UserQuestion, user, dataSource, ConversationId, userPayload, pubSub, convoEntity, convoDetailEntity) {
|
|
188
242
|
try {
|
|
189
243
|
const md = new core_1.Metadata();
|
|
244
|
+
const executionErrors = [];
|
|
190
245
|
for (const dr of apiResponse.dataRequest) {
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
246
|
+
try {
|
|
247
|
+
switch (dr.type) {
|
|
248
|
+
case "sql":
|
|
249
|
+
const sql = dr.text;
|
|
250
|
+
const result = await dataSource.query(sql);
|
|
251
|
+
if (!result)
|
|
252
|
+
throw new Error(`Error running SQL: ${sql}`);
|
|
253
|
+
const item = new skip_types_1.SkipDataContextItem();
|
|
254
|
+
item.Type = 'sql';
|
|
255
|
+
item.Data = result;
|
|
256
|
+
item.RecordName = dr.text;
|
|
257
|
+
item.AdditionalDescription = dr.description;
|
|
258
|
+
apiRequest.dataContext.Items.push(item);
|
|
259
|
+
break;
|
|
260
|
+
case "stored_query":
|
|
261
|
+
const queryName = dr.text;
|
|
262
|
+
const query = md.Queries.find((q) => q.Name === queryName);
|
|
263
|
+
if (query) {
|
|
264
|
+
const rq = new core_1.RunQuery();
|
|
265
|
+
const result = await rq.RunQuery({ QueryID: query.ID }, user);
|
|
266
|
+
if (result && result.Success) {
|
|
267
|
+
const item = new skip_types_1.SkipDataContextItem();
|
|
268
|
+
item.Type = 'query';
|
|
269
|
+
item.Data = result.Results;
|
|
270
|
+
item.RecordID = query.ID;
|
|
271
|
+
item.RecordName = query.Name;
|
|
272
|
+
item.AdditionalDescription = dr.description;
|
|
273
|
+
apiRequest.dataContext.Items.push(item);
|
|
274
|
+
}
|
|
275
|
+
else
|
|
276
|
+
throw new Error(`Error running query ${queryName}`);
|
|
218
277
|
}
|
|
219
278
|
else
|
|
220
|
-
throw new Error(`
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
279
|
+
throw new Error(`Query ${queryName} not found.`);
|
|
280
|
+
break;
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
catch (e) {
|
|
284
|
+
(0, core_1.LogError)(e);
|
|
285
|
+
executionErrors.push({ error: e, dataRequest: dr });
|
|
225
286
|
}
|
|
226
287
|
}
|
|
227
|
-
|
|
288
|
+
if (executionErrors.length > 0) {
|
|
289
|
+
(0, core_1.LogStatus)(`Execution errors for Skip data request occured, sending those errors back to the Skip API to get new instructions.`);
|
|
290
|
+
apiRequest.requestPhase = 'data_gathering_failure';
|
|
291
|
+
apiRequest.messages.push({
|
|
292
|
+
content: 'I had some trouble gathering the data, please see the chat for more details.',
|
|
293
|
+
role: 'user'
|
|
294
|
+
});
|
|
295
|
+
}
|
|
296
|
+
else {
|
|
297
|
+
apiRequest.requestPhase = 'data_gathering_response';
|
|
298
|
+
}
|
|
228
299
|
return this.HandleSkipRequest(apiRequest, UserQuestion, user, dataSource, ConversationId, userPayload, pubSub, md, convoEntity, convoDetailEntity);
|
|
229
300
|
}
|
|
230
301
|
catch (e) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AskSkipResolver.js","sourceRoot":"","sources":["../../src/resolvers/AskSkipResolver.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AskSkipResolver.js","sourceRoot":"","sources":["../../src/resolvers/AskSkipResolver.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AAAA,+CAAuG;AACvG,+CAAkH;AAElH,mFAAmE;AACnE,2DAAgO;AAChO,kDAA0B;AAC1B,gDAAwB;AACxB,+BAAiC;AAEjC,MAAM,IAAI,GAAG,IAAA,gBAAS,EAAC,cAAI,CAAC,IAAI,CAAC,CAAC;AAElC,sEAA0E;AAG1E,sCAA2D;AAG3D,+CAAgD;AAGhD,IAAK,iBAIJ;AAJD,WAAK,iBAAiB;IACpB,+DAA0C,CAAA;IAC1C,iDAA4B,CAAA;IAC5B,2DAAsC,CAAA;AACxC,CAAC,EAJI,iBAAiB,KAAjB,iBAAiB,QAIrB;AAED,IAAA,+BAAgB,EAAC,iBAAiB,EAAE;IAClC,IAAI,EAAE,mBAAmB;IACzB,WAAW,EAAE,mFAAmF;CACjG,CAAC,CAAC;AAII,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;CAqB7B,CAAA;AArBY,8CAAiB;AAE5B;IADC,IAAA,oBAAK,EAAC,GAAG,EAAE,CAAC,OAAO,CAAC;;kDACJ;AAGjB;IADC,IAAA,oBAAK,EAAC,GAAG,EAAE,CAAC,MAAM,CAAC;;iDACL;AAGf;IADC,IAAA,oBAAK,EAAC,GAAG,EAAE,CAAC,iBAAiB,CAAC;;wDACE;AAGjC;IADC,IAAA,oBAAK,EAAC,GAAG,EAAE,CAAC,MAAM,CAAC;;iDACL;AAGf;IADC,IAAA,oBAAK,EAAC,GAAG,EAAE,CAAC,kBAAG,CAAC;;yDACM;AAGvB;IADC,IAAA,oBAAK,EAAC,GAAG,EAAE,CAAC,kBAAG,CAAC;;0EACuB;AAGxC;IADC,IAAA,oBAAK,EAAC,GAAG,EAAE,CAAC,kBAAG,CAAC;;wEACqB;4BApB3B,iBAAiB;IAD7B,IAAA,yBAAU,GAAE;GACA,iBAAiB,CAqB7B;AAIM,IAAM,eAAe,uBAArB,MAAM,eAAe;IAKpB,AAAN,KAAK,CAAC,2BAA2B,CACI,YAAoB,EAC7B,MAAc,EACN,cAAsB,EACjD,EAAE,UAAU,EAAE,WAAW,EAAc,EACpC,MAAoB;QAE9B,MAAM,EAAE,GAAG,IAAI,eAAQ,EAAE,CAAC;QAC1B,MAAM,IAAI,GAAG,kCAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,WAAW,CAAC,KAAK,CAAC,CAAC;QACjF,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,QAAQ,WAAW,CAAC,KAAK,yBAAyB,CAAC,CAAC;QAE/E,MAAM,WAAW,GAAuB,MAAM,EAAE,CAAC,eAAe,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;QACxF,IAAI,CAAC,cAAc,IAAI,cAAc,IAAI,CAAC,EAAE,CAAC;YAE3C,WAAW,CAAC,SAAS,EAAE,CAAC;YACxB,IAAI,IAAI,EAAE,CAAC;gBACT,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC;gBAC7B,WAAW,CAAC,IAAI,GAAG,iBAAe,CAAC,mBAAmB,CAAC;gBACvD,IAAI,MAAM,WAAW,CAAC,IAAI,EAAE;oBAAE,cAAc,GAAG,WAAW,CAAC,EAAE,CAAC;;oBACzD,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;YAC7D,CAAC;;gBAAM,MAAM,IAAI,KAAK,CAAC,QAAQ,WAAW,CAAC,KAAK,yBAAyB,CAAC,CAAC;QAC7E,CAAC;aAAM,CAAC;YACN,MAAM,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACzC,CAAC;QAGD,MAAM,iBAAiB,GAAG,MAAM,EAAE,CAAC,eAAe,CAA2B,sBAAsB,EAAE,IAAI,CAAC,CAAC;QAC3G,iBAAiB,CAAC,SAAS,EAAE,CAAC;QAC9B,iBAAiB,CAAC,cAAc,GAAG,cAAc,CAAC;QAClD,iBAAiB,CAAC,OAAO,GAAG,YAAY,CAAC;QACzC,iBAAiB,CAAC,IAAI,GAAG,MAAM,CAAC;QAChC,iBAAiB,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;QACrC,MAAM,iBAAiB,CAAC,IAAI,EAAE,CAAC;QAG/B,MAAM,cAAc,GAAG,wBAAe,CAAC;QACvC,MAAM,WAAW,GAAoB,IAAI,4BAAe,EAAE,CAAC;QAC3D,WAAW,CAAC,KAAK,CAAC,IAAI,CACpB;YACE,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,MAAM;YAChB,IAAI,EAAE,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC;SACpB,CACzB,CAAC;QAEF,MAAM,QAAQ,GAAkB;YAC9B;gBACE,OAAO,EAAE,YAAY;gBACrB,IAAI,EAAE,MAAM;aACb;SACF,CAAC;QAEF,MAAM,KAAK,GAAmB;YACd,QAAQ,EAAE,QAAQ;YAClB,cAAc,EAAE,cAAc,CAAC,QAAQ,EAAE;YACzC,WAAW,EAAE,WAAW;YACxB,cAAc,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/E,YAAY,EAAE,iBAAiB;SAChC,CAAC;QAEhB,MAAM,CAAC,OAAO,CAAC,8CAAyB,EAAE;YACxC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC;gBACtB,IAAI,EAAE,SAAS;gBACf,MAAM,EAAE,IAAI;gBACZ,OAAO,EAAE,qEAAqE;aAC/E,CAAC;YACF,SAAS,EAAE,WAAW,CAAC,SAAS;SACjC,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,WAAW,EAAE,iBAAiB,CAAC,CAAC;IAChJ,CAAC;IAGS,KAAK,CAAC,iBAAiB,CAAC,KAAqB,EAAE,YAAoB,EAAE,IAAc,EAAE,UAAsB,EACnF,cAAsB,EAAE,WAAwB,EAAE,MAAoB,EAAE,EAAY,EACpF,WAA+B,EAAE,iBAA2C;QAE5G,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAGzE,MAAM,QAAQ,GAAG,MAAM,eAAK,CAAC,IAAI,CAAC,sBAAa,EAAE,iBAAiB,EAAE;YAClE,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,kBAAkB,EAAE,MAAM;aAC3B;SACF,CAAC,CAAC;QAQH,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC5B,MAAM,WAAW,GAAoB,QAAQ,CAAC,IAAI,CAAC;YACnD,IAAI,CAAC,mCAAmC,CAAC,WAAW,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;YAG3E,IAAI,WAAW,CAAC,aAAa,KAAK,cAAc,EAAE,CAAC;gBACjD,OAAO,MAAM,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAA8B,WAAW,EAAE,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,iBAAiB,CAAC,CAAC;YAChM,CAAC;iBACI,IAAI,WAAW,CAAC,aAAa,KAAK,qBAAqB,EAAE,CAAC;gBAE7D,OAAO,MAAM,IAAI,CAAC,6BAA6B,CAAC,KAAK,EAAqC,WAAW,EAAE,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,iBAAiB,CAAC,CAAC;YAC9M,CAAC;iBACI,CAAC;gBACJ,OAAO,MAAM,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAmC,WAAW,EAAE,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,iBAAiB,CAAC,CAAC;YACrM,CAAC;QACH,CAAC;aACI,CAAC;YACJ,MAAM,CAAC,OAAO,CAAC,8CAAyB,EAAE;gBACxC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC;oBACtB,IAAI,EAAE,SAAS;oBACf,MAAM,EAAE,OAAO;oBACf,OAAO,EAAE,kGAAkG;iBAC5G,CAAC;gBACF,SAAS,EAAE,WAAW,CAAC,SAAS;aACjC,CAAC,CAAC;YAEH,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,MAAM,EAAE,OAAO;gBACf,MAAM,EAAE,iBAAiB,YAAY,eAAe;gBACpD,aAAa,EAAE,iBAAiB,CAAC,gBAAgB;gBACjD,cAAc,EAAE,cAAc;gBAC9B,+BAA+B,EAAE,CAAC;gBAClC,6BAA6B,EAAE,CAAC;aACjC,CAAC;QACJ,CAAC;IACH,CAAC;IAES,KAAK,CAAC,mCAAmC,CAAC,WAA4B,EAAE,WAAwB,EAAE,MAAoB;QAC9H,IAAI,YAAY,GAAW,EAAE,CAAC;QAC9B,QAAQ,WAAW,CAAC,aAAa,EAAE,CAAC;YAClC,KAAK,cAAc;gBACjB,YAAY,GAAG,4EAA4E,CAAC;gBAC5F,MAAM;YACR,KAAK,mBAAmB;gBACtB,YAAY,GAAG,2EAA2E,CAAC;gBAC3F,MAAM;YACR,KAAK,qBAAqB;gBACxB,YAAY,GAAG,4GAA4G,CAAC;gBAC5H,MAAM;QACV,CAAC;QAGD,MAAM,CAAC,OAAO,CAAC,8CAAyB,EAAE;YACxC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC;gBACtB,IAAI,EAAE,SAAS;gBACf,MAAM,EAAE,IAAI;gBACZ,OAAO,EAAE,YAAY;aACtB,CAAC;YACF,SAAS,EAAE,WAAW,CAAC,SAAS;SACjC,CAAC,CAAC;IACL,CAAC;IAES,KAAK,CAAC,sBAAsB,CAAC,UAA0B,EAAE,WAA4C,EAAE,YAAoB,EAAE,IAAc,EAAE,UAAsB,EACtI,cAAsB,EAAE,WAAwB,EAAE,MAAoB,EAAE,WAA+B,EAAE,iBAA2C;QAGrL,MAAM,EAAE,GAAG,IAAI,eAAQ,EAAE,CAAC;QAC1B,MAAM,EAAC,6BAA6B,EAAC,GAAG,MAAM,IAAI,CAAC,+BAA+B,CAAC,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;QAE5I,OAAO;YACL,OAAO,EAAE,IAAI;YACb,MAAM,EAAE,IAAI;YACZ,aAAa,EAAE,iBAAiB,CAAC,gBAAgB;YACjD,cAAc,EAAE,cAAc;YAC9B,+BAA+B,EAAE,iBAAiB,CAAC,EAAE;YACrD,6BAA6B,EAAE,6BAA6B;YAC5D,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;SACpC,CAAC;IACR,CAAC;IAES,KAAK,CAAC,6BAA6B,CAAC,UAA0B,EAAE,WAA8C,EAAE,YAAoB,EAAE,IAAc,EAAE,UAAsB,EACxI,cAAsB,EAAE,WAAwB,EAAE,MAAoB,EAAE,WAA+B,EAAE,iBAA2C;QAEhM,MAAM,EAAE,GAAG,IAAI,eAAQ,EAAE,CAAC;QAC1B,MAAM,mBAAmB,GAA6B,MAAM,EAAE,CAAC,eAAe,CAAC,sBAAsB,EAAE,IAAI,CAAC,CAAC;QAC7G,mBAAmB,CAAC,SAAS,EAAE,CAAC;QAChC,mBAAmB,CAAC,cAAc,GAAG,cAAc,CAAC;QACpD,mBAAmB,CAAC,OAAO,GAAG,WAAW,CAAC,kBAAkB,CAAC;QAC7D,mBAAmB,CAAC,IAAI,GAAG,IAAI,CAAC;QAChC,IAAI,MAAM,mBAAmB,CAAC,IAAI,EAAE,EAAE,CAAC;YACrC,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,IAAI;gBACZ,aAAa,EAAE,iBAAiB,CAAC,kBAAkB;gBACnD,cAAc,EAAE,cAAc;gBAC9B,+BAA+B,EAAE,iBAAiB,CAAC,EAAE;gBACrD,6BAA6B,EAAE,mBAAmB,CAAC,EAAE;gBACrD,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;aACpC,CAAC;QACJ,CAAC;aACI,CAAC;YACJ,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,MAAM,EAAE,OAAO;gBACf,aAAa,EAAE,iBAAiB,CAAC,kBAAkB;gBACnD,cAAc,EAAE,cAAc;gBAC9B,+BAA+B,EAAE,iBAAiB,CAAC,EAAE;gBACrD,6BAA6B,EAAE,CAAC;gBAChC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;aACpC,CAAC;QACJ,CAAC;IACH,CAAC;IAES,KAAK,CAAC,sBAAsB,CAAC,UAA0B,EAAE,WAAuC,EAAE,YAAoB,EAAE,IAAc,EAAE,UAAsB,EACjI,cAAsB,EAAE,WAAwB,EAAE,MAAoB,EAAE,WAA+B,EAAE,iBAA2C;QAEzL,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,IAAI,eAAQ,EAAE,CAAC;YAC1B,MAAM,eAAe,GAAG,EAAE,CAAC;YAE3B,KAAK,MAAM,EAAE,IAAI,WAAW,CAAC,WAAW,EAAE,CAAC;gBACzC,IAAI,CAAC;oBACH,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;wBAChB,KAAK,KAAK;4BACR,MAAM,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC;4BACpB,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;4BAC3C,IAAI,CAAC,MAAM;gCACT,MAAM,IAAI,KAAK,CAAC,sBAAsB,GAAG,EAAE,CAAC,CAAC;4BAE/C,MAAM,IAAI,GAAG,IAAI,gCAAmB,EAAE,CAAC;4BACvC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;4BAClB,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC;4BACnB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC;4BAC1B,IAAI,CAAC,qBAAqB,GAAG,EAAE,CAAC,WAAW,CAAC;4BAC5C,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;4BACxC,MAAM;wBACR,KAAK,cAAc;4BACjB,MAAM,SAAS,GAAG,EAAE,CAAC,IAAI,CAAC;4BAC1B,MAAM,KAAK,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;4BAC3D,IAAI,KAAK,EAAE,CAAC;gCACV,MAAM,EAAE,GAAG,IAAI,eAAQ,EAAE,CAAC;gCAC1B,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAC,OAAO,EAAE,KAAK,CAAC,EAAE,EAAC,EAAE,IAAI,CAAC,CAAA;gCAC3D,IAAI,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;oCAC7B,MAAM,IAAI,GAAG,IAAI,gCAAmB,EAAE,CAAC;oCACvC,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC;oCACpB,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC;oCAC3B,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,EAAE,CAAC;oCACzB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC;oCAC7B,IAAI,CAAC,qBAAqB,GAAG,EAAE,CAAC,WAAW,CAAC;oCAC5C,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gCAC1C,CAAC;;oCAEC,MAAM,IAAI,KAAK,CAAC,uBAAuB,SAAS,EAAE,CAAC,CAAC;4BACxD,CAAC;;gCAEC,MAAM,IAAI,KAAK,CAAC,SAAS,SAAS,aAAa,CAAC,CAAC;4BACnD,MAAM;oBACV,CAAC;gBACH,CAAC;gBACD,OAAO,CAAC,EAAE,CAAC;oBACT,IAAA,eAAQ,EAAC,CAAC,CAAC,CAAC;oBACZ,eAAe,CAAC,IAAI,CAAC,EAAC,KAAK,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,EAAC,CAAC,CAAC;gBACpD,CAAC;YACH,CAAC;YAED,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC/B,IAAA,gBAAS,EAAC,oHAAoH,CAAC,CAAC;gBAChI,UAAU,CAAC,YAAY,GAAG,wBAAwB,CAAC;gBACnD,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC;oBACvB,OAAO,EAAE,8EAA8E;oBACvF,IAAI,EAAE,MAAM;iBACb,CAAC,CAAC;YACL,CAAC;iBACI,CAAC;gBACF,UAAU,CAAC,YAAY,GAAG,yBAAyB,CAAC;YACtD,CAAC;YAEH,OAAO,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,WAAW,EAAE,iBAAiB,CAAC,CAAC;QACrJ,CAAC;QACD,OAAO,CAAC,EAAE,CAAC;YACT,IAAA,eAAQ,EAAC,CAAC,CAAC,CAAC;YACZ,MAAM,CAAC,CAAC;QACV,CAAC;IACH,CAAC;IAYS,KAAK,CAAC,+BAA+B,CAAC,WAA4C,EAAE,EAAY,EAAE,IAAc,EAAE,WAA+B,EAAE,MAAoB,EAAE,WAAwB;QACzM,MAAM,MAAM,GAAG,WAAW,CAAC,WAAW,CAAC;QACvC,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QAG5C,MAAM,mBAAmB,GAA6B,MAAM,EAAE,CAAC,eAAe,CAAC,sBAAsB,EAAE,IAAI,CAAC,CAAC;QAC7G,mBAAmB,CAAC,SAAS,EAAE,CAAC;QAChC,mBAAmB,CAAC,cAAc,GAAG,WAAW,CAAC,EAAE,CAAC;QACpD,mBAAmB,CAAC,OAAO,GAAG,OAAO,CAAC;QACtC,mBAAmB,CAAC,IAAI,GAAG,IAAI,CAAC;QAChC,mBAAmB,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;QACvC,MAAM,mBAAmB,CAAC,IAAI,EAAE,CAAC;QAGjC,IAAI,WAAW,CAAC,IAAI,KAAK,iBAAe,CAAC,mBAAmB,IAAI,MAAM,EAAE,CAAC;YACvE,WAAW,CAAC,IAAI,GAAG,MAAM,CAAC;YAC1B,MAAM,WAAW,CAAC,IAAI,EAAE,CAAC;QAC3B,CAAC;QAGD,MAAM,gBAAgB,GAA2B,MAAM,EAAE,CAAC,eAAe,CAAC,oBAAoB,EAAE,IAAI,CAAC,CAAC;QACtG,gBAAgB,CAAC,SAAS,EAAE,CAAC;QAC7B,gBAAgB,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC;QAClC,gBAAgB,CAAC,KAAK,GAAG,kBAAkB,GAAG,MAAM,CAAC;QACrD,gBAAgB,CAAC,OAAO,GAAG,oHAAoH,CAAC;QAChJ,gBAAgB,CAAC,MAAM,GAAG,IAAI,CAAC;QAC/B,gBAAgB,CAAC,qBAAqB,GAAG,IAAI,CAAC,SAAS,CAAC;YACtD,IAAI,EAAE,SAAS;YACf,cAAc,EAAE,WAAW,CAAC,EAAE;SAC/B,CAAC,CAAC;QACH,MAAM,gBAAgB,CAAC,IAAI,EAAE,CAAC;QAC9B,MAAM,CAAC,OAAO,CAAC,8CAAyB,EAAE;YACxC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC;gBACtB,IAAI,EAAE,mBAAmB;gBACzB,MAAM,EAAE,IAAI;gBACZ,OAAO,EAAE;oBACP,MAAM,EAAE,QAAQ;oBAChB,QAAQ,EAAE,gBAAgB,CAAC,EAAE;iBAC9B;aACF,CAAC;YACF,SAAS,EAAE,WAAW,CAAC,SAAS;SACjC,CAAC,CAAC;QACH,OAAO;YACL,6BAA6B,EAAE,mBAAmB,CAAC,EAAE;SACtD,CAAC;IACJ,CAAC;IAES,KAAK,CAAC,WAAW,CAAC,MAAc,EAAE,IAAc;QACxD,MAAM,EAAE,GAAG,IAAI,cAAO,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,EAAC,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,IAAI,EAAC,EAAE,IAAI,CAAC,CAAC;QAC7E,IAAI,MAAM,IAAI,MAAM,CAAC,OAAO;YAC1B,OAAO,MAAM,CAAC,OAAO,CAAC;;YAEtB,MAAM,IAAI,KAAK,CAAC,sBAAsB,MAAM,EAAE,CAAC,CAAC;IACpD,CAAC;;AA5VU,0CAAe;AACX,mCAAmB,GAAG,UAAU,AAAb,CAAc;AAI1C;IADL,IAAA,oBAAK,EAAC,GAAG,EAAE,CAAC,iBAAiB,CAAC;IAE5B,WAAA,IAAA,kBAAG,EAAC,cAAc,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,CAAA;IACjC,WAAA,IAAA,kBAAG,EAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,kBAAG,CAAC,CAAA;IACxB,WAAA,IAAA,kBAAG,EAAC,gBAAgB,EAAE,GAAG,EAAE,CAAC,kBAAG,CAAC,CAAA;IAChC,WAAA,IAAA,kBAAG,GAAE,CAAA;IACL,WAAA,IAAA,qBAAM,GAAE,CAAA;;qEAAS,2BAAY;;kEAiE/B;0BA3EU,eAAe;IAD3B,IAAA,uBAAQ,EAAC,iBAAiB,CAAC;GACf,eAAe,CA6V3B;AAED,kBAAe,eAAe,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@memberjunction/server",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.162",
|
|
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",
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
"@memberjunction/global": "^0.9.132",
|
|
29
29
|
"@memberjunction/queue": "^0.9.139",
|
|
30
30
|
"@memberjunction/sqlserver-dataprovider": "^0.9.150",
|
|
31
|
-
"@memberjunction/skip-types": "^0.9.
|
|
31
|
+
"@memberjunction/skip-types": "^0.9.13",
|
|
32
32
|
"@types/cors": "^2.8.13",
|
|
33
33
|
"@types/jsonwebtoken": "^8.5.9",
|
|
34
34
|
"@types/node": "^18.11.14",
|
package/src/config.ts
CHANGED
|
@@ -23,6 +23,10 @@ export const enableIntrospection = env.get('ENABLE_INTROSPECTION').default('fals
|
|
|
23
23
|
export const websiteRunFromPackage = env.get('WEBSITE_RUN_FROM_PACKAGE').asIntPositive();
|
|
24
24
|
export const userEmailMap = env.get('USER_EMAIL_MAP').default('{}').asJsonObject() as Record<string, string>;
|
|
25
25
|
|
|
26
|
+
export const ___skipAPIurl = env.get('ASK_SKIP_API_URL').required().asString();
|
|
27
|
+
export const ___skipAPIOrgId = env.get('ASK_SKIP_ORGANIZATION_ID').required().asString();
|
|
28
|
+
|
|
29
|
+
|
|
26
30
|
export const auth0Domain = env.get('AUTH0_DOMAIN').asString();
|
|
27
31
|
export const auth0WebClientID = env.get('AUTH0_CLIENT_ID').asString();
|
|
28
32
|
export const auth0ClientSecret = env.get('AUTH0_CLIENT_SECRET').asString();
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Arg, Ctx, Field, Int, ObjectType, PubSub, PubSubEngine, Query, Resolver } from 'type-graphql';
|
|
2
|
-
import { LogError, Metadata, RunQuery, RunQueryParams, RunView, UserInfo } from '@memberjunction/core';
|
|
2
|
+
import { LogError, LogStatus, Metadata, RunQuery, RunQueryParams, RunView, UserInfo } from '@memberjunction/core';
|
|
3
3
|
import { AppContext, UserPayload } from '../types';
|
|
4
4
|
import { UserCache } from '@memberjunction/sqlserver-dataprovider';
|
|
5
|
-
import { SkipDataContext, SkipDataContextItem, SkipAPIRequest, SkipAPIResponse, SkipMessage, SkipAPIAnalysisCompleteResponse, SkipAPIDataRequestResponse } from '@memberjunction/skip-types';
|
|
5
|
+
import { SkipDataContext, SkipDataContextItem, SkipAPIRequest, SkipAPIResponse, SkipMessage, SkipAPIAnalysisCompleteResponse, SkipAPIDataRequestResponse, SkipAPIClarifyingQuestionResponse } from '@memberjunction/skip-types';
|
|
6
6
|
import axios from 'axios';
|
|
7
7
|
import zlib from 'zlib';
|
|
8
8
|
import { promisify } from 'util';
|
|
@@ -12,13 +12,23 @@ const gzip = promisify(zlib.gzip);
|
|
|
12
12
|
import { PUSH_STATUS_UPDATES_TOPIC } from '../generic/PushStatusResolver';
|
|
13
13
|
import { ConversationDetailEntity, ConversationEntity, UserNotificationEntity, UserViewEntityExtended } from '@memberjunction/core-entities';
|
|
14
14
|
import { DataSource } from 'typeorm';
|
|
15
|
+
import { ___skipAPIOrgId, ___skipAPIurl } from '../config';
|
|
15
16
|
|
|
16
17
|
|
|
17
|
-
|
|
18
|
-
// const url = process.env.BOT_EXTERNAL_API_URL;
|
|
19
|
-
// TEMP - call the separate server, we'll move this to real skip server soon!!!!!
|
|
18
|
+
import { registerEnumType } from "type-graphql";
|
|
20
19
|
|
|
21
20
|
|
|
21
|
+
enum SkipResponsePhase {
|
|
22
|
+
ClarifyingQuestion = "clarifying_question",
|
|
23
|
+
DataRequest = "data_request",
|
|
24
|
+
AnalysisComplete = "analysis_complete",
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
registerEnumType(SkipResponsePhase, {
|
|
28
|
+
name: "SkipResponsePhase",
|
|
29
|
+
description: "The phase of the respons: clarifying_question, data_request, or analysis_complete",
|
|
30
|
+
});
|
|
31
|
+
|
|
22
32
|
|
|
23
33
|
@ObjectType()
|
|
24
34
|
export class AskSkipResultType {
|
|
@@ -28,6 +38,9 @@ export class AskSkipResultType {
|
|
|
28
38
|
@Field(() => String)
|
|
29
39
|
Status: string; // required
|
|
30
40
|
|
|
41
|
+
@Field(() => SkipResponsePhase)
|
|
42
|
+
ResponsePhase: SkipResponsePhase;
|
|
43
|
+
|
|
31
44
|
@Field(() => String)
|
|
32
45
|
Result: string;
|
|
33
46
|
|
|
@@ -83,7 +96,7 @@ export class AskSkipResolver {
|
|
|
83
96
|
await convoDetailEntity.Save();
|
|
84
97
|
|
|
85
98
|
//const OrganizationId = 2 //HG 8/1/2023 TODO: Pull this from an environment variable
|
|
86
|
-
const OrganizationId =
|
|
99
|
+
const OrganizationId = ___skipAPIOrgId;
|
|
87
100
|
const dataContext: SkipDataContext = new SkipDataContext();
|
|
88
101
|
dataContext.Items.push(
|
|
89
102
|
{
|
|
@@ -143,28 +156,7 @@ export class AskSkipResolver {
|
|
|
143
156
|
|
|
144
157
|
if (response.status === 200) {
|
|
145
158
|
const apiResponse = <SkipAPIResponse>response.data;
|
|
146
|
-
|
|
147
|
-
switch (apiResponse.responsePhase) {
|
|
148
|
-
case 'data_request':
|
|
149
|
-
sUserMessage = 'We need to gather some more data, I will do that next and update you soon.';
|
|
150
|
-
break;
|
|
151
|
-
case 'analysis_complete':
|
|
152
|
-
sUserMessage = 'I have completed the analysis, the results will be available momentarily.';
|
|
153
|
-
break;
|
|
154
|
-
case 'clarifying_question':
|
|
155
|
-
sUserMessage = 'I have a clarifying question for you, please see review our chat so you can provide me a little more info.';
|
|
156
|
-
break;
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
// update the UI
|
|
160
|
-
pubSub.publish(PUSH_STATUS_UPDATES_TOPIC, {
|
|
161
|
-
message: JSON.stringify({
|
|
162
|
-
type: 'AskSkip',
|
|
163
|
-
status: 'OK',
|
|
164
|
-
message: sUserMessage,
|
|
165
|
-
}),
|
|
166
|
-
sessionId: userPayload.sessionId,
|
|
167
|
-
});
|
|
159
|
+
this.PublishApiResponseUserUpdateMessage(apiResponse, userPayload, pubSub);
|
|
168
160
|
|
|
169
161
|
// now, based on the result type, we will either wait for the next phase or we will process the results
|
|
170
162
|
if (apiResponse.responsePhase === 'data_request') {
|
|
@@ -172,22 +164,10 @@ export class AskSkipResolver {
|
|
|
172
164
|
}
|
|
173
165
|
else if (apiResponse.responsePhase === 'clarifying_question') {
|
|
174
166
|
// need to send the request back to the user for a clarifying question
|
|
175
|
-
|
|
176
|
-
throw new Error('Clarifying question not implemented yet');
|
|
167
|
+
return await this.HandleClarifyingQuestionPhase(input, <SkipAPIClarifyingQuestionResponse>apiResponse, UserQuestion, user, dataSource, ConversationId, userPayload, pubSub, convoEntity, convoDetailEntity);
|
|
177
168
|
}
|
|
178
169
|
else { // apiResponse.responsePhase === 'analysis_complete'
|
|
179
|
-
|
|
180
|
-
// all done, wrap things up
|
|
181
|
-
const {AIMessageConversationDetailID} = await this.FinishConversationAndNotifyUser(apiResponse, md, user, convoEntity, pubSub, userPayload);
|
|
182
|
-
|
|
183
|
-
return {
|
|
184
|
-
Success: true,
|
|
185
|
-
Status: 'OK',
|
|
186
|
-
ConversationId: ConversationId,
|
|
187
|
-
UserMessageConversationDetailId: convoDetailEntity.ID,
|
|
188
|
-
AIMessageConversationDetailId: AIMessageConversationDetailID,
|
|
189
|
-
Result: JSON.stringify(response.data)
|
|
190
|
-
};
|
|
170
|
+
return await this.HandleAnalysisComplete(input, <SkipAPIAnalysisCompleteResponse>apiResponse, UserQuestion, user, dataSource, ConversationId, userPayload, pubSub, convoEntity, convoDetailEntity);
|
|
191
171
|
}
|
|
192
172
|
}
|
|
193
173
|
else {
|
|
@@ -204,6 +184,7 @@ export class AskSkipResolver {
|
|
|
204
184
|
Success: false,
|
|
205
185
|
Status: 'Error',
|
|
206
186
|
Result: `User Question ${UserQuestion} didn't work!`,
|
|
187
|
+
ResponsePhase: SkipResponsePhase.AnalysisComplete,
|
|
207
188
|
ConversationId: ConversationId,
|
|
208
189
|
UserMessageConversationDetailId: 0,
|
|
209
190
|
AIMessageConversationDetailId: 0,
|
|
@@ -211,52 +192,146 @@ export class AskSkipResolver {
|
|
|
211
192
|
}
|
|
212
193
|
}
|
|
213
194
|
|
|
195
|
+
protected async PublishApiResponseUserUpdateMessage(apiResponse: SkipAPIResponse, userPayload: UserPayload, pubSub: PubSubEngine) {
|
|
196
|
+
let sUserMessage: string = '';
|
|
197
|
+
switch (apiResponse.responsePhase) {
|
|
198
|
+
case 'data_request':
|
|
199
|
+
sUserMessage = 'We need to gather some more data, I will do that next and update you soon.';
|
|
200
|
+
break;
|
|
201
|
+
case 'analysis_complete':
|
|
202
|
+
sUserMessage = 'I have completed the analysis, the results will be available momentarily.';
|
|
203
|
+
break;
|
|
204
|
+
case 'clarifying_question':
|
|
205
|
+
sUserMessage = 'I have a clarifying question for you, please see review our chat so you can provide me a little more info.';
|
|
206
|
+
break;
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
// update the UI
|
|
210
|
+
pubSub.publish(PUSH_STATUS_UPDATES_TOPIC, {
|
|
211
|
+
message: JSON.stringify({
|
|
212
|
+
type: 'AskSkip',
|
|
213
|
+
status: 'OK',
|
|
214
|
+
message: sUserMessage,
|
|
215
|
+
}),
|
|
216
|
+
sessionId: userPayload.sessionId,
|
|
217
|
+
});
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
protected async HandleAnalysisComplete(apiRequest: SkipAPIRequest, apiResponse: SkipAPIAnalysisCompleteResponse, UserQuestion: string, user: UserInfo, dataSource: DataSource,
|
|
221
|
+
ConversationId: number, userPayload: UserPayload, pubSub: PubSubEngine, convoEntity: ConversationEntity, convoDetailEntity: ConversationDetailEntity): Promise<AskSkipResultType> {
|
|
222
|
+
// analysis is complete
|
|
223
|
+
// all done, wrap things up
|
|
224
|
+
const md = new Metadata();
|
|
225
|
+
const {AIMessageConversationDetailID} = await this.FinishConversationAndNotifyUser(apiResponse, md, user, convoEntity, pubSub, userPayload);
|
|
226
|
+
|
|
227
|
+
return {
|
|
228
|
+
Success: true,
|
|
229
|
+
Status: 'OK',
|
|
230
|
+
ResponsePhase: SkipResponsePhase.AnalysisComplete,
|
|
231
|
+
ConversationId: ConversationId,
|
|
232
|
+
UserMessageConversationDetailId: convoDetailEntity.ID,
|
|
233
|
+
AIMessageConversationDetailId: AIMessageConversationDetailID,
|
|
234
|
+
Result: JSON.stringify(apiResponse)
|
|
235
|
+
};
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
protected async HandleClarifyingQuestionPhase(apiRequest: SkipAPIRequest, apiResponse: SkipAPIClarifyingQuestionResponse, UserQuestion: string, user: UserInfo, dataSource: DataSource,
|
|
239
|
+
ConversationId: number, userPayload: UserPayload, pubSub: PubSubEngine, convoEntity: ConversationEntity, convoDetailEntity: ConversationDetailEntity): Promise<AskSkipResultType> {
|
|
240
|
+
// need to create a message here in the COnversation and then pass that id below
|
|
241
|
+
const md = new Metadata();
|
|
242
|
+
const convoDetailEntityAI = <ConversationDetailEntity>await md.GetEntityObject('Conversation Details', user);
|
|
243
|
+
convoDetailEntityAI.NewRecord();
|
|
244
|
+
convoDetailEntityAI.ConversationID = ConversationId;
|
|
245
|
+
convoDetailEntityAI.Message = apiResponse.clarifyingQuestion;
|
|
246
|
+
convoDetailEntityAI.Role = 'AI';
|
|
247
|
+
if (await convoDetailEntityAI.Save()) {
|
|
248
|
+
return {
|
|
249
|
+
Success: true,
|
|
250
|
+
Status: 'OK',
|
|
251
|
+
ResponsePhase: SkipResponsePhase.ClarifyingQuestion,
|
|
252
|
+
ConversationId: ConversationId,
|
|
253
|
+
UserMessageConversationDetailId: convoDetailEntity.ID,
|
|
254
|
+
AIMessageConversationDetailId: convoDetailEntityAI.ID,
|
|
255
|
+
Result: JSON.stringify(apiResponse)
|
|
256
|
+
};
|
|
257
|
+
}
|
|
258
|
+
else {
|
|
259
|
+
return {
|
|
260
|
+
Success: false,
|
|
261
|
+
Status: 'Error',
|
|
262
|
+
ResponsePhase: SkipResponsePhase.ClarifyingQuestion,
|
|
263
|
+
ConversationId: ConversationId,
|
|
264
|
+
UserMessageConversationDetailId: convoDetailEntity.ID,
|
|
265
|
+
AIMessageConversationDetailId: 0,
|
|
266
|
+
Result: JSON.stringify(apiResponse)
|
|
267
|
+
};
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
|
|
214
271
|
protected async HandleDataRequestPhase(apiRequest: SkipAPIRequest, apiResponse: SkipAPIDataRequestResponse, UserQuestion: string, user: UserInfo, dataSource: DataSource,
|
|
215
272
|
ConversationId: number, userPayload: UserPayload, pubSub: PubSubEngine, convoEntity: ConversationEntity, convoDetailEntity: ConversationDetailEntity): Promise<AskSkipResultType> {
|
|
216
273
|
// our job in this method is to go through each of the data requests from the Skip API, get the data, and then go back to the Skip API again and to the next phase
|
|
217
274
|
try {
|
|
218
275
|
const md = new Metadata();
|
|
276
|
+
const executionErrors = [];
|
|
277
|
+
|
|
219
278
|
for (const dr of apiResponse.dataRequest) {
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
279
|
+
try {
|
|
280
|
+
switch (dr.type) {
|
|
281
|
+
case "sql":
|
|
282
|
+
const sql = dr.text;
|
|
283
|
+
const result = await dataSource.query(sql);
|
|
284
|
+
if (!result)
|
|
285
|
+
throw new Error(`Error running SQL: ${sql}`);
|
|
286
|
+
|
|
287
|
+
const item = new SkipDataContextItem();
|
|
288
|
+
item.Type = 'sql';
|
|
289
|
+
item.Data = result;
|
|
290
|
+
item.RecordName = dr.text;
|
|
291
|
+
item.AdditionalDescription = dr.description;
|
|
292
|
+
apiRequest.dataContext.Items.push(item);
|
|
293
|
+
break;
|
|
294
|
+
case "stored_query":
|
|
295
|
+
const queryName = dr.text;
|
|
296
|
+
const query = md.Queries.find((q) => q.Name === queryName);
|
|
297
|
+
if (query) {
|
|
298
|
+
const rq = new RunQuery();
|
|
299
|
+
const result = await rq.RunQuery({QueryID: query.ID}, user)
|
|
300
|
+
if (result && result.Success) {
|
|
301
|
+
const item = new SkipDataContextItem();
|
|
302
|
+
item.Type = 'query';
|
|
303
|
+
item.Data = result.Results;
|
|
304
|
+
item.RecordID = query.ID;
|
|
305
|
+
item.RecordName = query.Name;
|
|
306
|
+
item.AdditionalDescription = dr.description;
|
|
307
|
+
apiRequest.dataContext.Items.push(item);
|
|
308
|
+
}
|
|
309
|
+
else
|
|
310
|
+
throw new Error(`Error running query ${queryName}`);
|
|
248
311
|
}
|
|
249
312
|
else
|
|
250
|
-
throw new Error(`
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
313
|
+
throw new Error(`Query ${queryName} not found.`);
|
|
314
|
+
break;
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
catch (e) {
|
|
318
|
+
LogError(e);
|
|
319
|
+
executionErrors.push({error: e, dataRequest: dr});
|
|
255
320
|
}
|
|
256
321
|
}
|
|
257
322
|
|
|
323
|
+
if (executionErrors.length > 0) {
|
|
324
|
+
LogStatus(`Execution errors for Skip data request occured, sending those errors back to the Skip API to get new instructions.`);
|
|
325
|
+
apiRequest.requestPhase = 'data_gathering_failure';
|
|
326
|
+
apiRequest.messages.push({
|
|
327
|
+
content: 'I had some trouble gathering the data, please see the chat for more details.',
|
|
328
|
+
role: 'user' // use user role becuase to the Skip API what we send it is "user"
|
|
329
|
+
});
|
|
330
|
+
}
|
|
331
|
+
else {
|
|
332
|
+
apiRequest.requestPhase = 'data_gathering_response';
|
|
333
|
+
}
|
|
258
334
|
// we have all of the data now, add it to the data context and then submit it back to the Skip API
|
|
259
|
-
apiRequest.requestPhase = 'data_gathering_response';
|
|
260
335
|
return this.HandleSkipRequest(apiRequest, UserQuestion, user, dataSource, ConversationId, userPayload, pubSub, md, convoEntity, convoDetailEntity);
|
|
261
336
|
}
|
|
262
337
|
catch (e) {
|