@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/typeform/index.cjs.js
DELETED
|
@@ -1,1182 +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 apiClient = require('@typeform/api-client');
|
|
9
|
-
|
|
10
|
-
function _define_property$6(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$6(target, key, source[key]);
|
|
34
|
-
});
|
|
35
|
-
}
|
|
36
|
-
return target;
|
|
37
|
-
}
|
|
38
|
-
function ownKeys$1(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$1(target, source) {
|
|
47
|
-
source = source != null ? source : {};
|
|
48
|
-
if (Object.getOwnPropertyDescriptors) {
|
|
49
|
-
Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
|
|
50
|
-
} else {
|
|
51
|
-
ownKeys$1(Object(source)).forEach(function(key) {
|
|
52
|
-
Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
|
|
53
|
-
});
|
|
54
|
-
}
|
|
55
|
-
return target;
|
|
56
|
-
}
|
|
57
|
-
/**
|
|
58
|
-
* Creates a TypeformWebhookEvent and treats the data as the input type.
|
|
59
|
-
*
|
|
60
|
-
* @param event
|
|
61
|
-
* @returns
|
|
62
|
-
*/ function typeFormWebhookEvent(event) {
|
|
63
|
-
return event;
|
|
64
|
-
}
|
|
65
|
-
var typeformEventHandlerFactory = util.handlerFactory(function(x) {
|
|
66
|
-
return x.event_type;
|
|
67
|
-
});
|
|
68
|
-
var typeformEventHandlerConfigurerFactory = util.handlerConfigurerFactory({
|
|
69
|
-
configurerForAccessor: function configurerForAccessor(accessor) {
|
|
70
|
-
var fnWithKey = util.handlerMappedSetFunctionFactory(accessor, typeFormWebhookEvent);
|
|
71
|
-
var configurer = _object_spread_props$1(_object_spread$1({}, accessor), {
|
|
72
|
-
handleFormResponse: fnWithKey('form_response')
|
|
73
|
-
});
|
|
74
|
-
return configurer;
|
|
75
|
-
}
|
|
76
|
-
});
|
|
77
|
-
|
|
78
|
-
function _class_call_check$6(instance, Constructor) {
|
|
79
|
-
if (!(instance instanceof Constructor)) {
|
|
80
|
-
throw new TypeError("Cannot call a class as a function");
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
function _defineProperties$3(target, props) {
|
|
84
|
-
for(var i = 0; i < props.length; i++){
|
|
85
|
-
var descriptor = props[i];
|
|
86
|
-
descriptor.enumerable = descriptor.enumerable || false;
|
|
87
|
-
descriptor.configurable = true;
|
|
88
|
-
if ("value" in descriptor) descriptor.writable = true;
|
|
89
|
-
Object.defineProperty(target, descriptor.key, descriptor);
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
function _create_class$3(Constructor, protoProps, staticProps) {
|
|
93
|
-
if (staticProps) _defineProperties$3(Constructor, staticProps);
|
|
94
|
-
return Constructor;
|
|
95
|
-
}
|
|
96
|
-
function _define_property$5(obj, key, value) {
|
|
97
|
-
if (key in obj) {
|
|
98
|
-
Object.defineProperty(obj, key, {
|
|
99
|
-
value: value,
|
|
100
|
-
enumerable: true,
|
|
101
|
-
configurable: true,
|
|
102
|
-
writable: true
|
|
103
|
-
});
|
|
104
|
-
} else {
|
|
105
|
-
obj[key] = value;
|
|
106
|
-
}
|
|
107
|
-
return obj;
|
|
108
|
-
}
|
|
109
|
-
var TYPEFORM_WEBHOOK_SECRET_TOKEN_ENV_VAR = 'TYPEFORM_WEBHOOK_SECRET_TOKEN';
|
|
110
|
-
/**
|
|
111
|
-
* Configuration for TypeformService
|
|
112
|
-
*/ var TypeformWebhookServiceConfig = /*#__PURE__*/ function() {
|
|
113
|
-
function TypeformWebhookServiceConfig() {
|
|
114
|
-
_class_call_check$6(this, TypeformWebhookServiceConfig);
|
|
115
|
-
_define_property$5(this, "typeformWebhook", void 0);
|
|
116
|
-
}
|
|
117
|
-
_create_class$3(TypeformWebhookServiceConfig, null, [
|
|
118
|
-
{
|
|
119
|
-
key: "assertValidConfig",
|
|
120
|
-
value: function assertValidConfig(config) {
|
|
121
|
-
if (!config.typeformWebhook.secretToken) {
|
|
122
|
-
throw new Error('No Typeform webhook secret specified.');
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
]);
|
|
127
|
-
return TypeformWebhookServiceConfig;
|
|
128
|
-
}
|
|
129
|
-
();
|
|
130
|
-
|
|
131
|
-
function _type_of(obj) {
|
|
132
|
-
"@swc/helpers - typeof";
|
|
133
|
-
return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
|
|
134
|
-
}
|
|
135
|
-
function __decorate(decorators, target, key, desc) {
|
|
136
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
137
|
-
if ((typeof Reflect === "undefined" ? "undefined" : _type_of(Reflect)) === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
138
|
-
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;
|
|
139
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
140
|
-
}
|
|
141
|
-
function __param(paramIndex, decorator) {
|
|
142
|
-
return function(target, key) {
|
|
143
|
-
decorator(target, key, paramIndex);
|
|
144
|
-
};
|
|
145
|
-
}
|
|
146
|
-
typeof SuppressedError === "function" ? SuppressedError : function(error, suppressed, message) {
|
|
147
|
-
var e = new Error(message);
|
|
148
|
-
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
|
|
149
|
-
};
|
|
150
|
-
|
|
151
|
-
function asyncGeneratorStep$2(gen, resolve, reject, _next, _throw, key, arg) {
|
|
152
|
-
try {
|
|
153
|
-
var info = gen[key](arg);
|
|
154
|
-
var value = info.value;
|
|
155
|
-
} catch (error) {
|
|
156
|
-
reject(error);
|
|
157
|
-
return;
|
|
158
|
-
}
|
|
159
|
-
if (info.done) {
|
|
160
|
-
resolve(value);
|
|
161
|
-
} else {
|
|
162
|
-
Promise.resolve(value).then(_next, _throw);
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
function _async_to_generator$2(fn) {
|
|
166
|
-
return function() {
|
|
167
|
-
var self = this, args = arguments;
|
|
168
|
-
return new Promise(function(resolve, reject) {
|
|
169
|
-
var gen = fn.apply(self, args);
|
|
170
|
-
function _next(value) {
|
|
171
|
-
asyncGeneratorStep$2(gen, resolve, reject, _next, _throw, "next", value);
|
|
172
|
-
}
|
|
173
|
-
function _throw(err) {
|
|
174
|
-
asyncGeneratorStep$2(gen, resolve, reject, _next, _throw, "throw", err);
|
|
175
|
-
}
|
|
176
|
-
_next(undefined);
|
|
177
|
-
});
|
|
178
|
-
};
|
|
179
|
-
}
|
|
180
|
-
function _ts_generator$2(thisArg, body) {
|
|
181
|
-
var f, y, t, _ = {
|
|
182
|
-
label: 0,
|
|
183
|
-
sent: function() {
|
|
184
|
-
if (t[0] & 1) throw t[1];
|
|
185
|
-
return t[1];
|
|
186
|
-
},
|
|
187
|
-
trys: [],
|
|
188
|
-
ops: []
|
|
189
|
-
}, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype), d = Object.defineProperty;
|
|
190
|
-
return d(g, "next", {
|
|
191
|
-
value: verb(0)
|
|
192
|
-
}), d(g, "throw", {
|
|
193
|
-
value: verb(1)
|
|
194
|
-
}), d(g, "return", {
|
|
195
|
-
value: verb(2)
|
|
196
|
-
}), typeof Symbol === "function" && d(g, Symbol.iterator, {
|
|
197
|
-
value: function() {
|
|
198
|
-
return this;
|
|
199
|
-
}
|
|
200
|
-
}), g;
|
|
201
|
-
function verb(n) {
|
|
202
|
-
return function(v) {
|
|
203
|
-
return step([
|
|
204
|
-
n,
|
|
205
|
-
v
|
|
206
|
-
]);
|
|
207
|
-
};
|
|
208
|
-
}
|
|
209
|
-
function step(op) {
|
|
210
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
211
|
-
while(g && (g = 0, op[0] && (_ = 0)), _)try {
|
|
212
|
-
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;
|
|
213
|
-
if (y = 0, t) op = [
|
|
214
|
-
op[0] & 2,
|
|
215
|
-
t.value
|
|
216
|
-
];
|
|
217
|
-
switch(op[0]){
|
|
218
|
-
case 0:
|
|
219
|
-
case 1:
|
|
220
|
-
t = op;
|
|
221
|
-
break;
|
|
222
|
-
case 4:
|
|
223
|
-
_.label++;
|
|
224
|
-
return {
|
|
225
|
-
value: op[1],
|
|
226
|
-
done: false
|
|
227
|
-
};
|
|
228
|
-
case 5:
|
|
229
|
-
_.label++;
|
|
230
|
-
y = op[1];
|
|
231
|
-
op = [
|
|
232
|
-
0
|
|
233
|
-
];
|
|
234
|
-
continue;
|
|
235
|
-
case 7:
|
|
236
|
-
op = _.ops.pop();
|
|
237
|
-
_.trys.pop();
|
|
238
|
-
continue;
|
|
239
|
-
default:
|
|
240
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
|
|
241
|
-
_ = 0;
|
|
242
|
-
continue;
|
|
243
|
-
}
|
|
244
|
-
if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
|
|
245
|
-
_.label = op[1];
|
|
246
|
-
break;
|
|
247
|
-
}
|
|
248
|
-
if (op[0] === 6 && _.label < t[1]) {
|
|
249
|
-
_.label = t[1];
|
|
250
|
-
t = op;
|
|
251
|
-
break;
|
|
252
|
-
}
|
|
253
|
-
if (t && _.label < t[2]) {
|
|
254
|
-
_.label = t[2];
|
|
255
|
-
_.ops.push(op);
|
|
256
|
-
break;
|
|
257
|
-
}
|
|
258
|
-
if (t[2]) _.ops.pop();
|
|
259
|
-
_.trys.pop();
|
|
260
|
-
continue;
|
|
261
|
-
}
|
|
262
|
-
op = body.call(thisArg, _);
|
|
263
|
-
} catch (e) {
|
|
264
|
-
op = [
|
|
265
|
-
6,
|
|
266
|
-
e
|
|
267
|
-
];
|
|
268
|
-
y = 0;
|
|
269
|
-
} finally{
|
|
270
|
-
f = t = 0;
|
|
271
|
-
}
|
|
272
|
-
if (op[0] & 5) throw op[1];
|
|
273
|
-
return {
|
|
274
|
-
value: op[0] ? op[1] : void 0,
|
|
275
|
-
done: true
|
|
276
|
-
};
|
|
277
|
-
}
|
|
278
|
-
}
|
|
279
|
-
/**
|
|
280
|
-
* Verifies a Typeform webhook event header using HMAC-SHA256 signature verification.
|
|
281
|
-
*
|
|
282
|
-
* @param config - Verification config containing the Typeform webhook secret token.
|
|
283
|
-
* @returns Verifier function that validates each request's signature header.
|
|
284
|
-
*/ function typeFormWebhookEventVerifier(config) {
|
|
285
|
-
var secret = config.secret;
|
|
286
|
-
return function(request, _rawBody) {
|
|
287
|
-
return _async_to_generator$2(function() {
|
|
288
|
-
var requestBodyString, headers, typeformSignature, hashForVerify, signature, valid, event, result;
|
|
289
|
-
return _ts_generator$2(this, function(_state) {
|
|
290
|
-
requestBodyString = String(request.body);
|
|
291
|
-
headers = request.headers;
|
|
292
|
-
typeformSignature = headers['typeform-signature'];
|
|
293
|
-
hashForVerify = node_crypto.createHmac('sha256', secret).update(requestBodyString).digest('base64');
|
|
294
|
-
signature = "sha256=".concat(hashForVerify);
|
|
295
|
-
valid = typeformSignature === signature;
|
|
296
|
-
event = JSON.parse(requestBodyString);
|
|
297
|
-
result = {
|
|
298
|
-
valid: valid,
|
|
299
|
-
event: event
|
|
300
|
-
};
|
|
301
|
-
return [
|
|
302
|
-
2,
|
|
303
|
-
result
|
|
304
|
-
];
|
|
305
|
-
});
|
|
306
|
-
})();
|
|
307
|
-
};
|
|
308
|
-
}
|
|
309
|
-
|
|
310
|
-
function asyncGeneratorStep$1(gen, resolve, reject, _next, _throw, key, arg) {
|
|
311
|
-
try {
|
|
312
|
-
var info = gen[key](arg);
|
|
313
|
-
var value = info.value;
|
|
314
|
-
} catch (error) {
|
|
315
|
-
reject(error);
|
|
316
|
-
return;
|
|
317
|
-
}
|
|
318
|
-
if (info.done) {
|
|
319
|
-
resolve(value);
|
|
320
|
-
} else {
|
|
321
|
-
Promise.resolve(value).then(_next, _throw);
|
|
322
|
-
}
|
|
323
|
-
}
|
|
324
|
-
function _async_to_generator$1(fn) {
|
|
325
|
-
return function() {
|
|
326
|
-
var self = this, args = arguments;
|
|
327
|
-
return new Promise(function(resolve, reject) {
|
|
328
|
-
var gen = fn.apply(self, args);
|
|
329
|
-
function _next(value) {
|
|
330
|
-
asyncGeneratorStep$1(gen, resolve, reject, _next, _throw, "next", value);
|
|
331
|
-
}
|
|
332
|
-
function _throw(err) {
|
|
333
|
-
asyncGeneratorStep$1(gen, resolve, reject, _next, _throw, "throw", err);
|
|
334
|
-
}
|
|
335
|
-
_next(undefined);
|
|
336
|
-
});
|
|
337
|
-
};
|
|
338
|
-
}
|
|
339
|
-
function _class_call_check$5(instance, Constructor) {
|
|
340
|
-
if (!(instance instanceof Constructor)) {
|
|
341
|
-
throw new TypeError("Cannot call a class as a function");
|
|
342
|
-
}
|
|
343
|
-
}
|
|
344
|
-
function _defineProperties$2(target, props) {
|
|
345
|
-
for(var i = 0; i < props.length; i++){
|
|
346
|
-
var descriptor = props[i];
|
|
347
|
-
descriptor.enumerable = descriptor.enumerable || false;
|
|
348
|
-
descriptor.configurable = true;
|
|
349
|
-
if ("value" in descriptor) descriptor.writable = true;
|
|
350
|
-
Object.defineProperty(target, descriptor.key, descriptor);
|
|
351
|
-
}
|
|
352
|
-
}
|
|
353
|
-
function _create_class$2(Constructor, protoProps, staticProps) {
|
|
354
|
-
if (protoProps) _defineProperties$2(Constructor.prototype, protoProps);
|
|
355
|
-
return Constructor;
|
|
356
|
-
}
|
|
357
|
-
function _define_property$4(obj, key, value) {
|
|
358
|
-
if (key in obj) {
|
|
359
|
-
Object.defineProperty(obj, key, {
|
|
360
|
-
value: value,
|
|
361
|
-
enumerable: true,
|
|
362
|
-
configurable: true,
|
|
363
|
-
writable: true
|
|
364
|
-
});
|
|
365
|
-
} else {
|
|
366
|
-
obj[key] = value;
|
|
367
|
-
}
|
|
368
|
-
return obj;
|
|
369
|
-
}
|
|
370
|
-
function _ts_generator$1(thisArg, body) {
|
|
371
|
-
var f, y, t, _ = {
|
|
372
|
-
label: 0,
|
|
373
|
-
sent: function() {
|
|
374
|
-
if (t[0] & 1) throw t[1];
|
|
375
|
-
return t[1];
|
|
376
|
-
},
|
|
377
|
-
trys: [],
|
|
378
|
-
ops: []
|
|
379
|
-
}, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype), d = Object.defineProperty;
|
|
380
|
-
return d(g, "next", {
|
|
381
|
-
value: verb(0)
|
|
382
|
-
}), d(g, "throw", {
|
|
383
|
-
value: verb(1)
|
|
384
|
-
}), d(g, "return", {
|
|
385
|
-
value: verb(2)
|
|
386
|
-
}), typeof Symbol === "function" && d(g, Symbol.iterator, {
|
|
387
|
-
value: function() {
|
|
388
|
-
return this;
|
|
389
|
-
}
|
|
390
|
-
}), g;
|
|
391
|
-
function verb(n) {
|
|
392
|
-
return function(v) {
|
|
393
|
-
return step([
|
|
394
|
-
n,
|
|
395
|
-
v
|
|
396
|
-
]);
|
|
397
|
-
};
|
|
398
|
-
}
|
|
399
|
-
function step(op) {
|
|
400
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
401
|
-
while(g && (g = 0, op[0] && (_ = 0)), _)try {
|
|
402
|
-
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;
|
|
403
|
-
if (y = 0, t) op = [
|
|
404
|
-
op[0] & 2,
|
|
405
|
-
t.value
|
|
406
|
-
];
|
|
407
|
-
switch(op[0]){
|
|
408
|
-
case 0:
|
|
409
|
-
case 1:
|
|
410
|
-
t = op;
|
|
411
|
-
break;
|
|
412
|
-
case 4:
|
|
413
|
-
_.label++;
|
|
414
|
-
return {
|
|
415
|
-
value: op[1],
|
|
416
|
-
done: false
|
|
417
|
-
};
|
|
418
|
-
case 5:
|
|
419
|
-
_.label++;
|
|
420
|
-
y = op[1];
|
|
421
|
-
op = [
|
|
422
|
-
0
|
|
423
|
-
];
|
|
424
|
-
continue;
|
|
425
|
-
case 7:
|
|
426
|
-
op = _.ops.pop();
|
|
427
|
-
_.trys.pop();
|
|
428
|
-
continue;
|
|
429
|
-
default:
|
|
430
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
|
|
431
|
-
_ = 0;
|
|
432
|
-
continue;
|
|
433
|
-
}
|
|
434
|
-
if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
|
|
435
|
-
_.label = op[1];
|
|
436
|
-
break;
|
|
437
|
-
}
|
|
438
|
-
if (op[0] === 6 && _.label < t[1]) {
|
|
439
|
-
_.label = t[1];
|
|
440
|
-
t = op;
|
|
441
|
-
break;
|
|
442
|
-
}
|
|
443
|
-
if (t && _.label < t[2]) {
|
|
444
|
-
_.label = t[2];
|
|
445
|
-
_.ops.push(op);
|
|
446
|
-
break;
|
|
447
|
-
}
|
|
448
|
-
if (t[2]) _.ops.pop();
|
|
449
|
-
_.trys.pop();
|
|
450
|
-
continue;
|
|
451
|
-
}
|
|
452
|
-
op = body.call(thisArg, _);
|
|
453
|
-
} catch (e) {
|
|
454
|
-
op = [
|
|
455
|
-
6,
|
|
456
|
-
e
|
|
457
|
-
];
|
|
458
|
-
y = 0;
|
|
459
|
-
} finally{
|
|
460
|
-
f = t = 0;
|
|
461
|
-
}
|
|
462
|
-
if (op[0] & 5) throw op[1];
|
|
463
|
-
return {
|
|
464
|
-
value: op[0] ? op[1] : void 0,
|
|
465
|
-
done: true
|
|
466
|
-
};
|
|
467
|
-
}
|
|
468
|
-
}
|
|
469
|
-
/**
|
|
470
|
-
* Service that makes system changes based on Typeform webhook events.
|
|
471
|
-
*/ exports.TypeformWebhookService = /*#__PURE__*/ function() {
|
|
472
|
-
function TypeformWebhookService(typeFormWebhookServiceConfig) {
|
|
473
|
-
_class_call_check$5(this, TypeformWebhookService);
|
|
474
|
-
_define_property$4(this, "logger", new common.Logger('TypeformWebhookService'));
|
|
475
|
-
_define_property$4(this, "_verifier", void 0);
|
|
476
|
-
_define_property$4(this, "handler", typeformEventHandlerFactory());
|
|
477
|
-
_define_property$4(this, "configure", typeformEventHandlerConfigurerFactory(this.handler));
|
|
478
|
-
var _typeFormWebhookServiceConfig_typeformWebhook = typeFormWebhookServiceConfig.typeformWebhook, webhookSecret = _typeFormWebhookServiceConfig_typeformWebhook.secretToken;
|
|
479
|
-
this._verifier = typeFormWebhookEventVerifier({
|
|
480
|
-
secret: webhookSecret
|
|
481
|
-
});
|
|
482
|
-
}
|
|
483
|
-
_create_class$2(TypeformWebhookService, [
|
|
484
|
-
{
|
|
485
|
-
key: "updateForWebhook",
|
|
486
|
-
value: function updateForWebhook(req, rawBody) {
|
|
487
|
-
return _async_to_generator$1(function() {
|
|
488
|
-
var result;
|
|
489
|
-
return _ts_generator$1(this, function(_state) {
|
|
490
|
-
switch(_state.label){
|
|
491
|
-
case 0:
|
|
492
|
-
return [
|
|
493
|
-
4,
|
|
494
|
-
this._verifier(req, rawBody)
|
|
495
|
-
];
|
|
496
|
-
case 1:
|
|
497
|
-
result = _state.sent();
|
|
498
|
-
if (!result.valid) return [
|
|
499
|
-
3,
|
|
500
|
-
3
|
|
501
|
-
];
|
|
502
|
-
return [
|
|
503
|
-
4,
|
|
504
|
-
this.updateForTypeformEvent(result.event)
|
|
505
|
-
];
|
|
506
|
-
case 2:
|
|
507
|
-
_state.sent();
|
|
508
|
-
return [
|
|
509
|
-
3,
|
|
510
|
-
4
|
|
511
|
-
];
|
|
512
|
-
case 3:
|
|
513
|
-
this.logger.warn('Received invalid Typeform event.', req);
|
|
514
|
-
_state.label = 4;
|
|
515
|
-
case 4:
|
|
516
|
-
return [
|
|
517
|
-
2
|
|
518
|
-
];
|
|
519
|
-
}
|
|
520
|
-
});
|
|
521
|
-
}).call(this);
|
|
522
|
-
}
|
|
523
|
-
},
|
|
524
|
-
{
|
|
525
|
-
key: "updateForTypeformEvent",
|
|
526
|
-
value: function updateForTypeformEvent(event) {
|
|
527
|
-
return _async_to_generator$1(function() {
|
|
528
|
-
var result;
|
|
529
|
-
return _ts_generator$1(this, function(_state) {
|
|
530
|
-
switch(_state.label){
|
|
531
|
-
case 0:
|
|
532
|
-
return [
|
|
533
|
-
4,
|
|
534
|
-
this.handler(event)
|
|
535
|
-
];
|
|
536
|
-
case 1:
|
|
537
|
-
result = _state.sent();
|
|
538
|
-
if (!result) {
|
|
539
|
-
this.logger.warn('Received unexpected/unhandled Typeform event.', event);
|
|
540
|
-
}
|
|
541
|
-
return [
|
|
542
|
-
2
|
|
543
|
-
];
|
|
544
|
-
}
|
|
545
|
-
});
|
|
546
|
-
}).call(this);
|
|
547
|
-
}
|
|
548
|
-
}
|
|
549
|
-
]);
|
|
550
|
-
return TypeformWebhookService;
|
|
551
|
-
}();
|
|
552
|
-
exports.TypeformWebhookService = __decorate([
|
|
553
|
-
common.Injectable(),
|
|
554
|
-
__param(0, common.Inject(TypeformWebhookServiceConfig))
|
|
555
|
-
], exports.TypeformWebhookService);
|
|
556
|
-
|
|
557
|
-
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
|
|
558
|
-
try {
|
|
559
|
-
var info = gen[key](arg);
|
|
560
|
-
var value = info.value;
|
|
561
|
-
} catch (error) {
|
|
562
|
-
reject(error);
|
|
563
|
-
return;
|
|
564
|
-
}
|
|
565
|
-
if (info.done) {
|
|
566
|
-
resolve(value);
|
|
567
|
-
} else {
|
|
568
|
-
Promise.resolve(value).then(_next, _throw);
|
|
569
|
-
}
|
|
570
|
-
}
|
|
571
|
-
function _async_to_generator(fn) {
|
|
572
|
-
return function() {
|
|
573
|
-
var self = this, args = arguments;
|
|
574
|
-
return new Promise(function(resolve, reject) {
|
|
575
|
-
var gen = fn.apply(self, args);
|
|
576
|
-
function _next(value) {
|
|
577
|
-
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
|
|
578
|
-
}
|
|
579
|
-
function _throw(err) {
|
|
580
|
-
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
|
|
581
|
-
}
|
|
582
|
-
_next(undefined);
|
|
583
|
-
});
|
|
584
|
-
};
|
|
585
|
-
}
|
|
586
|
-
function _class_call_check$4(instance, Constructor) {
|
|
587
|
-
if (!(instance instanceof Constructor)) {
|
|
588
|
-
throw new TypeError("Cannot call a class as a function");
|
|
589
|
-
}
|
|
590
|
-
}
|
|
591
|
-
function _defineProperties$1(target, props) {
|
|
592
|
-
for(var i = 0; i < props.length; i++){
|
|
593
|
-
var descriptor = props[i];
|
|
594
|
-
descriptor.enumerable = descriptor.enumerable || false;
|
|
595
|
-
descriptor.configurable = true;
|
|
596
|
-
if ("value" in descriptor) descriptor.writable = true;
|
|
597
|
-
Object.defineProperty(target, descriptor.key, descriptor);
|
|
598
|
-
}
|
|
599
|
-
}
|
|
600
|
-
function _create_class$1(Constructor, protoProps, staticProps) {
|
|
601
|
-
if (protoProps) _defineProperties$1(Constructor.prototype, protoProps);
|
|
602
|
-
return Constructor;
|
|
603
|
-
}
|
|
604
|
-
function _define_property$3(obj, key, value) {
|
|
605
|
-
if (key in obj) {
|
|
606
|
-
Object.defineProperty(obj, key, {
|
|
607
|
-
value: value,
|
|
608
|
-
enumerable: true,
|
|
609
|
-
configurable: true,
|
|
610
|
-
writable: true
|
|
611
|
-
});
|
|
612
|
-
} else {
|
|
613
|
-
obj[key] = value;
|
|
614
|
-
}
|
|
615
|
-
return obj;
|
|
616
|
-
}
|
|
617
|
-
function _ts_generator(thisArg, body) {
|
|
618
|
-
var f, y, t, _ = {
|
|
619
|
-
label: 0,
|
|
620
|
-
sent: function() {
|
|
621
|
-
if (t[0] & 1) throw t[1];
|
|
622
|
-
return t[1];
|
|
623
|
-
},
|
|
624
|
-
trys: [],
|
|
625
|
-
ops: []
|
|
626
|
-
}, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype), d = Object.defineProperty;
|
|
627
|
-
return d(g, "next", {
|
|
628
|
-
value: verb(0)
|
|
629
|
-
}), d(g, "throw", {
|
|
630
|
-
value: verb(1)
|
|
631
|
-
}), d(g, "return", {
|
|
632
|
-
value: verb(2)
|
|
633
|
-
}), typeof Symbol === "function" && d(g, Symbol.iterator, {
|
|
634
|
-
value: function() {
|
|
635
|
-
return this;
|
|
636
|
-
}
|
|
637
|
-
}), g;
|
|
638
|
-
function verb(n) {
|
|
639
|
-
return function(v) {
|
|
640
|
-
return step([
|
|
641
|
-
n,
|
|
642
|
-
v
|
|
643
|
-
]);
|
|
644
|
-
};
|
|
645
|
-
}
|
|
646
|
-
function step(op) {
|
|
647
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
648
|
-
while(g && (g = 0, op[0] && (_ = 0)), _)try {
|
|
649
|
-
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;
|
|
650
|
-
if (y = 0, t) op = [
|
|
651
|
-
op[0] & 2,
|
|
652
|
-
t.value
|
|
653
|
-
];
|
|
654
|
-
switch(op[0]){
|
|
655
|
-
case 0:
|
|
656
|
-
case 1:
|
|
657
|
-
t = op;
|
|
658
|
-
break;
|
|
659
|
-
case 4:
|
|
660
|
-
_.label++;
|
|
661
|
-
return {
|
|
662
|
-
value: op[1],
|
|
663
|
-
done: false
|
|
664
|
-
};
|
|
665
|
-
case 5:
|
|
666
|
-
_.label++;
|
|
667
|
-
y = op[1];
|
|
668
|
-
op = [
|
|
669
|
-
0
|
|
670
|
-
];
|
|
671
|
-
continue;
|
|
672
|
-
case 7:
|
|
673
|
-
op = _.ops.pop();
|
|
674
|
-
_.trys.pop();
|
|
675
|
-
continue;
|
|
676
|
-
default:
|
|
677
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
|
|
678
|
-
_ = 0;
|
|
679
|
-
continue;
|
|
680
|
-
}
|
|
681
|
-
if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
|
|
682
|
-
_.label = op[1];
|
|
683
|
-
break;
|
|
684
|
-
}
|
|
685
|
-
if (op[0] === 6 && _.label < t[1]) {
|
|
686
|
-
_.label = t[1];
|
|
687
|
-
t = op;
|
|
688
|
-
break;
|
|
689
|
-
}
|
|
690
|
-
if (t && _.label < t[2]) {
|
|
691
|
-
_.label = t[2];
|
|
692
|
-
_.ops.push(op);
|
|
693
|
-
break;
|
|
694
|
-
}
|
|
695
|
-
if (t[2]) _.ops.pop();
|
|
696
|
-
_.trys.pop();
|
|
697
|
-
continue;
|
|
698
|
-
}
|
|
699
|
-
op = body.call(thisArg, _);
|
|
700
|
-
} catch (e) {
|
|
701
|
-
op = [
|
|
702
|
-
6,
|
|
703
|
-
e
|
|
704
|
-
];
|
|
705
|
-
y = 0;
|
|
706
|
-
} finally{
|
|
707
|
-
f = t = 0;
|
|
708
|
-
}
|
|
709
|
-
if (op[0] & 5) throw op[1];
|
|
710
|
-
return {
|
|
711
|
-
value: op[0] ? op[1] : void 0,
|
|
712
|
-
done: true
|
|
713
|
-
};
|
|
714
|
-
}
|
|
715
|
-
}
|
|
716
|
-
exports.TypeformWebhookController = /*#__PURE__*/ function() {
|
|
717
|
-
function TypeformWebhookController(typeformWebhookService) {
|
|
718
|
-
_class_call_check$4(this, TypeformWebhookController);
|
|
719
|
-
_define_property$3(this, "_typeformWebhookService", void 0);
|
|
720
|
-
this._typeformWebhookService = typeformWebhookService;
|
|
721
|
-
}
|
|
722
|
-
_create_class$1(TypeformWebhookController, [
|
|
723
|
-
{
|
|
724
|
-
key: "handleTypeformWebhook",
|
|
725
|
-
value: function handleTypeformWebhook(req, rawBody) {
|
|
726
|
-
return _async_to_generator(function() {
|
|
727
|
-
return _ts_generator(this, function(_state) {
|
|
728
|
-
switch(_state.label){
|
|
729
|
-
case 0:
|
|
730
|
-
return [
|
|
731
|
-
4,
|
|
732
|
-
this._typeformWebhookService.updateForWebhook(req, rawBody)
|
|
733
|
-
];
|
|
734
|
-
case 1:
|
|
735
|
-
_state.sent();
|
|
736
|
-
return [
|
|
737
|
-
2
|
|
738
|
-
];
|
|
739
|
-
}
|
|
740
|
-
});
|
|
741
|
-
}).call(this);
|
|
742
|
-
}
|
|
743
|
-
}
|
|
744
|
-
]);
|
|
745
|
-
return TypeformWebhookController;
|
|
746
|
-
}();
|
|
747
|
-
__decorate([
|
|
748
|
-
common.Post(),
|
|
749
|
-
__param(0, common.Req()),
|
|
750
|
-
__param(1, nestjs.RawBody())
|
|
751
|
-
], exports.TypeformWebhookController.prototype, "handleTypeformWebhook", null);
|
|
752
|
-
exports.TypeformWebhookController = __decorate([
|
|
753
|
-
common.Controller('/webhook/typeform'),
|
|
754
|
-
__param(0, common.Inject(exports.TypeformWebhookService))
|
|
755
|
-
], exports.TypeformWebhookController);
|
|
756
|
-
|
|
757
|
-
function _class_call_check$3(instance, Constructor) {
|
|
758
|
-
if (!(instance instanceof Constructor)) {
|
|
759
|
-
throw new TypeError("Cannot call a class as a function");
|
|
760
|
-
}
|
|
761
|
-
}
|
|
762
|
-
/**
|
|
763
|
-
* Factory that creates a TypeformWebhookServiceConfig from environment variables.
|
|
764
|
-
*
|
|
765
|
-
* Reads the Typeform webhook secret token from environment variables for signature verification.
|
|
766
|
-
*
|
|
767
|
-
* @param configService - NestJS config service for reading environment variables.
|
|
768
|
-
* @returns A validated TypeformWebhookServiceConfig.
|
|
769
|
-
*/ function typeFormWebhookServiceConfigFactory(configService) {
|
|
770
|
-
var config = {
|
|
771
|
-
typeformWebhook: {
|
|
772
|
-
secretToken: configService.get(TYPEFORM_WEBHOOK_SECRET_TOKEN_ENV_VAR)
|
|
773
|
-
}
|
|
774
|
-
};
|
|
775
|
-
TypeformWebhookServiceConfig.assertValidConfig(config);
|
|
776
|
-
return config;
|
|
777
|
-
}
|
|
778
|
-
/**
|
|
779
|
-
* NestJS module that handles incoming Typeform webhook events.
|
|
780
|
-
*
|
|
781
|
-
* Provides the TypeformWebhookService and controller for verifying and processing Typeform webhook payloads.
|
|
782
|
-
*/ exports.TypeformWebhookModule = function TypeformWebhookModule() {
|
|
783
|
-
_class_call_check$3(this, TypeformWebhookModule);
|
|
784
|
-
};
|
|
785
|
-
exports.TypeformWebhookModule = __decorate([
|
|
786
|
-
common.Module({
|
|
787
|
-
imports: [
|
|
788
|
-
config.ConfigModule
|
|
789
|
-
],
|
|
790
|
-
controllers: [
|
|
791
|
-
exports.TypeformWebhookController
|
|
792
|
-
],
|
|
793
|
-
providers: [
|
|
794
|
-
{
|
|
795
|
-
provide: TypeformWebhookServiceConfig,
|
|
796
|
-
inject: [
|
|
797
|
-
config.ConfigService
|
|
798
|
-
],
|
|
799
|
-
useFactory: typeFormWebhookServiceConfigFactory
|
|
800
|
-
},
|
|
801
|
-
exports.TypeformWebhookService
|
|
802
|
-
],
|
|
803
|
-
exports: [
|
|
804
|
-
exports.TypeformWebhookService
|
|
805
|
-
]
|
|
806
|
-
})
|
|
807
|
-
], exports.TypeformWebhookModule);
|
|
808
|
-
|
|
809
|
-
/**
|
|
810
|
-
* Finds all Typeform field template references (e.g., `{{field:uuid}}`) within a string.
|
|
811
|
-
*
|
|
812
|
-
* Returns an array of TypeformTemplateRef objects describing each match, its type, and its ref value.
|
|
813
|
-
*
|
|
814
|
-
* @param input - Source string to search for template references.
|
|
815
|
-
* @returns One TypeformTemplateRef per match, in left-to-right order.
|
|
816
|
-
*/ function findTypeformTemplateRefsInString(input) {
|
|
817
|
-
/**
|
|
818
|
-
* Used to search the input string to find field refs like the following:
|
|
819
|
-
*
|
|
820
|
-
* {{field:8f7adc1e-c3b8-44bd-b00c-1b6c8de65797}}
|
|
821
|
-
* {{field:01H7G3DCZ1FZV4KYZGM755MXZZ}}
|
|
822
|
-
*/ var regex = /\{\{\s*(field)\s*:\s*([A-Za-z0-9-]+)\s*\}\}/g;
|
|
823
|
-
var matches = input.matchAll(regex);
|
|
824
|
-
var result = [];
|
|
825
|
-
var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
|
|
826
|
-
try {
|
|
827
|
-
for(var _iterator = matches[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
|
|
828
|
-
var regexMatch = _step.value;
|
|
829
|
-
var match = regexMatch[0]; // {{field:8f7adc1e-c3b8-44bd-b00c-1b6c8de65797}}
|
|
830
|
-
var type = regexMatch[1]; // field
|
|
831
|
-
var ref = regexMatch[2]; // 8f7adc1e-c3b8-44bd-b00c-1b6c8de65797
|
|
832
|
-
result.push({
|
|
833
|
-
type: type,
|
|
834
|
-
match: match,
|
|
835
|
-
ref: ref
|
|
836
|
-
});
|
|
837
|
-
}
|
|
838
|
-
} catch (err) {
|
|
839
|
-
_didIteratorError = true;
|
|
840
|
-
_iteratorError = err;
|
|
841
|
-
} finally{
|
|
842
|
-
try {
|
|
843
|
-
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
844
|
-
_iterator.return();
|
|
845
|
-
}
|
|
846
|
-
} finally{
|
|
847
|
-
if (_didIteratorError) {
|
|
848
|
-
throw _iteratorError;
|
|
849
|
-
}
|
|
850
|
-
}
|
|
851
|
-
}
|
|
852
|
-
return result;
|
|
853
|
-
}
|
|
854
|
-
|
|
855
|
-
function _define_property$2(obj, key, value) {
|
|
856
|
-
if (key in obj) {
|
|
857
|
-
Object.defineProperty(obj, key, {
|
|
858
|
-
value: value,
|
|
859
|
-
enumerable: true,
|
|
860
|
-
configurable: true,
|
|
861
|
-
writable: true
|
|
862
|
-
});
|
|
863
|
-
} else {
|
|
864
|
-
obj[key] = value;
|
|
865
|
-
}
|
|
866
|
-
return obj;
|
|
867
|
-
}
|
|
868
|
-
function _object_spread(target) {
|
|
869
|
-
for(var i = 1; i < arguments.length; i++){
|
|
870
|
-
var source = arguments[i] != null ? arguments[i] : {};
|
|
871
|
-
var ownKeys = Object.keys(source);
|
|
872
|
-
if (typeof Object.getOwnPropertySymbols === "function") {
|
|
873
|
-
ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
|
|
874
|
-
return Object.getOwnPropertyDescriptor(source, sym).enumerable;
|
|
875
|
-
}));
|
|
876
|
-
}
|
|
877
|
-
ownKeys.forEach(function(key) {
|
|
878
|
-
_define_property$2(target, key, source[key]);
|
|
879
|
-
});
|
|
880
|
-
}
|
|
881
|
-
return target;
|
|
882
|
-
}
|
|
883
|
-
function ownKeys(object, enumerableOnly) {
|
|
884
|
-
var keys = Object.keys(object);
|
|
885
|
-
if (Object.getOwnPropertySymbols) {
|
|
886
|
-
var symbols = Object.getOwnPropertySymbols(object);
|
|
887
|
-
keys.push.apply(keys, symbols);
|
|
888
|
-
}
|
|
889
|
-
return keys;
|
|
890
|
-
}
|
|
891
|
-
function _object_spread_props(target, source) {
|
|
892
|
-
source = source != null ? source : {};
|
|
893
|
-
if (Object.getOwnPropertyDescriptors) {
|
|
894
|
-
Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
|
|
895
|
-
} else {
|
|
896
|
-
ownKeys(Object(source)).forEach(function(key) {
|
|
897
|
-
Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
|
|
898
|
-
});
|
|
899
|
-
}
|
|
900
|
-
return target;
|
|
901
|
-
}
|
|
902
|
-
/**
|
|
903
|
-
* Creates an ExpandedTypeformWebhookFormResponse from a TypeformWebhookFormResponse.
|
|
904
|
-
*
|
|
905
|
-
* Pairs each answer with its definition field and expands any field reference templates in question titles.
|
|
906
|
-
*
|
|
907
|
-
* @param formResponse - The raw Typeform webhook form response to expand.
|
|
908
|
-
* @returns An ExpandedTypeformWebhookFormResponse with the original response and paired question/answer data.
|
|
909
|
-
*/ function expandTypeformWebhookFormResponse(formResponse) {
|
|
910
|
-
var answers = formResponse.answers, definition = formResponse.definition;
|
|
911
|
-
var _definition_fields = definition.fields, fields = _definition_fields === void 0 ? [] : _definition_fields;
|
|
912
|
-
var questionFieldMap = new Map(util.filterMaybeArrayValues(fields.map(function(x) {
|
|
913
|
-
return x.id ? [
|
|
914
|
-
x.id,
|
|
915
|
-
x
|
|
916
|
-
] : null;
|
|
917
|
-
})));
|
|
918
|
-
var answerValuePairs = answers.map(function(answer) {
|
|
919
|
-
return makeTypeformFormResponseAnswerValuePair(answer);
|
|
920
|
-
});
|
|
921
|
-
var answerValueFieldRefMap = new Map(util.filterMaybeArrayValues(answerValuePairs.map(function(x) {
|
|
922
|
-
return x.answer.field.ref ? [
|
|
923
|
-
x.answer.field.ref,
|
|
924
|
-
x
|
|
925
|
-
] : null;
|
|
926
|
-
})));
|
|
927
|
-
function expandQuestionTitle(title) {
|
|
928
|
-
var result = title;
|
|
929
|
-
var hadReferenceInTitle = false;
|
|
930
|
-
if (result) {
|
|
931
|
-
var refsInTitle = findTypeformTemplateRefsInString(result);
|
|
932
|
-
if (refsInTitle.length > 0) {
|
|
933
|
-
hadReferenceInTitle = true;
|
|
934
|
-
refsInTitle.forEach(function(refInTitle) {
|
|
935
|
-
var match = refInTitle.match, ref = refInTitle.ref;
|
|
936
|
-
var fullMatch = match;
|
|
937
|
-
var answer = answerValueFieldRefMap.get(ref);
|
|
938
|
-
var answerValue = answer === null || answer === void 0 ? void 0 : answer.valueString;
|
|
939
|
-
var replacedTitle = result.replaceAll(fullMatch, answerValue !== null && answerValue !== void 0 ? answerValue : '');
|
|
940
|
-
result = replacedTitle;
|
|
941
|
-
});
|
|
942
|
-
}
|
|
943
|
-
}
|
|
944
|
-
return {
|
|
945
|
-
questionTitle: result,
|
|
946
|
-
hadReferenceInTitle: hadReferenceInTitle
|
|
947
|
-
};
|
|
948
|
-
}
|
|
949
|
-
var pairs = answerValuePairs.map(function(answerValue) {
|
|
950
|
-
var definitionField = questionFieldMap.get(answerValue.answer.field.id);
|
|
951
|
-
var _expandQuestionTitle = expandQuestionTitle(definitionField === null || definitionField === void 0 ? void 0 : definitionField.title), questionTitle = _expandQuestionTitle.questionTitle, hadReferenceInTitle = _expandQuestionTitle.hadReferenceInTitle;
|
|
952
|
-
var result = _object_spread_props(_object_spread({}, answerValue), {
|
|
953
|
-
definitionField: definitionField,
|
|
954
|
-
questionTitle: questionTitle,
|
|
955
|
-
hadReferenceInTitle: hadReferenceInTitle
|
|
956
|
-
});
|
|
957
|
-
return result;
|
|
958
|
-
});
|
|
959
|
-
return {
|
|
960
|
-
formResponse: formResponse,
|
|
961
|
-
pairs: pairs
|
|
962
|
-
};
|
|
963
|
-
}
|
|
964
|
-
/**
|
|
965
|
-
* Creates a TypeformFormResponseAnswerValuePair from a raw TypeformFormResponseAnswer.
|
|
966
|
-
*
|
|
967
|
-
* Extracts the typed value and a string representation based on the answer type.
|
|
968
|
-
*
|
|
969
|
-
* @param answer - The raw Typeform form response answer to convert.
|
|
970
|
-
* @returns A TypeformFormResponseAnswerValuePair containing the answer, its typed value, and a string representation.
|
|
971
|
-
*/ function makeTypeformFormResponseAnswerValuePair(answer) {
|
|
972
|
-
var value;
|
|
973
|
-
var valueString;
|
|
974
|
-
switch(answer.type){
|
|
975
|
-
case 'number':
|
|
976
|
-
value = answer.number;
|
|
977
|
-
valueString = answer.number.toString();
|
|
978
|
-
break;
|
|
979
|
-
case 'boolean':
|
|
980
|
-
value = answer.boolean;
|
|
981
|
-
valueString = answer.boolean.toString();
|
|
982
|
-
break;
|
|
983
|
-
case 'email':
|
|
984
|
-
value = answer.email;
|
|
985
|
-
valueString = answer.email;
|
|
986
|
-
break;
|
|
987
|
-
case 'phone_number':
|
|
988
|
-
value = answer.phone_number;
|
|
989
|
-
valueString = answer.phone_number;
|
|
990
|
-
break;
|
|
991
|
-
case 'date':
|
|
992
|
-
value = answer.date;
|
|
993
|
-
valueString = answer.date;
|
|
994
|
-
break;
|
|
995
|
-
case 'payment':
|
|
996
|
-
value = answer.payment;
|
|
997
|
-
valueString = answer.payment.amount.toString();
|
|
998
|
-
break;
|
|
999
|
-
case 'text':
|
|
1000
|
-
value = answer.text;
|
|
1001
|
-
valueString = answer.text;
|
|
1002
|
-
break;
|
|
1003
|
-
case 'choices':
|
|
1004
|
-
var _answer_choices_other;
|
|
1005
|
-
value = answer.choices;
|
|
1006
|
-
valueString = (_answer_choices_other = answer.choices.other) !== null && _answer_choices_other !== void 0 ? _answer_choices_other : util.joinStringsWithCommas(answer.choices.labels);
|
|
1007
|
-
break;
|
|
1008
|
-
case 'choice':
|
|
1009
|
-
var _ref, _answer_choice_other;
|
|
1010
|
-
value = answer.choice;
|
|
1011
|
-
valueString = (_ref = (_answer_choice_other = answer.choice.other) !== null && _answer_choice_other !== void 0 ? _answer_choice_other : answer.choice.label) !== null && _ref !== void 0 ? _ref : '';
|
|
1012
|
-
break;
|
|
1013
|
-
case 'url':
|
|
1014
|
-
value = answer.url;
|
|
1015
|
-
valueString = answer.url;
|
|
1016
|
-
break;
|
|
1017
|
-
case 'file_url':
|
|
1018
|
-
value = answer.file_url;
|
|
1019
|
-
valueString = answer.file_url;
|
|
1020
|
-
break;
|
|
1021
|
-
}
|
|
1022
|
-
var result = {
|
|
1023
|
-
answer: answer,
|
|
1024
|
-
value: value,
|
|
1025
|
-
valueString: valueString
|
|
1026
|
-
};
|
|
1027
|
-
return result;
|
|
1028
|
-
}
|
|
1029
|
-
|
|
1030
|
-
function _class_call_check$2(instance, Constructor) {
|
|
1031
|
-
if (!(instance instanceof Constructor)) {
|
|
1032
|
-
throw new TypeError("Cannot call a class as a function");
|
|
1033
|
-
}
|
|
1034
|
-
}
|
|
1035
|
-
function _defineProperties(target, props) {
|
|
1036
|
-
for(var i = 0; i < props.length; i++){
|
|
1037
|
-
var descriptor = props[i];
|
|
1038
|
-
descriptor.enumerable = descriptor.enumerable || false;
|
|
1039
|
-
descriptor.configurable = true;
|
|
1040
|
-
if ("value" in descriptor) descriptor.writable = true;
|
|
1041
|
-
Object.defineProperty(target, descriptor.key, descriptor);
|
|
1042
|
-
}
|
|
1043
|
-
}
|
|
1044
|
-
function _create_class(Constructor, protoProps, staticProps) {
|
|
1045
|
-
if (staticProps) _defineProperties(Constructor, staticProps);
|
|
1046
|
-
return Constructor;
|
|
1047
|
-
}
|
|
1048
|
-
function _define_property$1(obj, key, value) {
|
|
1049
|
-
if (key in obj) {
|
|
1050
|
-
Object.defineProperty(obj, key, {
|
|
1051
|
-
value: value,
|
|
1052
|
-
enumerable: true,
|
|
1053
|
-
configurable: true,
|
|
1054
|
-
writable: true
|
|
1055
|
-
});
|
|
1056
|
-
} else {
|
|
1057
|
-
obj[key] = value;
|
|
1058
|
-
}
|
|
1059
|
-
return obj;
|
|
1060
|
-
}
|
|
1061
|
-
/**
|
|
1062
|
-
* Default environment variable for the Typeform API key.
|
|
1063
|
-
*/ var TYPEFORM_SECRET_TOKEN_ENV_VAR = 'TYPEFORM_SECRET_TOKEN';
|
|
1064
|
-
var TYPEFORM_BASE_URL_ENV_VAR = 'TYPEFORM_BASE_URL';
|
|
1065
|
-
/**
|
|
1066
|
-
* Configuration for TypeformService
|
|
1067
|
-
*/ var TypeformServiceConfig = /*#__PURE__*/ function() {
|
|
1068
|
-
function TypeformServiceConfig() {
|
|
1069
|
-
_class_call_check$2(this, TypeformServiceConfig);
|
|
1070
|
-
_define_property$1(this, "typeform", void 0);
|
|
1071
|
-
}
|
|
1072
|
-
_create_class(TypeformServiceConfig, null, [
|
|
1073
|
-
{
|
|
1074
|
-
key: "assertValidConfig",
|
|
1075
|
-
value: function assertValidConfig(config) {
|
|
1076
|
-
if (!config.typeform.config.token) {
|
|
1077
|
-
throw new Error('No Typeform token specified.');
|
|
1078
|
-
}
|
|
1079
|
-
}
|
|
1080
|
-
}
|
|
1081
|
-
]);
|
|
1082
|
-
return TypeformServiceConfig;
|
|
1083
|
-
}
|
|
1084
|
-
();
|
|
1085
|
-
|
|
1086
|
-
function _class_call_check$1(instance, Constructor) {
|
|
1087
|
-
if (!(instance instanceof Constructor)) {
|
|
1088
|
-
throw new TypeError("Cannot call a class as a function");
|
|
1089
|
-
}
|
|
1090
|
-
}
|
|
1091
|
-
function _define_property(obj, key, value) {
|
|
1092
|
-
if (key in obj) {
|
|
1093
|
-
Object.defineProperty(obj, key, {
|
|
1094
|
-
value: value,
|
|
1095
|
-
enumerable: true,
|
|
1096
|
-
configurable: true,
|
|
1097
|
-
writable: true
|
|
1098
|
-
});
|
|
1099
|
-
} else {
|
|
1100
|
-
obj[key] = value;
|
|
1101
|
-
}
|
|
1102
|
-
return obj;
|
|
1103
|
-
}
|
|
1104
|
-
exports.TypeformApi = function TypeformApi(config) {
|
|
1105
|
-
_class_call_check$1(this, TypeformApi);
|
|
1106
|
-
_define_property(this, "config", void 0);
|
|
1107
|
-
_define_property(this, "client", void 0);
|
|
1108
|
-
this.config = config;
|
|
1109
|
-
this.client = apiClient.createClient(config.typeform.config);
|
|
1110
|
-
};
|
|
1111
|
-
exports.TypeformApi = __decorate([
|
|
1112
|
-
common.Injectable(),
|
|
1113
|
-
__param(0, common.Inject(TypeformServiceConfig))
|
|
1114
|
-
], exports.TypeformApi);
|
|
1115
|
-
|
|
1116
|
-
function _class_call_check(instance, Constructor) {
|
|
1117
|
-
if (!(instance instanceof Constructor)) {
|
|
1118
|
-
throw new TypeError("Cannot call a class as a function");
|
|
1119
|
-
}
|
|
1120
|
-
}
|
|
1121
|
-
/**
|
|
1122
|
-
* Factory that creates a TypeformServiceConfig from environment variables.
|
|
1123
|
-
*
|
|
1124
|
-
* Reads the Typeform API token and optional base URL from environment variables.
|
|
1125
|
-
*
|
|
1126
|
-
* @param configService - NestJS config service for reading environment variables.
|
|
1127
|
-
* @returns A validated TypeformServiceConfig.
|
|
1128
|
-
*/ function typeFormServiceConfigFactory(configService) {
|
|
1129
|
-
var _configService_get;
|
|
1130
|
-
var config = {
|
|
1131
|
-
typeform: {
|
|
1132
|
-
config: {
|
|
1133
|
-
token: configService.get(TYPEFORM_SECRET_TOKEN_ENV_VAR),
|
|
1134
|
-
baseURL: (_configService_get = configService.get(TYPEFORM_BASE_URL_ENV_VAR)) !== null && _configService_get !== void 0 ? _configService_get : undefined
|
|
1135
|
-
}
|
|
1136
|
-
}
|
|
1137
|
-
};
|
|
1138
|
-
TypeformServiceConfig.assertValidConfig(config);
|
|
1139
|
-
return config;
|
|
1140
|
-
}
|
|
1141
|
-
/**
|
|
1142
|
-
* NestJS module that provides the TypeformApi service.
|
|
1143
|
-
*
|
|
1144
|
-
* Reads the Typeform API token and optional base URL from environment variables.
|
|
1145
|
-
*/ exports.TypeformModule = function TypeformModule() {
|
|
1146
|
-
_class_call_check(this, TypeformModule);
|
|
1147
|
-
};
|
|
1148
|
-
exports.TypeformModule = __decorate([
|
|
1149
|
-
common.Module({
|
|
1150
|
-
imports: [
|
|
1151
|
-
config.ConfigModule
|
|
1152
|
-
],
|
|
1153
|
-
providers: [
|
|
1154
|
-
{
|
|
1155
|
-
provide: TypeformServiceConfig,
|
|
1156
|
-
inject: [
|
|
1157
|
-
config.ConfigService
|
|
1158
|
-
],
|
|
1159
|
-
useFactory: typeFormServiceConfigFactory
|
|
1160
|
-
},
|
|
1161
|
-
exports.TypeformApi
|
|
1162
|
-
],
|
|
1163
|
-
exports: [
|
|
1164
|
-
exports.TypeformApi
|
|
1165
|
-
]
|
|
1166
|
-
})
|
|
1167
|
-
], exports.TypeformModule);
|
|
1168
|
-
|
|
1169
|
-
exports.TYPEFORM_BASE_URL_ENV_VAR = TYPEFORM_BASE_URL_ENV_VAR;
|
|
1170
|
-
exports.TYPEFORM_SECRET_TOKEN_ENV_VAR = TYPEFORM_SECRET_TOKEN_ENV_VAR;
|
|
1171
|
-
exports.TYPEFORM_WEBHOOK_SECRET_TOKEN_ENV_VAR = TYPEFORM_WEBHOOK_SECRET_TOKEN_ENV_VAR;
|
|
1172
|
-
exports.TypeformServiceConfig = TypeformServiceConfig;
|
|
1173
|
-
exports.TypeformWebhookServiceConfig = TypeformWebhookServiceConfig;
|
|
1174
|
-
exports.expandTypeformWebhookFormResponse = expandTypeformWebhookFormResponse;
|
|
1175
|
-
exports.findTypeformTemplateRefsInString = findTypeformTemplateRefsInString;
|
|
1176
|
-
exports.makeTypeformFormResponseAnswerValuePair = makeTypeformFormResponseAnswerValuePair;
|
|
1177
|
-
exports.typeFormServiceConfigFactory = typeFormServiceConfigFactory;
|
|
1178
|
-
exports.typeFormWebhookEvent = typeFormWebhookEvent;
|
|
1179
|
-
exports.typeFormWebhookEventVerifier = typeFormWebhookEventVerifier;
|
|
1180
|
-
exports.typeFormWebhookServiceConfigFactory = typeFormWebhookServiceConfigFactory;
|
|
1181
|
-
exports.typeformEventHandlerConfigurerFactory = typeformEventHandlerConfigurerFactory;
|
|
1182
|
-
exports.typeformEventHandlerFactory = typeformEventHandlerFactory;
|