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