@whooshbang/sdk 6.0.0 → 7.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 (54) hide show
  1. package/dist/client.d.ts +31 -1
  2. package/dist/client.js +87 -1
  3. package/dist/client.js.map +1 -1
  4. package/dist/index.d.ts +1 -1
  5. package/dist/index.js.map +1 -1
  6. package/dist/recipient/digest-section.d.ts +29 -0
  7. package/dist/recipient/digest-section.js +400 -0
  8. package/dist/recipient/digest-section.js.map +1 -0
  9. package/dist/recipient/element.js +153 -10
  10. package/dist/recipient/element.js.map +1 -1
  11. package/dist/recipient/i18n/ar.js +37 -0
  12. package/dist/recipient/i18n/ar.js.map +1 -1
  13. package/dist/recipient/i18n/catalog.d.ts +38 -0
  14. package/dist/recipient/i18n/catalog.js.map +1 -1
  15. package/dist/recipient/i18n/de.js +37 -0
  16. package/dist/recipient/i18n/de.js.map +1 -1
  17. package/dist/recipient/i18n/en.js +37 -0
  18. package/dist/recipient/i18n/en.js.map +1 -1
  19. package/dist/recipient/i18n/es.js +37 -0
  20. package/dist/recipient/i18n/es.js.map +1 -1
  21. package/dist/recipient/i18n/fa.js +37 -0
  22. package/dist/recipient/i18n/fa.js.map +1 -1
  23. package/dist/recipient/i18n/fr.js +37 -0
  24. package/dist/recipient/i18n/fr.js.map +1 -1
  25. package/dist/recipient/i18n/hi.js +37 -0
  26. package/dist/recipient/i18n/hi.js.map +1 -1
  27. package/dist/recipient/i18n/id.js +37 -0
  28. package/dist/recipient/i18n/id.js.map +1 -1
  29. package/dist/recipient/i18n/it.js +37 -0
  30. package/dist/recipient/i18n/it.js.map +1 -1
  31. package/dist/recipient/i18n/nl.js +37 -0
  32. package/dist/recipient/i18n/nl.js.map +1 -1
  33. package/dist/recipient/i18n/pl.js +37 -0
  34. package/dist/recipient/i18n/pl.js.map +1 -1
  35. package/dist/recipient/i18n/pt-BR.js +37 -0
  36. package/dist/recipient/i18n/pt-BR.js.map +1 -1
  37. package/dist/recipient/i18n/ru.js +37 -0
  38. package/dist/recipient/i18n/ru.js.map +1 -1
  39. package/dist/recipient/i18n/tr.js +37 -0
  40. package/dist/recipient/i18n/tr.js.map +1 -1
  41. package/dist/recipient/i18n/uk.js +37 -0
  42. package/dist/recipient/i18n/uk.js.map +1 -1
  43. package/dist/recipient/i18n/zh-Hans.js +37 -0
  44. package/dist/recipient/i18n/zh-Hans.js.map +1 -1
  45. package/dist/recipient/mount.d.ts +5 -0
  46. package/dist/recipient/mount.js +2 -0
  47. package/dist/recipient/mount.js.map +1 -1
  48. package/dist/recipient/quiet-section.d.ts +7 -3
  49. package/dist/recipient/quiet-section.js +134 -7
  50. package/dist/recipient/quiet-section.js.map +1 -1
  51. package/dist/recipient/quiet-view.d.ts +20 -0
  52. package/dist/recipient/quiet-view.js +54 -0
  53. package/dist/recipient/quiet-view.js.map +1 -1
  54. package/package.json +2 -2
