@develit-services/notification 0.0.3 → 0.0.5

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 (62) hide show
  1. package/dist/src.cjs +636 -0
  2. package/dist/src.d.cts +491 -0
  3. package/dist/src.d.mts +489 -0
  4. package/dist/src.d.ts +491 -0
  5. package/dist/src.mjs +625 -0
  6. package/package.json +6 -1
  7. package/@types/consts/audit-log.consts.ts +0 -7
  8. package/@types/consts/index.ts +0 -1
  9. package/@types/database/audit-log.types.ts +0 -7
  10. package/@types/database/index.ts +0 -1
  11. package/@types/email/IEmail.connector.ts +0 -21
  12. package/@types/email/IEmail.types.ts +0 -25
  13. package/@types/email/ecomail/ecomail.connector.ts +0 -139
  14. package/@types/email/ecomail/ecomail.types.ts +0 -27
  15. package/@types/email/ecomail/index.ts +0 -2
  16. package/@types/email/index.ts +0 -3
  17. package/@types/index.ts +0 -9
  18. package/@types/io/index.ts +0 -3
  19. package/@types/io/sendEmail.ts +0 -18
  20. package/@types/io/sendSlack.ts +0 -19
  21. package/@types/io/sendSms.ts +0 -20
  22. package/@types/pushNotification/IPushNotification.ts +0 -1
  23. package/@types/pushNotification/index.ts +0 -1
  24. package/@types/queue.ts +0 -19
  25. package/@types/service.ts +0 -30
  26. package/@types/slack/ISlack.types.ts +0 -3
  27. package/@types/slack/index.ts +0 -1
  28. package/@types/slack/slack.connector.ts +0 -27
  29. package/@types/sms/ISms.connector.ts +0 -22
  30. package/@types/sms/ISms.types.ts +0 -4
  31. package/@types/sms/index.ts +0 -3
  32. package/@types/sms/twilio/index.ts +0 -1
  33. package/@types/sms/twilio/twilio.connector.ts +0 -35
  34. package/CHANGELOG.md +0 -32
  35. package/build.config.ts +0 -29
  36. package/drizzle.config.ts +0 -3
  37. package/src/database/drizzle.ts +0 -6
  38. package/src/database/migrations/0000_funny_beast.sql +0 -12
  39. package/src/database/migrations/meta/0000_snapshot.json +0 -101
  40. package/src/database/migrations/meta/_journal.json +0 -13
  41. package/src/database/schema/audit-log.schema.ts +0 -13
  42. package/src/database/schema/index.ts +0 -1
  43. package/src/defineNotificationService.ts +0 -328
  44. package/src/defineNotificationWrangler.ts +0 -78
  45. package/src/index.ts +0 -12
  46. package/src/utils/connectors.ts +0 -1
  47. package/src/utils/database/command/create-audit-log.command.ts +0 -34
  48. package/src/utils/database/command/index.ts +0 -1
  49. package/src/utils/database/index.ts +0 -1
  50. package/src/utils/email.ts +0 -25
  51. package/src/utils/index.ts +0 -3
  52. package/src/utils/sms.ts +0 -25
  53. package/test/env.d.ts +0 -7
  54. package/test/integration/sendEmail.test.ts +0 -88
  55. package/test/setup/migrations.ts +0 -3
  56. package/test/unit/connectors/ecomail.connector.ts +0 -715
  57. package/test/unit/email.test.ts +0 -55
  58. package/tsconfig.json +0 -3
  59. package/vitest.config.ts +0 -31
  60. package/worker-configuration.d.ts +0 -25
  61. package/wrangler.jsonc +0 -209
  62. package/wrangler.ts +0 -106
