@memberjunction/server 0.9.142 → 0.9.151
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 +21 -0
- package/dist/generated/generated.js +1616 -1
- package/dist/generated/generated.js.map +1 -1
- package/dist/resolvers/AskSkipResolver.js +145 -154
- package/dist/resolvers/AskSkipResolver.js.map +1 -1
- package/package.json +9 -8
- package/src/generated/generated.ts +1251 -2
- package/src/resolvers/AskSkipResolver.ts +184 -172
- package/tsconfig.json +2 -1
|
@@ -18,9 +18,9 @@ var AskSkipResolver_1;
|
|
|
18
18
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
19
19
|
exports.AskSkipResolver = exports.AskSkipResultType = void 0;
|
|
20
20
|
const type_graphql_1 = require("type-graphql");
|
|
21
|
-
const aiengine_1 = require("@memberjunction/aiengine");
|
|
22
21
|
const core_1 = require("@memberjunction/core");
|
|
23
22
|
const sqlserver_dataprovider_1 = require("@memberjunction/sqlserver-dataprovider");
|
|
23
|
+
const skip_types_1 = require("@memberjunction/skip-types");
|
|
24
24
|
const axios_1 = __importDefault(require("axios"));
|
|
25
25
|
const PushStatusResolver_1 = require("../generic/PushStatusResolver");
|
|
26
26
|
let AskSkipResultType = class AskSkipResultType {
|
|
@@ -54,149 +54,116 @@ exports.AskSkipResultType = AskSkipResultType = __decorate([
|
|
|
54
54
|
(0, type_graphql_1.ObjectType)()
|
|
55
55
|
], AskSkipResultType);
|
|
56
56
|
let AskSkipResolver = AskSkipResolver_1 = class AskSkipResolver {
|
|
57
|
-
async
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
ConversationId = convoEntity.ID;
|
|
71
|
-
else
|
|
72
|
-
throw new Error(`Creating a new conversation failed`);
|
|
73
|
-
}
|
|
57
|
+
async ExecuteAskSkipAnalysisQuery(UserQuestion, ViewId, ConversationId, { dataSource, userPayload }, pubSub) {
|
|
58
|
+
const md = new core_1.Metadata();
|
|
59
|
+
const user = sqlserver_dataprovider_1.UserCache.Instance.Users.find((u) => u.Email === userPayload.email);
|
|
60
|
+
if (!user)
|
|
61
|
+
throw new Error(`User ${userPayload.email} not found in UserCache`);
|
|
62
|
+
const convoEntity = await md.GetEntityObject('Conversations', user);
|
|
63
|
+
if (!ConversationId || ConversationId <= 0) {
|
|
64
|
+
convoEntity.NewRecord();
|
|
65
|
+
if (user) {
|
|
66
|
+
convoEntity.UserID = user.ID;
|
|
67
|
+
convoEntity.Name = AskSkipResolver_1._defaultNewChatName;
|
|
68
|
+
if (await convoEntity.Save())
|
|
69
|
+
ConversationId = convoEntity.ID;
|
|
74
70
|
else
|
|
75
|
-
throw new Error(`
|
|
71
|
+
throw new Error(`Creating a new conversation failed`);
|
|
76
72
|
}
|
|
77
|
-
else
|
|
78
|
-
|
|
73
|
+
else
|
|
74
|
+
throw new Error(`User ${userPayload.email} not found in UserCache`);
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
await convoEntity.Load(ConversationId);
|
|
78
|
+
}
|
|
79
|
+
const convoDetailEntity = await md.GetEntityObject('Conversation Details', user);
|
|
80
|
+
convoDetailEntity.NewRecord();
|
|
81
|
+
convoDetailEntity.ConversationID = ConversationId;
|
|
82
|
+
convoDetailEntity.Message = UserQuestion;
|
|
83
|
+
convoDetailEntity.Role = 'User';
|
|
84
|
+
convoDetailEntity.Set('Sequence', 1);
|
|
85
|
+
await convoDetailEntity.Save();
|
|
86
|
+
const OrganizationId = process.env.BOT_SCHEMA_ORGANIZATION_ID;
|
|
87
|
+
const dataContext = new skip_types_1.SkipDataContext();
|
|
88
|
+
dataContext.Items.push({
|
|
89
|
+
Type: 'view',
|
|
90
|
+
RecordID: ViewId,
|
|
91
|
+
});
|
|
92
|
+
dataContext.Items.push({
|
|
93
|
+
Type: 'view',
|
|
94
|
+
RecordID: 123,
|
|
95
|
+
});
|
|
96
|
+
const input = {
|
|
97
|
+
userInput: UserQuestion,
|
|
98
|
+
conversationID: ConversationId.toString(),
|
|
99
|
+
dataContext: dataContext,
|
|
100
|
+
organizationID: !isNaN(parseInt(OrganizationId)) ? parseInt(OrganizationId) : 0,
|
|
101
|
+
requestPhase: 'initial_request'
|
|
102
|
+
};
|
|
103
|
+
const url = 'http://localhost:8000';
|
|
104
|
+
pubSub.publish(PushStatusResolver_1.PUSH_STATUS_UPDATES_TOPIC, {
|
|
105
|
+
message: JSON.stringify({
|
|
106
|
+
type: 'AskSkip',
|
|
107
|
+
status: 'OK',
|
|
108
|
+
message: 'Sure, I can help with that, I will start by analyzing your request...',
|
|
109
|
+
}),
|
|
110
|
+
sessionId: userPayload.sessionId,
|
|
111
|
+
});
|
|
112
|
+
const response = await (0, axios_1.default)({
|
|
113
|
+
method: 'post',
|
|
114
|
+
url: url,
|
|
115
|
+
data: input,
|
|
116
|
+
});
|
|
117
|
+
if (response.status === 200) {
|
|
118
|
+
const apiResponse = response.data;
|
|
119
|
+
let sUserMessage = '';
|
|
120
|
+
switch (apiResponse.responsePhase) {
|
|
121
|
+
case 'data_request':
|
|
122
|
+
sUserMessage = 'We need to gather some more data, I will do that next and update you soon.';
|
|
123
|
+
break;
|
|
124
|
+
case 'analysis_complete':
|
|
125
|
+
sUserMessage = 'I have completed the analysis, the results will be available momentarily.';
|
|
126
|
+
break;
|
|
127
|
+
case 'clarifying_question':
|
|
128
|
+
sUserMessage = 'I have a clarifying question for you, please see review our chat so you can provide me a little more info.';
|
|
129
|
+
break;
|
|
79
130
|
}
|
|
80
|
-
const convoDetailEntity = await md.GetEntityObject('Conversation Details', user);
|
|
81
|
-
convoDetailEntity.NewRecord();
|
|
82
|
-
convoDetailEntity.ConversationID = ConversationId;
|
|
83
|
-
convoDetailEntity.Message = UserQuestion;
|
|
84
|
-
convoDetailEntity.Role = 'User';
|
|
85
|
-
convoDetailEntity.Set('Sequence', 1);
|
|
86
|
-
await convoDetailEntity.Save();
|
|
87
|
-
const OrganizationId = process.env.BOT_SCHEMA_ORGANIZATION_ID;
|
|
88
|
-
const input = { userInput: UserQuestion, conversationID: ConversationId, organizationID: OrganizationId };
|
|
89
|
-
const url = process.env.BOT_EXTERNAL_API_URL;
|
|
90
131
|
pubSub.publish(PushStatusResolver_1.PUSH_STATUS_UPDATES_TOPIC, {
|
|
91
132
|
message: JSON.stringify({
|
|
92
133
|
type: 'AskSkip',
|
|
93
134
|
status: 'OK',
|
|
94
|
-
message:
|
|
135
|
+
message: sUserMessage,
|
|
95
136
|
}),
|
|
96
137
|
sessionId: userPayload.sessionId,
|
|
97
138
|
});
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
data: input,
|
|
102
|
-
});
|
|
103
|
-
if (response.status === 200) {
|
|
104
|
-
pubSub.publish(PushStatusResolver_1.PUSH_STATUS_UPDATES_TOPIC, {
|
|
105
|
-
message: JSON.stringify({
|
|
106
|
-
type: 'AskSkip',
|
|
107
|
-
status: 'OK',
|
|
108
|
-
message: 'I created the report structure, now I will get the data for you and analyze the results... Back to ya soon!',
|
|
109
|
-
}),
|
|
110
|
-
sessionId: userPayload.sessionId,
|
|
111
|
-
});
|
|
112
|
-
const sql = response.data.params.sql;
|
|
113
|
-
const [{ result, analysis }, explanation] = await Promise.all([
|
|
114
|
-
this.getSkipDataAndAnalysis(dataSource, UserQuestion, sql),
|
|
115
|
-
this.getReportExplanation(UserQuestion, sql),
|
|
116
|
-
]);
|
|
117
|
-
const sTitle = response.data.params.reportTitle || response.data.params.chartTitle;
|
|
118
|
-
const sResult = JSON.stringify({
|
|
119
|
-
SQLResults: {
|
|
120
|
-
results: result,
|
|
121
|
-
sql: sql,
|
|
122
|
-
columns: response.data.params.columns,
|
|
123
|
-
},
|
|
124
|
-
UserMessage: '',
|
|
125
|
-
ReportExplanation: explanation,
|
|
126
|
-
Analysis: analysis,
|
|
127
|
-
ReportTitle: sTitle,
|
|
128
|
-
DisplayType: response.data.type,
|
|
129
|
-
DrillDownView: response.data.params.drillDownView,
|
|
130
|
-
DrillDownBaseViewField: response.data.params.drillDownBaseViewField,
|
|
131
|
-
DrillDownReportValueField: response.data.params.drillDownReportValueField,
|
|
132
|
-
ChartOptions: {
|
|
133
|
-
xAxis: response.data.params.xAxis,
|
|
134
|
-
xLabel: response.data.params.xLabel,
|
|
135
|
-
yAxis: response.data.params.yAxis,
|
|
136
|
-
yLabel: response.data.params.yLabel,
|
|
137
|
-
color: response.data.params.color,
|
|
138
|
-
yFormat: response.data.params.yFormat,
|
|
139
|
-
},
|
|
140
|
-
});
|
|
141
|
-
const convoDetailEntityAI = await md.GetEntityObject('Conversation Details', user);
|
|
142
|
-
convoDetailEntityAI.NewRecord();
|
|
143
|
-
convoDetailEntityAI.ConversationID = ConversationId;
|
|
144
|
-
convoDetailEntityAI.Message = sResult;
|
|
145
|
-
convoDetailEntityAI.Role = 'AI';
|
|
146
|
-
convoDetailEntityAI.Set('Sequence', 2);
|
|
147
|
-
await convoDetailEntityAI.Save();
|
|
148
|
-
if (convoEntity.Name === AskSkipResolver_1._defaultNewChatName) {
|
|
149
|
-
convoEntity.Name = response.data.params.reportTitle || response.data.params.chartTitle || AskSkipResolver_1._defaultNewChatName;
|
|
150
|
-
await convoEntity.Save();
|
|
151
|
-
}
|
|
152
|
-
const userNotification = await md.GetEntityObject('User Notifications', user);
|
|
153
|
-
userNotification.NewRecord();
|
|
154
|
-
userNotification.UserID = user.ID;
|
|
155
|
-
userNotification.Title = 'Report Created: ' + sTitle;
|
|
156
|
-
userNotification.Message = `Good news! Skip finished creating a report for you, click on this notification to jump back into the conversation.`;
|
|
157
|
-
userNotification.Unread = true;
|
|
158
|
-
userNotification.ResourceConfiguration = JSON.stringify({
|
|
159
|
-
type: 'askskip',
|
|
160
|
-
conversationId: ConversationId,
|
|
161
|
-
});
|
|
162
|
-
await userNotification.Save();
|
|
163
|
-
pubSub.publish(PushStatusResolver_1.PUSH_STATUS_UPDATES_TOPIC, {
|
|
164
|
-
message: JSON.stringify({
|
|
165
|
-
type: 'UserNotifications',
|
|
166
|
-
status: 'OK',
|
|
167
|
-
details: {
|
|
168
|
-
action: 'create',
|
|
169
|
-
recordId: userNotification.ID,
|
|
170
|
-
},
|
|
171
|
-
}),
|
|
172
|
-
sessionId: userPayload.sessionId,
|
|
173
|
-
});
|
|
174
|
-
return {
|
|
175
|
-
Success: true,
|
|
176
|
-
Status: 'OK',
|
|
177
|
-
ConversationId: ConversationId,
|
|
178
|
-
UserMessageConversationDetailId: convoDetailEntity.ID,
|
|
179
|
-
AIMessageConversationDetailId: convoDetailEntityAI.ID,
|
|
180
|
-
Result: sResult,
|
|
181
|
-
};
|
|
139
|
+
let nextAPIResponse = null;
|
|
140
|
+
if (apiResponse.responsePhase === 'data_request') {
|
|
141
|
+
nextAPIResponse = await this.HandleDataRequestPhase(apiResponse, user, dataSource, ConversationId, userPayload, pubSub);
|
|
182
142
|
}
|
|
183
|
-
else
|
|
184
|
-
return { Success: false, Status: 'Error', Result: `User Question ${UserQuestion} didn't work!` };
|
|
185
|
-
}
|
|
186
|
-
catch (error) {
|
|
187
|
-
console.error(`Error occurred: ${error}`);
|
|
188
|
-
if (error.response) {
|
|
189
|
-
console.log(error.response.data);
|
|
190
|
-
console.log(error.response.status);
|
|
191
|
-
console.log(error.response.headers);
|
|
192
|
-
}
|
|
193
|
-
else if (error.request) {
|
|
194
|
-
console.log(error.request);
|
|
143
|
+
else if (apiResponse.responsePhase === 'clarifying_question') {
|
|
195
144
|
}
|
|
196
|
-
else {
|
|
197
|
-
|
|
145
|
+
else if (apiResponse.responsePhase === 'analysis_complete') {
|
|
146
|
+
nextAPIResponse = apiResponse;
|
|
198
147
|
}
|
|
199
|
-
|
|
148
|
+
const { AIMessageConversationDetailID } = await this.FinishConversationAndNotifyUser(apiResponse, md, user, convoEntity, pubSub, userPayload);
|
|
149
|
+
return {
|
|
150
|
+
Success: true,
|
|
151
|
+
Status: 'OK',
|
|
152
|
+
ConversationId: ConversationId,
|
|
153
|
+
UserMessageConversationDetailId: convoDetailEntity.ID,
|
|
154
|
+
AIMessageConversationDetailId: AIMessageConversationDetailID,
|
|
155
|
+
Result: JSON.stringify(response.data)
|
|
156
|
+
};
|
|
157
|
+
}
|
|
158
|
+
else {
|
|
159
|
+
pubSub.publish(PushStatusResolver_1.PUSH_STATUS_UPDATES_TOPIC, {
|
|
160
|
+
message: JSON.stringify({
|
|
161
|
+
type: 'AskSkip',
|
|
162
|
+
status: 'Error',
|
|
163
|
+
message: 'Analysis failed to run, please try again later and if this continues, contact your support desk.',
|
|
164
|
+
}),
|
|
165
|
+
sessionId: userPayload.sessionId,
|
|
166
|
+
});
|
|
200
167
|
return {
|
|
201
168
|
Success: false,
|
|
202
169
|
Status: 'Error',
|
|
@@ -207,25 +174,48 @@ let AskSkipResolver = AskSkipResolver_1 = class AskSkipResolver {
|
|
|
207
174
|
};
|
|
208
175
|
}
|
|
209
176
|
}
|
|
210
|
-
async
|
|
211
|
-
|
|
212
|
-
const stringResult = JSON.stringify(result);
|
|
213
|
-
const maxStringLength = 2000;
|
|
214
|
-
const avgRowStringLength = stringResult.length / result.length;
|
|
215
|
-
let sampleDataJSON = stringResult;
|
|
216
|
-
if (stringResult.length > maxStringLength) {
|
|
217
|
-
const rowsToUse = result.length / (maxStringLength / avgRowStringLength);
|
|
218
|
-
const subsetResult = result.slice(0, rowsToUse);
|
|
219
|
-
sampleDataJSON = JSON.stringify(subsetResult);
|
|
220
|
-
}
|
|
221
|
-
const analysis = await this.getAnalysis(userQuestion, sql, sampleDataJSON);
|
|
222
|
-
return { result, analysis };
|
|
177
|
+
async HandleDataRequestPhase(apiResponse, user, dataSource, ConversationId, userPayload, pubSub) {
|
|
178
|
+
throw new Error('Method not implemented.');
|
|
223
179
|
}
|
|
224
|
-
async
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
180
|
+
async FinishConversationAndNotifyUser(apiResponse, md, user, convoEntity, pubSub, userPayload) {
|
|
181
|
+
const sTitle = apiResponse.reportTitle;
|
|
182
|
+
const sResult = JSON.stringify(apiResponse);
|
|
183
|
+
const convoDetailEntityAI = await md.GetEntityObject('Conversation Details', user);
|
|
184
|
+
convoDetailEntityAI.NewRecord();
|
|
185
|
+
convoDetailEntityAI.ConversationID = convoEntity.ID;
|
|
186
|
+
convoDetailEntityAI.Message = sResult;
|
|
187
|
+
convoDetailEntityAI.Role = 'AI';
|
|
188
|
+
convoDetailEntityAI.Set('Sequence', 2);
|
|
189
|
+
await convoDetailEntityAI.Save();
|
|
190
|
+
if (convoEntity.Name === AskSkipResolver_1._defaultNewChatName && sTitle) {
|
|
191
|
+
convoEntity.Name = sTitle;
|
|
192
|
+
await convoEntity.Save();
|
|
193
|
+
}
|
|
194
|
+
const userNotification = await md.GetEntityObject('User Notifications', user);
|
|
195
|
+
userNotification.NewRecord();
|
|
196
|
+
userNotification.UserID = user.ID;
|
|
197
|
+
userNotification.Title = 'Report Created: ' + sTitle;
|
|
198
|
+
userNotification.Message = `Good news! Skip finished creating a report for you, click on this notification to jump back into the conversation.`;
|
|
199
|
+
userNotification.Unread = true;
|
|
200
|
+
userNotification.ResourceConfiguration = JSON.stringify({
|
|
201
|
+
type: 'askskip',
|
|
202
|
+
conversationId: convoEntity.ID,
|
|
203
|
+
});
|
|
204
|
+
await userNotification.Save();
|
|
205
|
+
pubSub.publish(PushStatusResolver_1.PUSH_STATUS_UPDATES_TOPIC, {
|
|
206
|
+
message: JSON.stringify({
|
|
207
|
+
type: 'UserNotifications',
|
|
208
|
+
status: 'OK',
|
|
209
|
+
details: {
|
|
210
|
+
action: 'create',
|
|
211
|
+
recordId: userNotification.ID,
|
|
212
|
+
},
|
|
213
|
+
}),
|
|
214
|
+
sessionId: userPayload.sessionId,
|
|
215
|
+
});
|
|
216
|
+
return {
|
|
217
|
+
AIMessageConversationDetailID: convoDetailEntityAI.ID
|
|
218
|
+
};
|
|
229
219
|
}
|
|
230
220
|
};
|
|
231
221
|
exports.AskSkipResolver = AskSkipResolver;
|
|
@@ -233,13 +223,14 @@ AskSkipResolver._defaultNewChatName = 'New Chat';
|
|
|
233
223
|
__decorate([
|
|
234
224
|
(0, type_graphql_1.Query)(() => AskSkipResultType),
|
|
235
225
|
__param(0, (0, type_graphql_1.Arg)('UserQuestion', () => String)),
|
|
236
|
-
__param(1, (0, type_graphql_1.Arg)('
|
|
237
|
-
__param(2, (0, type_graphql_1.
|
|
238
|
-
__param(3, (0, type_graphql_1.
|
|
226
|
+
__param(1, (0, type_graphql_1.Arg)('ViewId', () => type_graphql_1.Int)),
|
|
227
|
+
__param(2, (0, type_graphql_1.Arg)('ConversationId', () => type_graphql_1.Int)),
|
|
228
|
+
__param(3, (0, type_graphql_1.Ctx)()),
|
|
229
|
+
__param(4, (0, type_graphql_1.PubSub)()),
|
|
239
230
|
__metadata("design:type", Function),
|
|
240
|
-
__metadata("design:paramtypes", [String, Number, Object, type_graphql_1.PubSubEngine]),
|
|
231
|
+
__metadata("design:paramtypes", [String, Number, Number, Object, type_graphql_1.PubSubEngine]),
|
|
241
232
|
__metadata("design:returntype", Promise)
|
|
242
|
-
], AskSkipResolver.prototype, "
|
|
233
|
+
], AskSkipResolver.prototype, "ExecuteAskSkipAnalysisQuery", null);
|
|
243
234
|
exports.AskSkipResolver = AskSkipResolver = AskSkipResolver_1 = __decorate([
|
|
244
235
|
(0, type_graphql_1.Resolver)(AskSkipResultType)
|
|
245
236
|
], AskSkipResolver);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AskSkipResolver.js","sourceRoot":"","sources":["../../src/resolvers/AskSkipResolver.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AAAA,+CAAuG;AACvG
|
|
1
|
+
{"version":3,"file":"AskSkipResolver.js","sourceRoot":"","sources":["../../src/resolvers/AskSkipResolver.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AAAA,+CAAuG;AACvG,+CAA0D;AAE1D,mFAAmE;AACnE,2DAAmH;AACnH,kDAA0B;AAE1B,sEAA0E;AAKnE,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;CAkB7B,CAAA;AAlBY,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,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;4BAjB3B,iBAAiB;IAD7B,IAAA,yBAAU,GAAE;GACA,iBAAiB,CAkB7B;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,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC;QAC9D,MAAM,WAAW,GAAoB,IAAI,4BAAe,EAAE,CAAC;QAC3D,WAAW,CAAC,KAAK,CAAC,IAAI,CACpB;YACE,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,MAAM;SACM,CACzB,CAAC;QACF,WAAW,CAAC,KAAK,CAAC,IAAI,CACpB;YACE,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,GAAG;SACS,CACzB,CAAC;QAEF,MAAM,KAAK,GAAmB;YACd,SAAS,EAAE,YAAY;YACvB,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,GAAG,GAAG,uBAAuB,CAAA;QAKnC,MAAM,CAAC,OAAO,CAAC,8CAAyB,EAAE;YACxC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC;gBACtB,IAAI,EAAE,SAAS;gBACf,MAAM,EAAE,IAAI;gBACZ,OAAO,EAAE,uEAAuE;aACjF,CAAC;YACF,SAAS,EAAE,WAAW,CAAC,SAAS;SACjC,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,MAAM,IAAA,eAAK,EAAC;YAC3B,MAAM,EAAE,MAAM;YACd,GAAG,EAAE,GAAG;YACR,IAAI,EAAE,KAAK;SACZ,CAAC,CAAC;QAEH,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC5B,MAAM,WAAW,GAAoB,QAAQ,CAAC,IAAI,CAAC;YACnD,IAAI,YAAY,GAAW,EAAE,CAAC;YAC9B,QAAQ,WAAW,CAAC,aAAa,EAAE,CAAC;gBAClC,KAAK,cAAc;oBACjB,YAAY,GAAG,4EAA4E,CAAC;oBAC5F,MAAM;gBACR,KAAK,mBAAmB;oBACtB,YAAY,GAAG,2EAA2E,CAAC;oBAC3F,MAAM;gBACR,KAAK,qBAAqB;oBACxB,YAAY,GAAG,4GAA4G,CAAC;oBAC5H,MAAM;YACV,CAAC;YAGD,MAAM,CAAC,OAAO,CAAC,8CAAyB,EAAE;gBACxC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC;oBACtB,IAAI,EAAE,SAAS;oBACf,MAAM,EAAE,IAAI;oBACZ,OAAO,EAAE,YAAY;iBACtB,CAAC;gBACF,SAAS,EAAE,WAAW,CAAC,SAAS;aACjC,CAAC,CAAC;YAGH,IAAI,eAAe,GAA2B,IAAI,CAAC;YACnD,IAAI,WAAW,CAAC,aAAa,KAAK,cAAc,EAAE,CAAC;gBACjD,eAAe,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;YAC1H,CAAC;iBACI,IAAI,WAAW,CAAC,aAAa,KAAK,qBAAqB,EAAE,CAAC;YAG/D,CAAC;iBACI,IAAI,WAAW,CAAC,aAAa,KAAK,mBAAmB,EAAE,CAAC;gBAC3D,eAAe,GAAG,WAAW,CAAC;YAChC,CAAC;YAED,MAAM,EAAC,6BAA6B,EAAC,GAAG,MAAM,IAAI,CAAC,+BAA+B,CAAC,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;YAE5I,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,IAAI;gBACZ,cAAc,EAAE,cAAc;gBAC9B,+BAA+B,EAAE,iBAAiB,CAAC,EAAE;gBACrD,6BAA6B,EAAE,6BAA6B;gBAC5D,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC;aACtC,CAAC;QACJ,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,cAAc,EAAE,cAAc;gBAC9B,+BAA+B,EAAE,CAAC;gBAClC,6BAA6B,EAAE,CAAC;aACjC,CAAC;QACJ,CAAC;IACH,CAAC;IAES,KAAK,CAAC,sBAAsB,CAAC,WAA4B,EAAE,IAAc,EAAE,UAAsB,EAAE,cAAsB,EAAE,WAAwB,EAAE,MAAoB;QACjL,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAYS,KAAK,CAAC,+BAA+B,CAAC,WAA4B,EAAE,EAAY,EAAE,IAAc,EAAE,WAA+B,EAAE,MAAoB,EAAE,WAAwB;QACzL,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;;AApNU,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;;kEA6I/B;0BAvJU,eAAe;IAD3B,IAAA,uBAAQ,EAAC,iBAAiB,CAAC;GACf,eAAe,CAqN3B;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.151",
|
|
4
4
|
"description": "MemberJunction: This project provides API access via GraphQL to the common data store.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "src/index.ts",
|
|
@@ -21,13 +21,14 @@
|
|
|
21
21
|
"dependencies": {
|
|
22
22
|
"@apollo/server": "^4.9.1",
|
|
23
23
|
"@graphql-tools/utils": "^10.0.1",
|
|
24
|
-
"@memberjunction/ai": "^0.9.
|
|
25
|
-
"@memberjunction/aiengine": "^0.9.
|
|
26
|
-
"@memberjunction/core": "^0.9.
|
|
27
|
-
"@memberjunction/core-entities": "^0.9.
|
|
28
|
-
"@memberjunction/global": "^0.9.
|
|
29
|
-
"@memberjunction/queue": "^0.9.
|
|
30
|
-
"@memberjunction/sqlserver-dataprovider": "^0.9.
|
|
24
|
+
"@memberjunction/ai": "^0.9.136",
|
|
25
|
+
"@memberjunction/aiengine": "^0.9.19",
|
|
26
|
+
"@memberjunction/core": "^0.9.141",
|
|
27
|
+
"@memberjunction/core-entities": "^0.9.121",
|
|
28
|
+
"@memberjunction/global": "^0.9.132",
|
|
29
|
+
"@memberjunction/queue": "^0.9.139",
|
|
30
|
+
"@memberjunction/sqlserver-dataprovider": "^0.9.150",
|
|
31
|
+
"@memberjunction/skip-types": "^0.9.4",
|
|
31
32
|
"@types/cors": "^2.8.13",
|
|
32
33
|
"@types/jsonwebtoken": "^8.5.9",
|
|
33
34
|
"@types/node": "^18.11.14",
|