package/dist/client.d.ts CHANGED
@@ -2,7 +2,7 @@ import { type WhoAmI, type OperatorCollection, type OperatorResolution, type Cre
2
2
  import type { BillingProjectSlots, BillingPromotions, BillingPromotion, RedeemBillingPromotionRequest, AssignBillingProjectSlotsRequest, SubscriptionChange, ConfirmSubscriptionChangeRequest, BillingEntitlements, SubscriptionSelection, ProjectAttribution, UpdateProjectAttributionRequest, AutoTopUpSettings, UpdateAutoTopUpSettingsRequest, BillingAccount, CardSetup, CreateCreditPurchaseRequest, CreditPurchase, BillingInvoiceCollection, UpdateBillingReceiptEmailRequest } from "@whooshbang/contracts";
3
3
  import { type AssertEmailConsentRequest, type BindingSummary } from "@whooshbang/contracts";
4
4
  import type { InteractionOutcome } from "./interactions.js";
5
- import type { OrganizationProjection, ApiCredential, OrganizationCredential, OrganizationCredentialCollection, OrganizationCredentialRotation, OrganizationCredentialSecretReveal, ApiCredentialCollection, ApiCredentialRotation, ApiCredentialSecretReveal, AttachNotifierConnectionRequest, ChannelConnection, ChannelConnectionCollection, ConnectionProviderCollection, UsageGrouping, UsageReport, MessageState, MessageListPage, MessageDeliveryHistory, MessageNotificationImage, InteractionTimeline, UpdateEmailSenderRequest, CustomerEventDeliveryHistory, CustomerEventDeliveryAttempt, DeliveryHolds, MachineClientOperationsList, RecipientCopyCatalogue, NotifierConnectionCollection, ProjectRecipientExperience, RecipientBrandLogoUpload, NotificationImageAsset, UpdateProjectRecipientExperienceRequest, EnvironmentRecipientExperience, UpdateEnvironmentRecipientExperienceRequest, SubscriberChannelSettings, AcknowledgeEmailRemediationRequest, CreateRecipientSessionRequest, CreateRecipientSessionResponse, RecipientSession, RecipientSessionCapability, CreateProviderHandoffRequest, ProviderHandoff, SetPreferredBindingRequest, PreferredBinding, CreateSubscriberRequest, Subscriber, SubscriberDataExport, UpdateSubscriberRequest, SubscriberCollection, CloseOrganizationRequest, InviteTeammateRequest, Teammate, TeammateAccessRequest, TeammateCollection, OrganizationClosureResult, CreateSubscriberGroupRequest, UpdateSubscriberGroupRequest, SubscriberGroup, SubscriberGroupCollection, SubscriberGroupMembership, SubscriberGroupMembershipCollection, CreateGroupBroadcastRequest, GroupBroadcast, CreateOrganizationCredentialRequest, CreateApiCredentialRequest, CreateChannelConnectionRequest, CreateCustomerEndpointRequest, CreateMachineClientRequest, CreateMessageRequest, CancelEscalationByKeyRequest, EscalationPathPreview, EscalationOrder, EscalationOrderCollection, SaveEscalationOrderRequest, QuietHours, SaveQuietHoursRequest, EscalationPolicy, EscalationPolicyCollection, EscalationLimits, UpdateEscalationLimitsRequest, EscalationPagingLimitReport, EscalationPolicyLevel, UpdateEscalationPolicyRequest, CancelEscalationRequest, Escalation, MessageCategory, MessageCategoryCollection, CreateMessageCategoryRequest, UpdateMessageCategoryRequest, SubscriberCategoryPreference, SubscriberCategoryPreferenceCollection, CreateProjectRequest, UpdateProjectRequest, CreateSubscriptionLinkRequest, CustomerEndpoint, CustomerEndpointAttemptCollection, CustomerEndpointCollection, CustomerEndpointMutationResult, InteractionSummary, MachineClient, MachineCredential, MachineEventAckRequest, MachineEventAckResponse, MachineEventPollResponse, Message, Problem, Project, ProjectCollection, RecipientCopyKey, RecipientCopyOverride, RecipientCopyOverrideCollection, RecipientLanguage, ProviderCapabilitiesCollection, ProviderInstallation, ProviderInstallationCollection, EmailDomain, EmailDomainCollection, CreateEmailDomainRequest, RegisterMachineCredentialRequest, RotateOrganizationCredentialRequest, RotateApiCredentialRequest, ConnectionTest, ConnectionTestCollection, CreateConnectionTestRequest, CustomerApplicationManifest, RotateChannelConnectionCredentialRequest, RotateCustomerEndpointRequest, SubscriptionLink, UpdateChannelConnectionRequest, UpdateRecipientCopyOverrideRequest } from "@whooshbang/contracts";
5
+ import type { OrganizationProjection, ApiCredential, OrganizationCredential, OrganizationCredentialCollection, OrganizationCredentialRotation, OrganizationCredentialSecretReveal, ApiCredentialCollection, ApiCredentialRotation, ApiCredentialSecretReveal, AttachNotifierConnectionRequest, ChannelConnection, ChannelConnectionCollection, ConnectionProviderCollection, UsageGrouping, UsageReport, MessageState, MessageListPage, MessageDeliveryHistory, MessageNotificationImage, InteractionTimeline, UpdateEmailSenderRequest, CustomerEventDeliveryHistory, CustomerEventDeliveryAttempt, DeliveryHolds, MachineClientOperationsList, RecipientCopyCatalogue, NotifierConnectionCollection, ProjectRecipientExperience, RecipientBrandLogoUpload, NotificationImageAsset, UpdateProjectRecipientExperienceRequest, EnvironmentRecipientExperience, UpdateEnvironmentRecipientExperienceRequest, SubscriberChannelSettings, AcknowledgeEmailRemediationRequest, CreateRecipientSessionRequest, CreateRecipientSessionResponse, RecipientSession, RecipientSessionCapability, CreateProviderHandoffRequest, ProviderHandoff, SetPreferredBindingRequest, PreferredBinding, CreateSubscriberRequest, Subscriber, SubscriberDataExport, UpdateSubscriberRequest, SubscriberCollection, CloseOrganizationRequest, InviteTeammateRequest, Teammate, TeammateAccessRequest, TeammateCollection, OrganizationClosureResult, CreateSubscriberGroupRequest, UpdateSubscriberGroupRequest, SubscriberGroup, SubscriberGroupCollection, SubscriberGroupMembership, SubscriberGroupMembershipCollection, CreateGroupBroadcastRequest, GroupBroadcast, CreateOrganizationCredentialRequest, CreateApiCredentialRequest, CreateChannelConnectionRequest, CreateCustomerEndpointRequest, CreateMachineClientRequest, CreateMessageRequest, CancelEscalationByKeyRequest, EscalationPathPreview, EscalationOrder, EscalationOrderCollection, SaveEscalationOrderRequest, QuietHours, SaveQuietHoursRequest, SetDigestPreferenceRequest, SetSubscriberDigestSettingRequest, SubscriberDigestSettings, EscalationPolicy, EscalationPolicyCollection, EscalationLimits, UpdateEscalationLimitsRequest, EscalationPagingLimitReport, EscalationPolicyLevel, UpdateEscalationPolicyRequest, CancelEscalationRequest, Escalation, MessageCategory, MessageCategoryCollection, CreateMessageCategoryRequest, UpdateMessageCategoryRequest, SubscriberCategoryPreference, SubscriberCategoryPreferenceCollection, CreateProjectRequest, UpdateProjectRequest, CreateSubscriptionLinkRequest, CustomerEndpoint, CustomerEndpointAttemptCollection, CustomerEndpointCollection, CustomerEndpointMutationResult, InteractionSummary, MachineClient, MachineCredential, MachineEventAckRequest, MachineEventAckResponse, MachineEventPollResponse, Message, Problem, Project, ProjectCollection, RecipientCopyKey, RecipientCopyOverride, RecipientCopyOverrideCollection, RecipientLanguage, ProviderCapabilitiesCollection, ProviderInstallation, ProviderInstallationCollection, EmailDomain, EmailDomainCollection, CreateEmailDomainRequest, RegisterMachineCredentialRequest, RotateOrganizationCredentialRequest, RotateApiCredentialRequest, ConnectionTest, ConnectionTestCollection, CreateConnectionTestRequest, CustomerApplicationManifest, RotateChannelConnectionCredentialRequest, RotateCustomerEndpointRequest, SubscriptionLink, UpdateChannelConnectionRequest, UpdateRecipientCopyOverrideRequest } from "@whooshbang/contracts";
6
6
  export type WhooshBangFetch = (input: RequestInfo | URL, init?: RequestInit) => Promise<Response>;
7
7
  /**
8
8
  * The outcome of one SDK invocation, as reported to an optional logging hook.
@@ -445,6 +445,18 @@ export declare class WhooshBangClient {
445
445
  * them, through their recipient session.
446
446
  */
447
447
  getSubscriberQuietHours(projectId: string, environmentId: string, subscriberId: string, options?: RequestOptions): Promise<QuietHours>;
448
+ /**
449
+ * One subscriber's digest settings: for each category, the policy in
450
+ * effect, where each setting comes from, what the subscriber may change,
451
+ * their saved choices and your setting for them (FXO-3729).
452
+ */
453
+ getSubscriberDigestSettings(projectId: string, environmentId: string, subscriberId: string, options?: RequestOptions): Promise<SubscriberDigestSettings>;
454
+ /**
455
+ * Your digest setting for one subscriber and category, and which settings
456
+ * they can't change; `{ setting: null }` removes it. Their own choice is
457
+ * kept and returns when you unlock.
458
+ */
459
+ setSubscriberDigestSetting(projectId: string, environmentId: string, subscriberId: string, categoryKey: string, request: SetSubscriberDigestSettingRequest, options?: RequestOptions): Promise<SubscriberDigestSettings>;
448
460
  transitionSubscriberBinding(projectId: string, environmentId: string, subscriberId: string, bindingId: string, action: "pause" | "resume" | "unsubscribe", options?: RequestOptions): Promise<SubscriberChannelSettings>;
449
461
  setSubscriberPreferredBinding(projectId: string, environmentId: string, subscriberId: string, request: SetPreferredBindingRequest, options?: RequestOptions): Promise<SubscriberChannelSettings>;
450
462
  acknowledgeEmailRemediation(projectId: string, environmentId: string, connectionId: string, request: AcknowledgeEmailRemediationRequest, options?: RequestOptions): Promise<ChannelConnection>;
@@ -938,6 +950,24 @@ export declare class WhooshBangRecipientSessionClient {
938
950
  * is not theirs.
939
951
  */
940
952
  saveQuietHours(request: SaveQuietHoursRequest, options?: RequestOptions): Promise<QuietHours>;
953
+ /**
954
+ * This subscriber's digest settings: only the categories whose owner lets
955
+ * them choose something, with what is in effect and what they can change,
956
+ * plus their Default (FXO-3729).
957
+ */
958
+ getDigestSettings(options?: RequestOptions): Promise<SubscriberDigestSettings>;
959
+ /**
960
+ * Sets this subscriber's Default digest choice, or clears it with
961
+ * `{ preference: null }`. A setting the owner doesn't offer fails with
962
+ * `request_invalid` naming it, and the previous setting stays.
963
+ */
964
+ setDefaultDigestPreference(request: SetDigestPreferenceRequest, options?: RequestOptions): Promise<SubscriberDigestSettings>;
965
+ /**
966
+ * Sets this subscriber's digest choice for one category, or clears it so
967
+ * the category follows the Default again. Locked or unoffered settings
968
+ * fail with `request_invalid` and the previous setting stays.
969
+ */
970
+ setCategoryDigestPreference(categoryKey: string, request: SetDigestPreferenceRequest, options?: RequestOptions): Promise<SubscriberDigestSettings>;
941
971
  /** Turns off this subscriber's quiet hours. */
942
972
  resetQuietHours(options?: RequestOptions): Promise<QuietHours>;
943
973
  transitionBinding(bindingId: string, action: RecipientBindingAction, options?: RequestOptions): Promise<RecipientSession>;
package/dist/client.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { validateWhoAmI, validateOperatorCollection, validateOperatorResolution, validateCreateOperatorMessageRequest, validateOperatorMessageResult, validateOperatorBroadcast, validateOperatorPreferences, validateOperatorConnectRequest, } from "@whooshbang/contracts";
2
2
  import { validateAssertEmailConsentRequest, validateBindingSummary, } from "@whooshbang/contracts";
3
- import { contractValidationErrors, validateOrganizationCredential, validateOrganizationCredentialCollection, validateOrganizationCredentialRotation, validateOrganizationCredentialSecretReveal, validateBillingProjectSlots, validateBillingPromotions, validateBillingPromotion, validateRedeemBillingPromotionRequest, validateAssignBillingProjectSlotsRequest, validateSubscriptionChange, validateConfirmSubscriptionChangeRequest, validateBillingEntitlements, validateSubscriptionSelection, validateProjectAttribution, validateUpdateProjectAttributionRequest, validateAutoTopUpSettings, validateUpdateAutoTopUpSettingsRequest, validateBillingAccount, validateCardSetup, validateCreateCreditPurchaseRequest, validateCreditPurchase, validateBillingInvoiceCollection, validateUpdateBillingReceiptEmailRequest, validateOrganizationProjection, validateApiCredential, validateApiCredentialCollection, validateApiCredentialRotation, validateApiCredentialSecretReveal, validateAttachNotifierConnectionRequest, validateChannelConnection, validateChannelConnectionCollection, validateConnectionProviderCollection, validateUsageReport, validateMessageListPage, validateMessageDeliveryHistory, validateMessageNotificationImage, validateInteractionTimeline, validateUpdateEmailSenderRequest, validateCustomerEventDeliveryHistory, validateCustomerEventDeliveryAttempt, validateDeliveryHolds, validateMachineClientOperationsList, validateRecipientCopyCatalogue, validateNotifierConnectionCollection, validateProjectRecipientExperience, validateRecipientBrandLogoUpload, validateNotificationImageAsset, validateUpdateProjectRecipientExperienceRequest, validateEnvironmentRecipientExperience, validateUpdateEnvironmentRecipientExperienceRequest, validateSubscriberChannelSettings, validateAcknowledgeEmailRemediationRequest, validateCreateRecipientSessionRequest, validateCreateRecipientSessionResponse, validateRecipientSession, validateCreateProviderHandoffRequest, validateProviderHandoff, validateSetPreferredBindingRequest, validatePreferredBinding, validateCreateSubscriberRequest, validateSubscriber, validateSubscriberDataExport, validateUpdateSubscriberRequest, validateSubscriberCollection, validateCloseOrganizationRequest, validateInviteTeammateRequest, validateTeammate, validateTeammateAccessRequest, validateTeammateCollection, validateOrganizationClosureResult, validateCreateSubscriberGroupRequest, validateUpdateSubscriberGroupRequest, validateSubscriberGroup, validateSubscriberGroupCollection, validateSubscriberGroupMembership, validateSubscriberGroupMembershipCollection, validateCreateGroupBroadcastRequest, validateGroupBroadcast, validateCreateOrganizationCredentialRequest, validateCreateApiCredentialRequest, validateCreateChannelConnectionRequest, validateCreateCustomerEndpointRequest, validateCreateMachineClientRequest, validateCreateMessageRequest, validateCancelEscalationByKeyRequest, validateEscalationPathPreview, validateEscalationOrder, validateEscalationOrderCollection, validateSaveEscalationOrderRequest, validateQuietHours, validateSaveQuietHoursRequest, validateEscalationPolicy, validateEscalationPolicyCollection, validateEscalationLimits, validateUpdateEscalationLimitsRequest, validateEscalationPagingLimitReport, validateUpdateEscalationPolicyRequest, validateCancelEscalationRequest, validateEscalation, validateMessageCategory, validateMessageCategoryCollection, validateCreateMessageCategoryRequest, validateUpdateMessageCategoryRequest, validateSubscriberCategoryPreference, validateSubscriberCategoryPreferenceCollection, validateSetSubscriberCategoryPreferenceRequest, validateCreateProjectRequest, validateUpdateProjectRequest, validateCreateSubscriptionLinkRequest, validateCustomerEndpoint, validateCustomerEndpointAttemptCollection, validateCustomerEndpointCollection, validateCustomerEndpointMutationResult, validateInteractionSummary, validateMachineClient, validateMachineCredential, validateMachineEventAckRequest, validateMachineEventAckResponse, validateMachineEventPollResponse, validateMessage, validateProblem, validateProject, validateProjectCollection, validateRecipientCopyOverride, validateRecipientCopyOverrideCollection, validateProviderCapabilitiesCollection, validateProviderInstallationCollection, validateEmailDomainCollection, validateCreateEmailDomainRequest, validateRegisterMachineCredentialRequest, validateRotateOrganizationCredentialRequest, validateRotateApiCredentialRequest, validateConnectionTest, validateConnectionTestCollection, validateCreateConnectionTestRequest, validateCustomerApplicationManifest, validateRotateChannelConnectionCredentialRequest, validateRotateCustomerEndpointRequest, validateSubscriptionLink, validateUpdateChannelConnectionRequest, validateUpdateRecipientCopyOverrideRequest, } from "@whooshbang/contracts";
3
+ import { contractValidationErrors, validateOrganizationCredential, validateOrganizationCredentialCollection, validateOrganizationCredentialRotation, validateOrganizationCredentialSecretReveal, validateBillingProjectSlots, validateBillingPromotions, validateBillingPromotion, validateRedeemBillingPromotionRequest, validateAssignBillingProjectSlotsRequest, validateSubscriptionChange, validateConfirmSubscriptionChangeRequest, validateBillingEntitlements, validateSubscriptionSelection, validateProjectAttribution, validateUpdateProjectAttributionRequest, validateAutoTopUpSettings, validateUpdateAutoTopUpSettingsRequest, validateBillingAccount, validateCardSetup, validateCreateCreditPurchaseRequest, validateCreditPurchase, validateBillingInvoiceCollection, validateUpdateBillingReceiptEmailRequest, validateOrganizationProjection, validateApiCredential, validateApiCredentialCollection, validateApiCredentialRotation, validateApiCredentialSecretReveal, validateAttachNotifierConnectionRequest, validateChannelConnection, validateChannelConnectionCollection, validateConnectionProviderCollection, validateUsageReport, validateMessageListPage, validateMessageDeliveryHistory, validateMessageNotificationImage, validateInteractionTimeline, validateUpdateEmailSenderRequest, validateCustomerEventDeliveryHistory, validateCustomerEventDeliveryAttempt, validateDeliveryHolds, validateMachineClientOperationsList, validateRecipientCopyCatalogue, validateNotifierConnectionCollection, validateProjectRecipientExperience, validateRecipientBrandLogoUpload, validateNotificationImageAsset, validateUpdateProjectRecipientExperienceRequest, validateEnvironmentRecipientExperience, validateUpdateEnvironmentRecipientExperienceRequest, validateSubscriberChannelSettings, validateAcknowledgeEmailRemediationRequest, validateCreateRecipientSessionRequest, validateCreateRecipientSessionResponse, validateRecipientSession, validateCreateProviderHandoffRequest, validateProviderHandoff, validateSetPreferredBindingRequest, validatePreferredBinding, validateCreateSubscriberRequest, validateSubscriber, validateSubscriberDataExport, validateUpdateSubscriberRequest, validateSubscriberCollection, validateCloseOrganizationRequest, validateInviteTeammateRequest, validateTeammate, validateTeammateAccessRequest, validateTeammateCollection, validateOrganizationClosureResult, validateCreateSubscriberGroupRequest, validateUpdateSubscriberGroupRequest, validateSubscriberGroup, validateSubscriberGroupCollection, validateSubscriberGroupMembership, validateSubscriberGroupMembershipCollection, validateCreateGroupBroadcastRequest, validateGroupBroadcast, validateCreateOrganizationCredentialRequest, validateCreateApiCredentialRequest, validateCreateChannelConnectionRequest, validateCreateCustomerEndpointRequest, validateCreateMachineClientRequest, validateCreateMessageRequest, validateCancelEscalationByKeyRequest, validateEscalationPathPreview, validateEscalationOrder, validateEscalationOrderCollection, validateSaveEscalationOrderRequest, validateQuietHours, validateSaveQuietHoursRequest, validateSetDigestPreferenceRequest, validateSetSubscriberDigestSettingRequest, validateSubscriberDigestSettings, validateEscalationPolicy, validateEscalationPolicyCollection, validateEscalationLimits, validateUpdateEscalationLimitsRequest, validateEscalationPagingLimitReport, validateUpdateEscalationPolicyRequest, validateCancelEscalationRequest, validateEscalation, validateMessageCategory, validateMessageCategoryCollection, validateCreateMessageCategoryRequest, validateUpdateMessageCategoryRequest, validateSubscriberCategoryPreference, validateSubscriberCategoryPreferenceCollection, validateSetSubscriberCategoryPreferenceRequest, validateCreateProjectRequest, validateUpdateProjectRequest, validateCreateSubscriptionLinkRequest, validateCustomerEndpoint, validateCustomerEndpointAttemptCollection, validateCustomerEndpointCollection, validateCustomerEndpointMutationResult, validateInteractionSummary, validateMachineClient, validateMachineCredential, validateMachineEventAckRequest, validateMachineEventAckResponse, validateMachineEventPollResponse, validateMessage, validateProblem, validateProject, validateProjectCollection, validateRecipientCopyOverride, validateRecipientCopyOverrideCollection, validateProviderCapabilitiesCollection, validateProviderInstallationCollection, validateEmailDomainCollection, validateCreateEmailDomainRequest, validateRegisterMachineCredentialRequest, validateRotateOrganizationCredentialRequest, validateRotateApiCredentialRequest, validateConnectionTest, validateConnectionTestCollection, validateCreateConnectionTestRequest, validateCustomerApplicationManifest, validateRotateChannelConnectionCredentialRequest, validateRotateCustomerEndpointRequest, validateSubscriptionLink, validateUpdateChannelConnectionRequest, validateUpdateRecipientCopyOverrideRequest, } from "@whooshbang/contracts";
4
4
  import { validateAdditiveCompatible } from "./additive-compatibility.js";
5
5
  import { WhooshBangContractError, WhooshBangOutcomeUnknownError, WhooshBangProblemError, WhooshBangProtocolError, WhooshBangTransportError, WhooshBangValidationError, validationError, } from "./errors.js";
6
6
  import { interactionAnswer } from "./interactions.js";
@@ -1688,6 +1688,40 @@ export class WhooshBangClient {
1688
1688
  validator: validateQuietHours,
1689
1689
  });
1690
1690
  }