@@ -1,715 +0,0 @@
1
- // import {
2
- // EMContact,
3
- // EMEmail,
4
- // EcomailConnector,
5
- // IContact,
6
- // IEmail,
7
- // } from '../../@types'
8
- // import { afterEach, describe, expect, it, vi } from 'vitest'
9
-
10
- // describe('EcomailConnector', () => {
11
- // class TestEcomailConnector extends EcomailConnector {
12
- // public testConvertEmail(email: IEmail): EMEmail {
13
- // return this.convertEmail(email)
14
- // }
15
-
16
- // public testConvertContacts(contacts: IContact | IContact[]): EMContact[] {
17
- // return this.convertContacts(contacts)
18
- // }
19
-
20
- // public testConvertContact(contact: IContact): EMContact {
21
- // return this.convertContact(contact)
22
- // }
23
- // }
24
-
25
- // const testConnector = new TestEcomailConnector({
26
- // API_KEY: 'test-api-key',
27
- // SMTP_HOST: 'smtp.test.com',
28
- // SENDER: 'sender@test.com',
29
- // })
30
-
31
- // afterEach(() => {
32
- // vi.clearAllMocks()
33
- // })
34
-
35
- // describe('sendEmail', () => {
36
- // describe('should send an email and return the response when', () => {
37
- // it('the input is valid', async () => {
38
- // global.fetch = vi.fn().mockImplementation(() => {
39
- // return Promise.resolve(
40
- // new Response(
41
- // JSON.stringify({
42
- // message: {
43
- // template_id: 123,
44
- // subject: 'Verification',
45
- // from_name: 'Anna',
46
- // from_email: 'example@test.com',
47
- // reply_to: 'example@test.com',
48
- // to: [
49
- // {
50
- // email: 'example@test.com',
51
- // name: 'Karol',
52
- // cc: 'xyz',
53
- // bcc: 'xyz',
54
- // },
55
- // ],
56
- // attachments: [
57
- // {
58
- // type: 'xyz',
59
- // name: 'xyz',
60
- // content: 'xyz',
61
- // },
62
- // ],
63
- // text: 'xyz',
64
- // html: 'xyz',
65
- // global_merge_vars: null,
66
- // },
67
- // }),
68
- // {
69
- // status: 200,
70
- // statusText: 'OK',
71
- // headers: { 'Content-Type': 'application/json' },
72
- // },
73
- // ),
74
- // )
75
- // })
76
-
77
- // const result = await testConnector.sendEmail({
78
- // to: 'example@test.com',
79
- // replyTo: 'example@test.com',
80
- // cc: 'xyz',
81
- // bcc: 'xyz',
82
- // from: 'example@test.com',
83
- // subject: 'Verification',
84
- // text: undefined,
85
- // html: undefined,
86
- // templateId: 123,
87
- // templateVariables: {
88
- // authorization_link: 'auth_token_123',
89
- // verification_link: 'verification_code_456',
90
- // reset_link: 'reset_link_789',
91
- // },
92
- // })
93
-
94
- // expect(result?.status).toEqual(200)
95
- // expect(result?.statusText).toEqual('OK')
96
- // })
97
-
98
- // it(`the value of each key in templateVariables is 'localhost'`, async () => {
99
- // global.fetch = vi.fn().mockImplementation(() => {
100
- // return Promise.resolve(
101
- // new Response(
102
- // JSON.stringify({
103
- // message: {
104
- // template_id: 123,
105
- // subject: 'Verification',
106
- // from_name: 'Anna',
107
- // from_email: 'example@test.com',
108
- // reply_to: 'example@test.com',
109
- // to: [
110
- // {
111
- // email: 'example@test.com',
112
- // name: 'Karol',
113
- // cc: 'xyz',
114
- // bcc: 'xyz',
115
- // },
116
- // ],
117
- // attachments: [
118
- // {
119
- // type: 'xyz',
120
- // name: 'xyz',
121
- // content: 'xyz',
122
- // },
123
- // ],
124
- // text: 'xyz',
125
- // html: 'xyz',
126
- // global_merge_vars: null,
127
- // },
128
- // }),
129
- // {
130
- // status: 200,
131
- // statusText: 'OK',
132
- // headers: { 'Content-Type': 'application/json' },
133
- // },
134
- // ),
135
- // )
136
- // })
137
-
138
- // const result = await testConnector.sendEmail({
139
- // to: 'example@test.com',
140
- // replyTo: 'example@test.com',
141
- // cc: 'xyz',
142
- // bcc: 'xyz',
143
- // from: 'example@test.com',
144
- // subject: 'Verification',
145
- // text: undefined,
146
- // html: undefined,
147
- // templateId: 123,
148
- // templateVariables: {
149
- // authorization_link: 'localhost',
150
- // verification_link: 'localhost',
151
- // reset_link: 'localhost',
152
- // },
153
- // })
154
-
155
- // expect(result?.status).toEqual(200)
156
- // expect(result?.statusText).toEqual('OK')
157
- // })
158
-
159
- // it(`there are no templateVariables provided`, async () => {
160
- // global.fetch = vi.fn().mockImplementation(() => {
161
- // return Promise.resolve(
162
- // new Response(
163
- // JSON.stringify({
164
- // message: {
165
- // template_id: 123,
166
- // subject: 'Verification',
167
- // from_name: 'Anna',
168
- // from_email: 'example@test.com',
169
- // reply_to: 'example@test.com',
170
- // to: [
171
- // {
172
- // email: 'example@test.com',
173
- // name: 'Karol',
174
- // cc: 'xyz',
175
- // bcc: 'xyz',
176
- // },
177
- // ],
178
- // attachments: [
179
- // {
180
- // type: 'xyz',
181
- // name: 'xyz',
182
- // content: 'xyz',
183
- // },
184
- // ],
185
- // text: 'xyz',
186
- // html: 'xyz',
187
- // global_merge_vars: null,
188
- // },
189
- // }),
190
- // {
191
- // status: 200,
192
- // statusText: 'OK',
193
- // headers: { 'Content-Type': 'application/json' },
194
- // },
195
- // ),
196
- // )
197
- // })
198
-
199
- // const result = await testConnector.sendEmail({
200
- // to: 'example@test.com',
201
- // replyTo: 'example@test.com',
202
- // cc: 'xyz',
203
- // bcc: 'xyz',
204
- // from: 'example@test.com',
205
- // subject: 'Verification',
206
- // text: undefined,
207
- // html: undefined,
208
- // templateId: 123,
209
- // })
210
-
211
- // expect(result?.status).toEqual(200)
212
- // expect(result?.statusText).toEqual('OK')
213
- // })
214
- // })
215
-
216
- // describe('should return an error when', () => {
217
- // it('the fetch fails', () => {
218
- // global.fetch = vi.fn().mockRejectedValueOnce({
219
- // error: 500,
220
- // message: 'An unexpected error occurred.',
221
- // })
222
-
223
- // expect(
224
- // async () =>
225
- // await testConnector.sendEmail({
226
- // to: 'example@test.com',
227
- // replyTo: 'example@test.com',
228
- // cc: 'xyz',
229
- // bcc: 'xyz',
230
- // from: 'example@test.com',
231
- // subject: 'Verification',
232
- // text: undefined,
233
- // html: undefined,
234
- // templateId: 123,
235
- // templateVariables: {
236
- // authorization_link: 'auth_token_123',
237
- // verification_link: 'verification_code_456',
238
- // reset_link: 'reset_link_789',
239
- // },
240
- // }),
241
- // ).rejects.toThrowError('An unexpected error occurred.')
242
- // })
243
- // })
244
- // })
245
-
246
- // describe('convertEmail', () => {
247
- // describe('should return the converted email when', () => {
248
- // it('the input is valid', async () => {
249
- // const result = testConnector.testConvertEmail({
250
- // to: [
251
- // {
252
- // email: 'john.doe@example.com',
253
- // name: 'John Doe',
254
- // },
255
- // 'jane.smith@example.com',
256
- // ],
257
- // replyTo: {
258
- // email: 'reply.to@example.com',
259
- // name: 'Reply To',
260
- // },
261
- // cc: [
262
- // {
263
- // email: 'manager@example.com',
264
- // name: 'Manager',
265
- // },
266
- // ],
267
- // bcc: ['admin@example.com'],
268
- // from: {
269
- // email: 'support@example.com',
270
- // name: 'Support Team',
271
- // },
272
- // subject: 'Welcome to Our Service',
273
- // text: 'Hello John, welcome to our service!',
274
- // html: '<p>Hello John, welcome to our service!</p>',
275
- // templateId: 123,
276
- // templateVariables: {
277
- // authorization_link: 'auth_token_123',
278
- // verification_link: 'verification_code_456',
279
- // reset_link: 'reset_link_789',
280
- // },
281
- // })
282
-
283
- // expect(result).toEqual({
284
- // message: {
285
- // attachments: [
286
- // {
287
- // content: 'Hello John, welcome to our service!',
288
- // name: 'plain',
289
- // type: 'text/plain',
290
- // },
291
- // {
292
- // content: '<p>Hello John, welcome to our service!</p>',
293
- // type: 'text/html',
294
- // },
295
- // ],
296
- // from_email: 'support@example.com',
297
- // from_name: 'Support Team',
298
- // global_merge_vars: [
299
- // {
300
- // content: 'auth_token_123',
301
- // name: 'authorization_link',
302
- // },
303
- // {
304
- // content: 'verification_code_456',
305
- // name: 'verification_link',
306
- // },
307
- // {
308
- // content: 'reset_link_789',
309
- // name: 'reset_link',
310
- // },
311
- // ],
312
- // html: '<p>Hello John, welcome to our service!</p>',
313
- // reply_to: 'reply.to@example.com',
314
- // subject: 'Welcome to Our Service',
315
- // template_id: 123,
316
- // text: 'Hello John, welcome to our service!',
317
- // to: [
318
- // {
319
- // cc: 'manager@example.com',
320
- // email: 'manager@example.com',
321
- // name: 'Manager',
322
- // },
323
- // {
324
- // bcc: 'admin@example.com',
325
- // email: 'admin@example.com',
326
- // name: undefined,
327
- // },
328
- // {
329
- // cc: 'manager@example.com',
330
- // email: 'manager@example.com',
331
- // name: 'Manager',
332
- // },
333
- // {
334
- // bcc: 'admin@example.com',
335
- // email: 'admin@example.com',
336
- // name: undefined,
337
- // },
338
- // ],
339
- // },
340
- // })
341
- // })
342
-
343
- // it('there are no templateVariables provided', async () => {
344
- // const result = testConnector.testConvertEmail({
345
- // to: [
346
- // {
347
- // email: 'john.doe@example.com',
348
- // name: 'John Doe',
349
- // },
350
- // 'jane.smith@example.com',
351
- // ],
352
- // replyTo: {
353
- // email: 'reply.to@example.com',
354
- // name: 'Reply To',
355
- // },
356
- // cc: [
357
- // {
358
- // email: 'manager@example.com',
359
- // name: 'Manager',
360
- // },
361
- // ],
362
- // bcc: ['admin@example.com'],
363
- // from: {
364
- // email: 'support@example.com',
365
- // name: 'Support Team',
366
- // },
367
- // subject: 'Welcome to Our Service',
368
- // text: 'Hello John, welcome to our service!',
369
- // html: '<p>Hello John, welcome to our service!</p>',
370
- // templateId: 123,
371
- // })
372
-
373
- // expect(result).toEqual({
374
- // message: {
375
- // attachments: [
376
- // {
377
- // content: 'Hello John, welcome to our service!',
378
- // name: 'plain',
379
- // type: 'text/plain',
380
- // },
381
- // {
382
- // content: '<p>Hello John, welcome to our service!</p>',
383
- // type: 'text/html',
384
- // },
385
- // ],
386
- // from_email: 'support@example.com',
387
- // from_name: 'Support Team',
388
- // global_merge_vars: null,
389
- // html: '<p>Hello John, welcome to our service!</p>',
390
- // reply_to: 'reply.to@example.com',
391
- // subject: 'Welcome to Our Service',
392
- // template_id: 123,
393
- // text: 'Hello John, welcome to our service!',
394
- // to: [
395
- // {
396
- // cc: 'manager@example.com',
397
- // email: 'manager@example.com',
398
- // name: 'Manager',
399
- // },
400
- // {
401
- // bcc: 'admin@example.com',
402
- // email: 'admin@example.com',
403
- // name: undefined,
404
- // },
405
- // {
406
- // cc: 'manager@example.com',
407
- // email: 'manager@example.com',
408
- // name: 'Manager',
409
- // },
410
- // {
411
- // bcc: 'admin@example.com',
412
- // email: 'admin@example.com',
413
- // name: undefined,
414
- // },
415
- // ],
416
- // },
417
- // })
418
- // })
419
-
420
- // it('there is no cc and bcc provided', async () => {
421
- // const result = testConnector.testConvertEmail({
422
- // to: [
423
- // {
424
- // email: 'john.doe@example.com',
425
- // name: 'John Doe',
426
- // },
427
- // 'jane.smith@example.com',
428
- // ],
429
- // replyTo: {
430
- // email: 'reply.to@example.com',
431
- // name: 'Reply To',
432
- // },
433
- // from: {
434
- // email: 'support@example.com',
435
- // name: 'Support Team',
436
- // },
437
- // subject: 'Welcome to Our Service',
438
- // text: 'Hello John, welcome to our service!',
439
- // html: '<p>Hello John, welcome to our service!</p>',
440
- // templateId: 123,
441
- // templateVariables: {
442
- // authorization_link: 'auth_token_123',
443
- // verification_link: 'verification_code_456',
444
- // reset_link: 'reset_link_789',
445
- // },
446
- // })
447
-
448
- // expect(result).toEqual({
449
- // message: {
450
- // attachments: [
451
- // {
452
- // content: 'Hello John, welcome to our service!',
453
- // name: 'plain',
454
- // type: 'text/plain',
455
- // },
456
- // {
457
- // content: '<p>Hello John, welcome to our service!</p>',
458
- // type: 'text/html',
459
- // },
460
- // ],
461
- // from_email: 'support@example.com',
462
- // from_name: 'Support Team',
463
- // global_merge_vars: [
464
- // {
465
- // content: 'auth_token_123',
466
- // name: 'authorization_link',
467
- // },
468
- // {
469
- // content: 'verification_code_456',
470
- // name: 'verification_link',
471
- // },
472
- // {
473
- // content: 'reset_link_789',
474
- // name: 'reset_link',
475
- // },
476
- // ],
477
- // html: '<p>Hello John, welcome to our service!</p>',
478
- // reply_to: 'reply.to@example.com',
479
- // subject: 'Welcome to Our Service',
480
- // template_id: 123,
481
- // text: 'Hello John, welcome to our service!',
482
- // to: [
483
- // {
484
- // email: 'john.doe@example.com',
485
- // name: 'John Doe',
486
- // },
487
- // {
488
- // email: 'jane.smith@example.com',
489
- // name: undefined,
490
- // },
491
- // ],
492
- // },
493
- // })
494
- // })
495
-
496
- // it('replyTo is undefined', async () => {
497
- // const result = testConnector.testConvertEmail({
498
- // to: [
499
- // {
500
- // email: 'john.doe@example.com',
501
- // name: 'John Doe',
502
- // },
503
- // 'jane.smith@example.com',
504
- // ],
505
- // replyTo: undefined,
506
- // cc: [
507
- // {
508
- // email: 'manager@example.com',
509
- // name: 'Manager',
510
- // },
511
- // ],
512
- // bcc: ['admin@example.com'],
513
- // from: {
514
- // email: 'support@example.com',
515
- // name: 'Support Team',
516
- // },
517
- // subject: 'Welcome to Our Service',
518
- // text: 'Hello John, welcome to our service!',
519
- // html: '<p>Hello John, welcome to our service!</p>',
520
- // templateId: 123,
521
- // templateVariables: {
522
- // authorization_link: 'auth_token_123',
523
- // verification_link: 'verification_code_456',
524
- // reset_link: 'reset_link_789',
525
- // },
526
- // })
527
-
528
- // expect(result).toEqual({
529
- // message: {
530
- // attachments: [
531
- // {
532
- // content: 'Hello John, welcome to our service!',
533
- // name: 'plain',
534
- // type: 'text/plain',
535
- // },
536
- // {
537
- // content: '<p>Hello John, welcome to our service!</p>',
538
- // type: 'text/html',
539
- // },
540
- // ],
541
- // from_email: 'support@example.com',
542
- // from_name: 'Support Team',
543
- // global_merge_vars: [
544
- // {
545
- // content: 'auth_token_123',
546
- // name: 'authorization_link',
547
- // },
548
- // {
549
- // content: 'verification_code_456',
550
- // name: 'verification_link',
551
- // },
552
- // {
553
- // content: 'reset_link_789',
554
- // name: 'reset_link',
555
- // },
556
- // ],
557
- // html: '<p>Hello John, welcome to our service!</p>',
558
- // reply_to: undefined,
559
- // subject: 'Welcome to Our Service',
560
- // template_id: 123,
561
- // text: 'Hello John, welcome to our service!',
562
- // to: [
563
- // {
564
- // cc: 'manager@example.com',
565
- // email: 'manager@example.com',
566
- // name: 'Manager',
567
- // },
568
- // {
569
- // bcc: 'admin@example.com',
570
- // email: 'admin@example.com',
571
- // name: undefined,
572
- // },
573
- // {
574
- // cc: 'manager@example.com',
575
- // email: 'manager@example.com',
576
- // name: 'Manager',
577
- // },
578
- // {
579
- // bcc: 'admin@example.com',
580
- // email: 'admin@example.com',
581
- // name: undefined,
582
- // },
583
- // ],
584
- // },
585
- // })
586
- // })
587
-
588
- // it('from is undefined', async () => {
589
- // const result = testConnector.testConvertEmail({
590
- // to: [
591
- // {
592
- // email: 'john.doe@example.com',
593
- // name: 'John Doe',
594
- // },
595
- // 'jane.smith@example.com',
596
- // ],
597
- // replyTo: {
598
- // email: 'reply.to@example.com',
599
- // name: 'Reply To',
600
- // },
601
- // cc: [
602
- // {
603
- // email: 'manager@example.com',
604
- // name: 'Manager',
605
- // },
606
- // ],
607
- // bcc: ['admin@example.com'],
608
- // from: undefined,
609
- // subject: 'Welcome to Our Service',
610
- // text: 'Hello John, welcome to our service!',
611
- // html: '<p>Hello John, welcome to our service!</p>',
612
- // templateId: 123,
613
- // templateVariables: {
614
- // authorization_link: 'auth_token_123',
615
- // verification_link: 'verification_code_456',
616
- // reset_link: 'reset_link_789',
617
- // },
618
- // })
619
-
620
- // expect(result).toEqual({
621
- // message: {
622
- // attachments: [
623
- // {
624
- // content: 'Hello John, welcome to our service!',
625
- // name: 'plain',
626
- // type: 'text/plain',
627
- // },
628
- // {
629
- // content: '<p>Hello John, welcome to our service!</p>',
630
- // type: 'text/html',
631
- // },
632
- // ],
633
- // from_email: 'sender@test.com',
634
- // from_name: '',
635
- // global_merge_vars: [
636
- // {
637
- // content: 'auth_token_123',
638
- // name: 'authorization_link',
639
- // },
640
- // {
641
- // content: 'verification_code_456',
642
- // name: 'verification_link',
643
- // },
644
- // {
645
- // content: 'reset_link_789',
646
- // name: 'reset_link',
647
- // },
648
- // ],
649
- // html: '<p>Hello John, welcome to our service!</p>',
650
- // reply_to: 'reply.to@example.com',
651
- // subject: 'Welcome to Our Service',
652
- // template_id: 123,
653
- // text: 'Hello John, welcome to our service!',
654
- // to: [
655
- // {
656
- // cc: 'manager@example.com',
657
- // email: 'manager@example.com',
658
- // name: 'Manager',
659
- // },
660
- // {
661
- // bcc: 'admin@example.com',
662
- // email: 'admin@example.com',
663
- // name: undefined,
664
- // },
665
- // {
666
- // cc: 'manager@example.com',
667
- // email: 'manager@example.com',
668
- // name: 'Manager',
669
- // },
670
- // {
671
- // bcc: 'admin@example.com',
672
- // email: 'admin@example.com',
673
- // name: undefined,
674
- // },
675
- // ],
676
- // },
677
- // })
678
- // })
679
- // })
680
- // })
681
-
682
- // describe('convertContacts', () => {
683
- // describe('should return an empty array when', () => {
684
- // it('there are no contacts to convert', () => {
685
- // const result = testConnector.testConvertContacts('')
686
-
687
- // expect(result).toEqual([])
688
- // })
689
- // })
690
- // })
691
-
692
- // describe('convertContact', () => {
693
- // describe('should return the object with contact information when', () => {
694
- // it('the input is a string', () => {
695
- // const result = testConnector.testConvertContact('example@test.com')
696
-
697
- // expect(result).toEqual({
698
- // email: 'example@test.com',
699
- // name: undefined,
700
- // })
701
- // })
702
-
703
- // it('the input is an object', () => {
704
- // const result = testConnector.testConvertContact({
705
- // email: 'example@test.com',
706
- // name: 'Anna',
707
- // })
708
- // expect(result).toEqual({
709
- // email: 'example@test.com',
710
- // name: 'Anna',
711
- // })
712
- // })
713
- // })
714
- // })
715
- // })