@tellescope/schema 1.4.46 → 1.4.49

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/lib/esm/schema.js CHANGED
@@ -10,7 +10,7 @@ var __assign = (this && this.__assign) || function () {
10
10
  return __assign.apply(this, arguments);
11
11
  };
12
12
  import { WEBHOOK_MODELS, } from "@tellescope/types-models";
13
- import { booleanValidator, dateValidator, emailValidator, fieldsValidator, journeysValidator, journeyStatesValidator, phoneValidator, nameValidator, nonNegNumberValidator, mongoIdValidator, mongoIdStringRequired as mongoIdStringValidator, listOfMongoIdStringValidator, preferenceValidator, objectAnyFieldsAnyValuesValidator, stringValidator, stringValidator100, listOfStringsValidator, emailEncodingValidator, numberToDateValidator, SMSMessageValidator, chatRoomTypeValidator, idStringToDateValidator, subdomainValidator, messageTemplateTypeValidator, stringValidator250, stringValidator5000, listOfDisplayNameInfo, fileTypeValidator, fileSizeValidator, meetingStatusValidator, listOfAttendeesValidator, meetingInfoValidator, listOfUserIndentitiesValidator, meetingsListValidator, urlValidator, WebhookSubscriptionValidator, attendeeValidator, meetingDisplayInfoValidator, intakePhoneValidator, formResponsesValidator, stringValidator25000, automationActionValidator, automationEventValidator, automatedActionStatusValidator, listOfStringsValidatorEmptyOk, listOfChatAttachmentsValidator, listOfCalendarEventRemindersValidator, messageTemplateModeValidator, listOfAutomationConditionsValidator, chatRoomUserInfoValidator, CUDStringValidator, listOfRelatedRecordsValidator, cancelConditionsValidator, notificationPreferencesValidator, FHIRObservationCategoryValidator, FHIRObservationStatusCodeValidator, FHIRObservationValueValidator, userIdentityValidator, formFieldTypeValidator, previousFormFieldsValidator, numberValidator, organizationThemeValidator, managedContentRecordTypeValidator, passwordValidator, flowchartUIValidator, integrationAuthenticationsValidator, listOfMongoIdStringValidatorEmptyOk, formFieldOptionsValidator, blocksValidator, sessionTypeValidator, portalSettingsValidator, emailValidatorEmptyOkay, phoneValidatorOptional, stringValidator1000, databaseFieldsValidator, databaseRecordValuesValidator, automationEventsValidator, portalPageValidator, portalBlocksValidator, enduserFormResponsesForEventValidator, enduserTasksForEventValidator, stateCredentialsValidator, stateValidator, availabilityBlocksValidator, weeklyAvailabilitiesValidator, timezoneValidator, formTypeValidator, managedContentRecordAssignmentTypeValidator, listOfGenericAttachmentsValidator, accessPermissionsValidator, organizationLimitsValidator, organizationSettingsValidator, communicationsChannelValidator, genericUnitWithQuantityValidator, stringValidator25000EmptyOkay, slugValidator, stringValidator5000EmptyOkay, loginFlowResultValidator, sharedWithOrganizationIdsValidator, stringValidator1000Optional, tellescopeGenderValidator, } from "@tellescope/validation";
13
+ import { booleanValidator, dateValidator, emailValidator, fieldsValidator, journeysValidator, journeyStatesValidator, phoneValidator, nameValidator, nonNegNumberValidator, mongoIdValidator, mongoIdStringRequired as mongoIdStringValidator, listOfMongoIdStringValidator, preferenceValidator, objectAnyFieldsAnyValuesValidator, stringValidator, stringValidator100, listOfStringsValidator, emailEncodingValidator, numberToDateValidator, SMSMessageValidator, chatRoomTypeValidator, idStringToDateValidator, subdomainValidator, messageTemplateTypeValidator, stringValidator250, stringValidator5000, listOfDisplayNameInfo, fileTypeValidator, fileSizeValidator, meetingStatusValidator, listOfAttendeesValidator, meetingInfoValidator, listOfUserIndentitiesValidator, meetingsListValidator, urlValidator, WebhookSubscriptionValidator, attendeeValidator, meetingDisplayInfoValidator, intakePhoneValidator, formResponsesValidator, stringValidator25000, automationActionValidator, automationEventValidator, automatedActionStatusValidator, listOfStringsValidatorEmptyOk, listOfChatAttachmentsValidator, listOfCalendarEventRemindersValidator, messageTemplateModeValidator, listOfAutomationConditionsValidator, chatRoomUserInfoValidator, CUDStringValidator, listOfRelatedRecordsValidator, cancelConditionsValidator, notificationPreferencesValidator, FHIRObservationCategoryValidator, FHIRObservationStatusCodeValidator, FHIRObservationValueValidator, userIdentityValidator, formFieldTypeValidator, previousFormFieldsValidator, numberValidator, organizationThemeValidator, managedContentRecordTypeValidator, passwordValidator, flowchartUIValidator, integrationAuthenticationsValidator, listOfMongoIdStringValidatorEmptyOk, formFieldOptionsValidator, blocksValidator, sessionTypeValidator, portalSettingsValidator, emailValidatorEmptyOkay, phoneValidatorOptional, stringValidator1000, databaseFieldsValidator, databaseRecordValuesValidator, automationEventsValidator, portalPageValidator, portalBlocksValidator, enduserFormResponsesForEventValidator, enduserTasksForEventValidator, stateCredentialsValidator, stateValidator, availabilityBlocksValidator, weeklyAvailabilitiesValidator, timezoneValidator, formTypeValidator, managedContentRecordAssignmentTypeValidator, listOfGenericAttachmentsValidator, accessPermissionsValidator, organizationLimitsValidator, organizationSettingsValidator, communicationsChannelValidator, genericUnitWithQuantityValidator, stringValidator25000EmptyOkay, slugValidator, stringValidator5000EmptyOkay, loginFlowResultValidator, sharedWithOrganizationIdsValidator, stringValidator1000Optional, tellescopeGenderValidator, appointmentTermsValidator, paymentProcessorValidator, purchaseCreditValueValidator, costValidator, integrationTitleValidator, } from "@tellescope/validation";
14
14
  import { CREATOR_ONLY_ACCESS, DEFAULT_OPERATIONS, PLACEHOLDER_ID, ENDUSER_SESSION_TYPE, USER_SESSION_TYPE, } from "@tellescope/constants";
