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