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