@tellescope/schema 1.253.0 → 1.254.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cjs/schema.d.ts +1 -0
- package/lib/cjs/schema.d.ts.map +1 -1
- package/lib/cjs/schema.js +85 -30
- package/lib/cjs/schema.js.map +1 -1
- package/lib/esm/schema.d.ts +1 -0
- package/lib/esm/schema.d.ts.map +1 -1
- package/lib/esm/schema.js +86 -31
- package/lib/esm/schema.js.map +1 -1
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/package.json +9 -9
- package/src/schema.ts +123 -55
package/lib/esm/schema.js
CHANGED
|
@@ -9,8 +9,17 @@ var __assign = (this && this.__assign) || function () {
|
|
|
9
9
|
};
|
|
10
10
|
return __assign.apply(this, arguments);
|
|
11
11
|
};
|
|
12
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
13
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
14
|
+
if (ar || !(i in from)) {
|
|
15
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
16
|
+
ar[i] = from[i];
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
20
|
+
};
|
|
12
21
|
import { WEBHOOK_MODELS, } from "@tellescope/types-models";
|
|
13
|
-
import { booleanValidator, dateValidator, emailValidator, fieldsValidator, journeysValidator, journeyStatesValidator, phoneValidator, nameValidator, nonNegNumberValidator, nonNegNumberValidatorOptional, mongoIdValidator, mongoIdStringRequired as mongoIdStringValidator, listOfMongoIdStringValidator, preferenceValidator, objectAnyFieldsAnyValuesValidator, stringValidator, stringValidator100, stringValidator105, listOfStringsValidator, emailEncodingValidator, numberToDateValidator, SMSMessageValidator, chatRoomTypeValidator, idStringToDateValidator, subdomainValidator, messageTemplateTypeValidator, stringValidator210, 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, userPortalSettingsValidator, FHIRObservationCategoryValidator, FHIRObservationStatusCodeValidator, FHIRObservationValueValidator, userIdentityValidator, formFieldTypeValidator, previousFormFieldsValidator, numberValidator, organizationThemeValidator, managedContentRecordTypeValidator, passwordValidator, flowchartUIValidator, integrationAuthenticationsValidator, listOfMongoIdStringValidatorEmptyOk, formFieldOptionsValidator, blocksValidator, sessionTypeValidator, portalSettingsValidator, emailValidatorEmptyOkay, phoneValidatorOptional, stringValidator1000, databaseFieldsValidator, databaseRecordValuesValidator, automationEventsValidator, portalBlocksValidator, enduserFormResponsesForEventValidator, enduserTasksForEventValidator, stateCredentialsValidator, stateValidator, weeklyAvailabilitiesValidator, calendarEventLimitsValidator, timezoneValidator, formTypeValidator, managedContentRecordAssignmentTypeValidator, listOfGenericAttachmentsValidator, accessPermissionsValidator, organizationLimitsValidator, organizationSettingsValidator, communicationsChannelValidator, genericUnitWithQuantityValidator, stringValidator25000EmptyOkay, slugValidator, stringValidator5000EmptyOkay, loginFlowResultValidator, sharedWithOrganizationIdsValidator, stringValidator1000Optional, tellescopeGenderValidator, appointmentTermsValidator, paymentProcessorValidator, purchaseCreditValueValidator, costValidator, integrationTitleValidator, journeyContextValidator, stringValidator100000, stringValidator100000EmptyOkay, analyticsQueryValidator, dateRangeValidator, calendarEventPortalSettingsValidator, dateOptionalOrEmptyStringValidator, baseAvailabilityBlocksValidator, availabilityEntitiesValidator, indexUpdatesValidator, dateRangeOptionalValidator, booleanValidatorOptional, automationTriggerActionValidator, automationTriggerEventValidator, automatioNTriggerStatusValidator, exactMatchValidator, exactMatchValidatorOptional, listOfMongoIdStringValidatorOptionalOrEmptyOk, linkedAccountAccessValidator, listOfStringsValidatorOptionalOrEmptyOk, stringValidatorOptionalEmptyOkay, analyticsQueryResultsValidator, stringValidatorOptional, addressValidator, superbillPatientInfoValidator, superbillProviderInfoValidator, superbillLineItemsValidator, billingCodeValidatorOptional, analyticsFrameTypeValidator, videoIntegrationTypesValidator, scheduledJourneysValidator, formScoringValidator, embeddingTypeValidator, listValidator, userCallRoutingBehaviorValidator, userUIRestrictionsValidator, userFieldRedactionsValidator, externalChatGPTMessagesValidator, enduserProfileViewBlocksValidator, customDashboardBlocksValidator, intakeDateOfBirthValidator, objectValidator, mongoIdStringRequired, objectAnyFieldsValidator, phoneTreeNodesValidator, phoneTreeEnduserConditionValidator, orValidator, optionalAnyObjectValidator, listValidatorOptionalOrEmptyOk, formCustomizationValidator, aiSummaryConfigurationValidator, buildInFieldsValidator, customEnduserFieldsValidatorOptionalOrEmpty, ticketActionsValidator, formResponseValidator, numberValidatorOptional, languageValidator, relatedRecordValidator, mongoIdStringOptional, tableViewColumnsValidator, formFieldCalloutConditionsValidator, endusersReportQueriesValidator, formResponsesReportQueriesValidator, phoneCallsReportQueriesValidator, listValidatorEmptyOk, phonePlaybackValidatorOptional, ticketSnoozesValidator, listOfStringsWithQualifierValidator, listOfStringsWithQualifierValidatorOptional, stringValidator100000OptionalEmptyOkay, mmsMessagesValidator, groupMMSUserStatesValidator, sortingFieldsValidator, listOfUniqueStringsValidatorEmptyOk, ticketReminderValidator, insuranceOptionalValidator, pharmacyValidator, listOfStringsValidatorUniqueOptionalOrEmptyOkay, diagnosesValidator, stateValidatorOptional, canvasCodingValidator, vitalConfigurationRangesValidator, smartMeterLinesValidator, formFieldFeedbackValidator, phonePlaybackValidator, enduserProfileWebhooksValidator, fieldsSyncValidator, athenaSubscriptionTypeValidator, dateValidatorOptional, listQueryQualifiersValidator, stringValidator5000OptionalEmptyOkay, labeledFieldsValidator, fieldMappingsValidator, analyticsFrameGroupingCategoriesValidator, customDashboardViewValidator, bookingRestrictionsByTemplateValidator, listOfNumbersValidatorUniqueOptionalOrEmptyOkay, enduserDiagnosisValidator, canvasCodingValidatorOptional, calendarEventAttendeesValidator, developHealthDrugsValidator, developHealthDiagnosesValidator, developHealthMockResultValidator, positiveNumberValidator, listOfStringsWithQualifierValidatorOptionalValuesEmptyOkay, recentViewersValidator, stringValidator100000OptionalEmptyOkayEscapeHTML, customPoliciesValidator, stringValidator100EscapeHTML, outOfOfficeBlocksValidator, AIDecisionSourceValidator, AIMessageInputValidator, listOfObjectAnyFieldsAnyValuesValidator, listOfEmailCCsValidator, externalIdNumberValidatorOptional, DEPRECATED_AUTOMATION_TRIGGER_EVENT_TYPES, compoundFilterValidator, } from "@tellescope/validation";
|
|
22
|
+
import { booleanValidator, dateValidator, emailValidator, fieldsValidator, journeysValidator, journeyStatesValidator, phoneValidator, nameValidator, nonNegNumberValidator, nonNegNumberValidatorOptional, mongoIdValidator, mongoIdStringRequired as mongoIdStringValidator, listOfMongoIdStringValidator, preferenceValidator, objectAnyFieldsAnyValuesValidator, stringValidator, stringValidator100, stringValidator105, listOfStringsValidator, emailEncodingValidator, numberToDateValidator, SMSMessageValidator, chatRoomTypeValidator, idStringToDateValidator, subdomainValidator, messageTemplateTypeValidator, stringValidator210, stringValidator250, stringValidator5000, listOfDisplayNameInfo, fileTypeValidator, fileSizeValidator, meetingStatusValidator, listOfAttendeesValidator, listOfVideoCallParticipantEventsValidator, meetingInfoValidator, listOfUserIndentitiesValidator, meetingsListValidator, urlValidator, WebhookSubscriptionValidator, attendeeValidator, meetingDisplayInfoValidator, intakePhoneValidator, formResponsesValidator, stringValidator25000, automationActionValidator, automationEventValidator, automatedActionStatusValidator, listOfStringsValidatorEmptyOk, listOfChatAttachmentsValidator, listOfCalendarEventRemindersValidator, messageTemplateModeValidator, listOfAutomationConditionsValidator, chatRoomUserInfoValidator, CUDStringValidator, listOfRelatedRecordsValidator, cancelConditionsValidator, notificationPreferencesValidator, userPortalSettingsValidator, FHIRObservationCategoryValidator, FHIRObservationStatusCodeValidator, FHIRObservationValueValidator, userIdentityValidator, formFieldTypeValidator, previousFormFieldsValidator, numberValidator, organizationThemeValidator, managedContentRecordTypeValidator, passwordValidator, flowchartUIValidator, integrationAuthenticationsValidator, listOfMongoIdStringValidatorEmptyOk, formFieldOptionsValidator, blocksValidator, sessionTypeValidator, portalSettingsValidator, emailValidatorEmptyOkay, phoneValidatorOptional, stringValidator1000, databaseFieldsValidator, databaseRecordValuesValidator, automationEventsValidator, portalBlocksValidator, enduserFormResponsesForEventValidator, enduserTasksForEventValidator, stateCredentialsValidator, stateValidator, weeklyAvailabilitiesValidator, calendarEventLimitsValidator, timezoneValidator, formTypeValidator, managedContentRecordAssignmentTypeValidator, listOfGenericAttachmentsValidator, accessPermissionsValidator, organizationLimitsValidator, organizationSettingsValidator, communicationsChannelValidator, genericUnitWithQuantityValidator, stringValidator25000EmptyOkay, slugValidator, stringValidator5000EmptyOkay, loginFlowResultValidator, sharedWithOrganizationIdsValidator, stringValidator1000Optional, tellescopeGenderValidator, appointmentTermsValidator, paymentProcessorValidator, purchaseCreditValueValidator, costValidator, integrationTitleValidator, journeyContextValidator, stringValidator100000, stringValidator100000EmptyOkay, analyticsQueryValidator, dateRangeValidator, calendarEventPortalSettingsValidator, dateOptionalOrEmptyStringValidator, baseAvailabilityBlocksValidator, availabilityEntitiesValidator, indexUpdatesValidator, dateRangeOptionalValidator, booleanValidatorOptional, automationTriggerActionValidator, automationTriggerEventValidator, automatioNTriggerStatusValidator, exactMatchValidator, exactMatchValidatorOptional, listOfMongoIdStringValidatorOptionalOrEmptyOk, linkedAccountAccessValidator, listOfStringsValidatorOptionalOrEmptyOk, stringValidatorOptionalEmptyOkay, analyticsQueryResultsValidator, stringValidatorOptional, addressValidator, superbillPatientInfoValidator, superbillProviderInfoValidator, superbillLineItemsValidator, billingCodeValidatorOptional, analyticsFrameTypeValidator, videoIntegrationTypesValidator, scheduledJourneysValidator, formScoringValidator, embeddingTypeValidator, listValidator, userCallRoutingBehaviorValidator, userUIRestrictionsValidator, userFieldRedactionsValidator, portalSchemaRestrictionsValidator, externalChatGPTMessagesValidator, enduserProfileViewBlocksValidator, customDashboardBlocksValidator, intakeDateOfBirthValidator, objectValidator, mongoIdStringRequired, objectAnyFieldsValidator, phoneTreeNodesValidator, phoneTreeEnduserConditionValidator, orValidator, optionalAnyObjectValidator, listValidatorOptionalOrEmptyOk, formCustomizationValidator, aiSummaryConfigurationValidator, buildInFieldsValidator, customEnduserFieldsValidatorOptionalOrEmpty, ticketActionsValidator, formResponseValidator, numberValidatorOptional, languageValidator, relatedRecordValidator, mongoIdStringOptional, tableViewColumnsValidator, formFieldCalloutConditionsValidator, endusersReportQueriesValidator, formResponsesReportQueriesValidator, phoneCallsReportQueriesValidator, listValidatorEmptyOk, phonePlaybackValidatorOptional, ticketSnoozesValidator, listOfStringsWithQualifierValidator, listOfStringsWithQualifierValidatorOptional, stringValidator100000OptionalEmptyOkay, mmsMessagesValidator, groupMMSUserStatesValidator, sortingFieldsValidator, listOfUniqueStringsValidatorEmptyOk, ticketReminderValidator, insuranceOptionalValidator, pharmacyValidator, listOfStringsValidatorUniqueOptionalOrEmptyOkay, diagnosesValidator, stateValidatorOptional, canvasCodingValidator, vitalConfigurationRangesValidator, smartMeterLinesValidator, formFieldFeedbackValidator, phonePlaybackValidator, enduserProfileWebhooksValidator, fieldsSyncValidator, athenaSubscriptionTypeValidator, dateValidatorOptional, listQueryQualifiersValidator, stringValidator5000OptionalEmptyOkay, labeledFieldsValidator, fieldMappingsValidator, analyticsFrameGroupingCategoriesValidator, customDashboardViewValidator, bookingRestrictionsByTemplateValidator, listOfNumbersValidatorUniqueOptionalOrEmptyOkay, enduserDiagnosisValidator, canvasCodingValidatorOptional, calendarEventAttendeesValidator, developHealthDrugsValidator, developHealthDiagnosesValidator, developHealthMockResultValidator, positiveNumberValidator, listOfStringsWithQualifierValidatorOptionalValuesEmptyOkay, recentViewersValidator, stringValidator100000OptionalEmptyOkayEscapeHTML, customPoliciesValidator, stringValidator100EscapeHTML, outOfOfficeBlocksValidator, AIDecisionSourceValidator, AIMessageInputValidator, listOfObjectAnyFieldsAnyValuesValidator, listOfEmailCCsValidator, externalIdNumberValidatorOptional, DEPRECATED_AUTOMATION_TRIGGER_EVENT_TYPES, compoundFilterValidator, } from "@tellescope/validation";
|
|
14
23
|
import { CREATOR_ONLY_ACCESS, DEFAULT_OPERATIONS, PLACEHOLDER_ID, ENDUSER_SESSION_TYPE, USER_SESSION_TYPE, CANDID_TITLE, DEVELOP_HEALTH_TITLE, } from "@tellescope/constants";
|
|
15
24
|
export var get_next_reminder_timestamp_for_ticket = function (_a) {
|
|
16
25
|
var dueDateInMS = _a.dueDateInMS, reminders = _a.reminders, closedAt = _a.closedAt;
|
|
@@ -184,9 +193,10 @@ export var schema = build_schema({
|
|
|
184
193
|
add_to_journey: {}, remove_from_journey: {}, begin_login_flow: {}, set_password: {},
|
|
185
194
|
unsubscribe: {},
|
|
186
195
|
},
|
|
187
|
-
fields: __assign(__assign({}, BuiltInFields), { recentViewers: { validator: recentViewersValidator }, healthie_dietitian_id: { validator: stringValidator100 }, mergedIds: { validator: listOfMongoIdStringValidatorOptionalOrEmptyOk, readonly: true, redactions: ['enduser'] }, externalId: {
|
|
196
|
+
fields: __assign(__assign({}, BuiltInFields), { sharedWithOrganizations: __assign(__assign({}, BuiltInFields.sharedWithOrganizations), { enduserUpdatesDisabled: true }), recentViewers: { validator: recentViewersValidator }, healthie_dietitian_id: { validator: stringValidator100, enduserUpdatesDisabled: true }, mergedIds: { validator: listOfMongoIdStringValidatorOptionalOrEmptyOk, readonly: true, redactions: ['enduser'] }, externalId: {
|
|
188
197
|
validator: stringValidator250,
|
|
189
198
|
examples: ['addfed3e-ddea-415b-b52b-df820c944dbb'],
|
|
199
|
+
enduserUpdatesDisabled: true,
|
|
190
200
|
}, email: {
|
|
191
201
|
validator: emailValidatorEmptyOkay,
|
|
192
202
|
examples: ['test@tellescope.com'],
|
|
@@ -228,6 +238,7 @@ export var schema = build_schema({
|
|
|
228
238
|
}, journeys: {
|
|
229
239
|
validator: journeysValidator,
|
|
230
240
|
redactions: ['enduser'],
|
|
241
|
+
enduserUpdatesDisabled: true,
|
|
231
242
|
dependencies: [
|
|
232
243
|
{
|
|
233
244
|
dependsOn: ['journeys'],
|
|
@@ -244,14 +255,17 @@ export var schema = build_schema({
|
|
|
244
255
|
}, scheduledJourneys: { validator: scheduledJourneysValidator }, tags: {
|
|
245
256
|
redactions: ['enduser'],
|
|
246
257
|
validator: listOfStringsValidatorUniqueOptionalOrEmptyOkay,
|
|
258
|
+
enduserUpdatesDisabled: true,
|
|
247
259
|
}, accessTags: {
|
|
248
260
|
redactions: ['enduser'],
|
|
249
261
|
validator: listOfStringsValidatorEmptyOk,
|
|
262
|
+
enduserUpdatesDisabled: true,
|
|
250
263
|
}, unredactedTags: {
|
|
251
264
|
validator: listOfStringsValidatorEmptyOk,
|
|
252
265
|
}, fields: {
|
|
253
266
|
redactions: ['enduser'],
|
|
254
267
|
validator: fieldsValidator,
|
|
268
|
+
enduserUpdatesDisabled: true, // intake forms write fields server-side; direct enduser PATCH is not a supported path
|
|
255
269
|
}, unredactedFields: {
|
|
256
270
|
validator: fieldsValidator,
|
|
257
271
|
}, preference: {
|
|
@@ -260,12 +274,15 @@ export var schema = build_schema({
|
|
|
260
274
|
}, assignedTo: {
|
|
261
275
|
redactions: ['enduser'],
|
|
262
276
|
validator: listOfUniqueStringsValidatorEmptyOk,
|
|
277
|
+
enduserUpdatesDisabled: true,
|
|
263
278
|
}, primaryAssignee: {
|
|
264
279
|
validator: mongoIdStringValidator,
|
|
265
280
|
redactions: ['enduser'],
|
|
281
|
+
enduserUpdatesDisabled: true,
|
|
266
282
|
}, unread: {
|
|
267
283
|
redactions: ['enduser'],
|
|
268
284
|
validator: booleanValidator,
|
|
285
|
+
enduserUpdatesDisabled: true,
|
|
269
286
|
}, lastActive: {
|
|
270
287
|
validator: dateValidator,
|
|
271
288
|
}, lastLogout: { validator: dateValidator }, invalidateSessionsBefore: { validator: dateValidator }, termsSigned: { validator: dateValidator }, termsVersion: { validator: stringValidator100 }, lastCommunication: {
|
|
@@ -288,12 +305,12 @@ export var schema = build_schema({
|
|
|
288
305
|
// ]
|
|
289
306
|
},
|
|
290
307
|
// should allow any gender via API but our UI can limit to Tellescope types by default
|
|
291
|
-
gender: { validator: stringValidator, redactions: ['enduser'] }, genderIdentity: { validator: stringValidator100, redactions: ['enduser'] }, pronouns: { validator: stringValidator100, redactions: ['enduser'] }, height: { validator: genericUnitWithQuantityValidator, redactions: ['enduser'] }, weight: { validator: genericUnitWithQuantityValidator, redactions: ['enduser'] }, source: { validator: stringValidator1000Optional }, addressLineOne: { validator: stringValidator5000EmptyOkay, redactions: ['enduser'] }, addressLineTwo: { validator: stringValidator5000EmptyOkay, redactions: ['enduser'] }, city: { validator: stringValidator5000EmptyOkay, redactions: ['enduser'] }, state: { validator: stateValidator, redactions: ['enduser'] }, zipCode: { validator: stringValidator25000EmptyOkay, redactions: ['enduser'] }, zipPlusFour: { validator: stringValidator100, redactions: ['enduser'] }, timezone: { validator: timezoneValidator }, humanReadableId: { validator: stringValidator100 }, displayName: { validator: stringValidator250 }, unsubscribedFromPortalChatNotifications: { validator: booleanValidator }, triggeredEvents: { validator: objectAnyFieldsValidator(numberValidator) }, customTypeId: { validator: mongoIdStringValidator }, language: { validator: languageValidator }, relationships: {
|
|
308
|
+
gender: { validator: stringValidator, redactions: ['enduser'] }, genderIdentity: { validator: stringValidator100, redactions: ['enduser'] }, pronouns: { validator: stringValidator100, redactions: ['enduser'] }, height: { validator: genericUnitWithQuantityValidator, redactions: ['enduser'] }, weight: { validator: genericUnitWithQuantityValidator, redactions: ['enduser'] }, source: { validator: stringValidator1000Optional, enduserUpdatesDisabled: true }, addressLineOne: { validator: stringValidator5000EmptyOkay, redactions: ['enduser'] }, addressLineTwo: { validator: stringValidator5000EmptyOkay, redactions: ['enduser'] }, city: { validator: stringValidator5000EmptyOkay, redactions: ['enduser'] }, state: { validator: stateValidator, redactions: ['enduser'] }, zipCode: { validator: stringValidator25000EmptyOkay, redactions: ['enduser'] }, zipPlusFour: { validator: stringValidator100, redactions: ['enduser'] }, timezone: { validator: timezoneValidator }, humanReadableId: { validator: stringValidator100 }, displayName: { validator: stringValidator250 }, unsubscribedFromPortalChatNotifications: { validator: booleanValidator }, triggeredEvents: { validator: objectAnyFieldsValidator(numberValidator) }, customTypeId: { validator: mongoIdStringValidator, enduserUpdatesDisabled: true }, language: { validator: languageValidator }, relationships: {
|
|
292
309
|
validator: listValidatorOptionalOrEmptyOk(objectValidator({
|
|
293
310
|
id: mongoIdStringRequired,
|
|
294
311
|
type: stringValidator100,
|
|
295
312
|
}))
|
|
296
|
-
}, markedReadAt: { validator: dateOptionalOrEmptyStringValidator }, markedUnreadAt: { validator: dateOptionalOrEmptyStringValidator }, note: { validator: stringValidator25000EmptyOkay, redactions: ['enduser'] }, noteIsFlagged: { validator: booleanValidator }, insurance: { validator: insuranceOptionalValidator, redactions: ['enduser'] }, insuranceSecondary: { validator: insuranceOptionalValidator, redactions: ['enduser'] }, bookingNotes: {
|
|
313
|
+
}, markedReadAt: { validator: dateOptionalOrEmptyStringValidator }, markedUnreadAt: { validator: dateOptionalOrEmptyStringValidator }, note: { validator: stringValidator25000EmptyOkay, redactions: ['enduser'], enduserUpdatesDisabled: true }, noteIsFlagged: { validator: booleanValidator }, insurance: { validator: insuranceOptionalValidator, redactions: ['enduser'], enduserUpdatesDisabled: true }, insuranceSecondary: { validator: insuranceOptionalValidator, redactions: ['enduser'], enduserUpdatesDisabled: true }, bookingNotes: {
|
|
297
314
|
validator: listValidatorOptionalOrEmptyOk(objectValidator({
|
|
298
315
|
bookingPageId: mongoIdStringRequired,
|
|
299
316
|
note: stringValidator5000EmptyOkay,
|
|
@@ -308,10 +325,11 @@ export var schema = build_schema({
|
|
|
308
325
|
archivedAt: dateValidatorOptional,
|
|
309
326
|
})),
|
|
310
327
|
redactions: ['enduser'],
|
|
311
|
-
}, references: { validator: listOfRelatedRecordsValidator, redactions: ['enduser'] }, athenaDepartmentId: { validator: stringValidator100, redactions: ['enduser'] }, athenaPracticeId: { validator: stringValidator100, redactions: ['enduser'] }, salesforceId: { validator: stringValidator100, redactions: ['enduser'] }, vitalTriggersDisabled: { validator: booleanValidator }, defaultFromPhone: { validator: phoneValidator, redactions: ['enduser'] }, defaultFromEmail: { validator: emailValidator, redactions: ['enduser'] }, useDefaultFromEmailInAutomations: { validator: booleanValidator }, useDefaultFromPhoneInAutomations: { validator: booleanValidator }, stripeCustomerId: { validator: stringValidator100, redactions: ['enduser'] }, stripeKey: { validator: stringValidator250, redactions: ['enduser'] }, diagnoses: {
|
|
328
|
+
}, references: { validator: listOfRelatedRecordsValidator, redactions: ['enduser'], enduserUpdatesDisabled: true }, athenaDepartmentId: { validator: stringValidator100, redactions: ['enduser'], enduserUpdatesDisabled: true }, athenaPracticeId: { validator: stringValidator100, redactions: ['enduser'], enduserUpdatesDisabled: true }, salesforceId: { validator: stringValidator100, redactions: ['enduser'], enduserUpdatesDisabled: true }, vitalTriggersDisabled: { validator: booleanValidator }, defaultFromPhone: { validator: phoneValidator, redactions: ['enduser'] }, defaultFromEmail: { validator: emailValidator, redactions: ['enduser'] }, useDefaultFromEmailInAutomations: { validator: booleanValidator }, useDefaultFromPhoneInAutomations: { validator: booleanValidator }, stripeCustomerId: { validator: stringValidator100, redactions: ['enduser'], enduserUpdatesDisabled: true }, stripeKey: { validator: stringValidator250, redactions: ['enduser'], enduserUpdatesDisabled: true }, diagnoses: {
|
|
312
329
|
validator: listValidatorOptionalOrEmptyOk(enduserDiagnosisValidator),
|
|
313
|
-
redactions: ['enduser']
|
|
314
|
-
|
|
330
|
+
redactions: ['enduser'],
|
|
331
|
+
enduserUpdatesDisabled: true,
|
|
332
|
+
}, unsubscribedFromPhones: { validator: listOfStringsValidatorUniqueOptionalOrEmptyOkay, redactions: ['enduser'] }, lockedFromPortal: { validator: booleanValidator, enduserUpdatesDisabled: true }, eligibleForAutoMerge: { validator: booleanValidator, enduserUpdatesDisabled: true }, preferredPharmacy: { validator: pharmacyValidator, redactions: ['enduser'] } }),
|
|
315
333
|
customActions: {
|
|
316
334
|
rename_stored_custom_fields: {
|
|
317
335
|
op: "custom", access: 'update', method: "patch",
|
|
@@ -1175,7 +1193,7 @@ export var schema = build_schema({
|
|
|
1175
1193
|
},
|
|
1176
1194
|
journeys: {
|
|
1177
1195
|
info: {},
|
|
1178
|
-
fields: __assign(__assign({}, BuiltInFields), { archivedAt: { validator: dateOptionalOrEmptyStringValidator }, title: {
|
|
1196
|
+
fields: __assign(__assign({}, BuiltInFields), { accessTags: { redactions: ['enduser'], validator: listOfStringsValidatorEmptyOk }, archivedAt: { validator: dateOptionalOrEmptyStringValidator }, title: {
|
|
1179
1197
|
validator: stringValidator100,
|
|
1180
1198
|
required: true,
|
|
1181
1199
|
examples: ['Test']
|
|
@@ -1867,8 +1885,10 @@ export var schema = build_schema({
|
|
|
1867
1885
|
var _c;
|
|
1868
1886
|
var _id = _a._id;
|
|
1869
1887
|
var updates = _b.updates;
|
|
1870
|
-
|
|
1871
|
-
|
|
1888
|
+
// editing a user's tags is a privilege-escalation vector whenever tags gate visibility:
|
|
1889
|
+
// enduser access tags (eat) OR resource access tags (erat). Skip only when neither is enabled.
|
|
1890
|
+
if (session.type === 'user' && !session.eat && !(session === null || session === void 0 ? void 0 : session.erat))
|
|
1891
|
+
return; // neither access-tags feature enabled
|
|
1872
1892
|
if ((_c = session === null || session === void 0 ? void 0 : session.roles) === null || _c === void 0 ? void 0 : _c.includes('Admin'))
|
|
1873
1893
|
return;
|
|
1874
1894
|
if (method === 'create')
|
|
@@ -2549,7 +2569,7 @@ export var schema = build_schema({
|
|
|
2549
2569
|
},
|
|
2550
2570
|
},
|
|
2551
2571
|
},
|
|
2552
|
-
fields: __assign(__assign({}, BuiltInFields), { archivedAt: { validator: dateOptionalOrEmptyStringValidator }, mmsAttachmentURLs: { validator: listOfUniqueStringsValidatorEmptyOk }, title: {
|
|
2572
|
+
fields: __assign(__assign({}, BuiltInFields), { accessTags: { redactions: ['enduser'], validator: listOfStringsValidatorEmptyOk }, archivedAt: { validator: dateOptionalOrEmptyStringValidator }, mmsAttachmentURLs: { validator: listOfUniqueStringsValidatorEmptyOk }, title: {
|
|
2553
2573
|
validator: stringValidator100,
|
|
2554
2574
|
required: true,
|
|
2555
2575
|
examples: ["Template Name"],
|
|
@@ -2579,7 +2599,7 @@ export var schema = build_schema({
|
|
|
2579
2599
|
constraints: { unique: [], relationship: [] },
|
|
2580
2600
|
defaultActions: { read: {}, readMany: {}, update: {}, delete: {} },
|
|
2581
2601
|
enduserActions: { prepare_file_upload: {}, confirm_file_upload: {}, file_download_URL: {}, read: {}, readMany: {}, delete: {}, update: {} /* allow to hide from client side */ },
|
|
2582
|
-
fields: __assign(__assign({}, BuiltInFields), { source: { validator: stringValidator100 }, tags: { validator: listOfStringsValidatorUniqueOptionalOrEmptyOkay }, name: {
|
|
2602
|
+
fields: __assign(__assign({}, BuiltInFields), { accessTags: { redactions: ['enduser'], validator: listOfStringsValidatorEmptyOk }, source: { validator: stringValidator100 }, tags: { validator: listOfStringsValidatorUniqueOptionalOrEmptyOkay }, name: {
|
|
2583
2603
|
validator: stringValidator250,
|
|
2584
2604
|
required: true,
|
|
2585
2605
|
}, size: {
|
|
@@ -2590,6 +2610,8 @@ export var schema = build_schema({
|
|
|
2590
2610
|
required: true
|
|
2591
2611
|
}, enduserId: {
|
|
2592
2612
|
validator: mongoIdStringValidator,
|
|
2613
|
+
}, formResponseId: {
|
|
2614
|
+
validator: mongoIdStringValidator,
|
|
2593
2615
|
}, secureName: {
|
|
2594
2616
|
validator: stringValidator250,
|
|
2595
2617
|
readonly: true,
|
|
@@ -3070,7 +3092,7 @@ export var schema = build_schema({
|
|
|
3070
3092
|
},
|
|
3071
3093
|
},
|
|
3072
3094
|
},
|
|
3073
|
-
fields: __assign(__assign({}, BuiltInFields), { showByUserTags: { validator: listOfStringsValidatorOptionalOrEmptyOk }, belugaVisitType: { validator: stringValidator }, belugaVerificationId: { validator: stringValidator }, belugaPharmacyMappings: {
|
|
3095
|
+
fields: __assign(__assign({}, BuiltInFields), { accessTags: { redactions: ['enduser'], validator: listOfStringsValidatorEmptyOk }, showByUserTags: { validator: listOfStringsValidatorOptionalOrEmptyOk }, belugaVisitType: { validator: stringValidator }, belugaVerificationId: { validator: stringValidator }, belugaPharmacyMappings: {
|
|
3074
3096
|
validator: listValidatorOptionalOrEmptyOk(objectValidator({
|
|
3075
3097
|
title: stringValidatorOptionalEmptyOkay,
|
|
3076
3098
|
pharmacyId: stringValidator100,
|
|
@@ -3185,7 +3207,7 @@ export var schema = build_schema({
|
|
|
3185
3207
|
unique: [],
|
|
3186
3208
|
relationship: [],
|
|
3187
3209
|
},
|
|
3188
|
-
fields: __assign(__assign({}, BuiltInFields), { discussionRoomId: { validator: mongoIdStringValidator }, hiddenFromTimeline: { validator: booleanValidator }, lockedAt: { validator: dateValidator }, formId: {
|
|
3210
|
+
fields: __assign(__assign({}, BuiltInFields), { discussionRoomId: { validator: mongoIdStringValidator }, hiddenFromTimeline: { validator: booleanValidator, enduserUpdatesDisabled: true }, lockedAt: { validator: dateValidator, enduserUpdatesDisabled: true }, formId: {
|
|
3189
3211
|
validator: stringValidator100,
|
|
3190
3212
|
required: true,
|
|
3191
3213
|
dependencies: [
|
|
@@ -3210,12 +3232,13 @@ export var schema = build_schema({
|
|
|
3210
3232
|
updatesDisabled: true,
|
|
3211
3233
|
}, openedAt: {
|
|
3212
3234
|
validator: dateValidator,
|
|
3213
|
-
}, copiedFrom: { validator: mongoIdStringOptional }, copiedFromEnduserId: { validator: mongoIdStringOptional }, publicSubmit: { validator: booleanValidator }, submittedBy: { validator: stringValidator250 }, submittedByIsPlaceholder: { validator: booleanValidator }, markedAsSubmitted: { validator: booleanValidator }, accessCode: { validator: stringValidator250 }, userEmail: { validator: emailValidator }, submittedAt: { validator: dateValidator }, formTitle: { validator: stringValidator250 }, responses: { validator: formResponsesValidator }, draftSavedAt: { validator: dateValidator }, draftSavedBy: { validator: mongoIdStringValidator }, hideFromEnduserPortal: { validator: booleanValidator }, sharedVia: { validator: communicationsChannelValidator }, isInternalNote: { validator: booleanValidator }, pinnedAt: { validator: dateOptionalOrEmptyStringValidator }, publicIdentifier: { validator: stringValidator250 }, source: { validator: stringValidator250 }, externalId: { validator: stringValidator250 }, rootResponseId: { validator: mongoIdStringValidator }, parentResponseId: { validator: mongoIdStringValidator }, tags: { validator: listOfStringsValidatorOptionalOrEmptyOk }, carePlanId: { validator: mongoIdStringValidator }, context: { validator: stringValidator1000 }, logoURL: { validator: stringValidator5000 }, logoHeight: { validator: numberValidator }, calendarEventId: { validator: mongoIdStringValidator }, references: { validator: listOfRelatedRecordsValidator, readonly: true }, groupId: { validator: mongoIdStringValidator }, groupInstance: { validator: stringValidator100 }, groupPosition: { validator: nonNegNumberValidator }, hideAfterUnsubmittedInMS: { validator: numberValidator }, addenda: {
|
|
3235
|
+
}, copiedFrom: { validator: mongoIdStringOptional }, copiedFromEnduserId: { validator: mongoIdStringOptional }, publicSubmit: { validator: booleanValidator }, submittedBy: { validator: stringValidator250, enduserUpdatesDisabled: true }, submittedByIsPlaceholder: { validator: booleanValidator, enduserUpdatesDisabled: true }, markedAsSubmitted: { validator: booleanValidator, enduserUpdatesDisabled: true }, accessCode: { validator: stringValidator250 }, userEmail: { validator: emailValidator, enduserUpdatesDisabled: true }, submittedAt: { validator: dateValidator, enduserUpdatesDisabled: true }, formTitle: { validator: stringValidator250, enduserUpdatesDisabled: true }, responses: { validator: formResponsesValidator }, draftSavedAt: { validator: dateValidator }, draftSavedBy: { validator: mongoIdStringValidator }, hideFromEnduserPortal: { validator: booleanValidator }, sharedVia: { validator: communicationsChannelValidator }, isInternalNote: { validator: booleanValidator, enduserUpdatesDisabled: true }, pinnedAt: { validator: dateOptionalOrEmptyStringValidator, enduserUpdatesDisabled: true }, publicIdentifier: { validator: stringValidator250 }, source: { validator: stringValidator250 }, externalId: { validator: stringValidator250 }, rootResponseId: { validator: mongoIdStringValidator }, parentResponseId: { validator: mongoIdStringValidator }, tags: { validator: listOfStringsValidatorOptionalOrEmptyOk, enduserUpdatesDisabled: true }, carePlanId: { validator: mongoIdStringValidator }, context: { validator: stringValidator1000 }, logoURL: { validator: stringValidator5000, enduserUpdatesDisabled: true }, logoHeight: { validator: numberValidator, enduserUpdatesDisabled: true }, calendarEventId: { validator: mongoIdStringValidator }, references: { validator: listOfRelatedRecordsValidator, readonly: true }, groupId: { validator: mongoIdStringValidator }, groupInstance: { validator: stringValidator100 }, groupPosition: { validator: nonNegNumberValidator }, hideAfterUnsubmittedInMS: { validator: numberValidator }, addenda: {
|
|
3214
3236
|
validator: listValidatorOptionalOrEmptyOk(objectValidator({
|
|
3215
3237
|
text: stringValidator25000EmptyOkay,
|
|
3216
3238
|
timestamp: dateValidator,
|
|
3217
3239
|
userId: mongoIdStringRequired,
|
|
3218
|
-
}))
|
|
3240
|
+
})),
|
|
3241
|
+
enduserUpdatesDisabled: true,
|
|
3219
3242
|
}, followups: {
|
|
3220
3243
|
validator: listValidatorOptionalOrEmptyOk(objectValidator({
|
|
3221
3244
|
formId: mongoIdStringRequired,
|
|
@@ -3228,7 +3251,7 @@ export var schema = build_schema({
|
|
|
3228
3251
|
fieldTitle: stringValidator250,
|
|
3229
3252
|
timestamp: dateValidator,
|
|
3230
3253
|
}))
|
|
3231
|
-
}, startedViaPinnedForm: { validator: booleanValidator }, enduserAISummary: { validator: stringValidator25000 }, procedureCodes: { validator: procedureCodesValidator }, diagnosisCodes: { validator: diagnosisCodesValidator } }),
|
|
3254
|
+
}, startedViaPinnedForm: { validator: booleanValidator }, enduserAISummary: { validator: stringValidator25000, enduserUpdatesDisabled: true }, procedureCodes: { validator: procedureCodesValidator, enduserUpdatesDisabled: true }, diagnosisCodes: { validator: diagnosisCodesValidator, enduserUpdatesDisabled: true } }),
|
|
3232
3255
|
defaultActions: DEFAULT_OPERATIONS,
|
|
3233
3256
|
enduserActions: {
|
|
3234
3257
|
prepare_form_response: {}, info_for_access_code: {}, submit_form_response: {}, stripe_details: {}, chargebee_details: {},
|
|
@@ -3960,7 +3983,7 @@ export var schema = build_schema({
|
|
|
3960
3983
|
validator: nonNegNumberValidator,
|
|
3961
3984
|
examples: [100],
|
|
3962
3985
|
required: true,
|
|
3963
|
-
}, locationId: { validator: mongoIdStringValidator }, locationIds: { validator: listOfMongoIdStringValidatorOptionalOrEmptyOk }, type: { validator: stringValidator100 }, description: { validator: stringValidator5000 }, agreedToTerms: { validator: appointmentTermsValidator }, meetingId: { validator: mongoIdStringValidator, readonly: true }, bookingPageId: { validator: mongoIdStringValidator }, meetingStatus: { validator: meetingStatusValidator }, attachments: { validator: listOfGenericAttachmentsValidator }, cancelledAt: { validator: dateOptionalOrEmptyStringValidator }, rescheduledAt: { validator: dateOptionalOrEmptyStringValidator }, noShowedAt: { validator: dateOptionalOrEmptyStringValidator }, rescheduledTo: { validator: mongoIdStringValidator }, chatRoomId: {
|
|
3986
|
+
}, locationId: { validator: mongoIdStringValidator }, locationIds: { validator: listOfMongoIdStringValidatorOptionalOrEmptyOk }, type: { validator: stringValidator100 }, description: { validator: stringValidator5000 }, agreedToTerms: { validator: appointmentTermsValidator }, meetingId: { validator: mongoIdStringValidator, readonly: true }, bookingPageId: { validator: mongoIdStringValidator }, meetingStatus: { validator: meetingStatusValidator }, videoCallAttendance: { validator: listOfVideoCallParticipantEventsValidator, readonly: true }, attachments: { validator: listOfGenericAttachmentsValidator }, cancelledAt: { validator: dateOptionalOrEmptyStringValidator }, rescheduledAt: { validator: dateOptionalOrEmptyStringValidator }, noShowedAt: { validator: dateOptionalOrEmptyStringValidator }, rescheduledTo: { validator: mongoIdStringValidator }, chatRoomId: {
|
|
3964
3987
|
validator: mongoIdStringValidator,
|
|
3965
3988
|
dependencies: [{
|
|
3966
3989
|
dependsOn: ['chat_rooms'],
|
|
@@ -4026,7 +4049,7 @@ export var schema = build_schema({
|
|
|
4026
4049
|
defaultActions: DEFAULT_OPERATIONS,
|
|
4027
4050
|
customActions: {},
|
|
4028
4051
|
enduserActions: { read: {}, readMany: {} },
|
|
4029
|
-
fields: __assign(__assign({}, BuiltInFields), { dontSyncToElation: { validator: booleanValidator }, sendIcsEmail: { validator: booleanValidator }, createAndBookAthenaSlot: { validator: booleanValidator }, athenaDepartmentId: { validator: stringValidator1000 }, generateAthenaTelehealthLink: { validator: booleanValidator }, athenaTypeId: { validator: stringValidator1000 }, athenaBookingTypeId: { validator: stringValidator1000 }, preventCancelMinutesInAdvance: { validator: numberValidator }, preventRescheduleMinutesInAdvance: { validator: numberValidator }, preventCancelInPortal: { validator: booleanValidator }, preventRescheduleInPortal: { validator: booleanValidator }, dontSyncToCanvas: { validator: booleanValidator }, archivedAt: { validator: dateOptionalOrEmptyStringValidator }, allowGroupReschedule: { validator: booleanValidator }, dontAutoSyncPatientToHealthie: { validator: booleanValidator }, title: {
|
|
4052
|
+
fields: __assign(__assign({}, BuiltInFields), { accessTags: { redactions: ['enduser'], validator: listOfStringsValidatorEmptyOk }, dontSyncToElation: { validator: booleanValidator }, sendIcsEmail: { validator: booleanValidator }, createAndBookAthenaSlot: { validator: booleanValidator }, athenaDepartmentId: { validator: stringValidator1000 }, generateAthenaTelehealthLink: { validator: booleanValidator }, athenaTypeId: { validator: stringValidator1000 }, athenaBookingTypeId: { validator: stringValidator1000 }, preventCancelMinutesInAdvance: { validator: numberValidator }, preventRescheduleMinutesInAdvance: { validator: numberValidator }, preventCancelInPortal: { validator: booleanValidator }, preventRescheduleInPortal: { validator: booleanValidator }, dontSyncToCanvas: { validator: booleanValidator }, archivedAt: { validator: dateOptionalOrEmptyStringValidator }, allowGroupReschedule: { validator: booleanValidator }, dontAutoSyncPatientToHealthie: { validator: booleanValidator }, title: {
|
|
4030
4053
|
validator: stringValidator250,
|
|
4031
4054
|
required: true,
|
|
4032
4055
|
examples: ["Text"],
|
|
@@ -4421,7 +4444,7 @@ export var schema = build_schema({
|
|
|
4421
4444
|
create: {}, createMany: {}, read: {}, readMany: {},
|
|
4422
4445
|
search: {},
|
|
4423
4446
|
},
|
|
4424
|
-
fields: __assign(__assign({}, BuiltInFields), { slug: { validator: stringValidator250 }, title: {
|
|
4447
|
+
fields: __assign(__assign({}, BuiltInFields), { accessTags: { redactions: ['enduser'], validator: listOfStringsValidatorEmptyOk }, slug: { validator: stringValidator250 }, title: {
|
|
4425
4448
|
validator: stringValidator1000,
|
|
4426
4449
|
required: true,
|
|
4427
4450
|
examples: ["Template Name"],
|
|
@@ -4969,7 +4992,7 @@ export var schema = build_schema({
|
|
|
4969
4992
|
validator: objectValidator({
|
|
4970
4993
|
type: stringValidatorOptional,
|
|
4971
4994
|
}),
|
|
4972
|
-
}, onboardingStatus: { validator:
|
|
4995
|
+
}, onboardingStatus: { validator: userPortalSettingsValidator }, creditCount: { validator: numberValidator, readonly: true }, stripeKeyDetails: {
|
|
4973
4996
|
validator: listValidatorOptionalOrEmptyOk(objectValidator({
|
|
4974
4997
|
key: stringValidator5000EmptyOkay,
|
|
4975
4998
|
title: stringValidator5000EmptyOkay,
|
|
@@ -5246,7 +5269,10 @@ export var schema = build_schema({
|
|
|
5246
5269
|
}
|
|
5247
5270
|
},
|
|
5248
5271
|
]
|
|
5249
|
-
}, uiRestrictions: { validator: userUIRestrictionsValidator }, fieldRedactions: { validator: userFieldRedactionsValidator }
|
|
5272
|
+
}, uiRestrictions: { validator: userUIRestrictionsValidator }, fieldRedactions: { validator: userFieldRedactionsValidator }, portalSchemaRestrictions: {
|
|
5273
|
+
validator: portalSchemaRestrictionsValidator,
|
|
5274
|
+
initializer: function () { return ({ disableEditContent: true, disableEditTheming: true, disableEditSnippets: true }); },
|
|
5275
|
+
}, color: { validator: stringValidator1000 }, description: { validator: stringValidator1000Optional } })
|
|
5250
5276
|
},
|
|
5251
5277
|
appointment_booking_pages: {
|
|
5252
5278
|
info: {},
|
|
@@ -5288,7 +5314,7 @@ export var schema = build_schema({
|
|
|
5288
5314
|
enduserActions: {
|
|
5289
5315
|
read: {}, readMany: {}, validate_access_token: {},
|
|
5290
5316
|
},
|
|
5291
|
-
fields: __assign(__assign({}, BuiltInFields), { dontRestrictRescheduleToOriginalHost: { validator: booleanValidator }, gtmTag: { validator: stringValidator100EscapeHTML }, archivedAt: { validator: dateOptionalOrEmptyStringValidator }, title: {
|
|
5317
|
+
fields: __assign(__assign({}, BuiltInFields), { accessTags: { redactions: ['enduser'], validator: listOfStringsValidatorEmptyOk }, dontRestrictRescheduleToOriginalHost: { validator: booleanValidator }, gtmTag: { validator: stringValidator100EscapeHTML }, archivedAt: { validator: dateOptionalOrEmptyStringValidator }, title: {
|
|
5292
5318
|
validator: stringValidator100,
|
|
5293
5319
|
required: true,
|
|
5294
5320
|
examples: ["Appointment Booking Title"]
|
|
@@ -5910,7 +5936,7 @@ export var schema = build_schema({
|
|
|
5910
5936
|
},
|
|
5911
5937
|
},
|
|
5912
5938
|
enduserActions: {},
|
|
5913
|
-
fields: __assign(__assign({}, BuiltInFields), { title: {
|
|
5939
|
+
fields: __assign(__assign({}, BuiltInFields), { accessTags: { redactions: ['enduser'], validator: listOfStringsValidatorEmptyOk }, title: {
|
|
5914
5940
|
validator: stringValidator100,
|
|
5915
5941
|
required: true,
|
|
5916
5942
|
examples: ["Automation Trigger"]
|
|
@@ -6186,7 +6212,7 @@ export var schema = build_schema({
|
|
|
6186
6212
|
defaultActions: DEFAULT_OPERATIONS,
|
|
6187
6213
|
customActions: {},
|
|
6188
6214
|
enduserActions: {},
|
|
6189
|
-
fields: __assign(__assign({}, BuiltInFields), { title: {
|
|
6215
|
+
fields: __assign(__assign({}, BuiltInFields), { accessTags: { redactions: ['enduser'], validator: listOfStringsValidatorEmptyOk }, title: {
|
|
6190
6216
|
validator: stringValidator,
|
|
6191
6217
|
required: true,
|
|
6192
6218
|
examples: ["Title"]
|
|
@@ -6326,18 +6352,34 @@ export var schema = build_schema({
|
|
|
6326
6352
|
}
|
|
6327
6353
|
},
|
|
6328
6354
|
{
|
|
6329
|
-
explanation: "Locked time tracks only allow review field updates",
|
|
6330
|
-
evaluate: function (_v, _deps,
|
|
6355
|
+
explanation: "Locked time tracks only allow review field updates, or owner resubmission of rejected entries",
|
|
6356
|
+
evaluate: function (_v, _deps, session, method, _a) {
|
|
6331
6357
|
var original = _a.original, updates = _a.updates;
|
|
6332
6358
|
if (method !== 'update')
|
|
6333
6359
|
return;
|
|
6334
6360
|
var orig = original;
|
|
6335
6361
|
if (!(orig === null || orig === void 0 ? void 0 : orig.lockedAt))
|
|
6336
6362
|
return;
|
|
6363
|
+
var u = updates;
|
|
6337
6364
|
var reviewFields = ['reviewedAt', 'reviewedByUserId', 'reviewApproved', 'reviewNote'];
|
|
6338
6365
|
var nonReviewFields = Object.keys(updates || {}).filter(function (k) { return !reviewFields.includes(k); });
|
|
6339
|
-
if (nonReviewFields.length
|
|
6340
|
-
return
|
|
6366
|
+
if (nonReviewFields.length === 0)
|
|
6367
|
+
return; // pure review update — unchanged behavior
|
|
6368
|
+
var isRejected = !!orig.reviewedAt && orig.reviewApproved === false;
|
|
6369
|
+
var resubmitFields = __spreadArray(__spreadArray([], reviewFields, true), [
|
|
6370
|
+
'correctedAt', 'correctedByUserId', 'correctionNote',
|
|
6371
|
+
'originalTotalDurationInMS', 'totalDurationInMS',
|
|
6372
|
+
'lockedAt', 'lockedByUserId',
|
|
6373
|
+
], false);
|
|
6374
|
+
var disallowed = Object.keys(updates || {}).filter(function (k) { return !resubmitFields.includes(k); });
|
|
6375
|
+
if (isRejected && session.id === orig.userId && disallowed.length === 0) {
|
|
6376
|
+
if ((u === null || u === void 0 ? void 0 : u.reviewedAt) !== '')
|
|
6377
|
+
return "Resubmitting a rejected time track requires clearing reviewedAt (set to '')";
|
|
6378
|
+
if ((u === null || u === void 0 ? void 0 : u.reviewApproved) === true)
|
|
6379
|
+
return "Cannot approve your own time track during resubmission";
|
|
6380
|
+
return; // valid resubmit — entry returns to Pending
|
|
6381
|
+
}
|
|
6382
|
+
return "Time track is locked. Only review fields (".concat(reviewFields.join(', '), ") can be updated.");
|
|
6341
6383
|
}
|
|
6342
6384
|
},
|
|
6343
6385
|
{
|
|
@@ -6412,7 +6454,20 @@ export var schema = build_schema({
|
|
|
6412
6454
|
type: stringValidator,
|
|
6413
6455
|
id: stringValidator,
|
|
6414
6456
|
}, { isOptional: true, emptyOk: true }),
|
|
6415
|
-
}, isHistorical: { validator: booleanValidatorOptional, updatesDisabled: true }, correctedAt: { validator: dateValidatorOptional }, correctedByUserId: { validator: mongoIdStringOptional }, correctionNote: { validator: stringValidator1000Optional }, originalTotalDurationInMS: { validator: numberValidatorOptional }, reviewedAt: { validator: dateValidatorOptional }, reviewedByUserId: { validator: mongoIdStringOptional }, reviewApproved: { validator: booleanValidatorOptional }, reviewNote: { validator: stringValidator1000Optional }, lockedAt: { validator: dateValidatorOptional }, lockedByUserId: { validator: mongoIdStringOptional }
|
|
6457
|
+
}, isHistorical: { validator: booleanValidatorOptional, updatesDisabled: true }, correctedAt: { validator: dateValidatorOptional }, correctedByUserId: { validator: mongoIdStringOptional }, correctionNote: { validator: stringValidator1000Optional }, originalTotalDurationInMS: { validator: numberValidatorOptional }, reviewedAt: { validator: dateValidatorOptional }, reviewedByUserId: { validator: mongoIdStringOptional }, reviewApproved: { validator: booleanValidatorOptional }, reviewNote: { validator: stringValidator1000Optional }, lockedAt: { validator: dateValidatorOptional }, lockedByUserId: { validator: mongoIdStringOptional },
|
|
6458
|
+
// server-appended on resubmission of a rejected entry (see routing.ts update handler)
|
|
6459
|
+
// note: reviewApproved remains false after resubmit (booleans can't be cleared to '') — status logic must key off reviewedAt
|
|
6460
|
+
reviewHistory: {
|
|
6461
|
+
validator: listValidatorOptionalOrEmptyOk(objectValidator({
|
|
6462
|
+
reviewedAt: dateValidator,
|
|
6463
|
+
reviewedByUserId: mongoIdStringOptional,
|
|
6464
|
+
reviewApproved: booleanValidatorOptional,
|
|
6465
|
+
reviewNote: stringValidator1000Optional,
|
|
6466
|
+
resubmittedAt: dateValidatorOptional,
|
|
6467
|
+
resubmittedByUserId: mongoIdStringOptional,
|
|
6468
|
+
})),
|
|
6469
|
+
readonly: true, // server-appended only — clients can read, never write
|
|
6470
|
+
} }),
|
|
6416
6471
|
},
|
|
6417
6472
|
ticket_queues: {
|
|
6418
6473
|
info: {},
|
|
@@ -6840,7 +6895,7 @@ export var schema = build_schema({
|
|
|
6840
6895
|
defaultActions: { read: {}, readMany: {} },
|
|
6841
6896
|
customActions: {},
|
|
6842
6897
|
enduserActions: {},
|
|
6843
|
-
fields: __assign(__assign({}, BuiltInFields), { integration: { validator: stringValidator, readonly: true, examples: ['Canvas'] }, status: { validator: exactMatchValidator(['Success', 'Error']), readonly: true, examples: ['Error'] }, type: { validator: stringValidator, readonly: true, examples: ['Patient Create'] }, payload: { validator: stringValidator, readonly: true, examples: ['{}'] }, response: { validator: stringValidator, readonly: true, examples: ['{}'] }, url: { validator: stringValidator, readonly: true, examples: ['https://www.tellescope.com'] }, enduserId: { validator: mongoIdStringValidator, readonly: true } })
|
|
6898
|
+
fields: __assign(__assign({}, BuiltInFields), { integration: { validator: stringValidator, readonly: true, examples: ['Canvas'] }, status: { validator: exactMatchValidator(['Success', 'Error', 'Info']), readonly: true, examples: ['Error'] }, type: { validator: stringValidator, readonly: true, examples: ['Patient Create'] }, payload: { validator: stringValidator, readonly: true, examples: ['{}'] }, response: { validator: stringValidator, readonly: true, examples: ['{}'] }, url: { validator: stringValidator, readonly: true, examples: ['https://www.tellescope.com'] }, enduserId: { validator: mongoIdStringValidator, readonly: true } })
|
|
6844
6899
|
},
|
|
6845
6900
|
organization_payments: {
|
|
6846
6901
|
info: { description: 'Read Only - Organization Payment Transaction Logs' },
|