@dereekb/nestjs 13.38.0 → 13.40.0

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.
Files changed (39) hide show
  1. package/eslint/package.json +7 -7
  2. package/mailgun/package.json +11 -11
  3. package/openai/package.json +11 -11
  4. package/openrouter/package.json +8 -8
  5. package/package.json +27 -35
  6. package/stripe/package.json +11 -11
  7. package/twilio/index.esm.js +18 -1
  8. package/twilio/package.json +11 -11
  9. package/twilio/src/lib/twilio.api.d.ts +1 -1
  10. package/twilio/src/lib/twilio.interop.d.ts +7 -0
  11. package/typeform/package.json +11 -11
  12. package/vapiai/package.json +11 -11
  13. package/eslint/index.cjs.default.js +0 -1
  14. package/eslint/index.cjs.js +0 -418
  15. package/eslint/index.cjs.mjs +0 -2
  16. package/index.cjs.default.js +0 -1
  17. package/index.cjs.js +0 -2789
  18. package/index.cjs.mjs +0 -2
  19. package/mailgun/index.cjs.default.js +0 -1
  20. package/mailgun/index.cjs.js +0 -1802
  21. package/mailgun/index.cjs.mjs +0 -2
  22. package/openai/index.cjs.default.js +0 -1
  23. package/openai/index.cjs.js +0 -1068
  24. package/openai/index.cjs.mjs +0 -2
  25. package/openrouter/index.cjs.default.js +0 -1
  26. package/openrouter/index.cjs.js +0 -1200
  27. package/openrouter/index.cjs.mjs +0 -2
  28. package/stripe/index.cjs.default.js +0 -1
  29. package/stripe/index.cjs.js +0 -780
  30. package/stripe/index.cjs.mjs +0 -2
  31. package/twilio/index.cjs.default.js +0 -1
  32. package/twilio/index.cjs.js +0 -2184
  33. package/twilio/index.cjs.mjs +0 -2
  34. package/typeform/index.cjs.default.js +0 -1
  35. package/typeform/index.cjs.js +0 -1182
  36. package/typeform/index.cjs.mjs +0 -2
  37. package/vapiai/index.cjs.default.js +0 -1
  38. package/vapiai/index.cjs.js +0 -1055
  39. package/vapiai/index.cjs.mjs +0 -2
