@driveflux/api-functions 0.0.7-next.19 → 0.0.7-next.2

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.
Files changed (90) hide show
  1. package/dist/auth/confirm.js +325 -66
  2. package/dist/auth/emails.js +210 -42
  3. package/dist/auth/formatter.js +9 -9
  4. package/dist/auth/otp.js +374 -120
  5. package/dist/auth/register.js +383 -95
  6. package/dist/auth/register.js.map +1 -1
  7. package/dist/auth/tokens.d.ts +3 -3
  8. package/dist/auth/tokens.js +426 -114
  9. package/dist/auth/verifications.js +581 -176
  10. package/dist/constants.js +4 -4
  11. package/dist/mailjet/calls/manage-contacts-in-list.d.ts +2 -2
  12. package/dist/mailjet/calls/manage-contacts-in-list.d.ts.map +1 -1
  13. package/dist/mailjet/calls/manage-contacts-in-list.js +167 -22
  14. package/dist/mailjet/calls/manage-contacts-in-list.js.map +1 -1
  15. package/dist/mailjet/calls/manage-subscription-status.d.ts +2 -2
  16. package/dist/mailjet/calls/manage-subscription-status.d.ts.map +1 -1
  17. package/dist/mailjet/calls/manage-subscription-status.js +154 -13
  18. package/dist/mailjet/calls/manage-subscription-status.js.map +1 -1
  19. package/dist/mailjet/calls/request-service.js +182 -18
  20. package/dist/mailjet/refresh-email-preferences.js +221 -21
  21. package/dist/mailjet/set-contact.d.ts +2 -2
  22. package/dist/mailjet/set-contact.d.ts.map +1 -1
  23. package/dist/mailjet/set-contact.js +213 -21
  24. package/dist/mailjet/set-contact.js.map +1 -1
  25. package/dist/mailjet/types.d.ts +2 -2
  26. package/dist/mailjet/types.d.ts.map +1 -1
  27. package/dist/mailjet/utils/convert-to-array.d.ts +1 -1
  28. package/dist/mailjet/utils/convert-to-array.d.ts.map +1 -1
  29. package/dist/mailjet/utils/convert-to-array.js +56 -9
  30. package/dist/mailjet/utils/extract-email-preferences.d.ts +1 -1
  31. package/dist/mailjet/utils/extract-email-preferences.d.ts.map +1 -1
  32. package/dist/mailjet/utils/extract-email-preferences.js +214 -37
  33. package/dist/mailjet/utils/lists.js +248 -28
  34. package/dist/mailjet/utils/update-email-references.d.ts +2 -2
  35. package/dist/mailjet/utils/update-email-references.d.ts.map +1 -1
  36. package/dist/mailjet/utils/update-email-references.js +207 -27
  37. package/dist/mailjet/utils/update-email-references.js.map +1 -1
  38. package/dist/notion/client.js +196 -50
  39. package/dist/notion/helpful.js +169 -25
  40. package/dist/notion/schemas/block.js +1 -1
  41. package/dist/notion/schemas/common.js +9 -7
  42. package/dist/notion/schemas/database.d.ts +1 -1
  43. package/dist/notion/schemas/database.js +100 -68
  44. package/dist/notion/schemas/emoji.js +1 -1
  45. package/dist/notion/schemas/file.js +1 -1
  46. package/dist/notion/schemas/kb.js +3 -3
  47. package/dist/notion/schemas/page.d.ts +1 -1
  48. package/dist/notion/schemas/page.js +103 -69
  49. package/dist/notion/schemas/parent.js +4 -4
  50. package/dist/notion/schemas/user.js +2 -2
  51. package/dist/reservation/agree.d.ts +1 -1
  52. package/dist/reservation/agree.d.ts.map +1 -1
  53. package/dist/reservation/agree.js +157 -17
  54. package/dist/reservation/checks.d.ts +1 -1
  55. package/dist/reservation/checks.d.ts.map +1 -1
  56. package/dist/reservation/checks.js +177 -21
  57. package/dist/reservation/display-vehicle.d.ts +1 -1
  58. package/dist/reservation/display-vehicle.js +500 -122
  59. package/dist/reservation/display-vehicle.js.map +1 -1
  60. package/dist/reservation/fetch-or-create.d.ts +2 -2
  61. package/dist/reservation/fetch-or-create.d.ts.map +1 -1
  62. package/dist/reservation/fetch-or-create.js +478 -188
  63. package/dist/reservation/fetch-or-create.js.map +1 -1
  64. package/dist/reservation/invoice.d.ts +3 -3
  65. package/dist/reservation/invoice.d.ts.map +1 -1
  66. package/dist/reservation/invoice.js +492 -182
  67. package/dist/reservation/invoice.js.map +1 -1
  68. package/dist/reservation/payer.d.ts +1 -1
  69. package/dist/reservation/payer.d.ts.map +1 -1
  70. package/dist/reservation/payer.js +175 -25
  71. package/dist/reservation/reserve.d.ts +1 -1
  72. package/dist/reservation/reserve.d.ts.map +1 -1
  73. package/dist/reservation/reserve.js +196 -35
  74. package/dist/reservation/reserve.js.map +1 -1
  75. package/dist/reservation/types.d.ts +0 -1
  76. package/dist/reservation/types.d.ts.map +1 -1
  77. package/dist/reservation/vehicle.d.ts +1 -1
  78. package/dist/reservation/vehicle.d.ts.map +1 -1
  79. package/dist/reservation/vehicle.js +188 -23
  80. package/dist/reservation/vehicle.js.map +1 -1
  81. package/dist/slack.js +268 -57
  82. package/dist/validation.js +98 -38
  83. package/dist/vehicle/vehicle-pricing/constants.d.ts +1 -1
  84. package/dist/vehicle/vehicle-pricing/constants.d.ts.map +1 -1
  85. package/dist/vehicle/vehicle-pricing/constants.js +16 -16
  86. package/dist/vehicle/vehicle-pricing/index.d.ts +1 -1
  87. package/dist/vehicle/vehicle-pricing/index.d.ts.map +1 -1
  88. package/dist/vehicle/vehicle-pricing/index.js +259 -87
  89. package/dist/vehicle/vehicle-pricing/index.js.map +1 -1
  90. package/package.json +21 -21
