@23blocks/block-forms 2.0.0 → 3.0.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.
Files changed (52) hide show
  1. package/dist/index.esm.js +628 -2
  2. package/dist/src/lib/forms.block.d.ts +8 -1
  3. package/dist/src/lib/forms.block.d.ts.map +1 -1
  4. package/dist/src/lib/mappers/appointment.mapper.d.ts +4 -0
  5. package/dist/src/lib/mappers/appointment.mapper.d.ts.map +1 -0
  6. package/dist/src/lib/mappers/index.d.ts +7 -0
  7. package/dist/src/lib/mappers/index.d.ts.map +1 -1
  8. package/dist/src/lib/mappers/landing.mapper.d.ts +4 -0
  9. package/dist/src/lib/mappers/landing.mapper.d.ts.map +1 -0
  10. package/dist/src/lib/mappers/mail-template.mapper.d.ts +4 -0
  11. package/dist/src/lib/mappers/mail-template.mapper.d.ts.map +1 -0
  12. package/dist/src/lib/mappers/public-form.mapper.d.ts +5 -0
  13. package/dist/src/lib/mappers/public-form.mapper.d.ts.map +1 -0
  14. package/dist/src/lib/mappers/referral.mapper.d.ts +4 -0
  15. package/dist/src/lib/mappers/referral.mapper.d.ts.map +1 -0
  16. package/dist/src/lib/mappers/subscription.mapper.d.ts +4 -0
  17. package/dist/src/lib/mappers/subscription.mapper.d.ts.map +1 -0
  18. package/dist/src/lib/mappers/survey.mapper.d.ts +4 -0
  19. package/dist/src/lib/mappers/survey.mapper.d.ts.map +1 -0
  20. package/dist/src/lib/services/appointments.service.d.ts +17 -0
  21. package/dist/src/lib/services/appointments.service.d.ts.map +1 -0
  22. package/dist/src/lib/services/index.d.ts +7 -0
  23. package/dist/src/lib/services/index.d.ts.map +1 -1
  24. package/dist/src/lib/services/landings.service.d.ts +13 -0
  25. package/dist/src/lib/services/landings.service.d.ts.map +1 -0
  26. package/dist/src/lib/services/mail-templates.service.d.ts +14 -0
  27. package/dist/src/lib/services/mail-templates.service.d.ts.map +1 -0
  28. package/dist/src/lib/services/public-forms.service.d.ts +11 -0
  29. package/dist/src/lib/services/public-forms.service.d.ts.map +1 -0
  30. package/dist/src/lib/services/referrals.service.d.ts +13 -0
  31. package/dist/src/lib/services/referrals.service.d.ts.map +1 -0
  32. package/dist/src/lib/services/subscriptions.service.d.ts +13 -0
  33. package/dist/src/lib/services/subscriptions.service.d.ts.map +1 -0
  34. package/dist/src/lib/services/surveys.service.d.ts +17 -0
  35. package/dist/src/lib/services/surveys.service.d.ts.map +1 -0
  36. package/dist/src/lib/types/appointment.d.ts +71 -0
  37. package/dist/src/lib/types/appointment.d.ts.map +1 -0
  38. package/dist/src/lib/types/index.d.ts +7 -0
  39. package/dist/src/lib/types/index.d.ts.map +1 -1
  40. package/dist/src/lib/types/landing.d.ts +43 -0
  41. package/dist/src/lib/types/landing.d.ts.map +1 -0
  42. package/dist/src/lib/types/mail-template.d.ts +56 -0
  43. package/dist/src/lib/types/mail-template.d.ts.map +1 -0
  44. package/dist/src/lib/types/public-form.d.ts +27 -0
  45. package/dist/src/lib/types/public-form.d.ts.map +1 -0
  46. package/dist/src/lib/types/referral.d.ts +42 -0
  47. package/dist/src/lib/types/referral.d.ts.map +1 -0
  48. package/dist/src/lib/types/subscription.d.ts +40 -0
  49. package/dist/src/lib/types/subscription.d.ts.map +1 -0
  50. package/dist/src/lib/types/survey.d.ts +44 -0
  51. package/dist/src/lib/types/survey.d.ts.map +1 -0
  52. package/package.json +1 -1
package/dist/index.esm.js CHANGED
@@ -1,4 +1,5 @@
1
1
  import { decodeOne, decodePageResult } from '@23blocks/jsonapi-codec';
2
+ import { _ } from '@swc/helpers/_/_extends';
2
3
 