@@ -1,1055 +0,0 @@
1
- 'use strict';
2
-
3
- var util = require('@dereekb/util');
4
- var nestjs = require('@dereekb/nestjs');
5
- var common = require('@nestjs/common');
6
- var node_crypto = require('node:crypto');
7
- var config = require('@nestjs/config');
8
- var serverSdk = require('@vapi-ai/server-sdk');
9
-
10
- function _define_property$5(obj, key, value) {
11
- if (key in obj) {
12
- Object.defineProperty(obj, key, {
13
- value: value,
14
- enumerable: true,
15
- configurable: true,
16
- writable: true
17
- });
18
- } else {
19
- obj[key] = value;
20
- }
21
- return obj;
22
- }
23
- function _object_spread$1(target) {
24
- for(var i = 1; i < arguments.length; i++){
25
- var source = arguments[i] != null ? arguments[i] : {};
26
- var ownKeys = Object.keys(source);
27
- if (typeof Object.getOwnPropertySymbols === "function") {
28
- ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
29
- return Object.getOwnPropertyDescriptor(source, sym).enumerable;
30
- }));
31
- }
32
- ownKeys.forEach(function(key) {
33
- _define_property$5(target, key, source[key]);
34
- });
35
- }
36
- return target;
37
- }
38
- function ownKeys(object, enumerableOnly) {
39
- var keys = Object.keys(object);
40
- if (Object.getOwnPropertySymbols) {
41
- var symbols = Object.getOwnPropertySymbols(object);
42
- keys.push.apply(keys, symbols);
43
- }
44
- return keys;
45
- }
46
- function _object_spread_props(target, source) {
47
- source = source != null ? source : {};
48
- if (Object.getOwnPropertyDescriptors) {
49
- Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
50
- } else {
51
- ownKeys(Object(source)).forEach(function(key) {
52
- Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
53
- });
54
- }
55
- return target;
56
- }
57
- /**
58
- * Creates a VapiAiWebhookEvent and treats the data as the input type.
59
- *
60
- * @param event
61
- * @returns
62
- */ function vapiAiWebhookEvent(event) {
63
- return event;
64
- }
65
- var vapiaiEventHandlerFactory = util.handlerFactory(function(x) {
66
- return x.type;
67
- }, {
68
- defaultResult: {
69
- handled: true,
70
- response: undefined
71
- },
72
- negativeResult: {
73
- handled: true,
74
- response: undefined
75
- }
76
- });
77
- var vapiaiEventHandlerConfigurerFactory = util.handlerConfigurerFactory({
78
- configurerForAccessor: function configurerForAccessor(accessor) {
79
- var fnWithKey = util.handlerMappedSetFunctionFactory(accessor, vapiAiWebhookEvent);
80
- var configurer = _object_spread_props(_object_spread$1({}, accessor), {
81
- handleAssistantRequest: fnWithKey('assistant-request'),
82
- handleStatusUpdate: fnWithKey('status-update'),
83
- handleFunctionCall: fnWithKey('function-call'),
84
- handleEndOfCallReport: fnWithKey('end-of-call-report'),
85
- handleHang: fnWithKey('hang')
86
- });
87
- return configurer;
88
- }
89
- });
90
-
91
- function _type_of(obj) {
92
- "@swc/helpers - typeof";
93
- return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
94
- }
95
- function __decorate(decorators, target, key, desc) {
96
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
97
- if ((typeof Reflect === "undefined" ? "undefined" : _type_of(Reflect)) === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
98
- 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;
99
- return c > 3 && r && Object.defineProperty(target, key, r), r;
100
- }
101
- function __param(paramIndex, decorator) {
102
- return function(target, key) {
103
- decorator(target, key, paramIndex);
104
- };
105
- }
106
- typeof SuppressedError === "function" ? SuppressedError : function(error, suppressed, message) {
107
- var e = new Error(message);
108
- return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
109
- };
110
-
111
- function asyncGeneratorStep$2(gen, resolve, reject, _next, _throw, key, arg) {
112
- try {
113
- var info = gen[key](arg);
114
- var value = info.value;
115
- } catch (error) {
116
- reject(error);
117
- return;
118
- }
119
- if (info.done) {
120
- resolve(value);
121
- } else {
122
- Promise.resolve(value).then(_next, _throw);
123
- }
124
- }
125
- function _async_to_generator$2(fn) {
126
- return function() {
127
- var self = this, args = arguments;
128
- return new Promise(function(resolve, reject) {
129
- var gen = fn.apply(self, args);
130
- function _next(value) {
131
- asyncGeneratorStep$2(gen, resolve, reject, _next, _throw, "next", value);
132
- }
133
- function _throw(err) {
134
- asyncGeneratorStep$2(gen, resolve, reject, _next, _throw, "throw", err);
135
- }
136
- _next(undefined);
137
- });
138
- };
139
- }
140
- function _ts_generator$2(thisArg, body) {
141
- var f, y, t, _ = {
142
- label: 0,
143
- sent: function() {
144
- if (t[0] & 1) throw t[1];
145
- return t[1];
146
- },
147
- trys: [],
148
- ops: []
149
- }, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype), d = Object.defineProperty;
150
- return d(g, "next", {
151
- value: verb(0)
152
- }), d(g, "throw", {
153
- value: verb(1)
154
- }), d(g, "return", {
155
- value: verb(2)
156
- }), typeof Symbol === "function" && d(g, Symbol.iterator, {
157
- value: function() {
158
- return this;
159
- }
160
- }), g;
161
- function verb(n) {
162
- return function(v) {
163
- return step([
164
- n,
165
- v
166
- ]);
167
- };
168
- }
169
- function step(op) {
170
- if (f) throw new TypeError("Generator is already executing.");
171
- while(g && (g = 0, op[0] && (_ = 0)), _)try {
172
- 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;
173
- if (y = 0, t) op = [
174
- op[0] & 2,
175
- t.value
176
- ];
177
- switch(op[0]){
178
- case 0:
179
- case 1:
180
- t = op;
181
- break;
182
- case 4:
183
- _.label++;
184
- return {
185
- value: op[1],
186
- done: false
187
- };
188
- case 5:
189
- _.label++;
190
- y = op[1];
191
- op = [
192
- 0
193
- ];
194
- continue;
195
- case 7:
196
- op = _.ops.pop();
197
- _.trys.pop();
198
- continue;
199
- default:
200
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
201
- _ = 0;
202
- continue;
203
- }
204
- if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
205
- _.label = op[1];
206
- break;
207
- }
208
- if (op[0] === 6 && _.label < t[1]) {
209
- _.label = t[1];
210
- t = op;
211
- break;
212
- }
213
- if (t && _.label < t[2]) {
214
- _.label = t[2];
215
- _.ops.push(op);
216
- break;
217
- }
218
- if (t[2]) _.ops.pop();
219
- _.trys.pop();
220
- continue;
221
- }
222
- op = body.call(thisArg, _);
223
- } catch (e) {
224
- op = [
225
- 6,
226
- e
227
- ];
228
- y = 0;
229
- } finally{
230
- f = t = 0;
231
- }
232
- if (op[0] & 5) throw op[1];
233
- return {
234
- value: op[0] ? op[1] : void 0,
235
- done: true
236
- };
237
- }
238
- }
239
- /**
240
- * Creates a verifier for Vapi AI webhook events.
241
- *
242
- * Supports secret token, HMAC SHA-256, and no-op verification modes based on the provided configuration.
243
- *
244
- * @param config - The verification configuration including secret tokens, verification type, and signature prefix.
245
- * @returns A VapiAiWebhookEventVerifier function that validates incoming webhook requests.
246
- */ function vapiAiWebhookEventVerifier(config) {
247
- var _ref;
248
- var inputVerificationType = config.verificationType, inputSecret = config.secret, inputHmacSecret = config.hmacSecret, inputSignaturePrefix = config.signaturePrefix;
249
- var verificationType = inputVerificationType !== null && inputVerificationType !== void 0 ? inputVerificationType : inputHmacSecret == null ? 'secret' : 'hmac'; // default to secret always, never default to none
250
- var secretToken = (_ref = verificationType === 'hmac' ? inputHmacSecret !== null && inputHmacSecret !== void 0 ? inputHmacSecret : inputSecret : inputSecret) !== null && _ref !== void 0 ? _ref : '';
251
- var signaturePrefix = inputSignaturePrefix !== null && inputSignaturePrefix !== void 0 ? inputSignaturePrefix : '';
252
- function verifyNone(_input) {
253
- return true;
254
- }
255
- function verifySecret(input) {
256
- var request = input.request;
257
- var headers = request.headers;
258
- var vapiSecret = headers['x-vapi-secret'];
259
- return vapiSecret === secretToken;
260
- }
261
- function verifyHmac(input) {
262
- var request = input.request, requestBodyString = input.requestBodyString;
263
- var headers = request.headers;
264
- var timestamp = headers['x-timestamp'];
265
- var vapiSignature = headers['x-signature'];
266
- var message = "".concat(timestamp, ".").concat(requestBodyString);
267
- var hashForVerify = node_crypto.createHmac('sha256', secretToken).update(message).digest('hex');
268
- var signature = "".concat(signaturePrefix).concat(hashForVerify);
269
- return vapiSignature === signature;
270
- }
271
- var verify = verificationType === 'hmac' ? verifyHmac : verificationType === 'secret' ? verifySecret : verifyNone;
272
- return function(request, _rawBody) {
273
- return _async_to_generator$2(function() {
274
- var requestBodyString, valid, requestBody, result;
275
- return _ts_generator$2(this, function(_state) {
276
- requestBodyString = String(request.body);
277
- valid = verify({
278
- request: request,
279
- requestBodyString: requestBodyString
280
- });
281
- requestBody = JSON.parse(requestBodyString);
282
- result = {
283
- valid: valid,
284
- event: requestBody.message
285
- };
286
- return [
287
- 2,
288
- result
289
- ];
290
- });
291
- })();
292
- };
293
- }
294
-
295
- function _class_call_check$6(instance, Constructor) {
296
- if (!(instance instanceof Constructor)) {
297
- throw new TypeError("Cannot call a class as a function");
298
- }
299
- }
300
- function _defineProperties$4(target, props) {
301
- for(var i = 0; i < props.length; i++){
302
- var descriptor = props[i];
303
- descriptor.enumerable = descriptor.enumerable || false;
304
- descriptor.configurable = true;
305
- if ("value" in descriptor) descriptor.writable = true;
306
- Object.defineProperty(target, descriptor.key, descriptor);
307
- }
308
- }
309
- function _create_class$4(Constructor, protoProps, staticProps) {
310
- if (staticProps) _defineProperties$4(Constructor, staticProps);
311
- return Constructor;
312
- }
313
- function _define_property$4(obj, key, value) {
314
- if (key in obj) {
315
- Object.defineProperty(obj, key, {
316
- value: value,
317
- enumerable: true,
318
- configurable: true,
319
- writable: true
320
- });
321
- } else {
322
- obj[key] = value;
323
- }
324
- return obj;
325
- }
326
- var VAPI_AI_WEBHOOK_SECRET_TOKEN_ENV_VAR = 'VAPI_AI_WEBHOOK_SECRET_TOKEN';
327
- var VAPI_AI_WEBHOOK_HMAC_SECRET_TOKEN_ENV_VAR = 'VAPI_AI_WEBHOOK_HMAC_SECRET_TOKEN';
328
- var VAPI_AI_WEBHOOK_SECRET_VERIFICATION_TYPE_ENV_VAR = 'VAPI_AI_WEBHOOK_SECRET_VERIFICATION_TYPE';
329
- var VAPI_AI_WEBHOOK_SIGNATURE_PREFIX_ENV_VAR = 'VAPI_AI_WEBHOOK_SIGNATURE_PREFIX';
330
- /**
331
- * Configuration for VapiAiService
332
- */ var VapiAiWebhookServiceConfig = /*#__PURE__*/ function() {
333
- function VapiAiWebhookServiceConfig() {
334
- _class_call_check$6(this, VapiAiWebhookServiceConfig);
335
- _define_property$4(this, "webhookConfig", void 0);
336
- }
337
- _create_class$4(VapiAiWebhookServiceConfig, null, [
338
- {
339
- key: "assertValidConfig",
340
- value: function assertValidConfig(config) {
341
- if (!config.webhookConfig.secret && !config.webhookConfig.hmacSecret) {
342
- throw new Error('No Vapi.ai webhook secret token specified.');
343
- }
344
- }
345
- }
346
- ]);
347
- return VapiAiWebhookServiceConfig;
348
- }
349
- ();
350
-
351
- function asyncGeneratorStep$1(gen, resolve, reject, _next, _throw, key, arg) {
352
- try {
353
- var info = gen[key](arg);
354
- var value = info.value;
355
- } catch (error) {
356
- reject(error);
357
- return;
358
- }
359
- if (info.done) {
360
- resolve(value);
361
- } else {
362
- Promise.resolve(value).then(_next, _throw);
363
- }
364
- }
365
- function _async_to_generator$1(fn) {
366
- return function() {
367
- var self = this, args = arguments;
368
- return new Promise(function(resolve, reject) {
369
- var gen = fn.apply(self, args);
370
- function _next(value) {
371
- asyncGeneratorStep$1(gen, resolve, reject, _next, _throw, "next", value);
372
- }
373
- function _throw(err) {
374
- asyncGeneratorStep$1(gen, resolve, reject, _next, _throw, "throw", err);
375
- }
376
- _next(undefined);
377
- });
378
- };
379
- }
380
- function _class_call_check$5(instance, Constructor) {
381
- if (!(instance instanceof Constructor)) {
382
- throw new TypeError("Cannot call a class as a function");
383
- }
384
- }
385
- function _defineProperties$3(target, props) {
386
- for(var i = 0; i < props.length; i++){
387
- var descriptor = props[i];
388
- descriptor.enumerable = descriptor.enumerable || false;
389
- descriptor.configurable = true;
390
- if ("value" in descriptor) descriptor.writable = true;
391
- Object.defineProperty(target, descriptor.key, descriptor);
392
- }
393
- }
394
- function _create_class$3(Constructor, protoProps, staticProps) {
395
- if (protoProps) _defineProperties$3(Constructor.prototype, protoProps);
396
- return Constructor;
397
- }
398
- function _define_property$3(obj, key, value) {
399
- if (key in obj) {
400
- Object.defineProperty(obj, key, {
401
- value: value,
402
- enumerable: true,
403
- configurable: true,
404
- writable: true
405
- });
406
- } else {
407
- obj[key] = value;
408
- }
409
- return obj;
410
- }
411
- function _object_spread(target) {
412
- for(var i = 1; i < arguments.length; i++){
413
- var source = arguments[i] != null ? arguments[i] : {};
414
- var ownKeys = Object.keys(source);
415
- if (typeof Object.getOwnPropertySymbols === "function") {
416
- ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
417
- return Object.getOwnPropertyDescriptor(source, sym).enumerable;
418
- }));
419
- }
420
- ownKeys.forEach(function(key) {
421
- _define_property$3(target, key, source[key]);
422
- });
423
- }
424
- return target;
425
- }
426
- function _ts_generator$1(thisArg, body) {
427
- var f, y, t, _ = {
428
- label: 0,
429
- sent: function() {
430
- if (t[0] & 1) throw t[1];
431
- return t[1];
432
- },
433
- trys: [],
434
- ops: []
435
- }, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype), d = Object.defineProperty;
436
- return d(g, "next", {
437
- value: verb(0)
438
- }), d(g, "throw", {
439
- value: verb(1)
440
- }), d(g, "return", {
441
- value: verb(2)
442
- }), typeof Symbol === "function" && d(g, Symbol.iterator, {
443
- value: function() {
444
- return this;
445
- }
446
- }), g;
447
- function verb(n) {
448
- return function(v) {
449
- return step([
450
- n,
451
- v
452
- ]);
453
- };
454
- }
455
- function step(op) {
456
- if (f) throw new TypeError("Generator is already executing.");
457
- while(g && (g = 0, op[0] && (_ = 0)), _)try {
458
- 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;
459
- if (y = 0, t) op = [
460
- op[0] & 2,
461
- t.value
462
- ];
463
- switch(op[0]){
464
- case 0:
465
- case 1:
466
- t = op;
467
- break;
468
- case 4:
469
- _.label++;
470
- return {
471
- value: op[1],
472
- done: false
473
- };
474
- case 5:
475
- _.label++;
476
- y = op[1];
477
- op = [
478
- 0
479
- ];
480
- continue;
481
- case 7:
482
- op = _.ops.pop();
483
- _.trys.pop();
484
- continue;
485
- default:
486
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
487
- _ = 0;
488
- continue;
489
- }
490
- if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
491
- _.label = op[1];
492
- break;
493
- }
494
- if (op[0] === 6 && _.label < t[1]) {
495
- _.label = t[1];
496
- t = op;
497
- break;
498
- }
499
- if (t && _.label < t[2]) {
500
- _.label = t[2];
501
- _.ops.push(op);
502
- break;
503
- }
504
- if (t[2]) _.ops.pop();
505
- _.trys.pop();
506
- continue;
507
- }
508
- op = body.call(thisArg, _);
509
- } catch (e) {
510
- op = [
511
- 6,
512
- e
513
- ];
514
- y = 0;
515
- } finally{
516
- f = t = 0;
517
- }
518
- if (op[0] & 5) throw op[1];
519
- return {
520
- value: op[0] ? op[1] : void 0,
521
- done: true
522
- };
523
- }
524
- }
525
- /**
526
- * Service that makes system changes based on VapiAi webhook events.
527
- */ exports.VapiAiWebhookService = /*#__PURE__*/ function() {
528
- function VapiAiWebhookService(vapiAiWebhookServiceConfig) {
529
- _class_call_check$5(this, VapiAiWebhookService);
530
- _define_property$3(this, "logger", new common.Logger('VapiAiWebhookService'));
531
- _define_property$3(this, "_verifier", void 0);
532
- _define_property$3(this, "handler", vapiaiEventHandlerFactory());
533
- _define_property$3(this, "configure", vapiaiEventHandlerConfigurerFactory(this.handler));
534
- this._verifier = vapiAiWebhookEventVerifier(vapiAiWebhookServiceConfig.webhookConfig);
535
- }
536
- _create_class$3(VapiAiWebhookService, [
537
- {
538
- key: "updateForWebhook",
539
- value: function updateForWebhook(req, rawBody) {
540
- return _async_to_generator$1(function() {
541
- var _ref, valid, event, result, response;
542
- return _ts_generator$1(this, function(_state) {
543
- switch(_state.label){
544
- case 0:
545
- return [
546
- 4,
547
- this._verifier(req, rawBody)
548
- ];
549
- case 1:
550
- _ref = _state.sent(), valid = _ref.valid, event = _ref.event;
551
- result = {
552
- handled: false
553
- };
554
- if (!valid) return [
555
- 3,
556
- 3
557
- ];
558
- return [
559
- 4,
560
- this.updateForVapiAiEvent(event)
561
- ];
562
- case 2:
563
- result = _state.sent();
564
- return [
565
- 3,
566
- 4
567
- ];
568
- case 3:
569
- this.logger.warn('Received invalid Vapi.ai event: ', event);
570
- _state.label = 4;
571
- case 4:
572
- response = _object_spread({
573
- valid: valid,
574
- event: event
575
- }, result);
576
- return [
577
- 2,
578
- response
579
- ];
580
- }
581
- });
582
- }).call(this);
583
- }
584
- },
585
- {
586
- key: "updateForVapiAiEvent",
587
- value: function updateForVapiAiEvent(event) {
588
- return _async_to_generator$1(function() {
589
- var result;
590
- return _ts_generator$1(this, function(_state) {
591
- switch(_state.label){
592
- case 0:
593
- return [
594
- 4,
595
- this.handler(event)
596
- ];
597
- case 1:
598
- result = _state.sent();
599
- if (!result.handled) {
600
- this.logger.warn('Received unexpected/unhandled Vapi.ai event: ', event);
601
- }
602
- return [
603
- 2,
604
- result
605
- ];
606
- }
607
- });
608
- }).call(this);
609
- }
610
- }
611
- ]);
612
- return VapiAiWebhookService;
613
- }();
614
- exports.VapiAiWebhookService = __decorate([
615
- common.Injectable(),
616
- __param(0, common.Inject(VapiAiWebhookServiceConfig))
617
- ], exports.VapiAiWebhookService);
618
-
619
- function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
620
- try {
621
- var info = gen[key](arg);
622
- var value = info.value;
623
- } catch (error) {
624
- reject(error);
625
- return;
626
- }
627
- if (info.done) {
628
- resolve(value);
629
- } else {
630
- Promise.resolve(value).then(_next, _throw);
631
- }
632
- }
633
- function _async_to_generator(fn) {
634
- return function() {
635
- var self = this, args = arguments;
636
- return new Promise(function(resolve, reject) {
637
- var gen = fn.apply(self, args);
638
- function _next(value) {
639
- asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
640
- }
641
- function _throw(err) {
642
- asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
643
- }
644
- _next(undefined);
645
- });
646
- };
647
- }
648
- function _class_call_check$4(instance, Constructor) {
649
- if (!(instance instanceof Constructor)) {
650
- throw new TypeError("Cannot call a class as a function");
651
- }
652
- }
653
- function _defineProperties$2(target, props) {
654
- for(var i = 0; i < props.length; i++){
655
- var descriptor = props[i];
656
- descriptor.enumerable = descriptor.enumerable || false;
657
- descriptor.configurable = true;
658
- if ("value" in descriptor) descriptor.writable = true;
659
- Object.defineProperty(target, descriptor.key, descriptor);
660
- }
661
- }
662
- function _create_class$2(Constructor, protoProps, staticProps) {
663
- if (protoProps) _defineProperties$2(Constructor.prototype, protoProps);
664
- return Constructor;
665
- }
666
- function _define_property$2(obj, key, value) {
667
- if (key in obj) {
668
- Object.defineProperty(obj, key, {
669
- value: value,
670
- enumerable: true,
671
- configurable: true,
672
- writable: true
673
- });
674
- } else {
675
- obj[key] = value;
676
- }
677
- return obj;
678
- }
679
- function _ts_generator(thisArg, body) {
680
- var f, y, t, _ = {
681
- label: 0,
682
- sent: function() {
683
- if (t[0] & 1) throw t[1];
684
- return t[1];
685
- },
686
- trys: [],
687
- ops: []
688
- }, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype), d = Object.defineProperty;
689
- return d(g, "next", {
690
- value: verb(0)
691
- }), d(g, "throw", {
692
- value: verb(1)
693
- }), d(g, "return", {
694
- value: verb(2)
695
- }), typeof Symbol === "function" && d(g, Symbol.iterator, {
696
- value: function() {
697
- return this;
698
- }
699
- }), g;
700
- function verb(n) {
701
- return function(v) {
702
- return step([
703
- n,
704
- v
705
- ]);
706
- };
707
- }
708
- function step(op) {
709
- if (f) throw new TypeError("Generator is already executing.");
710
- while(g && (g = 0, op[0] && (_ = 0)), _)try {
711
- 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;
712
- if (y = 0, t) op = [
713
- op[0] & 2,
714
- t.value
715
- ];
716
- switch(op[0]){
717
- case 0:
718
- case 1:
719
- t = op;
720
- break;
721
- case 4:
722
- _.label++;
723
- return {
724
- value: op[1],
725
- done: false
726
- };
727
- case 5:
728
- _.label++;
729
- y = op[1];
730
- op = [
731
- 0
732
- ];
733
- continue;
734
- case 7:
735
- op = _.ops.pop();
736
- _.trys.pop();
737
- continue;
738
- default:
739
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
740
- _ = 0;
741
- continue;
742
- }
743
- if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
744
- _.label = op[1];
745
- break;
746
- }
747
- if (op[0] === 6 && _.label < t[1]) {
748
- _.label = t[1];
749
- t = op;
750
- break;
751
- }
752
- if (t && _.label < t[2]) {
753
- _.label = t[2];
754
- _.ops.push(op);
755
- break;
756
- }
757
- if (t[2]) _.ops.pop();
758
- _.trys.pop();
759
- continue;
760
- }
761
- op = body.call(thisArg, _);
762
- } catch (e) {
763
- op = [
764
- 6,
765
- e
766
- ];
767
- y = 0;
768
- } finally{
769
- f = t = 0;
770
- }
771
- if (op[0] & 5) throw op[1];
772
- return {
773
- value: op[0] ? op[1] : void 0,
774
- done: true
775
- };
776
- }
777
- }
778
- exports.VapiAiWebhookController = /*#__PURE__*/ function() {
779
- function VapiAiWebhookController(vapiaiWebhookService) {
780
- _class_call_check$4(this, VapiAiWebhookController);
781
- _define_property$2(this, "_vapiaiWebhookService", void 0);
782
- this._vapiaiWebhookService = vapiaiWebhookService;
783
- }
784
- _create_class$2(VapiAiWebhookController, [
785
- {
786
- key: "handleVapiAiWebhook",
787
- value: function handleVapiAiWebhook(res, req, rawBody) {
788
- return _async_to_generator(function() {
789
- var _ref, valid, responseData, response;
790
- return _ts_generator(this, function(_state) {
791
- switch(_state.label){
792
- case 0:
793
- return [
794
- 4,
795
- this._vapiaiWebhookService.updateForWebhook(req, rawBody)
796
- ];
797
- case 1:
798
- _ref = _state.sent(), valid = _ref.valid, responseData = _ref.response;
799
- response = res.status(200); // always return a 200 status code
800
- if (valid && responseData) {
801
- response.json(responseData);
802
- } else {
803
- response.json({});
804
- }
805
- return [
806
- 2
807
- ];
808
- }
809
- });
810
- }).call(this);
811
- }
812
- }
813
- ]);
814
- return VapiAiWebhookController;
815
- }();
816
- __decorate([
817
- common.Post(),
818
- __param(0, common.Res()),
819
- __param(1, common.Req()),
820
- __param(2, nestjs.RawBody())
821
- ], exports.VapiAiWebhookController.prototype, "handleVapiAiWebhook", null);
822
- exports.VapiAiWebhookController = __decorate([
823
- common.Controller('/webhook/vapiai'),
824
- __param(0, common.Inject(exports.VapiAiWebhookService))
825
- ], exports.VapiAiWebhookController);
826
-
827
- function _class_call_check$3(instance, Constructor) {
828
- if (!(instance instanceof Constructor)) {
829
- throw new TypeError("Cannot call a class as a function");
830
- }
831
- }
832
- /**
833
- * Factory that creates a VapiAiWebhookServiceConfig from environment variables.
834
- *
835
- * Reads the webhook secret, HMAC secret, verification type, and signature prefix from environment variables.
836
- *
837
- * @param configService - NestJS config service for reading environment variables.
838
- * @returns A validated VapiAiWebhookServiceConfig.
839
- */ function vapiaiWebhookServiceConfigFactory(configService) {
840
- var config = {
841
- webhookConfig: {
842
- secret: configService.get(VAPI_AI_WEBHOOK_SECRET_TOKEN_ENV_VAR),
843
- hmacSecret: configService.get(VAPI_AI_WEBHOOK_HMAC_SECRET_TOKEN_ENV_VAR),
844
- verificationType: configService.get(VAPI_AI_WEBHOOK_SECRET_VERIFICATION_TYPE_ENV_VAR),
845
- signaturePrefix: configService.get(VAPI_AI_WEBHOOK_SIGNATURE_PREFIX_ENV_VAR)
846
- }
847
- };
848
- VapiAiWebhookServiceConfig.assertValidConfig(config);
849
- return config;
850
- }
851
- /**
852
- * NestJS module that handles incoming Vapi AI webhook events.
853
- *
854
- * Provides the VapiAiWebhookService and controller for verifying and processing Vapi AI webhook payloads.
855
- */ exports.VapiAiWebhookModule = function VapiAiWebhookModule() {
856
- _class_call_check$3(this, VapiAiWebhookModule);
857
- };
858
- exports.VapiAiWebhookModule = __decorate([
859
- common.Module({
860
- imports: [
861
- config.ConfigModule
862
- ],
863
- controllers: [
864
- exports.VapiAiWebhookController
865
- ],
866
- providers: [
867
- {
868
- provide: VapiAiWebhookServiceConfig,
869
- inject: [
870
- config.ConfigService
871
- ],
872
- useFactory: vapiaiWebhookServiceConfigFactory
873
- },
874
- exports.VapiAiWebhookService
875
- ],
876
- exports: [
877
- exports.VapiAiWebhookService
878
- ]
879
- })
880
- ], exports.VapiAiWebhookModule);
881
-
882
- function _class_call_check$2(instance, Constructor) {
883
- if (!(instance instanceof Constructor)) {
884
- throw new TypeError("Cannot call a class as a function");
885
- }
886
- }
887
- function _defineProperties$1(target, props) {
888
- for(var i = 0; i < props.length; i++){
889
- var descriptor = props[i];
890
- descriptor.enumerable = descriptor.enumerable || false;
891
- descriptor.configurable = true;
892
- if ("value" in descriptor) descriptor.writable = true;
893
- Object.defineProperty(target, descriptor.key, descriptor);
894
- }
895
- }
896
- function _create_class$1(Constructor, protoProps, staticProps) {
897
- if (staticProps) _defineProperties$1(Constructor, staticProps);
898
- return Constructor;
899
- }
900
- function _define_property$1(obj, key, value) {
901
- if (key in obj) {
902
- Object.defineProperty(obj, key, {
903
- value: value,
904
- enumerable: true,
905
- configurable: true,
906
- writable: true
907
- });
908
- } else {
909
- obj[key] = value;
910
- }
911
- return obj;
912
- }
913
- var VAPI_AI_SECRET_TOKEN_ENV_VAR = 'VAPI_AI_SECRET_TOKEN';
914
- /**
915
- * Configuration for VapiAiService
916
- */ var VapiAiServiceConfig = /*#__PURE__*/ function() {
917
- function VapiAiServiceConfig() {
918
- _class_call_check$2(this, VapiAiServiceConfig);
919
- _define_property$1(this, "vapiai", void 0);
920
- }
921
- _create_class$1(VapiAiServiceConfig, null, [
922
- {
923
- key: "assertValidConfig",
924
- value: function assertValidConfig(config) {
925
- if (!config.vapiai.config.token) {
926
- throw new Error('No Vapi.ai secret/token specified.');
927
- }
928
- }
929
- }
930
- ]);
931
- return VapiAiServiceConfig;
932
- }
933
- ();
934
-
935
- function _class_call_check$1(instance, Constructor) {
936
- if (!(instance instanceof Constructor)) {
937
- throw new TypeError("Cannot call a class as a function");
938
- }
939
- }
940
- function _defineProperties(target, props) {
941
- for(var i = 0; i < props.length; i++){
942
- var descriptor = props[i];
943
- descriptor.enumerable = descriptor.enumerable || false;
944
- descriptor.configurable = true;
945
- if ("value" in descriptor) descriptor.writable = true;
946
- Object.defineProperty(target, descriptor.key, descriptor);
947
- }
948
- }
949
- function _create_class(Constructor, protoProps, staticProps) {
950
- if (protoProps) _defineProperties(Constructor.prototype, protoProps);
951
- return Constructor;
952
- }
953
- function _define_property(obj, key, value) {
954
- if (key in obj) {
955
- Object.defineProperty(obj, key, {
956
- value: value,
957
- enumerable: true,
958
- configurable: true,
959
- writable: true
960
- });
961
- } else {
962
- obj[key] = value;
963
- }
964
- return obj;
965
- }
966
- exports.VapiAiApi = /*#__PURE__*/ function() {
967
- function VapiAiApi(config) {
968
- _class_call_check$1(this, VapiAiApi);
969
- _define_property(this, "config", void 0);
970
- _define_property(this, "vapiClient", void 0);
971
- this.config = config;
972
- this.vapiClient = new serverSdk.VapiClient(config.vapiai.config);
973
- }
974
- _create_class(VapiAiApi, [
975
- {
976
- // MARK: Accessors
977
- /**
978
- * Gets a call by ID.
979
- *
980
- * @param callId
981
- * @returns
982
- */ key: "getCall",
983
- value: function getCall(callId) {
984
- return this.vapiClient.calls.get({
985
- id: callId
986
- });
987
- }
988
- }
989
- ]);
990
- return VapiAiApi;
991
- }();
992
- exports.VapiAiApi = __decorate([
993
- common.Injectable(),
994
- __param(0, common.Inject(VapiAiServiceConfig))
995
- ], exports.VapiAiApi);
996
-
997
- function _class_call_check(instance, Constructor) {
998
- if (!(instance instanceof Constructor)) {
999
- throw new TypeError("Cannot call a class as a function");
1000
- }
1001
- }
1002
- /**
1003
- * Factory that creates a VapiAiServiceConfig from environment variables.
1004
- *
1005
- * Reads the Vapi AI secret token from environment variables.
1006
- *
1007
- * @param configService - NestJS config service for reading environment variables.
1008
- * @returns A validated VapiAiServiceConfig.
1009
- */ function vapiaiServiceConfigFactory(configService) {
1010
- var config = {
1011
- vapiai: {
1012
- config: {
1013
- token: configService.get(VAPI_AI_SECRET_TOKEN_ENV_VAR)
1014
- }
1015
- }
1016
- };
1017
- VapiAiServiceConfig.assertValidConfig(config);
1018
- return config;
1019
- }
1020
- /**
1021
- * NestJS module that provides the VapiAiApi service.
1022
- *
1023
- * Reads the Vapi AI secret token from environment variables for API authentication.
1024
- */ exports.VapiAiModule = function VapiAiModule() {
1025
- _class_call_check(this, VapiAiModule);
1026
- };
1027
- exports.VapiAiModule = __decorate([
1028
- common.Module({
1029
- imports: [
1030
- config.ConfigModule
1031
- ],
1032
- providers: [
1033
- {
1034
- provide: VapiAiServiceConfig,
1035
- inject: [
1036
- config.ConfigService
1037
- ],
1038
- useFactory: vapiaiServiceConfigFactory
1039
- },
1040
- exports.VapiAiApi
1041
- ],
1042
- exports: [
1043
- exports.VapiAiApi
1044
- ]
1045
- })
1046
- ], exports.VapiAiModule);
1047
-
1048
- exports.VAPI_AI_SECRET_TOKEN_ENV_VAR = VAPI_AI_SECRET_TOKEN_ENV_VAR;
1049
- exports.VapiAiServiceConfig = VapiAiServiceConfig;
1050
- exports.vapiAiWebhookEvent = vapiAiWebhookEvent;
1051
- exports.vapiAiWebhookEventVerifier = vapiAiWebhookEventVerifier;
1052
- exports.vapiaiEventHandlerConfigurerFactory = vapiaiEventHandlerConfigurerFactory;
1053
- exports.vapiaiEventHandlerFactory = vapiaiEventHandlerFactory;
1054
- exports.vapiaiServiceConfigFactory = vapiaiServiceConfigFactory;
1055
- exports.vapiaiWebhookServiceConfigFactory = vapiaiWebhookServiceConfigFactory;