@@ -1,3 +1,123 @@
1
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
2
+ try {
3
+ var info = gen[key](arg);
4
+ var value = info.value;
5
+ } catch (error) {
6
+ reject(error);
7
+ return;
8
+ }
9
+ if (info.done) {
10
+ resolve(value);
11
+ } else {
12
+ Promise.resolve(value).then(_next, _throw);
13
+ }
14
+ }
15
+ function _async_to_generator(fn) {
16
+ return function() {
17
+ var self = this, args = arguments;
18
+ return new Promise(function(resolve, reject) {
19
+ var gen = fn.apply(self, args);
20
+ function _next(value) {
21
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
22
+ }
23
+ function _throw(err) {
24
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
25
+ }
26
+ _next(undefined);
27
+ });
28
+ };
29
+ }
30
+ function _ts_generator(thisArg, body) {
31
+ var f, y, t, _ = {
32
+ label: 0,
33
+ sent: function() {
34
+ if (t[0] & 1) throw t[1];
35
+ return t[1];
36
+ },
37
+ trys: [],
38
+ ops: []
39
+ }, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
40
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() {
41
+ return this;
42
+ }), g;
43
+ function verb(n) {
44
+ return function(v) {
45
+ return step([
46
+ n,
47
+ v
48
+ ]);
49
+ };
50
+ }
51
+ function step(op) {
52
+ if (f) throw new TypeError("Generator is already executing.");
53
+ while(g && (g = 0, op[0] && (_ = 0)), _)try {
54
+ 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;
55
+ if (y = 0, t) op = [
56
+ op[0] & 2,
57
+ t.value
58
+ ];
59
+ switch(op[0]){
60
+ case 0:
61
+ case 1:
62
+ t = op;
63
+ break;
64
+ case 4:
65
+ _.label++;
66
+ return {
67
+ value: op[1],
68
+ done: false
69
+ };
70
+ case 5:
71
+ _.label++;
72
+ y = op[1];
73
+ op = [
74
+ 0
75
+ ];
76
+ continue;
77
+ case 7:
78
+ op = _.ops.pop();
79
+ _.trys.pop();
80
+ continue;
81
+ default:
82
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
83
+ _ = 0;
84
+ continue;
85
+ }
86
+ if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
87
+ _.label = op[1];
88
+ break;
89
+ }
90
+ if (op[0] === 6 && _.label < t[1]) {
91
+ _.label = t[1];
92
+ t = op;
93
+ break;
94
+ }
95
+ if (t && _.label < t[2]) {
96
+ _.label = t[2];
97
+ _.ops.push(op);
98
+ break;
99
+ }
100
+ if (t[2]) _.ops.pop();
101
+ _.trys.pop();
102
+ continue;
103
+ }
104
+ op = body.call(thisArg, _);
105
+ } catch (e) {
106
+ op = [
107
+ 6,
108
+ e
109
+ ];
110
+ y = 0;
111
+ } finally{
112
+ f = t = 0;
113
+ }
114
+ if (op[0] & 5) throw op[1];
115
+ return {
116
+ value: op[0] ? op[1] : void 0,
117
+ done: true
118
+ };
119
+ }
120
+ }
1
121
  import { config } from '@driveflux/config/backend';
