@dereekb/nestjs 13.2.2 → 13.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -4,22 +4,69 @@ import { Injectable, Inject, Logger, Post, Req, Controller, Module } from '@nest
4
4
  import { OpenAI, InvalidWebhookSignatureError } from 'openai';
5
5
  import { ConfigService, ConfigModule } from '@nestjs/config';
6
6
 
7
+ function _define_property$5(obj, key, value) {
8
+ if (key in obj) {
9
+ Object.defineProperty(obj, key, {
10
+ value: value,
11
+ enumerable: true,
12
+ configurable: true,
13
+ writable: true
14
+ });
15
+ } else {
16
+ obj[key] = value;
17
+ }
18
+ return obj;
19
+ }
20
+ function _object_spread(target) {
21
+ for(var i = 1; i < arguments.length; i++){
22
+ var source = arguments[i] != null ? arguments[i] : {};
23
+ var ownKeys = Object.keys(source);
24
+ if (typeof Object.getOwnPropertySymbols === "function") {
25
+ ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
26
+ return Object.getOwnPropertyDescriptor(source, sym).enumerable;
27
+ }));
28
+ }
29
+ ownKeys.forEach(function(key) {
30
+ _define_property$5(target, key, source[key]);
31
+ });
32
+ }
33
+ return target;
34
+ }
35
+ function ownKeys(object, enumerableOnly) {
36
+ var keys = Object.keys(object);
37
+ if (Object.getOwnPropertySymbols) {
38
+ var symbols = Object.getOwnPropertySymbols(object);
39
+ keys.push.apply(keys, symbols);
40
+ }
41
+ return keys;
42
+ }
43
+ function _object_spread_props(target, source) {
44
+ source = source != null ? source : {};
45
+ if (Object.getOwnPropertyDescriptors) {
46
+ Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
47
+ } else {
48
+ ownKeys(Object(source)).forEach(function(key) {
49
+ Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
50
+ });
51
+ }
52
+ return target;
53
+ }
7
54
  /**
8
55
  * Creates a OpenAIWebhookEvent and treats the data as the input type.
9
56
  *
10
57
  * @param event
11
58
  * @returns
12
- */
13
- function openAIWebhookEvent(event) {
59
+ */ function openAIWebhookEvent(event) {
14
60
  return event;
15
61
  }
16
- const openaiEventHandlerFactory = handlerFactory((x) => x.type);
17
- const openaiEventHandlerConfigurerFactory = handlerConfigurerFactory({
18
- configurerForAccessor: (accessor) => {
62
+ var openaiEventHandlerFactory = handlerFactory(function(x) {
63
+ return x.type;
64
+ });
65
+ var openaiEventHandlerConfigurerFactory = handlerConfigurerFactory({
66
+ configurerForAccessor: function configurerForAccessor(accessor) {
19
67
  // eslint-disable-next-line
20
- const fnWithKey = handlerMappedSetFunctionFactory(accessor, openAIWebhookEvent);
21
- const configurer = {
22
- ...accessor,
68
+ var fnWithKey = handlerMappedSetFunctionFactory(accessor, openAIWebhookEvent);
69
+ var configurer = _object_spread_props(_object_spread({}, accessor), {
23
70
  handleBatchCancelled: fnWithKey('batch.cancelled'),
24
71
  handleBatchCompleted: fnWithKey('batch.completed'),
25
72
  handleBatchExpired: fnWithKey('batch.expired'),
@@ -34,174 +81,811 @@ const openaiEventHandlerConfigurerFactory = handlerConfigurerFactory({
34
81
  handleResponseCompleted: fnWithKey('response.completed'),
35
82
  handleResponseFailed: fnWithKey('response.failed'),
36
83
  handleResponseIncomplete: fnWithKey('response.incomplete')
37
- };
84
+ });
38
85
  return configurer;
39
86
  }
40
87
  });
41
88
 
42
- const OPENAI_WEBHOOK_SECRET_TOKEN_ENV_VAR = 'OPENAI_WEBHOOK_SECRET_TOKEN';
89
+ function _class_call_check$6(instance, Constructor) {
90
+ if (!(instance instanceof Constructor)) {
91
+ throw new TypeError("Cannot call a class as a function");
92
+ }
93
+ }
94
+ function _defineProperties$3(target, props) {
95
+ for(var i = 0; i < props.length; i++){
96
+ var descriptor = props[i];
97
+ descriptor.enumerable = descriptor.enumerable || false;
98
+ descriptor.configurable = true;
99
+ if ("value" in descriptor) descriptor.writable = true;
100
+ Object.defineProperty(target, descriptor.key, descriptor);
101
+ }
102
+ }
103
+ function _create_class$3(Constructor, protoProps, staticProps) {
104
+ if (staticProps) _defineProperties$3(Constructor, staticProps);
105
+ return Constructor;
106
+ }
107
+ function _define_property$4(obj, key, value) {
108
+ if (key in obj) {
109
+ Object.defineProperty(obj, key, {
110
+ value: value,
111
+ enumerable: true,
112
+ configurable: true,
113
+ writable: true
114
+ });
115
+ } else {
116
+ obj[key] = value;
117
+ }
118
+ return obj;
119
+ }
120
+ var OPENAI_WEBHOOK_SECRET_TOKEN_ENV_VAR = 'OPENAI_WEBHOOK_SECRET_TOKEN';
43
121
  /**
44
122
  * Configuration for OpenAIService
45
- */
46
- class OpenAIWebhookServiceConfig {
47
- openaiWebhook;
48
- static assertValidConfig(config) {
49
- if (!config.openaiWebhook.webhookSecret) {
50
- throw new Error('No OpenAI webhook secret specified.');
51
- }
123
+ */ var OpenAIWebhookServiceConfig = /*#__PURE__*/ function() {
124
+ function OpenAIWebhookServiceConfig() {
125
+ _class_call_check$6(this, OpenAIWebhookServiceConfig);
126
+ _define_property$4(this, "openaiWebhook", void 0);
52
127
  }
53
- }
128
+ _create_class$3(OpenAIWebhookServiceConfig, null, [
129
+ {
130
+ key: "assertValidConfig",
131
+ value: function assertValidConfig(config) {
132
+ if (!config.openaiWebhook.webhookSecret) {
133
+ throw new Error('No OpenAI webhook secret specified.');
134
+ }
135
+ }
136
+ }
137
+ ]);
138
+ return OpenAIWebhookServiceConfig;
139
+ }
140
+ ();
54
141
 
55
- /******************************************************************************
56
- Copyright (c) Microsoft Corporation.
57
-
58
- Permission to use, copy, modify, and/or distribute this software for any
59
- purpose with or without fee is hereby granted.
60
-
61
- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
62
- REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
63
- AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
64
- INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
65
- LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
66
- OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
67
- PERFORMANCE OF THIS SOFTWARE.
68
- ***************************************************************************** */
69
- /* global Reflect, Promise, SuppressedError, Symbol, Iterator */
70
-
71
-
72
- function __decorate(decorators, target, key, desc) {
73
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
74
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
75
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
76
- return c > 3 && r && Object.defineProperty(target, key, r), r;
77
- }
78
-
79
- function __param(paramIndex, decorator) {
80
- return function (target, key) { decorator(target, key, paramIndex); }
81
- }
82
-
83
- typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
84
- var e = new Error(message);
85
- return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
142
+ function _type_of(obj) {
143
+ "@swc/helpers - typeof";
144
+ return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
145
+ }
146
+ function __decorate(decorators, target, key, desc) {
147
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
148
+ if ((typeof Reflect === "undefined" ? "undefined" : _type_of(Reflect)) === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
149
+ else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
150
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
151
+ }
152
+ function __param(paramIndex, decorator) {
153
+ return function(target, key) {
154
+ decorator(target, key, paramIndex);
155
+ };
156
+ }
157
+ typeof SuppressedError === "function" ? SuppressedError : function(error, suppressed, message) {
158
+ var e = new Error(message);
159
+ return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
86
160
  };
87
161
 
162
+ function _class_call_check$5(instance, Constructor) {
163
+ if (!(instance instanceof Constructor)) {
164
+ throw new TypeError("Cannot call a class as a function");
165
+ }
166
+ }
167
+ function _defineProperties$2(target, props) {
168
+ for(var i = 0; i < props.length; i++){
169
+ var descriptor = props[i];
170
+ descriptor.enumerable = descriptor.enumerable || false;
171
+ descriptor.configurable = true;
172
+ if ("value" in descriptor) descriptor.writable = true;
173
+ Object.defineProperty(target, descriptor.key, descriptor);
174
+ }
175
+ }
176
+ function _create_class$2(Constructor, protoProps, staticProps) {
177
+ if (staticProps) _defineProperties$2(Constructor, staticProps);
178
+ return Constructor;
179
+ }
180
+ function _define_property$3(obj, key, value) {
181
+ if (key in obj) {
182
+ Object.defineProperty(obj, key, {
183
+ value: value,
184
+ enumerable: true,
185
+ configurable: true,
186
+ writable: true
187
+ });
188
+ } else {
189
+ obj[key] = value;
190
+ }
191
+ return obj;
192
+ }
88
193
  /**
89
194
  * Default environment variable for the OpenAI API key.
90
- */
91
- const OPENAI_API_KEY_ENV_VAR = 'OPENAI_API_KEY';
92
- const OPENAI_BASE_URL_ENV_VAR = 'OPENAI_BASE_URL';
93
- const OPENAI_ORGANIZATION_ID_ENV_VAR = 'OPENAI_ORG_ID';
94
- const OPENAI_PROJECT_ID_ENV_VAR = 'OPENAI_PROJECT_ID';
195
+ */ var OPENAI_API_KEY_ENV_VAR = 'OPENAI_API_KEY';
196
+ var OPENAI_BASE_URL_ENV_VAR = 'OPENAI_BASE_URL';
197
+ var OPENAI_ORGANIZATION_ID_ENV_VAR = 'OPENAI_ORG_ID';
198
+ var OPENAI_PROJECT_ID_ENV_VAR = 'OPENAI_PROJECT_ID';
95
199
  /**
96
200
  * Configuration for OpenAIService
97
- */
98
- class OpenAIServiceConfig {
99
- openai;
100
- static assertValidConfig(config) {
101
- if (!config.openai.config.apiKey) {
102
- throw new Error('No OpenAI API key specified.');
103
- }
104
- else if (!config.openai.config.organization) {
105
- throw new Error('No OpenAI organization specified.');
106
- }
107
- else if (!config.openai.config.project) {
108
- throw new Error('No OpenAI project specified.');
201
+ */ var OpenAIServiceConfig = /*#__PURE__*/ function() {
202
+ function OpenAIServiceConfig() {
203
+ _class_call_check$5(this, OpenAIServiceConfig);
204
+ _define_property$3(this, "openai", void 0);
205
+ }
206
+ _create_class$2(OpenAIServiceConfig, null, [
207
+ {
208
+ key: "assertValidConfig",
209
+ value: function assertValidConfig(config) {
210
+ if (!config.openai.config.apiKey) {
211
+ throw new Error('No OpenAI API key specified.');
212
+ } else if (!config.openai.config.organization) {
213
+ throw new Error('No OpenAI organization specified.');
214
+ } else if (!config.openai.config.project) {
215
+ throw new Error('No OpenAI project specified.');
216
+ }
217
+ }
109
218
  }
219
+ ]);
220
+ return OpenAIServiceConfig;
221
+ }
222
+ ();
223
+
224
+ function _class_call_check$4(instance, Constructor) {
225
+ if (!(instance instanceof Constructor)) {
226
+ throw new TypeError("Cannot call a class as a function");
110
227
  }
111
228
  }
112
-
113
- let OpenAIApi = class OpenAIApi {
114
- config;
115
- openAIClient;
116
- constructor(config) {
117
- this.config = config;
118
- this.openAIClient = new OpenAI(config.openai.config);
229
+ function _define_property$2(obj, key, value) {
230
+ if (key in obj) {
231
+ Object.defineProperty(obj, key, {
232
+ value: value,
233
+ enumerable: true,
234
+ configurable: true,
235
+ writable: true
236
+ });
237
+ } else {
238
+ obj[key] = value;
119
239
  }
240
+ return obj;
241
+ }
242
+ var OpenAIApi = function OpenAIApi(config) {
243
+ _class_call_check$4(this, OpenAIApi);
244
+ _define_property$2(this, "config", void 0);
245
+ _define_property$2(this, "openAIClient", void 0);
246
+ this.config = config;
247
+ this.openAIClient = new OpenAI(config.openai.config);
120
248
  };
121
249
  OpenAIApi = __decorate([
122
250
  Injectable(),
123
251
  __param(0, Inject(OpenAIServiceConfig))
124
252
  ], OpenAIApi);
125
253
 
254
+ function asyncGeneratorStep$2(gen, resolve, reject, _next, _throw, key, arg) {
255
+ try {
256
+ var info = gen[key](arg);
257
+ var value = info.value;
258
+ } catch (error) {
259
+ reject(error);
260
+ return;
261
+ }
262
+ if (info.done) {
263
+ resolve(value);
264
+ } else {
265
+ Promise.resolve(value).then(_next, _throw);
266
+ }
267
+ }
268
+ function _async_to_generator$2(fn) {
269
+ return function() {
270
+ var self = this, args = arguments;
271
+ return new Promise(function(resolve, reject) {
272
+ var gen = fn.apply(self, args);
273
+ function _next(value) {
274
+ asyncGeneratorStep$2(gen, resolve, reject, _next, _throw, "next", value);
275
+ }
276
+ function _throw(err) {
277
+ asyncGeneratorStep$2(gen, resolve, reject, _next, _throw, "throw", err);
278
+ }
279
+ _next(undefined);
280
+ });
281
+ };
282
+ }
283
+ function _instanceof(left, right) {
284
+ if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) {
285
+ return !!right[Symbol.hasInstance](left);
286
+ } else {
287
+ return left instanceof right;
288
+ }
289
+ }
290
+ function _ts_generator$2(thisArg, body) {
291
+ var f, y, t, _ = {
292
+ label: 0,
293
+ sent: function() {
294
+ if (t[0] & 1) throw t[1];
295
+ return t[1];
296
+ },
297
+ trys: [],
298
+ ops: []
299
+ }, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype), d = Object.defineProperty;
300
+ return d(g, "next", {
301
+ value: verb(0)
302
+ }), d(g, "throw", {
303
+ value: verb(1)
304
+ }), d(g, "return", {
305
+ value: verb(2)
306
+ }), typeof Symbol === "function" && d(g, Symbol.iterator, {
307
+ value: function() {
308
+ return this;
309
+ }
310
+ }), g;
311
+ function verb(n) {
312
+ return function(v) {
313
+ return step([
314
+ n,
315
+ v
316
+ ]);
317
+ };
318
+ }
319
+ function step(op) {
320
+ if (f) throw new TypeError("Generator is already executing.");
321
+ while(g && (g = 0, op[0] && (_ = 0)), _)try {
322
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
323
+ if (y = 0, t) op = [
324
+ op[0] & 2,
325
+ t.value
326
+ ];
327
+ switch(op[0]){
328
+ case 0:
329
+ case 1:
330
+ t = op;
331
+ break;
332
+ case 4:
333
+ _.label++;
334
+ return {
335
+ value: op[1],
336
+ done: false
337
+ };
338
+ case 5:
339
+ _.label++;
340
+ y = op[1];
341
+ op = [
342
+ 0
343
+ ];
344
+ continue;
345
+ case 7:
346
+ op = _.ops.pop();
347
+ _.trys.pop();
348
+ continue;
349
+ default:
350
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
351
+ _ = 0;
352
+ continue;
353
+ }
354
+ if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
355
+ _.label = op[1];
356
+ break;
357
+ }
358
+ if (op[0] === 6 && _.label < t[1]) {
359
+ _.label = t[1];
360
+ t = op;
361
+ break;
362
+ }
363
+ if (t && _.label < t[2]) {
364
+ _.label = t[2];
365
+ _.ops.push(op);
366
+ break;
367
+ }
368
+ if (t[2]) _.ops.pop();
369
+ _.trys.pop();
370
+ continue;
371
+ }
372
+ op = body.call(thisArg, _);
373
+ } catch (e) {
374
+ op = [
375
+ 6,
376
+ e
377
+ ];
378
+ y = 0;
379
+ } finally{
380
+ f = t = 0;
381
+ }
382
+ if (op[0] & 5) throw op[1];
383
+ return {
384
+ value: op[0] ? op[1] : void 0,
385
+ done: true
386
+ };
387
+ }
388
+ }
126
389
  /**
127
390
  * Verifies a OpenAI webhook event header.
128
391
  *
129
392
  * @param vapiSecretTokenGetter The OpenAI secret token. The Vapi client allows for using an AsyncGetterOrValue type, so the verifier supports that as well.
130
393
  * @returns A function that verifies a OpenAI webhook event.
131
- */
132
- function openAIWebhookEventVerifier(config) {
133
- const { secret, client } = config;
134
- return async (request, rawBody) => {
135
- const headers = request.headers;
136
- const requestBodyString = String(request.body);
137
- let event;
138
- let valid = false;
139
- try {
140
- event = await client.webhooks.unwrap(requestBodyString, headers, secret);
141
- valid = true;
142
- }
143
- catch (e) {
144
- if (e instanceof InvalidWebhookSignatureError) {
145
- valid = false;
394
+ */ function openAIWebhookEventVerifier(config) {
395
+ var secret = config.secret, client = config.client;
396
+ return function(request, rawBody) {
397
+ return _async_to_generator$2(function() {
398
+ var headers, requestBodyString, event, valid, e, result;
399
+ return _ts_generator$2(this, function(_state) {
400
+ switch(_state.label){
401
+ case 0:
402
+ headers = request.headers;
403
+ requestBodyString = String(request.body);
404
+ valid = false;
405
+ _state.label = 1;
406
+ case 1:
407
+ _state.trys.push([
408
+ 1,
409
+ 3,
410
+ ,
411
+ 4
412
+ ]);
413
+ return [
414
+ 4,
415
+ client.webhooks.unwrap(requestBodyString, headers, secret)
416
+ ];
417
+ case 2:
418
+ event = _state.sent();
419
+ valid = true;
420
+ return [
421
+ 3,
422
+ 4
423
+ ];
424
+ case 3:
425
+ e = _state.sent();
426
+ if (_instanceof(e, InvalidWebhookSignatureError)) {
427
+ valid = false;
428
+ } else {
429
+ throw e;
430
+ }
431
+ return [
432
+ 3,
433
+ 4
434
+ ];
435
+ case 4:
436
+ result = {
437
+ valid: valid,
438
+ event: event
439
+ };
440
+ return [
441
+ 2,
442
+ result
443
+ ];
444
+ }
445
+ });
446
+ })();
447
+ };
448
+ }
449
+
450
+ function asyncGeneratorStep$1(gen, resolve, reject, _next, _throw, key, arg) {
451
+ try {
452
+ var info = gen[key](arg);
453
+ var value = info.value;
454
+ } catch (error) {
455
+ reject(error);
456
+ return;
457
+ }
458
+ if (info.done) {
459
+ resolve(value);
460
+ } else {
461
+ Promise.resolve(value).then(_next, _throw);
462
+ }
463
+ }
464
+ function _async_to_generator$1(fn) {
465
+ return function() {
466
+ var self = this, args = arguments;
467
+ return new Promise(function(resolve, reject) {
468
+ var gen = fn.apply(self, args);
469
+ function _next(value) {
470
+ asyncGeneratorStep$1(gen, resolve, reject, _next, _throw, "next", value);
146
471
  }
147
- else {
148
- throw e;
472
+ function _throw(err) {
473
+ asyncGeneratorStep$1(gen, resolve, reject, _next, _throw, "throw", err);
149
474
  }
475
+ _next(undefined);
476
+ });
477
+ };
478
+ }
479
+ function _class_call_check$3(instance, Constructor) {
480
+ if (!(instance instanceof Constructor)) {
481
+ throw new TypeError("Cannot call a class as a function");
482
+ }
483
+ }
484
+ function _defineProperties$1(target, props) {
485
+ for(var i = 0; i < props.length; i++){
486
+ var descriptor = props[i];
487
+ descriptor.enumerable = descriptor.enumerable || false;
488
+ descriptor.configurable = true;
489
+ if ("value" in descriptor) descriptor.writable = true;
490
+ Object.defineProperty(target, descriptor.key, descriptor);
491
+ }
492
+ }
493
+ function _create_class$1(Constructor, protoProps, staticProps) {
494
+ if (protoProps) _defineProperties$1(Constructor.prototype, protoProps);
495
+ return Constructor;
496
+ }
497
+ function _define_property$1(obj, key, value) {
498
+ if (key in obj) {
499
+ Object.defineProperty(obj, key, {
500
+ value: value,
501
+ enumerable: true,
502
+ configurable: true,
503
+ writable: true
504
+ });
505
+ } else {
506
+ obj[key] = value;
507
+ }
508
+ return obj;
509
+ }
510
+ function _ts_generator$1(thisArg, body) {
511
+ var f, y, t, _ = {
512
+ label: 0,
513
+ sent: function() {
514
+ if (t[0] & 1) throw t[1];
515
+ return t[1];
516
+ },
517
+ trys: [],
518
+ ops: []
519
+ }, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype), d = Object.defineProperty;
520
+ return d(g, "next", {
521
+ value: verb(0)
522
+ }), d(g, "throw", {
523
+ value: verb(1)
524
+ }), d(g, "return", {
525
+ value: verb(2)
526
+ }), typeof Symbol === "function" && d(g, Symbol.iterator, {
527
+ value: function() {
528
+ return this;
150
529
  }
151
- const result = {
152
- valid,
153
- event
530
+ }), g;
531
+ function verb(n) {
532
+ return function(v) {
533
+ return step([
534
+ n,
535
+ v
536
+ ]);
154
537
  };
155
- return result;
156
- };
538
+ }
539
+ function step(op) {
540
+ if (f) throw new TypeError("Generator is already executing.");
541
+ while(g && (g = 0, op[0] && (_ = 0)), _)try {
542
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
543
+ if (y = 0, t) op = [
544
+ op[0] & 2,
545
+ t.value
546
+ ];
547
+ switch(op[0]){
548
+ case 0:
549
+ case 1:
550
+ t = op;
551
+ break;
552
+ case 4:
553
+ _.label++;
554
+ return {
555
+ value: op[1],
556
+ done: false
557
+ };
558
+ case 5:
559
+ _.label++;
560
+ y = op[1];
561
+ op = [
562
+ 0
563
+ ];
564
+ continue;
565
+ case 7:
566
+ op = _.ops.pop();
567
+ _.trys.pop();
568
+ continue;
569
+ default:
570
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
571
+ _ = 0;
572
+ continue;
573
+ }
574
+ if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
575
+ _.label = op[1];
576
+ break;
577
+ }
578
+ if (op[0] === 6 && _.label < t[1]) {
579
+ _.label = t[1];
580
+ t = op;
581
+ break;
582
+ }
583
+ if (t && _.label < t[2]) {
584
+ _.label = t[2];
585
+ _.ops.push(op);
586
+ break;
587
+ }
588
+ if (t[2]) _.ops.pop();
589
+ _.trys.pop();
590
+ continue;
591
+ }
592
+ op = body.call(thisArg, _);
593
+ } catch (e) {
594
+ op = [
595
+ 6,
596
+ e
597
+ ];
598
+ y = 0;
599
+ } finally{
600
+ f = t = 0;
601
+ }
602
+ if (op[0] & 5) throw op[1];
603
+ return {
604
+ value: op[0] ? op[1] : void 0,
605
+ done: true
606
+ };
607
+ }
157
608
  }
158
-
159
609
  /**
160
610
  * Service that makes system changes based on OpenAI webhook events.
161
- */
162
- let OpenAIWebhookService = class OpenAIWebhookService {
163
- logger = new Logger('OpenAIWebhookService');
164
- _verifier;
165
- handler = openaiEventHandlerFactory();
166
- configure = openaiEventHandlerConfigurerFactory(this.handler);
167
- constructor(openAiApi, openAIWebhookServiceConfig) {
168
- const { webhookSecret } = openAIWebhookServiceConfig.openaiWebhook;
611
+ */ var OpenAIWebhookService = /*#__PURE__*/ function() {
612
+ function OpenAIWebhookService(openAiApi, openAIWebhookServiceConfig) {
613
+ _class_call_check$3(this, OpenAIWebhookService);
614
+ _define_property$1(this, "logger", new Logger('OpenAIWebhookService'));
615
+ _define_property$1(this, "_verifier", void 0);
616
+ _define_property$1(this, "handler", openaiEventHandlerFactory());
617
+ _define_property$1(this, "configure", openaiEventHandlerConfigurerFactory(this.handler));
618
+ var webhookSecret = openAIWebhookServiceConfig.openaiWebhook.webhookSecret;
169
619
  this._verifier = openAIWebhookEventVerifier({
170
620
  secret: webhookSecret,
171
621
  client: openAiApi.openAIClient
172
622
  });
173
623
  }
174
- async updateForWebhook(req, rawBody) {
175
- const result = await this._verifier(req, rawBody);
176
- if (!result.valid) {
177
- this.logger.warn('Received invalid OpenAI event.', req);
178
- }
179
- else {
180
- await this.updateForOpenAIEvent(result.event);
181
- }
182
- }
183
- async updateForOpenAIEvent(event) {
184
- const result = await this.handler(event);
185
- if (!result) {
186
- this.logger.warn('Received unexpected/unhandled OpenAI event.', event);
624
+ _create_class$1(OpenAIWebhookService, [
625
+ {
626
+ key: "updateForWebhook",
627
+ value: function updateForWebhook(req, rawBody) {
628
+ return _async_to_generator$1(function() {
629
+ var result;
630
+ return _ts_generator$1(this, function(_state) {
631
+ switch(_state.label){
632
+ case 0:
633
+ return [
634
+ 4,
635
+ this._verifier(req, rawBody)
636
+ ];
637
+ case 1:
638
+ result = _state.sent();
639
+ if (!!result.valid) return [
640
+ 3,
641
+ 2
642
+ ];
643
+ this.logger.warn('Received invalid OpenAI event.', req);
644
+ return [
645
+ 3,
646
+ 4
647
+ ];
648
+ case 2:
649
+ return [
650
+ 4,
651
+ this.updateForOpenAIEvent(result.event)
652
+ ];
653
+ case 3:
654
+ _state.sent();
655
+ _state.label = 4;
656
+ case 4:
657
+ return [
658
+ 2
659
+ ];
660
+ }
661
+ });
662
+ }).call(this);
663
+ }
664
+ },
665
+ {
666
+ key: "updateForOpenAIEvent",
667
+ value: function updateForOpenAIEvent(event) {
668
+ return _async_to_generator$1(function() {
669
+ var result;
670
+ return _ts_generator$1(this, function(_state) {
671
+ switch(_state.label){
672
+ case 0:
673
+ return [
674
+ 4,
675
+ this.handler(event)
676
+ ];
677
+ case 1:
678
+ result = _state.sent();
679
+ if (!result) {
680
+ this.logger.warn('Received unexpected/unhandled OpenAI event.', event);
681
+ }
682
+ return [
683
+ 2
684
+ ];
685
+ }
686
+ });
687
+ }).call(this);
688
+ }
187
689
  }
188
- }
189
- };
690
+ ]);
691
+ return OpenAIWebhookService;
692
+ }();
190
693
  OpenAIWebhookService = __decorate([
191
694
  Injectable(),
192
695
  __param(0, Inject(OpenAIApi)),
193
696
  __param(1, Inject(OpenAIWebhookServiceConfig))
194
697
  ], OpenAIWebhookService);
195
698
 
196
- let OpenAIWebhookController = class OpenAIWebhookController {
197
- _openaiWebhookService;
198
- constructor(openaiWebhookService) {
199
- this._openaiWebhookService = openaiWebhookService;
699
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
700
+ try {
701
+ var info = gen[key](arg);
702
+ var value = info.value;
703
+ } catch (error) {
704
+ reject(error);
705
+ return;
200
706
  }
201
- async handleOpenAIWebhook(req, rawBody) {
202
- await this._openaiWebhookService.updateForWebhook(req, rawBody);
707
+ if (info.done) {
708
+ resolve(value);
709
+ } else {
710
+ Promise.resolve(value).then(_next, _throw);
203
711
  }
204
- };
712
+ }
713
+ function _async_to_generator(fn) {
714
+ return function() {
715
+ var self = this, args = arguments;
716
+ return new Promise(function(resolve, reject) {
717
+ var gen = fn.apply(self, args);
718
+ function _next(value) {
719
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
720
+ }
721
+ function _throw(err) {
722
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
723
+ }
724
+ _next(undefined);
725
+ });
726
+ };
727
+ }
728
+ function _class_call_check$2(instance, Constructor) {
729
+ if (!(instance instanceof Constructor)) {
730
+ throw new TypeError("Cannot call a class as a function");
731
+ }
732
+ }
733
+ function _defineProperties(target, props) {
734
+ for(var i = 0; i < props.length; i++){
735
+ var descriptor = props[i];
736
+ descriptor.enumerable = descriptor.enumerable || false;
737
+ descriptor.configurable = true;
738
+ if ("value" in descriptor) descriptor.writable = true;
739
+ Object.defineProperty(target, descriptor.key, descriptor);
740
+ }
741
+ }
742
+ function _create_class(Constructor, protoProps, staticProps) {
743
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
744
+ return Constructor;
745
+ }
746
+ function _define_property(obj, key, value) {
747
+ if (key in obj) {
748
+ Object.defineProperty(obj, key, {
749
+ value: value,
750
+ enumerable: true,
751
+ configurable: true,
752
+ writable: true
753
+ });
754
+ } else {
755
+ obj[key] = value;
756
+ }
757
+ return obj;
758
+ }
759
+ function _ts_generator(thisArg, body) {
760
+ var f, y, t, _ = {
761
+ label: 0,
762
+ sent: function() {
763
+ if (t[0] & 1) throw t[1];
764
+ return t[1];
765
+ },
766
+ trys: [],
767
+ ops: []
768
+ }, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype), d = Object.defineProperty;
769
+ return d(g, "next", {
770
+ value: verb(0)
771
+ }), d(g, "throw", {
772
+ value: verb(1)
773
+ }), d(g, "return", {
774
+ value: verb(2)
775
+ }), typeof Symbol === "function" && d(g, Symbol.iterator, {
776
+ value: function() {
777
+ return this;
778
+ }
779
+ }), g;
780
+ function verb(n) {
781
+ return function(v) {
782
+ return step([
783
+ n,
784
+ v
785
+ ]);
786
+ };
787
+ }
788
+ function step(op) {
789
+ if (f) throw new TypeError("Generator is already executing.");
790
+ while(g && (g = 0, op[0] && (_ = 0)), _)try {
791
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
792
+ if (y = 0, t) op = [
793
+ op[0] & 2,
794
+ t.value
795
+ ];
796
+ switch(op[0]){
797
+ case 0:
798
+ case 1:
799
+ t = op;
800
+ break;
801
+ case 4:
802
+ _.label++;
803
+ return {
804
+ value: op[1],
805
+ done: false
806
+ };
807
+ case 5:
808
+ _.label++;
809
+ y = op[1];
810
+ op = [
811
+ 0
812
+ ];
813
+ continue;
814
+ case 7:
815
+ op = _.ops.pop();
816
+ _.trys.pop();
817
+ continue;
818
+ default:
819
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
820
+ _ = 0;
821
+ continue;
822
+ }
823
+ if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
824
+ _.label = op[1];
825
+ break;
826
+ }
827
+ if (op[0] === 6 && _.label < t[1]) {
828
+ _.label = t[1];
829
+ t = op;
830
+ break;
831
+ }
832
+ if (t && _.label < t[2]) {
833
+ _.label = t[2];
834
+ _.ops.push(op);
835
+ break;
836
+ }
837
+ if (t[2]) _.ops.pop();
838
+ _.trys.pop();
839
+ continue;
840
+ }
841
+ op = body.call(thisArg, _);
842
+ } catch (e) {
843
+ op = [
844
+ 6,
845
+ e
846
+ ];
847
+ y = 0;
848
+ } finally{
849
+ f = t = 0;
850
+ }
851
+ if (op[0] & 5) throw op[1];
852
+ return {
853
+ value: op[0] ? op[1] : void 0,
854
+ done: true
855
+ };
856
+ }
857
+ }
858
+ var OpenAIWebhookController = /*#__PURE__*/ function() {
859
+ function OpenAIWebhookController(openaiWebhookService) {
860
+ _class_call_check$2(this, OpenAIWebhookController);
861
+ _define_property(this, "_openaiWebhookService", void 0);
862
+ this._openaiWebhookService = openaiWebhookService;
863
+ }
864
+ _create_class(OpenAIWebhookController, [
865
+ {
866
+ key: "handleOpenAIWebhook",
867
+ value: function handleOpenAIWebhook(req, rawBody) {
868
+ return _async_to_generator(function() {
869
+ return _ts_generator(this, function(_state) {
870
+ switch(_state.label){
871
+ case 0:
872
+ return [
873
+ 4,
874
+ this._openaiWebhookService.updateForWebhook(req, rawBody)
875
+ ];
876
+ case 1:
877
+ _state.sent();
878
+ return [
879
+ 2
880
+ ];
881
+ }
882
+ });
883
+ }).call(this);
884
+ }
885
+ }
886
+ ]);
887
+ return OpenAIWebhookController;
888
+ }();
205
889
  __decorate([
206
890
  Post(),
207
891
  __param(0, Req()),
@@ -212,12 +896,18 @@ OpenAIWebhookController = __decorate([
212
896
  __param(0, Inject(OpenAIWebhookService))
213
897
  ], OpenAIWebhookController);
214
898
 
899
+ function _class_call_check$1(instance, Constructor) {
900
+ if (!(instance instanceof Constructor)) {
901
+ throw new TypeError("Cannot call a class as a function");
902
+ }
903
+ }
215
904
  function openAIServiceConfigFactory(configService) {
216
- const config = {
905
+ var _configService_get;
906
+ var config = {
217
907
  openai: {
218
908
  config: {
219
909
  apiKey: configService.get(OPENAI_API_KEY_ENV_VAR),
220
- baseURL: configService.get(OPENAI_BASE_URL_ENV_VAR) ?? undefined,
910
+ baseURL: (_configService_get = configService.get(OPENAI_BASE_URL_ENV_VAR)) !== null && _configService_get !== void 0 ? _configService_get : undefined,
221
911
  organization: configService.get(OPENAI_ORGANIZATION_ID_ENV_VAR),
222
912
  project: configService.get(OPENAI_PROJECT_ID_ENV_VAR)
223
913
  }
@@ -226,25 +916,37 @@ function openAIServiceConfigFactory(configService) {
226
916
  OpenAIServiceConfig.assertValidConfig(config);
227
917
  return config;
228
918
  }
229
- let OpenAIModule = class OpenAIModule {
919
+ var OpenAIModule = function OpenAIModule() {
920
+ _class_call_check$1(this, OpenAIModule);
230
921
  };
231
922
  OpenAIModule = __decorate([
232
923
  Module({
233
- imports: [ConfigModule],
924
+ imports: [
925
+ ConfigModule
926
+ ],
234
927
  providers: [
235
928
  {
236
929
  provide: OpenAIServiceConfig,
237
- inject: [ConfigService],
930
+ inject: [
931
+ ConfigService
932
+ ],
238
933
  useFactory: openAIServiceConfigFactory
239
934
  },
240
935
  OpenAIApi
241
936
  ],
242
- exports: [OpenAIApi]
937
+ exports: [
938
+ OpenAIApi
939
+ ]
243
940
  })
244
941
  ], OpenAIModule);
245
942
 
943
+ function _class_call_check(instance, Constructor) {
944
+ if (!(instance instanceof Constructor)) {
945
+ throw new TypeError("Cannot call a class as a function");
946
+ }
947
+ }
246
948
  function openAIWebhookServiceConfigFactory(configService) {
247
- const config = {
949
+ var config = {
248
950
  openaiWebhook: {
249
951
  webhookSecret: configService.get(OPENAI_WEBHOOK_SECRET_TOKEN_ENV_VAR)
250
952
  }
@@ -252,21 +954,31 @@ function openAIWebhookServiceConfigFactory(configService) {
252
954
  OpenAIWebhookServiceConfig.assertValidConfig(config);
253
955
  return config;
254
956
  }
255
- let OpenAIWebhookModule = class OpenAIWebhookModule {
957
+ var OpenAIWebhookModule = function OpenAIWebhookModule() {
958
+ _class_call_check(this, OpenAIWebhookModule);
256
959
  };
257
960
  OpenAIWebhookModule = __decorate([
258
961
  Module({
259
- imports: [ConfigModule, OpenAIModule],
260
- controllers: [OpenAIWebhookController],
962
+ imports: [
963
+ ConfigModule,
964
+ OpenAIModule
965
+ ],
966
+ controllers: [
967
+ OpenAIWebhookController
968
+ ],
261
969
  providers: [
262
970
  {
263
971
  provide: OpenAIWebhookServiceConfig,
264
- inject: [ConfigService],
972
+ inject: [
973
+ ConfigService
974
+ ],
265
975
  useFactory: openAIWebhookServiceConfigFactory
266
976
  },
267
977
  OpenAIWebhookService
268
978
  ],
269
- exports: [OpenAIWebhookService]
979
+ exports: [
980
+ OpenAIWebhookService
981
+ ]
270
982
  })
271
983
  ], OpenAIWebhookModule);
272
984
 
@@ -275,8 +987,7 @@ OpenAIWebhookModule = __decorate([
275
987
  *
276
988
  * @param response
277
989
  * @returns
278
- */
279
- function isParsedOpenAIJsonResponseWithJson(response) {
990
+ */ function isParsedOpenAIJsonResponseWithJson(response) {
280
991
  return response.isJsonResponse && Boolean(response.jsonResponse) && Boolean(response.jsonResponseFieldMap);
281
992
  }
282
993
  /**
@@ -284,23 +995,21 @@ function isParsedOpenAIJsonResponseWithJson(response) {
284
995
  *
285
996
  * @param response The OpenAI response to parse.
286
997
  * @returns The parsed OpenAI response.
287
- */
288
- function parseOpenAIJsonResponse(response) {
289
- const output_text = typeof response === 'string' ? response : response.output_text;
290
- let jsonResponse = undefined;
291
- let jsonResponseFieldMap = undefined;
998
+ */ function parseOpenAIJsonResponse(response) {
999
+ var output_text = typeof response === 'string' ? response : response.output_text;
1000
+ var jsonResponse = undefined;
1001
+ var jsonResponseFieldMap = undefined;
292
1002
  try {
293
1003
  jsonResponse = JSON.parse(output_text);
294
1004
  jsonResponseFieldMap = openAIJsonResponseFieldsMap(jsonResponse);
295
- }
296
- catch (e) {
297
- // ignore
1005
+ } catch (e) {
1006
+ // ignore
298
1007
  }
299
1008
  return {
300
- output_text,
1009
+ output_text: output_text,
301
1010
  isJsonResponse: Boolean(jsonResponse),
302
- jsonResponse,
303
- jsonResponseFieldMap
1011
+ jsonResponse: jsonResponse,
1012
+ jsonResponseFieldMap: jsonResponseFieldMap
304
1013
  };
305
1014
  }
306
1015
  /**
@@ -308,9 +1017,13 @@ function parseOpenAIJsonResponse(response) {
308
1017
  *
309
1018
  * @param response The OpenAI json response to create a map from.
310
1019
  * @returns The map of the OpenAI json response fields.
311
- */
312
- function openAIJsonResponseFieldsMap(response) {
313
- return new Map(response.fields.map((x) => [x.field_name, x.field_value]));
1020
+ */ function openAIJsonResponseFieldsMap(response) {
1021
+ return new Map(response.fields.map(function(x) {
1022
+ return [
1023
+ x.field_name,
1024
+ x.field_value
1025
+ ];
1026
+ }));
314
1027
  }
315
1028
 
316
1029
  export { OPENAI_API_KEY_ENV_VAR, OPENAI_BASE_URL_ENV_VAR, OPENAI_ORGANIZATION_ID_ENV_VAR, OPENAI_PROJECT_ID_ENV_VAR, OPENAI_WEBHOOK_SECRET_TOKEN_ENV_VAR, OpenAIApi, OpenAIModule, OpenAIServiceConfig, OpenAIWebhookController, OpenAIWebhookModule, OpenAIWebhookService, OpenAIWebhookServiceConfig, isParsedOpenAIJsonResponseWithJson, openAIJsonResponseFieldsMap, openAIServiceConfigFactory, openAIWebhookEvent, openAIWebhookEventVerifier, openAIWebhookServiceConfigFactory, openaiEventHandlerConfigurerFactory, openaiEventHandlerFactory, parseOpenAIJsonResponse };