3
4
  /**
4
5
  * Parse a string value, returning undefined for empty/undefined
@@ -44,6 +45,15 @@ import { decodeOne, decodePageResult } from '@23blocks/jsonapi-codec';
44
45
  const num = Number(value);
45
46
  return isNaN(num) ? 0 : num;
46
47
  }
48
+ /**
49
+ * Parse an optional number value
50
+ */ function parseOptionalNumber(value) {
51
+ if (value === null || value === undefined) {
52
+ return undefined;
53
+ }
54
+ const num = Number(value);
55
+ return isNaN(num) ? undefined : num;
56
+ }
47
57
  /**
48
58
  * Parse entity status
49
59
  */ function parseStatus(value) {
@@ -370,12 +380,621 @@ function createFormSetsService(transport, _config) {
370
380
  };
371
381
  }
372
382
 
383
+ const landingMapper = {
384
+ type: 'landing_instance',
385
+ map: (resource)=>{
386
+ var _parseString, _resource_attributes_data;
387
+ return {
388
+ uniqueId: resource.id,
389
+ formUniqueId: (_parseString = parseString(resource.attributes['form_unique_id'])) != null ? _parseString : '',
390
+ userUniqueId: parseString(resource.attributes['user_unique_id']),
391
+ email: parseString(resource.attributes['email']),
392
+ firstName: parseString(resource.attributes['first_name']),
393
+ lastName: parseString(resource.attributes['last_name']),
394
+ phone: parseString(resource.attributes['phone']),
395
+ company: parseString(resource.attributes['company']),
396
+ data: (_resource_attributes_data = resource.attributes['data']) != null ? _resource_attributes_data : {},
397
+ status: parseStatus(resource.attributes['status']),
398
+ token: parseString(resource.attributes['token']),
399
+ submittedAt: parseDate(resource.attributes['submitted_at']),
400
+ payload: resource.attributes['payload'],
401
+ createdAt: parseDate(resource.attributes['created_at']),
402
+ updatedAt: parseDate(resource.attributes['updated_at'])
403
+ };
404
+ }
405
+ };
406
+
407
+ function createLandingsService(transport, _config) {
408
+ return {
409
+ async list (formUniqueId, params) {
410
+ const queryParams = {};
411
+ if (params == null ? void 0 : params.page) queryParams['page'] = String(params.page);
412
+ if (params == null ? void 0 : params.perPage) queryParams['records'] = String(params.perPage);
413
+ if (params == null ? void 0 : params.status) queryParams['status'] = params.status;
414
+ if (params == null ? void 0 : params.sortBy) queryParams['sort'] = params.sortOrder === 'desc' ? `-${params.sortBy}` : params.sortBy;
415
+ const response = await transport.get(`/landings/${formUniqueId}/instances`, {
416
+ params: queryParams
417
+ });
418
+ return decodePageResult(response, landingMapper);
419
+ },
420
+ async get (formUniqueId, uniqueId) {
421
+ const response = await transport.get(`/landings/${formUniqueId}/instances/${uniqueId}`);
422
+ return decodeOne(response, landingMapper);
423
+ },
424
+ async create (formUniqueId, data) {
425
+ const response = await transport.post(`/landings/${formUniqueId}/instances`, {
426
+ landing_instance: {
427
+ email: data.email,
428
+ first_name: data.firstName,
429
+ last_name: data.lastName,
430
+ phone: data.phone,
431
+ company: data.company,
432
+ data: data.data,
433
+ payload: data.payload
434
+ }
435
+ });
436
+ return decodeOne(response, landingMapper);
437
+ },
438
+ async update (formUniqueId, uniqueId, data) {
439
+ const response = await transport.put(`/landings/${formUniqueId}/instances/${uniqueId}`, {
440
+ landing_instance: {
441
+ email: data.email,
442
+ first_name: data.firstName,
443
+ last_name: data.lastName,
444
+ phone: data.phone,
445
+ company: data.company,
446
+ data: data.data,
447
+ status: data.status,
448
+ payload: data.payload
449
+ }
450
+ });
451
+ return decodeOne(response, landingMapper);
452
+ },
453
+ async delete (formUniqueId, uniqueId) {
454
+ await transport.delete(`/landings/${formUniqueId}/instances/${uniqueId}`);
455
+ }
456
+ };
457
+ }
458
+
459
+ const subscriptionMapper = {
460
+ type: 'subscription',
461
+ map: (resource)=>{
462
+ var _parseString, _parseString1, _resource_attributes_data;
463
+ return {
464
+ uniqueId: resource.id,
465
+ formUniqueId: (_parseString = parseString(resource.attributes['form_unique_id'])) != null ? _parseString : '',
466
+ userUniqueId: parseString(resource.attributes['user_unique_id']),
467
+ email: (_parseString1 = parseString(resource.attributes['email'])) != null ? _parseString1 : '',
468
+ firstName: parseString(resource.attributes['first_name']),
469
+ lastName: parseString(resource.attributes['last_name']),
470
+ phone: parseString(resource.attributes['phone']),
471
+ data: (_resource_attributes_data = resource.attributes['data']) != null ? _resource_attributes_data : {},
472
+ status: parseStatus(resource.attributes['status']),
473
+ subscribedAt: parseDate(resource.attributes['subscribed_at']),
474
+ unsubscribedAt: parseDate(resource.attributes['unsubscribed_at']),
475
+ payload: resource.attributes['payload'],
476
+ createdAt: parseDate(resource.attributes['created_at']),
477
+ updatedAt: parseDate(resource.attributes['updated_at'])
478
+ };
479
+ }
480
+ };
481
+
482
+ function createSubscriptionsService(transport, _config) {
483
+ return {
484
+ async list (formUniqueId, params) {
485
+ const queryParams = {};
486
+ if (params == null ? void 0 : params.page) queryParams['page'] = String(params.page);
487
+ if (params == null ? void 0 : params.perPage) queryParams['records'] = String(params.perPage);
488
+ if (params == null ? void 0 : params.status) queryParams['status'] = params.status;
489
+ if (params == null ? void 0 : params.sortBy) queryParams['sort'] = params.sortOrder === 'desc' ? `-${params.sortBy}` : params.sortBy;
490
+ const response = await transport.get(`/subscriptions/${formUniqueId}/instances`, {
491
+ params: queryParams
492
+ });
493
+ return decodePageResult(response, subscriptionMapper);
494
+ },
495
+ async get (formUniqueId, uniqueId) {
496
+ const response = await transport.get(`/subscriptions/${formUniqueId}/instances/${uniqueId}`);
497
+ return decodeOne(response, subscriptionMapper);
498
+ },
499
+ async create (formUniqueId, data) {
500
+ const response = await transport.post(`/subscriptions/${formUniqueId}/instances`, {
501
+ subscription: {
502
+ email: data.email,
503
+ first_name: data.firstName,
504
+ last_name: data.lastName,
505
+ phone: data.phone,
506
+ data: data.data,
507
+ payload: data.payload
508
+ }
509
+ });
510
+ return decodeOne(response, subscriptionMapper);
511
+ },
512
+ async update (formUniqueId, uniqueId, data) {
513
+ const response = await transport.put(`/subscriptions/${formUniqueId}/instances/${uniqueId}`, {
514
+ subscription: {
515
+ email: data.email,
516
+ first_name: data.firstName,
517
+ last_name: data.lastName,
518
+ phone: data.phone,
519
+ data: data.data,
520
+ status: data.status,
521
+ payload: data.payload
522
+ }
523
+ });
524
+ return decodeOne(response, subscriptionMapper);
525
+ },
526
+ async delete (formUniqueId, uniqueId) {
527
+ await transport.delete(`/subscriptions/${formUniqueId}/instances/${uniqueId}`);
528
+ }
529
+ };
530
+ }
531
+
532
+ const appointmentMapper = {
533
+ type: 'appointment',
534
+ map: (resource)=>{
535
+ var _parseString, _parseDate, _resource_attributes_data;
536
+ return {
537
+ uniqueId: resource.id,
538
+ formUniqueId: (_parseString = parseString(resource.attributes['form_unique_id'])) != null ? _parseString : '',
539
+ userUniqueId: parseString(resource.attributes['user_unique_id']),
540
+ email: parseString(resource.attributes['email']),
541
+ firstName: parseString(resource.attributes['first_name']),
542
+ lastName: parseString(resource.attributes['last_name']),
543
+ phone: parseString(resource.attributes['phone']),
544
+ scheduledAt: (_parseDate = parseDate(resource.attributes['scheduled_at'])) != null ? _parseDate : new Date(),
545
+ duration: parseOptionalNumber(resource.attributes['duration']),
546
+ timezone: parseString(resource.attributes['timezone']),
547
+ location: parseString(resource.attributes['location']),
548
+ notes: parseString(resource.attributes['notes']),
549
+ data: (_resource_attributes_data = resource.attributes['data']) != null ? _resource_attributes_data : {},
550
+ status: parseStatus(resource.attributes['status']),
551
+ confirmedAt: parseDate(resource.attributes['confirmed_at']),
552
+ cancelledAt: parseDate(resource.attributes['cancelled_at']),
553
+ payload: resource.attributes['payload'],
554
+ createdAt: parseDate(resource.attributes['created_at']),
555
+ updatedAt: parseDate(resource.attributes['updated_at'])
556
+ };
557
+ }
558
+ };
559
+
560
+ function createAppointmentsService(transport, _config) {
561
+ return {
562
+ async list (formUniqueId, params) {
563
+ const queryParams = {};
564
+ if (params == null ? void 0 : params.page) queryParams['page'] = String(params.page);
565
+ if (params == null ? void 0 : params.perPage) queryParams['records'] = String(params.perPage);
566
+ if (params == null ? void 0 : params.status) queryParams['status'] = params.status;
567
+ if (params == null ? void 0 : params.fromDate) queryParams['from_date'] = params.fromDate instanceof Date ? params.fromDate.toISOString() : params.fromDate;
568
+ if (params == null ? void 0 : params.toDate) queryParams['to_date'] = params.toDate instanceof Date ? params.toDate.toISOString() : params.toDate;
569
+ if (params == null ? void 0 : params.sortBy) queryParams['sort'] = params.sortOrder === 'desc' ? `-${params.sortBy}` : params.sortBy;
570
+ const response = await transport.get(`/appointments/${formUniqueId}/instances`, {
571
+ params: queryParams
572
+ });
573
+ return decodePageResult(response, appointmentMapper);
574
+ },
575
+ async get (formUniqueId, uniqueId) {
576
+ const response = await transport.get(`/appointments/${formUniqueId}/instances/${uniqueId}`);
577
+ return decodeOne(response, appointmentMapper);
578
+ },
579
+ async create (formUniqueId, data) {
580
+ const response = await transport.post(`/appointments/${formUniqueId}/instances`, {
581
+ appointment: {
582
+ email: data.email,
583
+ first_name: data.firstName,
584
+ last_name: data.lastName,
585
+ phone: data.phone,
586
+ scheduled_at: data.scheduledAt instanceof Date ? data.scheduledAt.toISOString() : data.scheduledAt,
587
+ duration: data.duration,
588
+ timezone: data.timezone,
589
+ location: data.location,
590
+ notes: data.notes,
591
+ data: data.data,
592
+ payload: data.payload
593
+ }
594
+ });
595
+ return decodeOne(response, appointmentMapper);
596
+ },
597
+ async update (formUniqueId, uniqueId, data) {
598
+ const response = await transport.put(`/appointments/${formUniqueId}/instances/${uniqueId}`, {
599
+ appointment: {
600
+ email: data.email,
601
+ first_name: data.firstName,
602
+ last_name: data.lastName,
603
+ phone: data.phone,
604
+ scheduled_at: data.scheduledAt instanceof Date ? data.scheduledAt.toISOString() : data.scheduledAt,
605
+ duration: data.duration,
606
+ timezone: data.timezone,
607
+ location: data.location,
608
+ notes: data.notes,
609
+ data: data.data,
610
+ status: data.status,
611
+ payload: data.payload
612
+ }
613
+ });
614
+ return decodeOne(response, appointmentMapper);
615
+ },
616
+ async delete (formUniqueId, uniqueId) {
617
+ await transport.delete(`/appointments/${formUniqueId}/instances/${uniqueId}`);
618
+ },
619
+ async confirm (formUniqueId, uniqueId) {
620
+ const response = await transport.post(`/appointments/${formUniqueId}/instances/${uniqueId}/confirm`, {});
621
+ return decodeOne(response, appointmentMapper);
622
+ },
623
+ async cancel (formUniqueId, uniqueId) {
624
+ const response = await transport.post(`/appointments/${formUniqueId}/instances/${uniqueId}/cancel`, {});
625
+ return decodeOne(response, appointmentMapper);
626
+ },
627
+ async reportList (data) {
628
+ const response = await transport.post('/reports/appointments/list', {
629
+ report: {
630
+ form_unique_id: data.formUniqueId,
631
+ from_date: data.fromDate instanceof Date ? data.fromDate.toISOString() : data.fromDate,
632
+ to_date: data.toDate instanceof Date ? data.toDate.toISOString() : data.toDate,
633
+ status: data.status,
634
+ group_by: data.groupBy
635
+ }
636
+ });
637
+ const result = decodePageResult(response, appointmentMapper);
638
+ return result.data;
639
+ },
640
+ async reportSummary (data) {
641
+ const response = await transport.post('/reports/appointments/summary', {
642
+ report: {
643
+ form_unique_id: data.formUniqueId,
644
+ from_date: data.fromDate instanceof Date ? data.fromDate.toISOString() : data.fromDate,
645
+ to_date: data.toDate instanceof Date ? data.toDate.toISOString() : data.toDate,
646
+ status: data.status,
647
+ group_by: data.groupBy
648
+ }
649
+ });
650
+ return response;
651
+ }
652
+ };
653
+ }
654
+
655
+ const surveyMapper = {
656
+ type: 'survey_instance',
657
+ map: (resource)=>{
658
+ var _parseString, _resource_attributes_data;
659
+ return {
660
+ uniqueId: resource.id,
661
+ formUniqueId: (_parseString = parseString(resource.attributes['form_unique_id'])) != null ? _parseString : '',
662
+ userUniqueId: parseString(resource.attributes['user_unique_id']),
663
+ email: parseString(resource.attributes['email']),
664
+ firstName: parseString(resource.attributes['first_name']),
665
+ lastName: parseString(resource.attributes['last_name']),
666
+ data: (_resource_attributes_data = resource.attributes['data']) != null ? _resource_attributes_data : {},
667
+ status: parseStatus(resource.attributes['status']),
668
+ token: parseString(resource.attributes['token']),
669
+ startedAt: parseDate(resource.attributes['started_at']),
670
+ completedAt: parseDate(resource.attributes['completed_at']),
671
+ payload: resource.attributes['payload'],
672
+ createdAt: parseDate(resource.attributes['created_at']),
673
+ updatedAt: parseDate(resource.attributes['updated_at'])
674
+ };
675
+ }
676
+ };
677
+
678
+ function createSurveysService(transport, _config) {
679
+ return {
680
+ async list (formUniqueId, params) {
681
+ const queryParams = {};
682
+ if (params == null ? void 0 : params.page) queryParams['page'] = String(params.page);
683
+ if (params == null ? void 0 : params.perPage) queryParams['records'] = String(params.perPage);
684
+ if (params == null ? void 0 : params.status) queryParams['status'] = String(params.status);
685
+ if (params == null ? void 0 : params.userUniqueId) queryParams['user_unique_id'] = params.userUniqueId;
686
+ if (params == null ? void 0 : params.sortBy) queryParams['sort'] = params.sortOrder === 'desc' ? `-${params.sortBy}` : params.sortBy;
687
+ const response = await transport.get(`/surveys/${formUniqueId}/instances`, {
688
+ params: queryParams
689
+ });
690
+ return decodePageResult(response, surveyMapper);
691
+ },
692
+ async listByStatus (formUniqueId, status, params) {
693
+ const queryParams = {};
694
+ if (params == null ? void 0 : params.page) queryParams['page'] = String(params.page);
695
+ if (params == null ? void 0 : params.perPage) queryParams['records'] = String(params.perPage);
696
+ if (params == null ? void 0 : params.userUniqueId) queryParams['user_unique_id'] = params.userUniqueId;
697
+ if (params == null ? void 0 : params.sortBy) queryParams['sort'] = params.sortOrder === 'desc' ? `-${params.sortBy}` : params.sortBy;
698
+ const response = await transport.get(`/surveys/${formUniqueId}/instances/status/${status}`, {
699
+ params: queryParams
700
+ });
701
+ return decodePageResult(response, surveyMapper);
702
+ },
703
+ async get (formUniqueId, uniqueId) {
704
+ const response = await transport.get(`/surveys/${formUniqueId}/instances/${uniqueId}`);
705
+ return decodeOne(response, surveyMapper);
706
+ },
707
+ async create (formUniqueId, data) {
708
+ const response = await transport.post(`/surveys/${formUniqueId}/instances`, {
709
+ survey_instance: {
710
+ user_unique_id: data.userUniqueId,
711
+ email: data.email,
712
+ first_name: data.firstName,
713
+ last_name: data.lastName,
714
+ data: data.data,
715
+ payload: data.payload
716
+ }
717
+ });
718
+ return decodeOne(response, surveyMapper);
719
+ },
720
+ async update (formUniqueId, uniqueId, data) {
721
+ const response = await transport.put(`/surveys/${formUniqueId}/instances/${uniqueId}`, {
722
+ survey_instance: {
723
+ email: data.email,
724
+ first_name: data.firstName,
725
+ last_name: data.lastName,
726
+ data: data.data,
727
+ status: data.status,
728
+ payload: data.payload
729
+ }
730
+ });
731
+ return decodeOne(response, surveyMapper);
732
+ },
733
+ async delete (formUniqueId, uniqueId) {
734
+ await transport.delete(`/surveys/${formUniqueId}/instances/${uniqueId}`);
735
+ },
736
+ async updateStatus (formUniqueId, uniqueId, data) {
737
+ const response = await transport.put(`/surveys/${formUniqueId}/instances/${uniqueId}/status`, {
738
+ survey_instance: {
739
+ status: data.status
740
+ }
741
+ });
742
+ return decodeOne(response, surveyMapper);
743
+ },
744
+ async resendMagicLink (formUniqueId, uniqueId) {
745
+ await transport.post(`/surveys/${formUniqueId}/instances/${uniqueId}/resend_magic_link`, {});
746
+ },
747
+ async listByUser (userUniqueId, params) {
748
+ const queryParams = {};
749
+ if (params == null ? void 0 : params.page) queryParams['page'] = String(params.page);
750
+ if (params == null ? void 0 : params.perPage) queryParams['records'] = String(params.perPage);
751
+ if (params == null ? void 0 : params.status) queryParams['status'] = String(params.status);
752
+ if (params == null ? void 0 : params.sortBy) queryParams['sort'] = params.sortOrder === 'desc' ? `-${params.sortBy}` : params.sortBy;
753
+ const response = await transport.post('/surveys/users/', _({
754
+ user_unique_id: userUniqueId
755
+ }, queryParams));
756
+ return decodePageResult(response, surveyMapper);
757
+ }
758
+ };
759
+ }
760
+
761
+ const referralMapper = {
762
+ type: 'referral',
763
+ map: (resource)=>{
764
+ var _parseString, _parseString1, _resource_attributes_data;
765
+ return {
766
+ uniqueId: resource.id,
767
+ formUniqueId: (_parseString = parseString(resource.attributes['form_unique_id'])) != null ? _parseString : '',
768
+ referrerUniqueId: parseString(resource.attributes['referrer_unique_id']),
769
+ referrerEmail: parseString(resource.attributes['referrer_email']),
770
+ referrerName: parseString(resource.attributes['referrer_name']),
771
+ refereeEmail: (_parseString1 = parseString(resource.attributes['referee_email'])) != null ? _parseString1 : '',
772
+ refereeName: parseString(resource.attributes['referee_name']),
773
+ refereePhone: parseString(resource.attributes['referee_phone']),
774
+ data: (_resource_attributes_data = resource.attributes['data']) != null ? _resource_attributes_data : {},
775
+ status: parseStatus(resource.attributes['status']),
776
+ convertedAt: parseDate(resource.attributes['converted_at']),
777
+ payload: resource.attributes['payload'],
778
+ createdAt: parseDate(resource.attributes['created_at']),
779
+ updatedAt: parseDate(resource.attributes['updated_at'])
780
+ };
781
+ }
782
+ };
783
+
784
+ function createReferralsService(transport, _config) {
785
+ return {
786
+ async list (formUniqueId, params) {
787
+ const queryParams = {};
788
+ if (params == null ? void 0 : params.page) queryParams['page'] = String(params.page);
789
+ if (params == null ? void 0 : params.perPage) queryParams['records'] = String(params.perPage);
790
+ if (params == null ? void 0 : params.status) queryParams['status'] = params.status;
791
+ if (params == null ? void 0 : params.referrerUniqueId) queryParams['referrer_unique_id'] = params.referrerUniqueId;
792
+ if (params == null ? void 0 : params.sortBy) queryParams['sort'] = params.sortOrder === 'desc' ? `-${params.sortBy}` : params.sortBy;
793
+ const response = await transport.get(`/referrals/${formUniqueId}/instances`, {
794
+ params: queryParams
795
+ });
796
+ return decodePageResult(response, referralMapper);
797
+ },
798
+ async get (formUniqueId, uniqueId) {
799
+ const response = await transport.get(`/referrals/${formUniqueId}/instances/${uniqueId}`);
800
+ return decodeOne(response, referralMapper);
801
+ },
802
+ async create (formUniqueId, data) {
803
+ const response = await transport.post(`/referrals/${formUniqueId}/instances`, {
804
+ referral: {
805
+ referrer_unique_id: data.referrerUniqueId,
806
+ referrer_email: data.referrerEmail,
807
+ referrer_name: data.referrerName,
808
+ referee_email: data.refereeEmail,
809
+ referee_name: data.refereeName,
810
+ referee_phone: data.refereePhone,
811
+ data: data.data,
812
+ payload: data.payload
813
+ }
814
+ });
815
+ return decodeOne(response, referralMapper);
816
+ },
817
+ async update (formUniqueId, uniqueId, data) {
818
+ const response = await transport.put(`/referrals/${formUniqueId}/instances/${uniqueId}`, {
819
+ referral: {
820
+ referee_email: data.refereeEmail,
821
+ referee_name: data.refereeName,
822
+ referee_phone: data.refereePhone,
823
+ data: data.data,
824
+ status: data.status,
825
+ payload: data.payload
826
+ }
827
+ });
828
+ return decodeOne(response, referralMapper);
829
+ },
830
+ async delete (formUniqueId, uniqueId) {
831
+ await transport.delete(`/referrals/${formUniqueId}/instances/${uniqueId}`);
832
+ }
833
+ };
834
+ }
835
+
836
+ const mailTemplateMapper = {
837
+ type: 'mail_template',
838
+ map: (resource)=>{
839
+ var _parseString, _parseString1;
840
+ return {
841
+ uniqueId: resource.id,
842
+ name: (_parseString = parseString(resource.attributes['name'])) != null ? _parseString : '',
843
+ subject: (_parseString1 = parseString(resource.attributes['subject'])) != null ? _parseString1 : '',
844
+ htmlContent: parseString(resource.attributes['html_content']),
845
+ textContent: parseString(resource.attributes['text_content']),
846
+ provider: parseString(resource.attributes['provider']),
847
+ providerTemplateId: parseString(resource.attributes['provider_template_id']),
848
+ fromEmail: parseString(resource.attributes['from_email']),
849
+ fromName: parseString(resource.attributes['from_name']),
850
+ replyTo: parseString(resource.attributes['reply_to']),
851
+ status: parseStatus(resource.attributes['status']),
852
+ payload: resource.attributes['payload'],
853
+ createdAt: parseDate(resource.attributes['created_at']),
854
+ updatedAt: parseDate(resource.attributes['updated_at'])
855
+ };
856
+ }
857
+ };
858
+
859
+ function createMailTemplatesService(transport, _config) {
860
+ return {
861
+ async list (params) {
862
+ const queryParams = {};
863
+ if (params == null ? void 0 : params.page) queryParams['page'] = String(params.page);
864
+ if (params == null ? void 0 : params.perPage) queryParams['records'] = String(params.perPage);
865
+ if (params == null ? void 0 : params.status) queryParams['status'] = params.status;
866
+ if (params == null ? void 0 : params.provider) queryParams['provider'] = params.provider;
867
+ if (params == null ? void 0 : params.sortBy) queryParams['sort'] = params.sortOrder === 'desc' ? `-${params.sortBy}` : params.sortBy;
868
+ const response = await transport.get('/mailtemplates/', {
869
+ params: queryParams
870
+ });
871
+ return decodePageResult(response, mailTemplateMapper);
872
+ },
873
+ async get (uniqueId) {
874
+ const response = await transport.get(`/mailtemplates/${uniqueId}`);
875
+ return decodeOne(response, mailTemplateMapper);
876
+ },
877
+ async create (data) {
878
+ const response = await transport.post('/mailtemplates', {
879
+ mail_template: {
880
+ name: data.name,
881
+ subject: data.subject,
882
+ html_content: data.htmlContent,
883
+ text_content: data.textContent,
884
+ provider: data.provider,
885
+ provider_template_id: data.providerTemplateId,
886
+ from_email: data.fromEmail,
887
+ from_name: data.fromName,
888
+ reply_to: data.replyTo,
889
+ payload: data.payload
890
+ }
891
+ });
892
+ return decodeOne(response, mailTemplateMapper);
893
+ },
894
+ async update (uniqueId, data) {
895
+ const response = await transport.put(`/mailtemplates/${uniqueId}`, {
896
+ mail_template: {
897
+ name: data.name,
898
+ subject: data.subject,
899
+ html_content: data.htmlContent,
900
+ text_content: data.textContent,
901
+ provider: data.provider,
902
+ provider_template_id: data.providerTemplateId,
903
+ from_email: data.fromEmail,
904
+ from_name: data.fromName,
905
+ reply_to: data.replyTo,
906
+ status: data.status,
907
+ payload: data.payload
908
+ }
909
+ });
910
+ return decodeOne(response, mailTemplateMapper);
911
+ },
912
+ async delete (uniqueId) {
913
+ await transport.delete(`/mailtemplates/${uniqueId}`);
914
+ },
915
+ async getStats (uniqueId) {
916
+ const response = await transport.get(`/mailtemplates/${uniqueId}/stats`);
917
+ return response;
918
+ }
919
+ };
920
+ }
921
+
922
+ const publicFormMapper = {
923
+ type: 'public_form',
924
+ map: (resource)=>{
925
+ var _parseString, _resource_attributes_schema;
926
+ return {
927
+ uniqueId: resource.id,
928
+ formUniqueId: (_parseString = parseString(resource.attributes['form_unique_id'])) != null ? _parseString : '',
929
+ title: parseString(resource.attributes['title']),
930
+ description: parseString(resource.attributes['description']),
931
+ schema: (_resource_attributes_schema = resource.attributes['schema']) != null ? _resource_attributes_schema : {},
932
+ uiSchema: resource.attributes['ui_schema'],
933
+ settings: resource.attributes['settings'],
934
+ status: parseStatus(resource.attributes['status']),
935
+ payload: resource.attributes['payload'],
936
+ createdAt: parseDate(resource.attributes['created_at']),
937
+ updatedAt: parseDate(resource.attributes['updated_at'])
938
+ };
939
+ }
940
+ };
941
+ const publicFormResponseMapper = {
942
+ type: 'form_response',
943
+ map: (resource)=>{
944
+ var _parseString, _resource_attributes_data;
945
+ return {
946
+ uniqueId: resource.id,
947
+ formUniqueId: (_parseString = parseString(resource.attributes['form_unique_id'])) != null ? _parseString : '',
948
+ data: (_resource_attributes_data = resource.attributes['data']) != null ? _resource_attributes_data : {},
949
+ status: parseStatus(resource.attributes['status']),
950
+ submittedAt: parseDate(resource.attributes['submitted_at']),
951
+ payload: resource.attributes['payload'],
952
+ createdAt: parseDate(resource.attributes['created_at']),
953
+ updatedAt: parseDate(resource.attributes['updated_at'])
954
+ };
955
+ }
956
+ };
957
+
958
+ function createPublicFormsService(transport, _config) {
959
+ return {
960
+ async get (urlId) {
961
+ const response = await transport.get(`/${urlId}/forms/public`);
962
+ return decodeOne(response, publicFormMapper);
963
+ },
964
+ async submit (urlId, data) {
965
+ const response = await transport.post(`/${urlId}/forms/public`, {
966
+ form_submission: {
967
+ data: data.data,
968
+ payload: data.payload
969
+ }
970
+ });
971
+ return decodeOne(response, publicFormResponseMapper);
972
+ },
973
+ async draft (urlId, data) {
974
+ const response = await transport.patch(`/${urlId}/forms/public`, {
975
+ form_draft: {
976
+ data: data.data,
977
+ payload: data.payload
978
+ }
979
+ });
980
+ return decodeOne(response, publicFormResponseMapper);
981
+ }
982
+ };
983
+ }
984
+
373
985
  function createFormsBlock(transport, config) {
374
986
  return {
375
987
  forms: createFormsService(transport),
376
988
  schemas: createFormSchemasService(transport),
377
989
  instances: createFormInstancesService(transport),
378
- sets: createFormSetsService(transport)
990
+ sets: createFormSetsService(transport),
991
+ landings: createLandingsService(transport),
992
+ subscriptions: createSubscriptionsService(transport),
993
+ appointments: createAppointmentsService(transport),
994
+ surveys: createSurveysService(transport),
995
+ referrals: createReferralsService(transport),
996
+ mailTemplates: createMailTemplatesService(transport),
997
+ publicForms: createPublicFormsService(transport)
379
998
  };
380
999
  }