1691
+ /**
1692
+ * One subscriber's digest settings: for each category, the policy in
1693
+ * effect, where each setting comes from, what the subscriber may change,
1694
+ * their saved choices and your setting for them (FXO-3729).
1695
+ */
1696
+ async getSubscriberDigestSettings(projectId, environmentId, subscriberId, options = {}) {
1697
+ const operation = "getSubscriberDigestSettings";
1698
+ return this.#request({
1699
+ method: "GET",
1700
+ operation,
1701
+ options,
1702
+ sideEffect: false,
1703
+ path: `${environmentRoot(operation, projectId, environmentId)}/subscribers/${pathSegment(operation, subscriberId, "subscriberId")}/digest-settings`,
1704
+ validator: validateSubscriberDigestSettings,
1705
+ });
1706
+ }
1707
+ /**
1708
+ * Your digest setting for one subscriber and category, and which settings
1709
+ * they can't change; `{ setting: null }` removes it. Their own choice is
1710
+ * kept and returns when you unlock.
1711
+ */
1712
+ async setSubscriberDigestSetting(projectId, environmentId, subscriberId, categoryKey, request, options = {}) {
1713
+ const operation = "setSubscriberDigestSetting";
1714
+ assertInput(operation, request, validateSetSubscriberDigestSettingRequest);
1715
+ return this.#request({
1716
+ body: request,
1717
+ method: "PUT",
1718
+ operation,
1719
+ options,
1720
+ sideEffect: true,
1721
+ path: `${environmentRoot(operation, projectId, environmentId)}/subscribers/${pathSegment(operation, subscriberId, "subscriberId")}/digest-settings/categories/${pathSegment(operation, categoryKey, "categoryKey")}`,
1722
+ validator: validateSubscriberDigestSettings,
1723
+ });
1724
+ }
1691
1725
  async transitionSubscriberBinding(projectId, environmentId, subscriberId, bindingId, action, options = {}) {
1692
1726
  const operation = "transitionSubscriberBinding";
1693
1727
  if (!["pause", "resume", "unsubscribe"].includes(action)) {
@@ -4069,6 +4103,58 @@ export class WhooshBangRecipientSessionClient {
4069
4103
  validator: validateQuietHours,
4070
4104
  });
4071
4105
  }