15
15
  var sideEffects = {
16
16
  handleJourneyStateChange: {
@@ -460,21 +460,32 @@ export var schema = build_schema({
460
460
  op: 'custom', access: 'create', method: 'post',
461
461
  path: '/generate-google-auth-url',
462
462
  name: 'Generates a link to create a Google integration with Tellescope',
463
+ description: "", parameters: {},
464
+ returns: { authUrl: { validator: stringValidator, required: true }, }
465
+ },
466
+ disconnect_google_integration: {
467
+ op: 'custom', access: 'create', method: 'post',
468
+ path: '/generate-square-auth-url',
469
+ name: 'Generates a link to create a Square integration with Tellescope',
470
+ description: "", parameters: {},
471
+ returns: { authUrl: { validator: stringValidator, required: true }, }
472
+ },
473
+ generate_oauth2_auth_url: {
474
+ op: 'custom', access: 'delete', method: 'post',
475
+ path: '/generate-oauth2-auth-url',
463
476
  description: "",
464
- parameters: {},
477
+ parameters: { integration: { validator: integrationTitleValidator, } },
465
478
  returns: {
466
- authUrl: {
467
- validator: stringValidator,
468
- required: true
469
- },
479
+ authUrl: { validator: stringValidator, required: true },
480
+ state: { validator: stringValidator, required: true },
470
481
  }
471
482
  },
472
- disconnect_google_integration: {
483
+ disconnect_oauth2_integration: {
473
484
  op: 'custom', access: 'delete', method: 'post',
474
- path: '/disconnect-google-integration',
475
- name: 'Disconnects an integration with Google',
476
- description: "",
477
- parameters: {},
485
+ path: '/disconnect-oauth2-integration',
486
+ name: 'Disconnects an integration with Square',
487
+ refresh_oauth2_sessiondescription: "",
488
+ parameters: { integration: { validator: integrationTitleValidator } },
478
489
  returns: {}
479
490
  },
480
491
  refresh_oauth2_session: {
@@ -1119,6 +1130,8 @@ export var schema = build_schema({
1119
1130
  }, fields: {
1120
1131
  validator: fieldsValidator,
1121
1132
  redactions: ['enduser'],
1133
+ }, unredactedFields: {
1134
+ validator: fieldsValidator,
1122
1135
  }, username: {
1123
1136
  validator: subdomainValidator,
1124
1137
  readonly: true,
@@ -1806,9 +1819,11 @@ export var schema = build_schema({
1806
1819
  parameters: {
1807
1820
  calendarEventTemplateId: { validator: mongoIdStringValidator, required: true },
1808
1821
  from: { validator: dateValidator, required: true },
1822
+ locationId: { validator: mongoIdStringValidator },
1809
1823
  restrictedByState: { validator: booleanValidator },
1810
1824
  to: { validator: dateValidator },
1811
1825
  limit: { validator: nonNegNumberValidator },
1826
+ businessId: { validator: mongoIdStringValidator }, // required for unauthenticated access
1812
1827
  },
1813
1828
  returns: {
1814
1829
  availabilityBlocks: { validator: availabilityBlocksValidator, required: true }
@@ -1823,13 +1838,51 @@ export var schema = build_schema({
1823
1838
  calendarEventTemplateId: { validator: mongoIdStringValidator, required: true },
1824
1839
  userId: { validator: mongoIdStringValidator, required: true },
1825
1840
  startTime: { validator: dateValidator, required: true },
1841
+ locationId: { validator: mongoIdStringValidator },
1842
+ agreedToTerms: { validator: appointmentTermsValidator },
1826
1843
  },
1827
1844
  returns: {
1828
1845
  createdEvent: { validator: 'calenar_event' },
1829
1846
  },
1830
1847
  },
1831
1848
  },
1832
- enduserActions: { read: {}, readMany: {}, get_appointment_availability: {}, book_appointment: {} },
1849
+ publicActions: {
1850
+ session_for_public_appointment_booking: {
1851
+ op: "custom", access: 'create', method: "post",
1852
+ path: '/session-for-public-appointment-booking',
1853
+ name: 'Generate Session for Public Appointment Booking',
1854
+ description: "Generates a session for booking an appointment",
1855
+ parameters: {
1856
+ email: { validator: emailValidator, required: true },
1857
+ calendarEventTemplateId: { validator: mongoIdStringValidator, required: true },
1858
+ businessId: { validator: mongoIdStringValidator, required: true },
1859
+ dateOfBirth: { validator: stringValidator },
1860
+ phone: { validator: phoneValidator },
1861
+ fname: { validator: nameValidator },
1862
+ lname: { validator: nameValidator },
1863
+ },
1864
+ returns: {
1865
+ authToken: { validator: stringValidator250, required: true },
1866
+ },
1867
+ },
1868
+ details_for_appointment_booking_page: {
1869
+ op: "custom", access: 'read', method: "get",
1870
+ path: '/details-for-appointment-booking-page',
1871
+ name: 'Gets Appointment Booking Details',
1872
+ description: "Gets details related to booking an appointment",
1873
+ parameters: {
1874
+ appointmentBookingPageId: { validator: mongoIdStringValidator, required: true },
1875
+ businessId: { validator: mongoIdStringValidator, required: true }, // organizationIds can be pulled from the corresponding appointment
1876
+ },
1877
+ returns: {
1878
+ appointmentBookingPage: { validator: 'appointment_booking_page', required: true },
1879
+ calendarEventTemplates: { validator: 'calendar_event_templates', required: true },
1880
+ locations: { validator: 'appointment_locations', required: true },
1881
+ products: { validator: 'products', required: true },
1882
+ },
1883
+ }
1884
+ },
1885
+ enduserActions: { read: {}, readMany: {}, get_appointment_availability: {}, book_appointment: {}, session_for_public_appointment_booking: {} },
1833
1886
  fields: __assign(__assign({}, BuiltInFields), { title: {
1834
1887
  validator: stringValidator250,
1835
1888
  required: true,
@@ -1842,7 +1895,7 @@ export var schema = build_schema({
1842
1895
  validator: nonNegNumberValidator,
1843
1896
  examples: [100],
1844
1897
  required: true,
1845
- }, type: { validator: stringValidator100 }, description: { validator: stringValidator5000 }, meetingId: { validator: mongoIdStringValidator, readonly: true }, meetingStatus: { validator: meetingStatusValidator }, attachments: { validator: listOfGenericAttachmentsValidator }, chatRoomId: {
1898
+ }, locationId: { validator: mongoIdStringValidator }, type: { validator: stringValidator100 }, description: { validator: stringValidator5000 }, agreedToTerms: { validator: appointmentTermsValidator }, meetingId: { validator: mongoIdStringValidator, readonly: true }, meetingStatus: { validator: meetingStatusValidator }, attachments: { validator: listOfGenericAttachmentsValidator }, chatRoomId: {
1846
1899
  validator: mongoIdStringValidator,
1847
1900
  dependencies: [{
1848
1901
  dependsOn: ['chat_rooms'],
@@ -1892,7 +1945,7 @@ export var schema = build_schema({
1892
1945
  validator: nonNegNumberValidator,
1893
1946
  examples: [100],
1894
1947
  required: true,
1895
- }, type: { validator: stringValidator100 }, description: { validator: stringValidator5000 }, reminders: {
1948
+ }, productIds: { validator: listOfMongoIdStringValidatorEmptyOk }, type: { validator: stringValidator100 }, description: { validator: stringValidator5000 }, reminders: {
1896
1949
  validator: listOfCalendarEventRemindersValidator,
1897
1950
  initializer: function () { return []; },
1898
1951
  }, publicRead: { validator: booleanValidator }, enableVideoCall: { validator: booleanValidator }, enableSelfScheduling: { validator: booleanValidator }, restrictedByState: { validator: booleanValidator }, image: { validator: stringValidator5000 } })
@@ -2548,10 +2601,10 @@ export var schema = build_schema({
2548
2601
  validator: slugValidator,
2549
2602
  required: true,
2550
2603
  examples: ["subdomain"],
2551
- }, parentOrganizationId: { validator: mongoIdStringValidator }, subscriptionExpiresAt: { validator: dateValidator }, subscriptionPeriod: { validator: numberValidator }, logoVersion: { validator: numberValidator }, faviconVersion: { validator: numberValidator }, roles: { validator: listOfStringsValidatorEmptyOk }, skills: { validator: listOfStringsValidator }, themeColor: { validator: stringValidator100 }, themeColorSecondary: { validator: stringValidator100 }, enduserDisplayName: { validator: stringValidator100 }, customPortalURL: { validator: stringValidator250 }, portalSettings: { validator: portalSettingsValidator }, settings: { validator: organizationSettingsValidator }, limits: {
2604
+ }, limits: {
2552
2605
  validator: organizationLimitsValidator,
2553
2606
  readonly: true, // to be set by Tellescope super admin only
2554
- } }),
2607
+ }, parentOrganizationId: { validator: mongoIdStringValidator }, subscriptionExpiresAt: { validator: dateValidator }, subscriptionPeriod: { validator: numberValidator }, logoVersion: { validator: numberValidator }, faviconVersion: { validator: numberValidator }, roles: { validator: listOfStringsValidatorEmptyOk }, skills: { validator: listOfStringsValidator }, themeColor: { validator: stringValidator100 }, themeColorSecondary: { validator: stringValidator100 }, enduserDisplayName: { validator: stringValidator100 }, customPortalURL: { validator: stringValidator250 }, portalSettings: { validator: portalSettingsValidator }, settings: { validator: organizationSettingsValidator }, timezone: { validator: timezoneValidator } }),
2555
2608
  },
2556
2609
  databases: {
2557
2610
  info: {},
@@ -2725,6 +2778,136 @@ export var schema = build_schema({
2725
2778
  ]
2726
2779
  } })
2727
2780
  },
2781
+ appointment_booking_pages: {
2782
+ info: {},
2783
+ constraints: {
2784
+ unique: ['title'],
2785
+ relationship: [],
2786
+ },
2787
+ defaultActions: DEFAULT_OPERATIONS,
2788
+ customActions: {},
2789
+ enduserActions: {},
2790
+ fields: __assign(__assign({}, BuiltInFields), { title: {
2791
+ validator: stringValidator100,
2792
+ required: true,
2793
+ examples: ["Appointment Booking Title"]
2794
+ }, calendarEventTemplateIds: {
2795
+ validator: listOfMongoIdStringValidator,
2796
+ required: true,
2797
+ examples: [[PLACEHOLDER_ID]]
2798
+ }, locationIds: {
2799
+ validator: listOfMongoIdStringValidatorEmptyOk,
2800
+ required: true,
2801
+ examples: [[PLACEHOLDER_ID]]
2802
+ }, terms: { validator: appointmentTermsValidator }, endDate: { validator: dateValidator }, startDate: { validator: dateValidator }, backgroundColor: { validator: stringValidator100 }, primaryColor: { validator: stringValidator100 }, secondaryColor: { validator: stringValidator100 }, intakeTitle: { validator: stringValidator1000 }, intakeDescription: { validator: stringValidator1000 }, thankYouTitle: { validator: stringValidator1000 }, thankYouDescription: { validator: stringValidator1000 }, thankYouHeaderImageURL: { validator: stringValidator1000 }, thankYouMainImageURL: { validator: stringValidator1000 } })
2803
+ },
2804
+ appointment_locations: {
2805
+ info: {},
2806
+ constraints: {
2807
+ unique: ['title'],
2808
+ relationship: [],
2809
+ },
2810
+ defaultActions: DEFAULT_OPERATIONS,
2811
+ customActions: {},
2812
+ enduserActions: {},
2813
+ fields: __assign(__assign({}, BuiltInFields), { title: {
2814
+ validator: stringValidator100,
2815
+ required: true,
2816
+ examples: ["Appointment Booking Title"]
2817
+ }, address: { validator: stringValidator1000 }, zipCode: { validator: stringValidator1000 }, phone: { validator: stringValidator }, state: { validator: stateValidator }, timezone: { validator: timezoneValidator } })
2818
+ },
2819
+ products: {
2820
+ info: {},
2821
+ constraints: {
2822
+ unique: ['title'],
2823
+ relationship: [],
2824
+ },
2825
+ defaultActions: DEFAULT_OPERATIONS,
2826
+ customActions: {},
2827
+ enduserActions: {},
2828
+ fields: __assign(__assign({}, BuiltInFields), { title: {
2829
+ validator: stringValidator100,
2830
+ required: true,
2831
+ examples: ["Product Title"]
2832
+ }, cost: {
2833
+ validator: costValidator,
2834
+ required: true,
2835
+ examples: [{ amount: 500, currency: 'USD' }],
2836
+ }, processor: {
2837
+ validator: paymentProcessorValidator,
2838
+ required: true,
2839
+ examples: ['Stripe'],
2840
+ }, description: { validator: stringValidator5000EmptyOkay } })
2841
+ },
2842
+ purchases: {
2843
+ info: {},
2844
+ constraints: { unique: [], relationship: [] },
2845
+ defaultActions: DEFAULT_OPERATIONS,
2846
+ customActions: {},
2847
+ enduserActions: {},
2848
+ fields: __assign(__assign({}, BuiltInFields), { productId: {
2849
+ validator: mongoIdStringValidator,
2850
+ required: true,
2851
+ examples: [PLACEHOLDER_ID],
2852
+ dependencies: [{
2853
+ dependsOn: ['products'],
2854
+ dependencyField: '_id',
2855
+ relationship: 'foreignKey',
2856
+ onDependencyDelete: 'nop',
2857
+ }]
2858
+ }, enduserId: {
2859
+ validator: mongoIdStringValidator,
2860
+ examples: [PLACEHOLDER_ID],
2861
+ required: true,
2862
+ dependencies: [{
2863
+ dependsOn: ['endusers'],
2864
+ dependencyField: '_id',
2865
+ relationship: 'foreignKey',
2866
+ onDependencyDelete: 'delete',
2867
+ }]
2868
+ }, title: {
2869
+ validator: stringValidator100,
2870
+ required: true,
2871
+ examples: ["Product Title"]
2872
+ }, cost: {
2873
+ validator: costValidator,
2874
+ required: true,
2875
+ examples: [{ amount: 500, currency: 'USD' }],
2876
+ }, processor: {
2877
+ validator: paymentProcessorValidator,
2878
+ required: true,
2879
+ examples: ['Stripe'],
2880
+ }, description: { validator: stringValidator5000EmptyOkay } })
2881
+ },
2882
+ purchase_credits: {
2883
+ info: {},
2884
+ constraints: { unique: [], relationship: [], },
2885
+ defaultActions: DEFAULT_OPERATIONS,
2886
+ customActions: {},
2887
+ enduserActions: {},
2888
+ fields: __assign(__assign({}, BuiltInFields), { enduserId: {
2889
+ validator: mongoIdStringValidator,
2890
+ examples: [PLACEHOLDER_ID],
2891
+ required: true,
2892
+ dependencies: [{
2893
+ dependsOn: ['endusers'],
2894
+ dependencyField: '_id',
2895
+ relationship: 'foreignKey',
2896
+ onDependencyDelete: 'delete',
2897
+ }]
2898
+ }, title: {
2899
+ validator: stringValidator100,
2900
+ required: true,
2901
+ examples: ["Purchase Credit"]
2902
+ }, value: {
2903
+ validator: purchaseCreditValueValidator,
2904
+ required: true,
2905
+ examples: [{
2906
+ type: "Voucher",
2907
+ info: {},
2908
+ }]
2909
+ }, usedAt: { validator: dateValidator, }, description: { validator: stringValidator5000EmptyOkay } })
2910
+ },
2728
2911
  });
2729
2912
  // export type SchemaType = typeof schema
2730
2913
  // export type SchemaV1 = SchemaType// & Schema