@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.
- package/eslint/package.json +7 -7
- package/mailgun/package.json +11 -11
- package/openai/package.json +11 -11
- package/openrouter/package.json +8 -8
- package/package.json +27 -35
- package/stripe/package.json +11 -11
- package/twilio/index.esm.js +18 -1
- package/twilio/package.json +11 -11
- package/twilio/src/lib/twilio.api.d.ts +1 -1
- package/twilio/src/lib/twilio.interop.d.ts +7 -0
- package/typeform/package.json +11 -11
- package/vapiai/package.json +11 -11
- package/eslint/index.cjs.default.js +0 -1
- package/eslint/index.cjs.js +0 -418
- package/eslint/index.cjs.mjs +0 -2
- package/index.cjs.default.js +0 -1
- package/index.cjs.js +0 -2789
- package/index.cjs.mjs +0 -2
- package/mailgun/index.cjs.default.js +0 -1
- package/mailgun/index.cjs.js +0 -1802
- package/mailgun/index.cjs.mjs +0 -2
- package/openai/index.cjs.default.js +0 -1
- package/openai/index.cjs.js +0 -1068
- package/openai/index.cjs.mjs +0 -2
- package/openrouter/index.cjs.default.js +0 -1
- package/openrouter/index.cjs.js +0 -1200
- package/openrouter/index.cjs.mjs +0 -2
- package/stripe/index.cjs.default.js +0 -1
- package/stripe/index.cjs.js +0 -780
- package/stripe/index.cjs.mjs +0 -2
- package/twilio/index.cjs.default.js +0 -1
- package/twilio/index.cjs.js +0 -2184
- package/twilio/index.cjs.mjs +0 -2
- package/typeform/index.cjs.default.js +0 -1
- package/typeform/index.cjs.js +0 -1182
- package/typeform/index.cjs.mjs +0 -2
- package/vapiai/index.cjs.default.js +0 -1
- package/vapiai/index.cjs.js +0 -1055
- package/vapiai/index.cjs.mjs +0 -2
package/vapiai/index.cjs.js
DELETED
|
@@ -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;
|