4106
+ /**
4107
+ * This subscriber's digest settings: only the categories whose owner lets
4108
+ * them choose something, with what is in effect and what they can change,
4109
+ * plus their Default (FXO-3729).
4110
+ */
4111
+ async getDigestSettings(options = {}) {
4112
+ const operation = "getDigestSettings";
4113
+ return this.#request({
4114
+ method: "GET",
4115
+ operation,
4116
+ options,
4117
+ path: "v1/recipient-session/digest-settings",
4118
+ sideEffect: false,
4119
+ validator: validateSubscriberDigestSettings,
4120
+ });
4121
+ }
4122
+ /**
4123
+ * Sets this subscriber's Default digest choice, or clears it with
4124
+ * `{ preference: null }`. A setting the owner doesn't offer fails with
4125
+ * `request_invalid` naming it, and the previous setting stays.
4126
+ */
4127
+ async setDefaultDigestPreference(request, options = {}) {
4128
+ const operation = "setDefaultDigestPreference";
4129
+ assertInput(operation, request, validateSetDigestPreferenceRequest);
4130
+ return this.#request({
4131
+ body: request,
4132
+ method: "PUT",
4133
+ operation,
4134
+ options,
4135
+ path: "v1/recipient-session/digest-settings/default",
4136
+ sideEffect: true,
4137
+ validator: validateSubscriberDigestSettings,
4138
+ });
4139
+ }
4140
+ /**
4141
+ * Sets this subscriber's digest choice for one category, or clears it so
4142
+ * the category follows the Default again. Locked or unoffered settings
4143
+ * fail with `request_invalid` and the previous setting stays.
4144
+ */
4145
+ async setCategoryDigestPreference(categoryKey, request, options = {}) {
4146
+ const operation = "setCategoryDigestPreference";
4147
+ assertInput(operation, request, validateSetDigestPreferenceRequest);
4148
+ return this.#request({
4149
+ body: request,
4150
+ method: "PUT",
4151
+ operation,
4152
+ options,
4153
+ path: `v1/recipient-session/digest-settings/categories/${pathSegment(operation, categoryKey, "categoryKey")}`,
4154
+ sideEffect: true,
4155
+ validator: validateSubscriberDigestSettings,
4156
+ });
4157
+ }
4072
4158
  /** Turns off this subscriber's quiet hours. */
4073
4159
  async resetQuietHours(options = {}) {
4074
4160
  const operation = "resetQuietHours";