@memberjunction/server 0.9.182 → 0.9.185

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 CHANGED
@@ -241,5 +241,14 @@
241
241
  },
242
242
  {
243
243
  "buildTime": "2024-02-20T17:22:32.1734125-06:00"
244
+ },
245
+ {
246
+ "buildTime": "2024-02-21T07:23:50.1514539-06:00"
247
+ },
248
+ {
249
+ "buildTime": "2024-02-21T17:40:34.1812895-06:00"
250
+ },
251
+ {
252
+ "buildTime": "2024-02-22T17:31:24.8332718-06:00"
244
253
  }
245
254
  ]
@@ -11,9 +11,6 @@ var __metadata = (this && this.__metadata) || function (k, v) {
11
11
  var __param = (this && this.__param) || function (paramIndex, decorator) {
12
12
  return function (target, key) { decorator(target, key, paramIndex); }
13
13
  };
14
- var __importDefault = (this && this.__importDefault) || function (mod) {
15
- return (mod && mod.__esModule) ? mod : { "default": mod };
16
- };
17
14
  var AskSkipResolver_1;
18
15
  Object.defineProperty(exports, "__esModule", { value: true });
19
16
  exports.AskSkipResolver = exports.AskSkipResultType = void 0;
@@ -23,14 +20,11 @@ const sqlserver_dataprovider_1 = require("@memberjunction/sqlserver-dataprovider
23
20
  const data_context_1 = require("@memberjunction/data-context");
24
21
  const data_context_server_1 = require("@memberjunction/data-context-server");
25
22
  (0, data_context_server_1.LoadDataContextItemsServer)();
26
- const axios_1 = __importDefault(require("axios"));
27
- const zlib_1 = __importDefault(require("zlib"));
28
- const util_1 = require("util");
29
- const gzip = (0, util_1.promisify)(zlib_1.default.gzip);
30
23
  const PushStatusResolver_1 = require("../generic/PushStatusResolver");
31
24
  const config_1 = require("../config");
32
25
  const type_graphql_2 = require("type-graphql");
33
26
  const global_1 = require("@memberjunction/global");
27
+ const util_1 = require("../util");
34
28
  var SkipResponsePhase;
35
29
  (function (SkipResponsePhase) {
36
30
  SkipResponsePhase["ClarifyingQuestion"] = "clarifying_question";
@@ -76,19 +70,62 @@ exports.AskSkipResultType = AskSkipResultType = __decorate([
76
70
  (0, type_graphql_1.ObjectType)()
77
71
  ], AskSkipResultType);
78
72
  let AskSkipResolver = AskSkipResolver_1 = class AskSkipResolver {
73
+ async ExecuteAskSkipRunScript({ dataSource, userPayload }, pubSub, DataContextId, ScriptText) {
74
+ const md = new core_1.Metadata();
75
+ const user = sqlserver_dataprovider_1.UserCache.Instance.Users.find((u) => u.Email === userPayload.email);
76
+ if (!user)
77
+ throw new Error(`User ${userPayload.email} not found in UserCache`);
78
+ const dataContext = new data_context_1.DataContext();
79
+ await dataContext.Load(DataContextId, dataSource, true, user);
80
+ const input = {
81
+ scriptText: ScriptText,
82
+ messages: [],
83
+ conversationID: '',
84
+ dataContext: (0, global_1.CopyScalarsAndArrays)(dataContext),
85
+ organizationID: !isNaN(parseInt(config_1.___skipAPIOrgId)) ? parseInt(config_1.___skipAPIOrgId) : 0,
86
+ requestPhase: 'run_existing_script',
87
+ entities: [],
88
+ queries: [],
89
+ };
90
+ (0, core_1.LogStatus)(` >>> Sending request to Skip API: ${config_1.___skipAPIurl}`);
91
+ const response = await (0, util_1.sendPostRequest)(config_1.___skipAPIurl, input, true, null);
92
+ if (response && response.length > 0) {
93
+ const apiResponse = response[response.length - 1];
94
+ (0, core_1.LogStatus)(` Skip API response: ${apiResponse.responsePhase}`);
95
+ return {
96
+ Success: true,
97
+ Status: 'OK',
98
+ ResponsePhase: SkipResponsePhase.AnalysisComplete,
99
+ ConversationId: 0,
100
+ UserMessageConversationDetailId: 0,
101
+ AIMessageConversationDetailId: 0,
102
+ Result: JSON.stringify(apiResponse)
103
+ };
104
+ }
105
+ else {
106
+ return {
107
+ Success: false,
108
+ Status: 'Error',
109
+ Result: `Report Refresh failed`,
110
+ ResponsePhase: SkipResponsePhase.AnalysisComplete,
111
+ ConversationId: 0,
112
+ UserMessageConversationDetailId: 0,
113
+ AIMessageConversationDetailId: 0,
114
+ };
115
+ }
116
+ }
79
117
  async ExecuteAskSkipAnalysisQuery(UserQuestion, ConversationId, { dataSource, userPayload }, pubSub, DataContextId) {
80
118
  const md = new core_1.Metadata();
81
119
  const user = sqlserver_dataprovider_1.UserCache.Instance.Users.find((u) => u.Email === userPayload.email);
82
120
  if (!user)
83
121
  throw new Error(`User ${userPayload.email} not found in UserCache`);
84
122
  const { convoEntity, dataContextEntity, convoDetailEntity, dataContext } = await this.HandleSkipInitialObjectLoading(dataSource, ConversationId, UserQuestion, user, userPayload, md, DataContextId);
85
- const OrganizationId = config_1.___skipAPIOrgId;
86
123
  const messages = await this.LoadConversationDetailsIntoSkipMessages(dataSource, convoEntity.ID, AskSkipResolver_1._maxHistoricalMessages);
87
124
  const input = {
88
125
  messages: messages,
89
126
  conversationID: ConversationId.toString(),
90
127
  dataContext: (0, global_1.CopyScalarsAndArrays)(dataContext),
91
- organizationID: !isNaN(parseInt(OrganizationId)) ? parseInt(OrganizationId) : 0,
128
+ organizationID: !isNaN(parseInt(config_1.___skipAPIOrgId)) ? parseInt(config_1.___skipAPIOrgId) : 0,
92
129
  requestPhase: 'initial_request',
93
130
  entities: this.BuildSkipEntities(),
94
131
  queries: this.BuildSkipQueries(),
@@ -332,16 +369,10 @@ let AskSkipResolver = AskSkipResolver_1 = class AskSkipResolver {
332
369
  }
333
370
  }
334
371
  async HandleSkipRequest(input, UserQuestion, user, dataSource, ConversationId, userPayload, pubSub, md, convoEntity, convoDetailEntity, dataContext, dataContextEntity) {
335
- (0, core_1.LogStatus)(`Sending request to Skip API: ${config_1.___skipAPIurl}`);
336
- const compressedPayload = await gzip(Buffer.from(JSON.stringify(input)));
337
- const response = await axios_1.default.post(config_1.___skipAPIurl, compressedPayload, {
338
- headers: {
339
- 'Content-Type': 'application/json',
340
- 'Content-Encoding': 'gzip'
341
- }
342
- });
343
- if (response.status === 200) {
344
- const apiResponse = response.data;
372
+ (0, core_1.LogStatus)(` >>> Sending request to Skip API: ${config_1.___skipAPIurl}`);
373
+ const response = await (0, util_1.sendPostRequest)(config_1.___skipAPIurl, input, true, null);
374
+ if (response && response.length > 0) {
375
+ const apiResponse = response[response.length - 1];
345
376
  (0, core_1.LogStatus)(` Skip API response: ${apiResponse.responsePhase}`);
346
377
  this.PublishApiResponseUserUpdateMessage(apiResponse, userPayload, pubSub);
347
378
  if (apiResponse.responsePhase === 'data_request') {
@@ -509,6 +540,8 @@ let AskSkipResolver = AskSkipResolver_1 = class AskSkipResolver {
509
540
  }
510
541
  }
511
542
  else {
543
+ await dataContext.SaveItems(user, false);
544
+ apiRequest.dataContext = (0, global_1.CopyScalarsAndArrays)(dataContext);
512
545
  apiRequest.requestPhase = 'data_gathering_response';
513
546
  }
514
547
  return this.HandleSkipRequest(apiRequest, UserQuestion, user, dataSource, ConversationId, userPayload, pubSub, md, convoEntity, convoDetailEntity, dataContext, dataContextEntity);
@@ -571,6 +604,16 @@ let AskSkipResolver = AskSkipResolver_1 = class AskSkipResolver {
571
604
  exports.AskSkipResolver = AskSkipResolver;
572
605
  AskSkipResolver._defaultNewChatName = 'New Chat';
573
606
  AskSkipResolver._maxHistoricalMessages = 20;
607
+ __decorate([
608
+ (0, type_graphql_1.Query)(() => AskSkipResultType),
609
+ __param(0, (0, type_graphql_1.Ctx)()),
610
+ __param(1, (0, type_graphql_1.PubSub)()),
611
+ __param(2, (0, type_graphql_1.Arg)('DataContextId', () => type_graphql_1.Int)),
612
+ __param(3, (0, type_graphql_1.Arg)('ScriptText', () => String)),
613
+ __metadata("design:type", Function),
614
+ __metadata("design:paramtypes", [Object, type_graphql_1.PubSubEngine, Number, String]),
615
+ __metadata("design:returntype", Promise)
616
+ ], AskSkipResolver.prototype, "ExecuteAskSkipRunScript", null);
574
617
  __decorate([
575
618
  (0, type_graphql_1.Query)(() => AskSkipResultType),
576
619
  __param(0, (0, type_graphql_1.Arg)('UserQuestion', () => String)),
@@ -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":"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"}
package/dist/util.js ADDED
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.sendPostRequest = void 0;
4
+ const http_1 = require("http");
5
+ const https_1 = require("https");
6
+ const zlib_1 = require("zlib");
7
+ const util_1 = require("util");
8
+ const url_1 = require("url");
9
+ const gzip = (0, util_1.promisify)(zlib_1.gzip);
10
+ async function sendPostRequest(url, payload, useCompression, headers, streamCallback) {
11
+ return new Promise(async (resolve, reject) => {
12
+ const { protocol, hostname, port, pathname } = new url_1.URL(url);
13
+ let data;
14
+ if (useCompression) {
15
+ try {
16
+ data = await gzip(Buffer.from(JSON.stringify(payload)));
17
+ headers = headers || {};
18
+ headers['Content-Encoding'] = 'gzip';
19
+ }
20
+ catch (error) {
21
+ return reject(error);
22
+ }
23
+ }
24
+ else {
25
+ data = Buffer.from(JSON.stringify(payload));
26
+ }
27
+ const options = {
28
+ hostname,
29
+ port: port || (protocol === 'https:' ? 443 : 80),
30
+ path: pathname,
31
+ method: 'POST',
32
+ headers: {
33
+ 'Content-Type': 'application/json',
34
+ ...headers
35
+ }
36
+ };
37
+ const request = protocol === 'https:' ? https_1.request : http_1.request;
38
+ const jsonObjects = [];
39
+ let buffer = '';
40
+ const req = request(options, (res) => {
41
+ const gunzip = (0, zlib_1.createGunzip)();
42
+ const stream = res.headers['content-encoding'] === 'gzip' ? res.pipe(gunzip) : res;
43
+ stream.on('data', (chunk) => {
44
+ buffer += chunk;
45
+ let boundary;
46
+ while ((boundary = buffer.indexOf('\n')) !== -1) {
47
+ const jsonString = buffer.substring(0, boundary);
48
+ buffer = buffer.substring(boundary + 1);
49
+ try {
50
+ const jsonObject = JSON.parse(jsonString);
51
+ jsonObjects.push(jsonObject);
52
+ streamCallback?.(jsonObject);
53
+ }
54
+ catch (e) {
55
+ }
56
+ }
57
+ });
58
+ stream.on('end', () => {
59
+ if (buffer.trim()) {
60
+ try {
61
+ const jsonObject = JSON.parse(buffer.trim());
62
+ jsonObjects.push(jsonObject);
63
+ streamCallback?.(jsonObject);
64
+ }
65
+ catch (e) {
66
+ }
67
+ }
68
+ resolve(jsonObjects);
69
+ });
70
+ });
71
+ req.on('error', (e) => {
72
+ reject(e);
73
+ });
74
+ req.write(data);
75
+ req.end();
76
+ });
77
+ }
78
+ exports.sendPostRequest = sendPostRequest;
79
+ //# sourceMappingURL=util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@memberjunction/server",
3
- "version": "0.9.182",
3
+ "version": "0.9.185",
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",
@@ -22,15 +22,15 @@
22
22
  "@apollo/server": "^4.9.1",
23
23
  "@graphql-tools/utils": "^10.0.1",
24
24
  "@memberjunction/ai": "^0.9.136",
25
- "@memberjunction/aiengine": "^0.9.28",
26
- "@memberjunction/core": "^0.9.147",
27
- "@memberjunction/core-entities": "^0.9.130",
28
- "@memberjunction/data-context": "^0.9.17",
29
- "@memberjunction/data-context-server": "^0.9.13",
25
+ "@memberjunction/aiengine": "^0.9.29",
26
+ "@memberjunction/core": "^0.9.148",
27
+ "@memberjunction/core-entities": "^0.9.131",
28
+ "@memberjunction/data-context": "^0.9.18",
29
+ "@memberjunction/data-context-server": "^0.9.14",
30
30
  "@memberjunction/global": "^0.9.135",
31
- "@memberjunction/queue": "^0.9.148",
32
- "@memberjunction/sqlserver-dataprovider": "^0.9.158",
33
- "@memberjunction/skip-types": "^0.9.31",
31
+ "@memberjunction/queue": "^0.9.149",
32
+ "@memberjunction/sqlserver-dataprovider": "^0.9.159",
33
+ "@memberjunction/skip-types": "^0.9.34",
34
34
  "@types/cors": "^2.8.13",
35
35
  "@types/jsonwebtoken": "^8.5.9",
36
36
  "@types/node": "^18.11.14",
@@ -6,12 +6,12 @@ import { DataContext } from '@memberjunction/data-context'
6
6
  import { LoadDataContextItemsServer } from '@memberjunction/data-context-server';
7
7
  LoadDataContextItemsServer(); // prevent tree shaking since the DataContextItemServer class is not directly referenced in this file or otherwise statically instantiated, so it could be removed by the build process
8
8
 
9
- import { SkipAPIRequest, SkipAPIResponse, SkipMessage, SkipAPIAnalysisCompleteResponse, SkipAPIDataRequestResponse, SkipAPIClarifyingQuestionResponse, SkipEntityInfo, SkipQueryInfo } from '@memberjunction/skip-types';
10
- import axios from 'axios';
11
- import zlib from 'zlib';
12
- import { promisify } from 'util';
13
- // Convert zlib.gzip into a promise-returning function
14
- const gzip = promisify(zlib.gzip);
9
+ import { SkipAPIRequest, SkipAPIResponse, SkipMessage, SkipAPIAnalysisCompleteResponse, SkipAPIDataRequestResponse, SkipAPIClarifyingQuestionResponse, SkipEntityInfo, SkipQueryInfo, SkipAPIRunScriptRequest } from '@memberjunction/skip-types';
10
+ // import axios from 'axios';
11
+ // import zlib from 'zlib';
12
+ // import { promisify } from 'util';
13
+ // // Convert zlib.gzip into a promise-returning function
14
+ // const gzip = promisify(zlib.gzip);
15
15
 
16
16
  import { PUSH_STATUS_UPDATES_TOPIC } from '../generic/PushStatusResolver';
17
17
  import { ConversationDetailEntity, ConversationEntity, DataContextEntity, DataContextItemEntity, UserNotificationEntity } from '@memberjunction/core-entities';
@@ -21,6 +21,7 @@ import { ___skipAPIOrgId, ___skipAPIurl, mj_core_schema } from '../config';
21
21
 
22
22
  import { registerEnumType } from "type-graphql";
23
23
  import { MJGlobal, CopyScalarsAndArrays } from '@memberjunction/global';
24
+ import { sendPostRequest } from '../util';
24
25
 
25
26
 
26
27
  enum SkipResponsePhase {
@@ -65,6 +66,75 @@ export class AskSkipResolver {
65
66
  private static _defaultNewChatName = 'New Chat';
66
67
  private static _maxHistoricalMessages = 20;
67
68
 
69
+ /**
70
+ * Executes a script in the context of a data context and returns the results
71
+ * @param pubSub
72
+ * @param DataContextId
73
+ * @param ScriptText
74
+ */
75
+ @Query(() => AskSkipResultType)
76
+ async ExecuteAskSkipRunScript(@Ctx() { dataSource, userPayload }: AppContext,
77
+ @PubSub() pubSub: PubSubEngine,
78
+ @Arg('DataContextId', () => Int) DataContextId: number,
79
+ @Arg('ScriptText', () => String) ScriptText: string) {
80
+ const md = new Metadata();
81
+ const user = UserCache.Instance.Users.find((u) => u.Email === userPayload.email);
82
+ if (!user) throw new Error(`User ${userPayload.email} not found in UserCache`);
83
+ const dataContext: DataContext = new DataContext();
84
+ await dataContext.Load(DataContextId, dataSource, true, user);
85
+ const input: SkipAPIRunScriptRequest = {
86
+ scriptText: ScriptText,
87
+ messages: [], // not needed for this request
88
+ conversationID: '', // not needed for this request
89
+ dataContext: <DataContext>CopyScalarsAndArrays(dataContext), // we are casting this to DataContext as we're pushing this to the Skip API, and we don't want to send the real DataContext object, just a copy of the scalar and array properties
90
+ organizationID: !isNaN(parseInt(___skipAPIOrgId)) ? parseInt(___skipAPIOrgId) : 0,
91
+ requestPhase: 'run_existing_script',
92
+ entities: [], // not needed for this request
93
+ queries: [], // not needed for this request
94
+ };
95
+
96
+ LogStatus(` >>> Sending request to Skip API: ${___skipAPIurl}`)
97
+
98
+ const response = await sendPostRequest(___skipAPIurl, input, true, null);
99
+ // // Convert JSON payload to a Buffer and compress it
100
+ // const compressedPayload = await gzip(Buffer.from(JSON.stringify(input)));
101
+
102
+ // Send the compressed payload with Axios
103
+ // const response = await axios.post(___skipAPIurl, compressedPayload, {
104
+ // headers: {
105
+ // 'Content-Type': 'application/json',
106
+ // 'Content-Encoding': 'gzip'
107
+ // }
108
+ // });
109
+
110
+
111
+ if (response && response.length > 0) {
112
+ // the last object in the response array is the final response from the Skip API
113
+ const apiResponse = <SkipAPIResponse>response[response.length - 1];
114
+ // const apiResponse = <SkipAPIResponse>response.data;
115
+ LogStatus(` Skip API response: ${apiResponse.responsePhase}`)
116
+ return {
117
+ Success: true,
118
+ Status: 'OK',
119
+ ResponsePhase: SkipResponsePhase.AnalysisComplete,
120
+ ConversationId: 0,
121
+ UserMessageConversationDetailId: 0,
122
+ AIMessageConversationDetailId: 0,
123
+ Result: JSON.stringify(apiResponse)
124
+ };
125
+ }
126
+ else {
127
+ return {
128
+ Success: false,
129
+ Status: 'Error',
130
+ Result: `Report Refresh failed`,
131
+ ResponsePhase: SkipResponsePhase.AnalysisComplete,
132
+ ConversationId: 0,
133
+ UserMessageConversationDetailId: 0,
134
+ AIMessageConversationDetailId: 0,
135
+ };
136
+ }
137
+ }
68
138
 
69
139
  @Query(() => AskSkipResultType)
70
140
  async ExecuteAskSkipAnalysisQuery(
@@ -80,8 +150,6 @@ export class AskSkipResolver {
80
150
 
81
151
  const {convoEntity, dataContextEntity, convoDetailEntity, dataContext} = await this.HandleSkipInitialObjectLoading(dataSource, ConversationId, UserQuestion, user, userPayload, md, DataContextId);
82
152
 
83
- const OrganizationId = ___skipAPIOrgId;
84
-
85
153
  // now load up the messages. We will load up ALL of the messages for this conversation, and then pass them to the Skip API
86
154
  const messages: SkipMessage[] = await this.LoadConversationDetailsIntoSkipMessages(dataSource, convoEntity.ID, AskSkipResolver._maxHistoricalMessages);
87
155
 
@@ -89,7 +157,7 @@ export class AskSkipResolver {
89
157
  messages: messages,
90
158
  conversationID: ConversationId.toString(),
91
159
  dataContext: <DataContext>CopyScalarsAndArrays(dataContext), // we are casting this to DataContext as we're pushing this to the Skip API, and we don't want to send the real DataContext object, just a copy of the scalar and array properties
92
- organizationID: !isNaN(parseInt(OrganizationId)) ? parseInt(OrganizationId) : 0,
160
+ organizationID: !isNaN(parseInt(___skipAPIOrgId)) ? parseInt(___skipAPIOrgId) : 0,
93
161
  requestPhase: 'initial_request',
94
162
  entities: this.BuildSkipEntities(),
95
163
  queries: this.BuildSkipQueries(),
@@ -378,21 +446,24 @@ export class AskSkipResolver {
378
446
  ConversationId: number, userPayload: UserPayload, pubSub: PubSubEngine, md: Metadata,
379
447
  convoEntity: ConversationEntity, convoDetailEntity: ConversationDetailEntity,
380
448
  dataContext: DataContext, dataContextEntity: DataContextEntity): Promise<AskSkipResultType> {
381
- LogStatus(`Sending request to Skip API: ${___skipAPIurl}`)
382
-
383
- // Convert JSON payload to a Buffer and compress it
384
- const compressedPayload = await gzip(Buffer.from(JSON.stringify(input)));
385
-
386
- // Send the compressed payload with Axios
387
- const response = await axios.post(___skipAPIurl, compressedPayload, {
388
- headers: {
389
- 'Content-Type': 'application/json',
390
- 'Content-Encoding': 'gzip'
391
- }
392
- });
393
-
394
- if (response.status === 200) {
395
- const apiResponse = <SkipAPIResponse>response.data;
449
+ LogStatus(` >>> Sending request to Skip API: ${___skipAPIurl}`)
450
+
451
+ const response = await sendPostRequest(___skipAPIurl, input, true, null);
452
+ // // Convert JSON payload to a Buffer and compress it
453
+ // const compressedPayload = await gzip(Buffer.from(JSON.stringify(input)));
454
+
455
+ // // Send the compressed payload with Axios
456
+ // const response = await axios.post(___skipAPIurl, compressedPayload, {
457
+ // headers: {
458
+ // 'Content-Type': 'application/json',
459
+ // 'Content-Encoding': 'gzip'
460
+ // }
461
+ // });
462
+
463
+ if (response && response.length > 0) { // response.status === 200) {
464
+ // the last object in the response array is the final response from the Skip API
465
+ const apiResponse = <SkipAPIResponse>response[response.length - 1];
466
+ //const apiResponse = <SkipAPIResponse>response.data;
396
467
  LogStatus(` Skip API response: ${apiResponse.responsePhase}`)
397
468
  this.PublishApiResponseUserUpdateMessage(apiResponse, userPayload, pubSub);
398
469
 
@@ -586,6 +657,9 @@ export class AskSkipResolver {
586
657
  }
587
658
  }
588
659
  else {
660
+ await dataContext.SaveItems(user, false); // save the data context items
661
+ // replace the data context copy that is in the apiRequest.
662
+ apiRequest.dataContext = <DataContext>CopyScalarsAndArrays(dataContext); // we are casting this to DataContext as we're pushing this to the Skip API, and we don't want to send the real DataContext object, just a copy of the scalar and array properties
589
663
  apiRequest.requestPhase = 'data_gathering_response';
590
664
  }
591
665
  // we have all of the data now, add it to the data context and then submit it back to the Skip API
package/src/util.ts ADDED
@@ -0,0 +1,95 @@
1
+ import { request as httpRequest } from 'http';
2
+ import { request as httpsRequest } from 'https';
3
+ import { gzip as gzipCallback, createGunzip } from 'zlib';
4
+ import { promisify } from 'util';
5
+ import { URL } from 'url';
6
+
7
+ const gzip = promisify(gzipCallback);
8
+
9
+ type StreamCallback = (jsonObject: any) => void;
10
+
11
+ /**
12
+ * Utility function to handle HTTP/HTTPS requests with optional compression, custom headers, and streaming response callback for JSON objects.
13
+ * This function accumulates data chunks and parses complete JSON objects, assuming newline-delimited JSON in the stream.
14
+ *
15
+ * @param {string} url - The URL to which the request is sent.
16
+ * @param {any} payload - The payload to be sent with the request.
17
+ * @param {boolean} useCompression - Flag to determine if payload compression should be used.
18
+ * @param {Record<string, string> | null} headers - Custom headers for the request. Can be null.
19
+ * @param {StreamCallback} [streamCallback] - Optional callback for handling streaming JSON objects.
20
+ * @returns {Promise<any[]>} - A promise that resolves to an array of all JSON objects received during the streaming process.
21
+ */
22
+ export async function sendPostRequest(url: string, payload: any, useCompression: boolean, headers: Record<string, string> | null, streamCallback?: StreamCallback): Promise<any[]> {
23
+ return new Promise(async (resolve, reject) => {
24
+ const { protocol, hostname, port, pathname } = new URL(url);
25
+ let data;
26
+ if (useCompression) {
27
+ try {
28
+ data = await gzip(Buffer.from(JSON.stringify(payload)));
29
+ headers = headers || {}; // Ensure headers is an object
30
+ headers['Content-Encoding'] = 'gzip';
31
+ } catch (error) {
32
+ return reject(error);
33
+ }
34
+ } else {
35
+ data = Buffer.from(JSON.stringify(payload));
36
+ }
37
+
38
+ const options = {
39
+ hostname,
40
+ port: port || (protocol === 'https:' ? 443 : 80),
41
+ path: pathname,
42
+ method: 'POST',
43
+ headers: {
44
+ 'Content-Type': 'application/json',
45
+ ...headers
46
+ }
47
+ };
48
+
49
+ const request = protocol === 'https:' ? httpsRequest : httpRequest;
50
+ const jsonObjects: any[] = [];
51
+ let buffer = '';
52
+
53
+ const req = request(options, (res) => {
54
+ const gunzip = createGunzip();
55
+ const stream = res.headers['content-encoding'] === 'gzip' ? res.pipe(gunzip) : res;
56
+
57
+ stream.on('data', (chunk) => {
58
+ buffer += chunk;
59
+ let boundary;
60
+ while ((boundary = buffer.indexOf('\n')) !== -1) {
61
+ const jsonString = buffer.substring(0, boundary);
62
+ buffer = buffer.substring(boundary + 1);
63
+ try {
64
+ const jsonObject = JSON.parse(jsonString);
65
+ jsonObjects.push(jsonObject);
66
+ streamCallback?.(jsonObject);
67
+ } catch (e) {
68
+ // Handle JSON parse error for cases of malformed JSON objects
69
+ }
70
+ }
71
+ });
72
+
73
+ stream.on('end', () => {
74
+ // Attempt to parse any remaining data in buffer in case it's a complete JSON object
75
+ if (buffer.trim()) {
76
+ try {
77
+ const jsonObject = JSON.parse(buffer.trim());
78
+ jsonObjects.push(jsonObject);
79
+ streamCallback?.(jsonObject);
80
+ } catch (e) {
81
+ // Handle JSON parse error for the last chunk
82
+ }
83
+ }
84
+ resolve(jsonObjects);
85
+ });
86
+ });
87
+
88
+ req.on('error', (e) => {
89
+ reject(e);
90
+ });
91
+
92
+ req.write(data);
93
+ req.end();
94
+ });
95
+ }