381
1000
  const formsBlockMetadata = {
@@ -386,7 +1005,14 @@ const formsBlockMetadata = {
386
1005
  'Form',
387
1006
  'FormSchema',
388
1007
  'FormInstance',
389
- 'FormSet'
1008
+ 'FormSet',
1009
+ 'Landing',
1010
+ 'Subscription',
1011
+ 'Appointment',
1012
+ 'Survey',
1013
+ 'Referral',
1014
+ 'MailTemplate',
1015
+ 'PublicForm'
390
1016
  ]
391
1017
  };
392
1018
 
@@ -1,5 +1,5 @@
1
1
  import type { Transport, BlockConfig, BlockMetadata } from '@23blocks/contracts';
2
- import { type FormsService, type FormSchemasService, type FormInstancesService, type FormSetsService } from './services';
2
+ import { type FormsService, type FormSchemasService, type FormInstancesService, type FormSetsService, type LandingsService, type SubscriptionsService, type AppointmentsService, type SurveysService, type ReferralsService, type MailTemplatesService, type PublicFormsService } from './services';
3
3
  export interface FormsBlockConfig extends BlockConfig {
4
4
  appId: string;
5
5
  tenantId?: string;
@@ -9,6 +9,13 @@ export interface FormsBlock {
9
9
  schemas: FormSchemasService;
10
10
  instances: FormInstancesService;
11
11
  sets: FormSetsService;
12
+ landings: LandingsService;
13
+ subscriptions: SubscriptionsService;
14
+ appointments: AppointmentsService;
15
+ surveys: SurveysService;
16
+ referrals: ReferralsService;
17
+ mailTemplates: MailTemplatesService;
18
+ publicForms: PublicFormsService;
12
19
  }
13
20
  export declare function createFormsBlock(transport: Transport, config: FormsBlockConfig): FormsBlock;
14
21
  export declare const formsBlockMetadata: BlockMetadata;