2
122
  import { prisma } from '@driveflux/db';
3
123
  import { send } from '@driveflux/email';
@@ -8,203 +128,488 @@ import { reportProblem } from '@driveflux/reporter';
8
128
  import { Err, Ok } from '@driveflux/result';
9
129
  import { z } from 'zod';
10
130
  import { clearToken, createEmailToken, createSMSToken } from './tokens.js';
11
- const CheckDuplicationBody = z.object({
131
+ var CheckDuplicationBody = z.object({
12
132
  phoneNumber: z.string(),
13
- email: z.string().transform((email)=>email.toLowerCase().trim())
133
+ email: z.string().transform(function(email) {
134
+ return email.toLowerCase().trim();
135
+ })
14
136
  });
15
- export const sendVerificationEmail = async (userId, temporaryEmail, next)=>{
16
- const user = typeof userId === 'string' ? await prisma.user.findUnique({
17
- where: {
18
- id: userId
19
- }
20
- }) : userId;
21
- if (!user) {
22
- return new Err(makeProblem(PROBLEM_NOT_FOUND, `User ${typeof userId === 'string' ? userId : 'unknown'} not found.`));
23
- }
24
- if (temporaryEmail) {
25
- const results = await verifyEmailUsage(temporaryEmail);
26
- if (results?.err) {
27
- return results;
28
- }
29
- }
30
- const destinationEmail = temporaryEmail || user.email;
31
- const token = await createEmailToken(user.id, destinationEmail);
32
- if (!token) {
33
- return new Err(makeProblem(PROBLEM_NOT_IMPLEMENTED, 'Token was not created'));
34
- }
35
- const updatedUser = await prisma.user.update({
36
- where: {
37
- id: user.id
38
- },
39
- data: {
40
- temporaryEmail: destinationEmail
41
- },
42
- include: {
43
- tokens: true
44
- }
45
- });
46
- const tokens = updatedUser?.tokens;
47
- if (tokens) {
48
- await Promise.allSettled(tokens.map(async (userToken)=>{
49
- if (userToken.scope === 'verify-email' && userToken.id !== token.id) {
50
- return await clearToken(userToken.id);
137
+ export var sendVerificationEmail = function(userId, temporaryEmail, next) {
138
+ return _async_to_generator(function() {
139
+ var user, _tmp, results, destinationEmail, token, updatedUser, tokens, query, link, title, html, result, e;
140
+ return _ts_generator(this, function(_state) {
141
+ switch(_state.label){
142
+ case 0:
143
+ if (!(typeof userId === 'string')) return [
144
+ 3,
145
+ 2
146
+ ];
147
+ return [
148
+ 4,
149
+ prisma.user.findUnique({
150
+ where: {
151
+ id: userId
152
+ }
153
+ })
154
+ ];
155
+ case 1:
156
+ _tmp = _state.sent();
157
+ return [
158
+ 3,
159
+ 3
160
+ ];
161
+ case 2:
162
+ _tmp = userId;
163
+ _state.label = 3;
164
+ case 3:
165
+ user = _tmp;
166
+ if (!user) {
167
+ return [
168
+ 2,
169
+ new Err(makeProblem(PROBLEM_NOT_FOUND, "User ".concat(typeof userId === 'string' ? userId : 'unknown', " not found.")))
170
+ ];
171
+ }
172
+ if (!temporaryEmail) return [
173
+ 3,
174
+ 5
175
+ ];
176
+ return [
177
+ 4,
178
+ verifyEmailUsage(temporaryEmail)
179
+ ];
180
+ case 4:
181
+ results = _state.sent();
182
+ if (results === null || results === void 0 ? void 0 : results.err) {
183
+ return [
184
+ 2,
185
+ results
186
+ ];
187
+ }
188
+ _state.label = 5;
189
+ case 5:
190
+ destinationEmail = temporaryEmail || user.email;
191
+ return [
192
+ 4,
193
+ createEmailToken(user.id, destinationEmail)
194
+ ];
195
+ case 6:
196
+ token = _state.sent();
197
+ if (!token) {
198
+ return [
199
+ 2,
200
+ new Err(makeProblem(PROBLEM_NOT_IMPLEMENTED, 'Token was not created'))
201
+ ];
202
+ }
203
+ return [
204
+ 4,
205
+ prisma.user.update({
206
+ where: {
207
+ id: user.id
208
+ },
209
+ data: {
210
+ temporaryEmail: destinationEmail
211
+ },
212
+ include: {
213
+ tokens: true
214
+ }
215
+ })
216
+ ];
217
+ case 7:
218
+ updatedUser = _state.sent();
219
+ tokens = updatedUser === null || updatedUser === void 0 ? void 0 : updatedUser.tokens;
220
+ if (!tokens) return [
221
+ 3,
222
+ 9
223
+ ];
224
+ return [
225
+ 4,
226
+ Promise.allSettled(tokens.map(function(userToken) {
227
+ return _async_to_generator(function() {
228
+ return _ts_generator(this, function(_state) {
229
+ switch(_state.label){
230
+ case 0:
231
+ if (!(userToken.scope === 'verify-email' && userToken.id !== token.id)) return [
232
+ 3,
233
+ 2
234
+ ];
235
+ return [
236
+ 4,
237
+ clearToken(userToken.id)
238
+ ];
239
+ case 1:
240
+ return [
241
+ 2,
242
+ _state.sent()
243
+ ];
244
+ case 2:
245
+ return [
246
+ 2
247
+ ];
248
+ }
249
+ });
250
+ })();
251
+ }))
252
+ ];
253
+ case 8:
254
+ _state.sent();
255
+ _state.label = 9;
256
+ case 9:
257
+ // Query object for the link
258
+ query = new URLSearchParams({
259
+ email: destinationEmail,
260
+ token: token.id,
261
+ code: token.value
262
+ });
263
+ if (next) {
264
+ query.append('next', next);
265
+ }
266
+ link = "".concat(config.appUrl, "/verify?").concat(query);
267
+ title = temporaryEmail ? 'Confirm email change' : 'Verify your email address';
268
+ _state.label = 10;
269
+ case 10:
270
+ _state.trys.push([
271
+ 10,
272
+ 12,
273
+ ,
274
+ 13
275
+ ]);
276
+ // Generate html
277
+ html = verificationEmail({
278
+ user: user.firstName || '',
279
+ link: link,
280
+ title: "".concat(title),
281
+ newEmail: temporaryEmail,
282
+ isChanging: !!temporaryEmail
283
+ });
284
+ return [
285
+ 4,
286
+ send({
287
+ to: {
288
+ name: user.firstName || '',
289
+ address: destinationEmail
290
+ },
291
+ subject: "".concat(title),
292
+ html: html
293
+ })
294
+ ];
295
+ case 11:
296
+ result = _state.sent();
297
+ if (result.err) {
298
+ console.error('Error sending email:', result.val);
299
+ return [
300
+ 2,
301
+ new Err(makeProblem('email_not_sent', 'Unable to send the verification email'))
302
+ ];
303
+ }
304
+ return [
305
+ 2,
306
+ new Ok({
307
+ success: true,
308
+ link: link
309
+ })
310
+ ];
311
+ case 12:
312
+ e = _state.sent();
313
+ return [
314
+ 2,
315
+ new Err(makeProblem('email_not_sent', e.message))
316
+ ];
317
+ case 13:
318
+ return [
319
+ 2
320
+ ];
51
321
  }
52
- return;
53
- }));
54
- }
55
- // Query object for the link
56
- const query = new URLSearchParams({
57
- email: destinationEmail,
58
- token: token.id,
59
- code: token.value
60
- });
61
- if (next) {
62
- query.append('next', next);
63
- }
64
- const link = `${config.appUrl}/verify?${query}`;
65
- const title = temporaryEmail ? 'Confirm email change' : 'Verify your email address';
66
- try {
67
- // Generate html
68
- const html = verificationEmail({
69
- user: user.firstName || '',
70
- link,
71
- title: `${title}`,
72
- newEmail: temporaryEmail,
73
- isChanging: !!temporaryEmail
74
- });
75
- // send email
76
- const result = await send({
77
- to: {
78
- name: user.firstName || '',
79
- address: destinationEmail
80
- },
81
- subject: `${title}`,
82
- html
83
- });
84
- if (result.err) {
85
- console.error('Error sending email:', result.val);
86
- return new Err(makeProblem('email_not_sent', 'Unable to send the verification email'));
87
- }
88
- return new Ok({
89
- success: true,
90
- link
91
322
  });
92
- } catch (e) {
93
- return new Err(makeProblem('email_not_sent', e.message));
94
- }
323
+ })();
95
324
  };
96
- export const verifyEmailUsage = async (newEmail)=>{
97
- // TODO: add email regex checking
98
- if (newEmail.length < 3) {
99
- return new Err(makeProblem(PROBLEM_INVALID_DATA, 'Email address needs minimum 3 characters'));
100
- }
101
- const existingEmail = await prisma.user.findFirst({
102
- where: {
103
- email: newEmail
104
- }
105
- });
106
- if (existingEmail) {
107
- return new Err(makeProblem(PROBLEM_INVALID_DATA, 'The email address is already in use'));
108
- }
109
- return new Ok({});
325
+ export var verifyEmailUsage = function(newEmail) {
326
+ return _async_to_generator(function() {
327
+ var existingEmail;
328
+ return _ts_generator(this, function(_state) {
329
+ switch(_state.label){
330
+ case 0:
331
+ // TODO: add email regex checking
332
+ if (newEmail.length < 3) {
333
+ return [
334
+ 2,
335
+ new Err(makeProblem(PROBLEM_INVALID_DATA, 'Email address needs minimum 3 characters'))
336
+ ];
337
+ }
338
+ return [
339
+ 4,
340
+ prisma.user.findFirst({
341
+ where: {
342
+ email: newEmail
343
+ }
344
+ })
345
+ ];
346
+ case 1:
347
+ existingEmail = _state.sent();
348
+ if (existingEmail) {
349
+ return [
350
+ 2,
351
+ new Err(makeProblem(PROBLEM_INVALID_DATA, 'The email address is already in use'))
352
+ ];
353
+ }
354
+ return [
355
+ 2,
356
+ new Ok({})
357
+ ];
358
+ }
359
+ });
360
+ })();
110
361
  };
111
- export const sendVerificationSMS = async (userId, phoneNumber)=>{
112
- const token = await createSMSToken(userId, phoneNumber);
113
- if (!token) {
114
- return new Err(makeProblem(PROBLEM_NOT_IMPLEMENTED, 'Token was not created'));
115
- }
116
- return await sendSms(phoneNumber, token.value);
362
+ export var sendVerificationSMS = function(userId, phoneNumber) {
363
+ return _async_to_generator(function() {
364
+ var token;
365
+ return _ts_generator(this, function(_state) {
366
+ switch(_state.label){
367
+ case 0:
368
+ return [
369
+ 4,
370
+ createSMSToken(userId, phoneNumber)
371
+ ];
372
+ case 1:
373
+ token = _state.sent();
374
+ if (!token) {
375
+ return [
376
+ 2,
377
+ new Err(makeProblem(PROBLEM_NOT_IMPLEMENTED, 'Token was not created'))
378
+ ];
379
+ }
380
+ return [
381
+ 4,
382
+ sendSms(phoneNumber, token.value)
383
+ ];
384
+ case 2:
385
+ return [
386
+ 2,
387
+ _state.sent()
388
+ ];
389
+ }
390
+ });
391
+ })();
117
392
  };
118
- const formatPhoneNumber = (phoneNumber)=>{
393
+ var formatPhoneNumber = function(phoneNumber) {
119
394
  return phoneNumber.replace(/[^0-9]/g, '');
120
395
  };
121
- const sendSms = async (phoneNumber, code)=>{
122
- const isInternational = !formatPhoneNumber(phoneNumber).startsWith('60');
123
- try {
124
- const sendSmsResult = isInternational ? await sendVonageSms(phoneNumber, code) : await sendEsmsSms(phoneNumber, code);
125
- if (sendSmsResult.err) {
126
- return new Err(await reportProblem(makeProblem({
127
- type: 'public',
128
- code: PROBLEM_EXTERNAL,
129
- message: 'Unable to send sms verification',
130
- privateMetadata: {
131
- error: sendSmsResult.val
132
- }
133
- })));
134
- }
135
- return new Ok({
136
- success: true,
137
- code
138
- });
139
- } catch (e) {
140
- return new Err(await reportProblem(makeProblem({
141
- type: 'public',
142
- code: PROBLEM_INTERNAL,
143
- message: 'Unable to send sms verification',
144
- privateMetadata: {
145
- error: e
396
+ var sendSms = function(phoneNumber, code) {
397
+ return _async_to_generator(function() {
398
+ var isInternational, sendSmsResult, _tmp, _, e, _1;
399
+ return _ts_generator(this, function(_state) {
400
+ switch(_state.label){
401
+ case 0:
402
+ isInternational = !formatPhoneNumber(phoneNumber).startsWith('60');
403
+ _state.label = 1;
404
+ case 1:
405
+ _state.trys.push([
406
+ 1,
407
+ 8,
408
+ ,
409
+ 10
410
+ ]);
411
+ if (!isInternational) return [
412
+ 3,
413
+ 3
414
+ ];
415
+ return [
416
+ 4,
417
+ sendVonageSms(phoneNumber, code)
418
+ ];
419
+ case 2:
420
+ _tmp = _state.sent();
421
+ return [
422
+ 3,
423
+ 5
424
+ ];
425
+ case 3:
426
+ return [
427
+ 4,
428
+ sendEsmsSms(phoneNumber, code)
429
+ ];
430
+ case 4:
431
+ _tmp = _state.sent();
432
+ _state.label = 5;
433
+ case 5:
434
+ sendSmsResult = _tmp;
435
+ if (!sendSmsResult.err) return [
436
+ 3,
437
+ 7
438
+ ];
439
+ _ = Err.bind;
440
+ return [
441
+ 4,
442
+ reportProblem(makeProblem({
443
+ type: 'public',
444
+ code: PROBLEM_EXTERNAL,
445
+ message: 'Unable to send sms verification',
446
+ privateMetadata: {
447
+ error: sendSmsResult.val
448
+ }
449
+ }))
450
+ ];
451
+ case 6:
452
+ return [
453
+ 2,
454
+ new (_.apply(Err, [
455
+ void 0,
456
+ _state.sent()
457
+ ]))
458
+ ];
459
+ case 7:
460
+ return [
461
+ 2,
462
+ new Ok({
463
+ success: true,
464
+ code: code
465
+ })
466
+ ];
467
+ case 8:
468
+ e = _state.sent();
469
+ _1 = Err.bind;
470
+ return [
471
+ 4,
472
+ reportProblem(makeProblem({
473
+ type: 'public',
474
+ code: PROBLEM_INTERNAL,
475
+ message: 'Unable to send sms verification',
476
+ privateMetadata: {
477
+ error: e
478
+ }
479
+ }))
480
+ ];
481
+ case 9:
482
+ return [
483
+ 2,
484
+ new (_1.apply(Err, [
485
+ void 0,
486
+ _state.sent()
487
+ ]))
488
+ ];
489
+ case 10:
490
+ return [
491
+ 2
492
+ ];
146
493
  }
147
- })));
148
- }
494
+ });
495
+ })();
149
496
  };
150
- export const handleCheckDuplication = async (b)=>{
151
- const { phoneNumber, email } = CheckDuplicationBody.parse(b);
152
- // Check if the user exists
153
- const checkForEmail = await prisma.user.findFirst({
154
- where: {
155
- email: email.toLowerCase().trim()
156
- }
157
- });
158
- if (checkForEmail) {
159
- return new Err(makeProblem(PROBLEM_CONFLICT, 'This email is already registered. Are you trying to sign in?'));
160
- }
161
- const checkForMobile = await prisma.user.findFirst({
162
- where: {
163
- phoneNumber: phoneNumber.replace(/[\s-]/g, '')
164
- }
165
- });
166
- if (checkForMobile) {
167
- return new Err(makeProblem(PROBLEM_CONFLICT, 'The phone number is already in use. Please try a different one.'));
168
- }
169
- return new Ok({
170
- notDuplicate: true
171
- });
497
+ export var handleCheckDuplication = function(b) {
498
+ return _async_to_generator(function() {
499
+ var _CheckDuplicationBody_parse, phoneNumber, email, checkForEmail, checkForMobile;
500
+ return _ts_generator(this, function(_state) {
501
+ switch(_state.label){
502
+ case 0:
503
+ _CheckDuplicationBody_parse = CheckDuplicationBody.parse(b), phoneNumber = _CheckDuplicationBody_parse.phoneNumber, email = _CheckDuplicationBody_parse.email;
504
+ return [
505
+ 4,
506
+ prisma.user.findFirst({
507
+ where: {
508
+ email: email.toLowerCase().trim()
509
+ }
510
+ })
511
+ ];
512
+ case 1:
513
+ checkForEmail = _state.sent();
514
+ if (checkForEmail) {
515
+ return [
516
+ 2,
517
+ new Err(makeProblem(PROBLEM_CONFLICT, 'This email is already registered. Are you trying to sign in?'))
518
+ ];
519
+ }
520
+ return [
521
+ 4,
522
+ prisma.user.findFirst({
523
+ where: {
524
+ phoneNumber: phoneNumber.replace(/[\s-]/g, '')
525
+ }
526
+ })
527
+ ];
528
+ case 2:
529
+ checkForMobile = _state.sent();
530
+ if (checkForMobile) {
531
+ return [
532
+ 2,
533
+ new Err(makeProblem(PROBLEM_CONFLICT, 'The phone number is already in use. Please try a different one.'))
534
+ ];
535
+ }
536
+ return [
537
+ 2,
538
+ new Ok({
539
+ notDuplicate: true
540
+ })
541
+ ];
542
+ }
543
+ });
544
+ })();
172
545
  };
173
546
  /**
174
547
  * This function runs only for foreign numbers and sends an SMS containing the OTP code to the foreign number
175
548
  * @param phoneNumber user's phone number
176
549
  * @param code OTP code
177
550
  * @returns result of sending SMS to user
178
- */ const sendVonageSms = async (phoneNumber, code)=>{
179
- const body = {
180
- from: 'FLUX',
181
- to: formatPhoneNumber(phoneNumber),
182
- text: `FLUX verification code: ${code}`,
183
- api_key: config.vonage.apiKey,
184
- api_secret: config.vonage.apiSecret
185
- };
186
- const result = await enhancedFetch('https://rest.nexmo.com/sms/json', {
187
- method: 'POST',
188
- body: JSON.stringify(body)
189
- });
190
- return result;
551
+ */ var sendVonageSms = function(phoneNumber, code) {
552
+ return _async_to_generator(function() {
553
+ var body, result;
554
+ return _ts_generator(this, function(_state) {
555
+ switch(_state.label){
556
+ case 0:
557
+ body = {
558
+ from: 'FLUX',
559
+ to: formatPhoneNumber(phoneNumber),
560
+ text: "FLUX verification code: ".concat(code),
561
+ api_key: config.vonage.apiKey,
562
+ api_secret: config.vonage.apiSecret
563
+ };
564
+ return [
565
+ 4,
566
+ enhancedFetch('https://rest.nexmo.com/sms/json', {
567
+ method: 'POST',
568
+ body: JSON.stringify(body)
569
+ })
570
+ ];
571
+ case 1:
572
+ result = _state.sent();
573
+ return [
574
+ 2,
575
+ result
576
+ ];
577
+ }
578
+ });
579
+ })();
191
580
  };
192
581
  /**
193
582
  * This function runs only for local numbers (MY) and sends an SMS containing the OTP code to the foreign number
194
583
  * @param phoneNumber user's phone number
195
584
  * @param code OTP code
196
585
  * @returns result of sending SMS to user
197
- */ const sendEsmsSms = async (phoneNumber, code)=>{
198
- const body = {
199
- user: config.esms.apiKey,
200
- pass: config.esms.apiSecret,
201
- to: formatPhoneNumber(phoneNumber),
202
- msg: `RM0.00 FLUX verification code: ${code}`,
203
- sender: 'FLUX'
204
- };
205
- const result = await enhancedFetch('https://api.esms.com.my/sms/send', {
206
- method: 'POST',
207
- body: JSON.stringify(body)
208
- });
209
- return result;
586
+ */ var sendEsmsSms = function(phoneNumber, code) {
587
+ return _async_to_generator(function() {
588
+ var body, result;
589
+ return _ts_generator(this, function(_state) {
590
+ switch(_state.label){
591
+ case 0:
592
+ body = {
593
+ user: config.esms.apiKey,
594
+ pass: config.esms.apiSecret,
595
+ to: formatPhoneNumber(phoneNumber),
596
+ msg: "RM0.00 FLUX verification code: ".concat(code),
597
+ sender: 'FLUX'
598
+ };
599
+ return [
600
+ 4,
601
+ enhancedFetch('https://api.esms.com.my/sms/send', {
602
+ method: 'POST',
603
+ body: JSON.stringify(body)
604
+ })
605
+ ];
606
+ case 1:
607
+ result = _state.sent();
608
+ return [
609
+ 2,
610
+ result
611
+ ];
612
+ }
613
+ });
614
+ })();
210
615
  };