react-onesignal 3.1.1 → 3.2.1

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/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../index.ts"],"sourcesContent":["const ONESIGNAL_SDK_ID = 'onesignal-sdk';\nconst ONE_SIGNAL_SCRIPT_SRC = \"https://cdn.onesignal.com/sdks/web/v16/OneSignalSDK.page.js\";\n\n// true if the script is successfully loaded from CDN.\nlet isOneSignalInitialized = false;\n// true if the script fails to load from CDN. A separate flag is necessary\n// to disambiguate between a CDN load failure and a delayed call to\n// OneSignal#init.\nlet isOneSignalScriptFailed = false;\n\nif (typeof window !== 'undefined') {\n window.OneSignalDeferred = window.OneSignalDeferred || [];\n addSDKScript();\n}\n\ndeclare global {\n interface Window {\n OneSignalDeferred?: OneSignalDeferredLoadedCallback[];\n OneSignal?: IOneSignalOneSignal;\n safari?: {\n pushNotification: any;\n };\n }\n}\n\n/* H E L P E R S */\n\nfunction handleOnError() {\n isOneSignalScriptFailed = true;\n}\n\nfunction addSDKScript() {\n const script = document.createElement('script');\n script.id = ONESIGNAL_SDK_ID;\n script.defer = true;\n script.src = ONE_SIGNAL_SCRIPT_SRC;\n\n // Always resolve whether or not the script is successfully initialized.\n // This is important for users who may block cdn.onesignal.com w/ adblock.\n script.onerror = () => {\n handleOnError();\n }\n\n document.head.appendChild(script);\n}\n\n/**\n * The following code is copied directly from the native SDK source file BrowserSupportsPush.ts\n * S T A R T\n */\n\n// Checks if the browser supports push notifications by checking if specific\n// classes and properties on them exist\nfunction isPushNotificationsSupported() {\n return supportsVapidPush() || supportsSafariPush();\n}\n\nfunction isMacOSSafariInIframe(): boolean {\n // Fallback detection for Safari on macOS in an iframe context\n return window.top !== window && // isContextIframe\n navigator.vendor === \"Apple Computer, Inc.\" && // isSafari\n navigator.platform === \"MacIntel\"; // isMacOS\n}\n\nfunction supportsSafariPush(): boolean {\n return (window.safari && typeof window.safari.pushNotification !== \"undefined\") ||\n isMacOSSafariInIframe();\n}\n\n// Does the browser support the standard Push API\nfunction supportsVapidPush(): boolean {\n return typeof PushSubscriptionOptions !== \"undefined\" &&\n PushSubscriptionOptions.prototype.hasOwnProperty(\"applicationServerKey\");\n}\n/* E N D */\n\n/**\n * This is a SPECIAL FUNCTION\n * It is a hardcoded implementation copied from the upstream/native WebSDK since we want to return a boolean immediately\n * Natively, this is done via the shimloading mechanism (i.e. if the SDK loads, push is supported)\n * @PublicApi\n */\nconst isPushSupported = (): boolean => {\n return isPushNotificationsSupported();\n}\n\n/**\n * @PublicApi\n */\nconst init = (options: IInitObject): Promise<void> => {\n if (isOneSignalInitialized) {\n return Promise.reject(`OneSignal is already initialized.`);\n }\n\n if (!options || !options.appId) {\n throw new Error('You need to provide your OneSignal appId.');\n }\n\n if (!document) {\n return Promise.reject(`Document is not defined.`);\n }\n\n return new Promise<void>((resolve) => {\n window.OneSignalDeferred?.push((OneSignal) => {\n OneSignal.init(options).then(() => {\n isOneSignalInitialized = true;\n resolve();\n });\n });\n });\n};\n\ninterface AutoPromptOptions { force?: boolean; forceSlidedownOverNative?: boolean; slidedownPromptOptions?: IOneSignalAutoPromptOptions; }\ninterface IOneSignalAutoPromptOptions { force?: boolean; forceSlidedownOverNative?: boolean; isInUpdateMode?: boolean; categoryOptions?: IOneSignalCategories; }\ninterface IOneSignalCategories { positiveUpdateButton: string; negativeUpdateButton: string; savingButtonText: string; errorButtonText: string; updateMessage: string; tags: IOneSignalTagCategory[]; }\ninterface IOneSignalTagCategory { tag: string; label: string; checked?: boolean; }\ntype PushSubscriptionNamespaceProperties = { id: string | null | undefined; token: string | null | undefined; optedIn: boolean; };\ntype SubscriptionChangeEvent = { previous: PushSubscriptionNamespaceProperties; current: PushSubscriptionNamespaceProperties; };\ntype NotificationEventName = 'click' | 'foregroundWillDisplay' | 'dismiss' | 'permissionChange' | 'permissionPromptDisplay';\ntype SlidedownEventName = 'slidedownShown';\ntype OneSignalDeferredLoadedCallback = (onesignal: IOneSignalOneSignal) => void;\ninterface IOSNotification {\n /**\n * The OneSignal notification id;\n * - Primary id on OneSignal's REST API and dashboard\n */\n readonly notificationId: string;\n\n /**\n * Visible title text on the notification\n */\n readonly title?: string;\n\n /**\n * Visible body text on the notification\n */\n readonly body: string;\n\n /**\n * Visible icon the notification; URL format\n */\n readonly icon?: string;\n\n /**\n * Visible small badgeIcon that displays on some devices; URL format\n * Example: On Android's status bar\n */\n readonly badgeIcon?: string;\n\n /**\n * Visible image on the notification; URL format\n */\n readonly image?: string;\n\n /**\n * Visible buttons on the notification\n */\n readonly actionButtons?: IOSNotificationActionButton[];\n\n /**\n * If this value is the same as existing notification, it will replace it\n * Can be set when creating the notification with \"Web Push Topic\" on the dashboard\n * or web_push_topic from the REST API.\n */\n readonly topic?: string;\n\n /**\n * Custom object that was sent with the notification;\n * definable when creating the notification from the OneSignal REST API or dashboard\n */\n readonly additionalData?: object;\n\n /**\n * URL to open when clicking or tapping on the notification\n */\n readonly launchURL?: string;\n\n /**\n * Confirm the push was received by reporting back to OneSignal\n */\n readonly confirmDelivery: boolean;\n}\n\ninterface IOSNotificationActionButton {\n /**\n * Any unique identifier to represent which button was clicked. This is typically passed back to the service worker\n * and host page through events to identify which button was clicked.\n * e.g. 'like-button'\n */\n readonly actionId: string;\n /**\n * The notification action button's text.\n */\n readonly text: string;\n /**\n * A valid publicly reachable HTTPS URL to an image.\n */\n readonly icon?: string;\n /**\n * The URL to open the web browser to when this action button is clicked.\n */\n readonly launchURL?: string;\n}\n\ninterface NotificationClickResult {\n readonly actionId?: string;\n readonly url?: string;\n}\n\ntype NotificationEventTypeMap = {\n 'click': NotificationClickEvent;\n 'foregroundWillDisplay': NotificationForegroundWillDisplayEvent;\n 'dismiss': NotificationDismissEvent;\n 'permissionChange': boolean;\n 'permissionPromptDisplay': void;\n};\n\ninterface NotificationForegroundWillDisplayEvent {\n readonly notification: IOSNotification;\n preventDefault(): void;\n}\n\ninterface NotificationDismissEvent {\n notification: IOSNotification;\n}\n\ninterface NotificationClickEvent {\n readonly notification: IOSNotification;\n readonly result: NotificationClickResult;\n}\n\ntype UserChangeEvent = {\n current: UserNamespaceProperties;\n};\ntype UserNamespaceProperties = {\n onesignalId: string | undefined;\n externalId: string | undefined;\n};\n\ninterface IInitObject {\n appId: string;\n subdomainName?: string;\n requiresUserPrivacyConsent?: boolean;\n promptOptions?: object;\n welcomeNotification?: object;\n notifyButton?: object;\n persistNotification?: boolean;\n webhooks?: object;\n autoResubscribe?: boolean;\n autoRegister?: boolean;\n notificationClickHandlerMatch?: string;\n notificationClickHandlerAction?: string;\n path?: string;\n serviceWorkerParam?: { scope: string };\n serviceWorkerPath?: string;\n serviceWorkerOverrideForTypical?: boolean;\n serviceWorkerUpdaterPath?: string;\n allowLocalhostAsSecureOrigin?: boolean;\n [key: string]: any;\n}\n\ninterface IOneSignalOneSignal {\n\tSlidedown: IOneSignalSlidedown;\n\tNotifications: IOneSignalNotifications;\n\tSession: IOneSignalSession;\n\tUser: IOneSignalUser;\n\tDebug: IOneSignalDebug;\n\tlogin(externalId: string, jwtToken?: string): Promise<void>;\n\tlogout(): Promise<void>;\n\tinit(options: IInitObject): Promise<void>;\n\tsetConsentGiven(consent: boolean): Promise<void>;\n\tsetConsentRequired(requiresConsent: boolean): Promise<void>;\n}\ninterface IOneSignalNotifications {\n\tpermissionNative: NotificationPermission;\n\tpermission: boolean;\n\tsetDefaultUrl(url: string): Promise<void>;\n\tsetDefaultTitle(title: string): Promise<void>;\n\tisPushSupported(): boolean;\n\trequestPermission(): Promise<void>;\n\taddEventListener<K extends NotificationEventName>(event: K, listener: (obj: NotificationEventTypeMap[K]) => void): void;\n\tremoveEventListener<K extends NotificationEventName>(event: K, listener: (obj: NotificationEventTypeMap[K]) => void): void;\n}\ninterface IOneSignalSlidedown {\n\tpromptPush(options?: AutoPromptOptions): Promise<void>;\n\tpromptPushCategories(options?: AutoPromptOptions): Promise<void>;\n\tpromptSms(options?: AutoPromptOptions): Promise<void>;\n\tpromptEmail(options?: AutoPromptOptions): Promise<void>;\n\tpromptSmsAndEmail(options?: AutoPromptOptions): Promise<void>;\n\taddEventListener(event: SlidedownEventName, listener: (wasShown: boolean) => void): void;\n\tremoveEventListener(event: SlidedownEventName, listener: (wasShown: boolean) => void): void;\n}\ninterface IOneSignalDebug {\n\tsetLogLevel(logLevel: string): void;\n}\ninterface IOneSignalSession {\n\tsendOutcome(outcomeName: string, outcomeWeight?: number): Promise<void>;\n\tsendUniqueOutcome(outcomeName: string): Promise<void>;\n}\ninterface IOneSignalUser {\n\tonesignalId: string | undefined;\n\texternalId: string | undefined;\n\tPushSubscription: IOneSignalPushSubscription;\n\taddAlias(label: string, id: string): void;\n\taddAliases(aliases: { [key: string]: string }): void;\n\tremoveAlias(label: string): void;\n\tremoveAliases(labels: string[]): void;\n\taddEmail(email: string): void;\n\tremoveEmail(email: string): void;\n\taddSms(smsNumber: string): void;\n\tremoveSms(smsNumber: string): void;\n\taddTag(key: string, value: string): void;\n\taddTags(tags: { [key: string]: string }): void;\n\tremoveTag(key: string): void;\n\tremoveTags(keys: string[]): void;\n\tgetTags(): { [key: string]: string };\n\taddEventListener(event: 'change', listener: (change: UserChangeEvent) => void): void;\n\tremoveEventListener(event: 'change', listener: (change: UserChangeEvent) => void): void;\n\tsetLanguage(language: string): void;\n\tgetLanguage(): string;\n}\ninterface IOneSignalPushSubscription {\n\tid: string | null | undefined;\n\ttoken: string | null | undefined;\n\toptedIn: boolean | undefined;\n\toptIn(): Promise<void>;\n\toptOut(): Promise<void>;\n\taddEventListener(event: 'change', listener: (change: SubscriptionChangeEvent) => void): void;\n\tremoveEventListener(event: 'change', listener: (change: SubscriptionChangeEvent) => void): void;\n}\nfunction oneSignalLogin(externalId: string, jwtToken?: string): Promise<void> {\n return new Promise((resolve, reject) => {\n if (isOneSignalScriptFailed) {\n reject(new Error('OneSignal script failed to load.'));\n return;\n }\n\n try {\n window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {\n OneSignal.login(externalId, jwtToken).then(() => resolve())\n .catch((error: any) => reject(error));\n });\n } catch (error) {\n reject(error);\n }\n });\n}\nfunction oneSignalLogout(): Promise<void> {\n return new Promise((resolve, reject) => {\n if (isOneSignalScriptFailed) {\n reject(new Error('OneSignal script failed to load.'));\n return;\n }\n\n try {\n window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {\n OneSignal.logout().then(() => resolve())\n .catch((error: any) => reject(error));\n });\n } catch (error) {\n reject(error);\n }\n });\n}\nfunction oneSignalSetConsentGiven(consent: boolean): Promise<void> {\n return new Promise((resolve, reject) => {\n if (isOneSignalScriptFailed) {\n reject(new Error('OneSignal script failed to load.'));\n return;\n }\n\n try {\n window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {\n OneSignal.setConsentGiven(consent).then(() => resolve())\n .catch((error: any) => reject(error));\n });\n } catch (error) {\n reject(error);\n }\n });\n}\nfunction oneSignalSetConsentRequired(requiresConsent: boolean): Promise<void> {\n return new Promise((resolve, reject) => {\n if (isOneSignalScriptFailed) {\n reject(new Error('OneSignal script failed to load.'));\n return;\n }\n\n try {\n window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {\n OneSignal.setConsentRequired(requiresConsent).then(() => resolve())\n .catch((error: any) => reject(error));\n });\n } catch (error) {\n reject(error);\n }\n });\n}\nfunction slidedownPromptPush(options?: AutoPromptOptions): Promise<void> {\n return new Promise((resolve, reject) => {\n if (isOneSignalScriptFailed) {\n reject(new Error('OneSignal script failed to load.'));\n return;\n }\n\n try {\n window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {\n OneSignal.Slidedown.promptPush(options).then(() => resolve())\n .catch((error: any) => reject(error));\n });\n } catch (error) {\n reject(error);\n }\n });\n}\nfunction slidedownPromptPushCategories(options?: AutoPromptOptions): Promise<void> {\n return new Promise((resolve, reject) => {\n if (isOneSignalScriptFailed) {\n reject(new Error('OneSignal script failed to load.'));\n return;\n }\n\n try {\n window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {\n OneSignal.Slidedown.promptPushCategories(options).then(() => resolve())\n .catch((error: any) => reject(error));\n });\n } catch (error) {\n reject(error);\n }\n });\n}\nfunction slidedownPromptSms(options?: AutoPromptOptions): Promise<void> {\n return new Promise((resolve, reject) => {\n if (isOneSignalScriptFailed) {\n reject(new Error('OneSignal script failed to load.'));\n return;\n }\n\n try {\n window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {\n OneSignal.Slidedown.promptSms(options).then(() => resolve())\n .catch((error: any) => reject(error));\n });\n } catch (error) {\n reject(error);\n }\n });\n}\nfunction slidedownPromptEmail(options?: AutoPromptOptions): Promise<void> {\n return new Promise((resolve, reject) => {\n if (isOneSignalScriptFailed) {\n reject(new Error('OneSignal script failed to load.'));\n return;\n }\n\n try {\n window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {\n OneSignal.Slidedown.promptEmail(options).then(() => resolve())\n .catch((error: any) => reject(error));\n });\n } catch (error) {\n reject(error);\n }\n });\n}\nfunction slidedownPromptSmsAndEmail(options?: AutoPromptOptions): Promise<void> {\n return new Promise((resolve, reject) => {\n if (isOneSignalScriptFailed) {\n reject(new Error('OneSignal script failed to load.'));\n return;\n }\n\n try {\n window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {\n OneSignal.Slidedown.promptSmsAndEmail(options).then(() => resolve())\n .catch((error: any) => reject(error));\n });\n } catch (error) {\n reject(error);\n }\n });\n}\nfunction slidedownAddEventListener(event: SlidedownEventName, listener: (wasShown: boolean) => void): void {\n \n window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {\n OneSignal.Slidedown.addEventListener(event, listener);\n });\n \n}\nfunction slidedownRemoveEventListener(event: SlidedownEventName, listener: (wasShown: boolean) => void): void {\n \n window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {\n OneSignal.Slidedown.removeEventListener(event, listener);\n });\n \n}\nfunction notificationsSetDefaultUrl(url: string): Promise<void> {\n return new Promise((resolve, reject) => {\n if (isOneSignalScriptFailed) {\n reject(new Error('OneSignal script failed to load.'));\n return;\n }\n\n try {\n window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {\n OneSignal.Notifications.setDefaultUrl(url).then(() => resolve())\n .catch((error: any) => reject(error));\n });\n } catch (error) {\n reject(error);\n }\n });\n}\nfunction notificationsSetDefaultTitle(title: string): Promise<void> {\n return new Promise((resolve, reject) => {\n if (isOneSignalScriptFailed) {\n reject(new Error('OneSignal script failed to load.'));\n return;\n }\n\n try {\n window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {\n OneSignal.Notifications.setDefaultTitle(title).then(() => resolve())\n .catch((error: any) => reject(error));\n });\n } catch (error) {\n reject(error);\n }\n });\n}\nfunction notificationsRequestPermission(): Promise<void> {\n return new Promise((resolve, reject) => {\n if (isOneSignalScriptFailed) {\n reject(new Error('OneSignal script failed to load.'));\n return;\n }\n\n try {\n window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {\n OneSignal.Notifications.requestPermission().then(() => resolve())\n .catch((error: any) => reject(error));\n });\n } catch (error) {\n reject(error);\n }\n });\n}\nfunction notificationsAddEventListener<K extends NotificationEventName>(event: K, listener: (obj: NotificationEventTypeMap[K]) => void): void {\n \n window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {\n OneSignal.Notifications.addEventListener(event, listener);\n });\n \n}\nfunction notificationsRemoveEventListener<K extends NotificationEventName>(event: K, listener: (obj: NotificationEventTypeMap[K]) => void): void {\n \n window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {\n OneSignal.Notifications.removeEventListener(event, listener);\n });\n \n}\nfunction sessionSendOutcome(outcomeName: string, outcomeWeight?: number): Promise<void> {\n return new Promise((resolve, reject) => {\n if (isOneSignalScriptFailed) {\n reject(new Error('OneSignal script failed to load.'));\n return;\n }\n\n try {\n window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {\n OneSignal.Session.sendOutcome(outcomeName, outcomeWeight).then(() => resolve())\n .catch((error: any) => reject(error));\n });\n } catch (error) {\n reject(error);\n }\n });\n}\nfunction sessionSendUniqueOutcome(outcomeName: string): Promise<void> {\n return new Promise((resolve, reject) => {\n if (isOneSignalScriptFailed) {\n reject(new Error('OneSignal script failed to load.'));\n return;\n }\n\n try {\n window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {\n OneSignal.Session.sendUniqueOutcome(outcomeName).then(() => resolve())\n .catch((error: any) => reject(error));\n });\n } catch (error) {\n reject(error);\n }\n });\n}\nfunction userAddAlias(label: string, id: string): void {\n \n window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {\n OneSignal.User.addAlias(label, id);\n });\n \n}\nfunction userAddAliases(aliases: { [key: string]: string }): void {\n \n window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {\n OneSignal.User.addAliases(aliases);\n });\n \n}\nfunction userRemoveAlias(label: string): void {\n \n window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {\n OneSignal.User.removeAlias(label);\n });\n \n}\nfunction userRemoveAliases(labels: string[]): void {\n \n window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {\n OneSignal.User.removeAliases(labels);\n });\n \n}\nfunction userAddEmail(email: string): void {\n \n window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {\n OneSignal.User.addEmail(email);\n });\n \n}\nfunction userRemoveEmail(email: string): void {\n \n window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {\n OneSignal.User.removeEmail(email);\n });\n \n}\nfunction userAddSms(smsNumber: string): void {\n \n window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {\n OneSignal.User.addSms(smsNumber);\n });\n \n}\nfunction userRemoveSms(smsNumber: string): void {\n \n window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {\n OneSignal.User.removeSms(smsNumber);\n });\n \n}\nfunction userAddTag(key: string, value: string): void {\n \n window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {\n OneSignal.User.addTag(key, value);\n });\n \n}\nfunction userAddTags(tags: { [key: string]: string }): void {\n \n window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {\n OneSignal.User.addTags(tags);\n });\n \n}\nfunction userRemoveTag(key: string): void {\n \n window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {\n OneSignal.User.removeTag(key);\n });\n \n}\nfunction userRemoveTags(keys: string[]): void {\n \n window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {\n OneSignal.User.removeTags(keys);\n });\n \n}\nfunction userGetTags(): { [key: string]: string } {\n let retVal: { [key: string]: string };\n window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {\n retVal = OneSignal.User.getTags();\n });\n return retVal;\n}\nfunction userAddEventListener(event: 'change', listener: (change: UserChangeEvent) => void): void {\n \n window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {\n OneSignal.User.addEventListener(event, listener);\n });\n \n}\nfunction userRemoveEventListener(event: 'change', listener: (change: UserChangeEvent) => void): void {\n \n window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {\n OneSignal.User.removeEventListener(event, listener);\n });\n \n}\nfunction userSetLanguage(language: string): void {\n \n window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {\n OneSignal.User.setLanguage(language);\n });\n \n}\nfunction userGetLanguage(): string {\n let retVal: string;\n window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {\n retVal = OneSignal.User.getLanguage();\n });\n return retVal;\n}\nfunction pushSubscriptionOptIn(): Promise<void> {\n return new Promise((resolve, reject) => {\n if (isOneSignalScriptFailed) {\n reject(new Error('OneSignal script failed to load.'));\n return;\n }\n\n try {\n window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {\n OneSignal.User.PushSubscription.optIn().then(() => resolve())\n .catch((error: any) => reject(error));\n });\n } catch (error) {\n reject(error);\n }\n });\n}\nfunction pushSubscriptionOptOut(): Promise<void> {\n return new Promise((resolve, reject) => {\n if (isOneSignalScriptFailed) {\n reject(new Error('OneSignal script failed to load.'));\n return;\n }\n\n try {\n window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {\n OneSignal.User.PushSubscription.optOut().then(() => resolve())\n .catch((error: any) => reject(error));\n });\n } catch (error) {\n reject(error);\n }\n });\n}\nfunction pushSubscriptionAddEventListener(event: 'change', listener: (change: SubscriptionChangeEvent) => void): void {\n \n window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {\n OneSignal.User.PushSubscription.addEventListener(event, listener);\n });\n \n}\nfunction pushSubscriptionRemoveEventListener(event: 'change', listener: (change: SubscriptionChangeEvent) => void): void {\n \n window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {\n OneSignal.User.PushSubscription.removeEventListener(event, listener);\n });\n \n}\nfunction debugSetLogLevel(logLevel: string): void {\n \n window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {\n OneSignal.Debug.setLogLevel(logLevel);\n });\n \n}\nconst PushSubscriptionNamespace: IOneSignalPushSubscription = {\n\tget id(): string | null | undefined { return window.OneSignal?.User?.PushSubscription?.id; },\n\tget token(): string | null | undefined { return window.OneSignal?.User?.PushSubscription?.token; },\n\tget optedIn(): boolean | undefined { return window.OneSignal?.User?.PushSubscription?.optedIn; },\n\toptIn: pushSubscriptionOptIn,\n\toptOut: pushSubscriptionOptOut,\n\taddEventListener: pushSubscriptionAddEventListener,\n\tremoveEventListener: pushSubscriptionRemoveEventListener,\n};\n\nconst UserNamespace: IOneSignalUser = {\n\tget onesignalId(): string | undefined { return window.OneSignal?.User?.onesignalId; },\n\tget externalId(): string | undefined { return window.OneSignal?.User?.externalId; },\n\taddAlias: userAddAlias,\n\taddAliases: userAddAliases,\n\tremoveAlias: userRemoveAlias,\n\tremoveAliases: userRemoveAliases,\n\taddEmail: userAddEmail,\n\tremoveEmail: userRemoveEmail,\n\taddSms: userAddSms,\n\tremoveSms: userRemoveSms,\n\taddTag: userAddTag,\n\taddTags: userAddTags,\n\tremoveTag: userRemoveTag,\n\tremoveTags: userRemoveTags,\n\tgetTags: userGetTags,\n\taddEventListener: userAddEventListener,\n\tremoveEventListener: userRemoveEventListener,\n\tsetLanguage: userSetLanguage,\n\tgetLanguage: userGetLanguage,\n\tPushSubscription: PushSubscriptionNamespace,\n};\n\nconst SessionNamespace: IOneSignalSession = {\n\tsendOutcome: sessionSendOutcome,\n\tsendUniqueOutcome: sessionSendUniqueOutcome,\n};\n\nconst DebugNamespace: IOneSignalDebug = {\n\tsetLogLevel: debugSetLogLevel,\n};\n\nconst SlidedownNamespace: IOneSignalSlidedown = {\n\tpromptPush: slidedownPromptPush,\n\tpromptPushCategories: slidedownPromptPushCategories,\n\tpromptSms: slidedownPromptSms,\n\tpromptEmail: slidedownPromptEmail,\n\tpromptSmsAndEmail: slidedownPromptSmsAndEmail,\n\taddEventListener: slidedownAddEventListener,\n\tremoveEventListener: slidedownRemoveEventListener,\n};\n\nconst NotificationsNamespace: IOneSignalNotifications = {\n\tget permissionNative(): NotificationPermission { return window.OneSignal?.Notifications?.permissionNative ?? 'default'; },\n\tget permission(): boolean { return window.OneSignal?.Notifications?.permission ?? false; },\n\tsetDefaultUrl: notificationsSetDefaultUrl,\n\tsetDefaultTitle: notificationsSetDefaultTitle,\n\tisPushSupported,\n\trequestPermission: notificationsRequestPermission,\n\taddEventListener: notificationsAddEventListener,\n\tremoveEventListener: notificationsRemoveEventListener,\n};\n\nconst OneSignalNamespace: IOneSignalOneSignal = {\n\tlogin: oneSignalLogin,\n\tlogout: oneSignalLogout,\n\tinit,\n\tsetConsentGiven: oneSignalSetConsentGiven,\n\tsetConsentRequired: oneSignalSetConsentRequired,\n\tSlidedown: SlidedownNamespace,\n\tNotifications: NotificationsNamespace,\n\tSession: SessionNamespace,\n\tUser: UserNamespace,\n\tDebug: DebugNamespace,\n};\n\nconst OneSignal = OneSignalNamespace;\nexport default OneSignal;\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../index.ts"],"sourcesContent":["const ONESIGNAL_SDK_ID = 'onesignal-sdk';\nconst ONE_SIGNAL_SCRIPT_SRC = \"https://cdn.onesignal.com/sdks/web/v16/OneSignalSDK.page.js\";\n\n// true if the script is successfully loaded from CDN.\nlet isOneSignalInitialized = false;\n// true if the script fails to load from CDN. A separate flag is necessary\n// to disambiguate between a CDN load failure and a delayed call to\n// OneSignal#init.\nlet isOneSignalScriptFailed = false;\n\nif (typeof window !== 'undefined') {\n window.OneSignalDeferred = window.OneSignalDeferred || [];\n addSDKScript();\n}\n\ndeclare global {\n interface Window {\n OneSignalDeferred?: OneSignalDeferredLoadedCallback[];\n OneSignal?: IOneSignalOneSignal;\n safari?: {\n pushNotification: any;\n };\n }\n}\n\n/* H E L P E R S */\n\nfunction handleOnError() {\n isOneSignalScriptFailed = true;\n}\n\nfunction addSDKScript() {\n const script = document.createElement('script');\n script.id = ONESIGNAL_SDK_ID;\n script.defer = true;\n script.src = ONE_SIGNAL_SCRIPT_SRC;\n\n // Always resolve whether or not the script is successfully initialized.\n // This is important for users who may block cdn.onesignal.com w/ adblock.\n script.onerror = () => {\n handleOnError();\n }\n\n document.head.appendChild(script);\n}\n\n/**\n * The following code is copied directly from the native SDK source file BrowserSupportsPush.ts\n * S T A R T\n */\n\n// Checks if the browser supports push notifications by checking if specific\n// classes and properties on them exist\nfunction isPushNotificationsSupported() {\n return supportsVapidPush() || supportsSafariPush();\n}\n\nfunction isMacOSSafariInIframe(): boolean {\n // Fallback detection for Safari on macOS in an iframe context\n return window.top !== window && // isContextIframe\n navigator.vendor === \"Apple Computer, Inc.\" && // isSafari\n navigator.platform === \"MacIntel\"; // isMacOS\n}\n\nfunction supportsSafariPush(): boolean {\n return (window.safari && typeof window.safari.pushNotification !== \"undefined\") ||\n isMacOSSafariInIframe();\n}\n\n// Does the browser support the standard Push API\nfunction supportsVapidPush(): boolean {\n return typeof PushSubscriptionOptions !== \"undefined\" &&\n PushSubscriptionOptions.prototype.hasOwnProperty(\"applicationServerKey\");\n}\n/* E N D */\n\n/**\n * This is a SPECIAL FUNCTION\n * It is a hardcoded implementation copied from the upstream/native WebSDK since we want to return a boolean immediately\n * Natively, this is done via the shimloading mechanism (i.e. if the SDK loads, push is supported)\n * @PublicApi\n */\nconst isPushSupported = (): boolean => {\n return isPushNotificationsSupported();\n}\n\n/**\n * @PublicApi\n */\nconst init = (options: IInitObject): Promise<void> => {\n if (isOneSignalInitialized) {\n return Promise.reject(`OneSignal is already initialized.`);\n }\n\n if (!options || !options.appId) {\n throw new Error('You need to provide your OneSignal appId.');\n }\n\n if (!document) {\n return Promise.reject(`Document is not defined.`);\n }\n\n return new Promise<void>((resolve) => {\n window.OneSignalDeferred?.push((OneSignal) => {\n OneSignal.init(options).then(() => {\n isOneSignalInitialized = true;\n resolve();\n });\n });\n });\n};\n\nexport interface AutoPromptOptions { force?: boolean; forceSlidedownOverNative?: boolean; slidedownPromptOptions?: IOneSignalAutoPromptOptions; }\nexport interface IOneSignalAutoPromptOptions { force?: boolean; forceSlidedownOverNative?: boolean; isInUpdateMode?: boolean; categoryOptions?: IOneSignalCategories; }\nexport interface IOneSignalCategories { positiveUpdateButton: string; negativeUpdateButton: string; savingButtonText: string; errorButtonText: string; updateMessage: string; tags: IOneSignalTagCategory[]; }\nexport interface IOneSignalTagCategory { tag: string; label: string; checked?: boolean; }\nexport type PushSubscriptionNamespaceProperties = { id: string | null | undefined; token: string | null | undefined; optedIn: boolean; };\nexport type SubscriptionChangeEvent = { previous: PushSubscriptionNamespaceProperties; current: PushSubscriptionNamespaceProperties; };\nexport type NotificationEventName = 'click' | 'foregroundWillDisplay' | 'dismiss' | 'permissionChange' | 'permissionPromptDisplay';\nexport type SlidedownEventName = 'slidedownShown';\nexport type OneSignalDeferredLoadedCallback = (onesignal: IOneSignalOneSignal) => void;\nexport interface IOSNotification {\n /**\n * The OneSignal notification id;\n * - Primary id on OneSignal's REST API and dashboard\n */\n readonly notificationId: string;\n\n /**\n * Visible title text on the notification\n */\n readonly title?: string;\n\n /**\n * Visible body text on the notification\n */\n readonly body: string;\n\n /**\n * Visible icon the notification; URL format\n */\n readonly icon?: string;\n\n /**\n * Visible small badgeIcon that displays on some devices; URL format\n * Example: On Android's status bar\n */\n readonly badgeIcon?: string;\n\n /**\n * Visible image on the notification; URL format\n */\n readonly image?: string;\n\n /**\n * Visible buttons on the notification\n */\n readonly actionButtons?: IOSNotificationActionButton[];\n\n /**\n * If this value is the same as existing notification, it will replace it\n * Can be set when creating the notification with \"Web Push Topic\" on the dashboard\n * or web_push_topic from the REST API.\n */\n readonly topic?: string;\n\n /**\n * Custom object that was sent with the notification;\n * definable when creating the notification from the OneSignal REST API or dashboard\n */\n readonly additionalData?: object;\n\n /**\n * URL to open when clicking or tapping on the notification\n */\n readonly launchURL?: string;\n\n /**\n * Confirm the push was received by reporting back to OneSignal\n */\n readonly confirmDelivery: boolean;\n}\n\nexport interface IOSNotificationActionButton {\n /**\n * Any unique identifier to represent which button was clicked. This is typically passed back to the service worker\n * and host page through events to identify which button was clicked.\n * e.g. 'like-button'\n */\n readonly actionId: string;\n /**\n * The notification action button's text.\n */\n readonly text: string;\n /**\n * A valid publicly reachable HTTPS URL to an image.\n */\n readonly icon?: string;\n /**\n * The URL to open the web browser to when this action button is clicked.\n */\n readonly launchURL?: string;\n}\n\nexport interface NotificationClickResult {\n readonly actionId?: string;\n readonly url?: string;\n}\n\nexport type NotificationEventTypeMap = {\n 'click': NotificationClickEvent;\n 'foregroundWillDisplay': NotificationForegroundWillDisplayEvent;\n 'dismiss': NotificationDismissEvent;\n 'permissionChange': boolean;\n 'permissionPromptDisplay': void;\n};\n\nexport interface NotificationForegroundWillDisplayEvent {\n readonly notification: IOSNotification;\n preventDefault(): void;\n}\n\nexport interface NotificationDismissEvent {\n notification: IOSNotification;\n}\n\nexport interface NotificationClickEvent {\n readonly notification: IOSNotification;\n readonly result: NotificationClickResult;\n}\n\nexport type UserChangeEvent = {\n current: UserNamespaceProperties;\n};\nexport type UserNamespaceProperties = {\n onesignalId: string | undefined;\n externalId: string | undefined;\n};\n\nexport interface IInitObject {\n appId: string;\n subdomainName?: string;\n requiresUserPrivacyConsent?: boolean;\n promptOptions?: {\n slidedown: {\n prompts: {\n /**\n * Whether to automatically display the prompt.\n * `true` will display the prompt based on the delay options.\n * `false` will prevent the prompt from displaying until the Slidedowns methods are used.\n */\n autoPrompt: boolean;\n\n /**\n * Only available for type: category. Up to 10 categories.\n * @example\n * categories: [{ tag: 'local_news', label: 'Local News' }] // The user will be tagged with local_news but will see \"Local News\" in the prompt.\n */\n categories: {\n /** Should identify the action. */\n tag: string;\n\n /** What the user will see. */\n label: string;\n }[];\n\n /**\n * The delay options for the prompt.\n * @example delay: { pageViews: 3, timeDelay: 20 } // The user will not be shown the prompt until 20 seconds after the 3rd page view.\n */\n delay: {\n /** The number of pages a user needs to visit before the prompt is displayed. */\n pageViews?: number;\n\n /** The number of seconds a user needs to wait before the prompt is displayed.Both options must be satisfied for the prompt to display */\n timeDelay?: number;\n };\n\n /**\n * The text to display in the prompt.\n */\n text?: {\n /** The callout asking the user to opt-in. Up to 90 characters. */\n actionMessage?: string;\n\n /** Triggers the opt-in. Up to 15 characters. */\n acceptButton?: string;\n\n /** Cancels opt-in. Up to 15 characters. */\n cancelMessage?: string;\n\n /** The message of the confirmation prompt displayed after the email and/or phone number is provided. Up to 90 characters. */\n confirmMessage?: string;\n\n /** Identifies the email text field. Up to 15 characters. */\n emailLabel?: string;\n\n /** Cancels the category update. Up to 15 characters. */\n negativeUpdateButton?: string;\n\n /** Saves the updated category tags. Up to 15 characters. */\n positiveUpdateButton?: string;\n\n /** Identifies the phone number text field. Up to 15 characters. */\n smsLabel?: string;\n\n /** A different message shown to subscribers presented the prompt again to update categories. Up to 90 characters. */\n updateMessage?: string;\n };\n\n /**\n * The type of prompt to display.\n * `push` which is the Slide Prompt without categories.\n * `category` which is the Slide Prompt with categories.\n * `sms` only asks for phone number.\n * `email` only asks for email address.\n * `smsAndEmail` asks for both phone number and email address.\n */\n type: 'push' | 'category' | 'sms' | 'email' | 'smsAndEmail';\n }[];\n };\n };\n welcomeNotification?: {\n /**\n * Disables sending a welcome notification to new site visitors. If you want to disable welcome notifications, this is the only option you need.\n */\n disabled?: boolean;\n\n /**\n * The welcome notification's message. You can localize this to your own language.\n * If left blank or set to blank, the default of 'Thanks for subscribing!' will be used.\n */\n message: string;\n\n /**\n * The welcome notification's title. You can localize this to your own language. If not set, or left blank, the site's title will be used.\n * Set to one space ' ' to clear the title, although this is not recommended.\n */\n title?: string;\n\n /**\n * By default, clicking the welcome notification does not open any link.\n * This is recommended because the user has just visited your site and subscribed.\n */\n url: string;\n };\n\n /**\n * Will enable customization of the notify/subscription bell button.\n */\n notifyButton?: {\n /**\n * A function you define that returns true to show the Subscription Bell, or false to hide it.\n * Typically used the hide the Subscription Bell after the user is subscribed.\n * This function is not re-evaluated on every state change; this function is only evaluated once when the Subscription Bell begins to show.\n */\n displayPredicate?: () => boolean | Promise<boolean>;\n\n /**\n * Enable the Subscription Bell. The Subscription Bell is otherwise disabled by default.\n */\n enable?: boolean;\n\n /** Specify CSS-valid pixel offsets using bottom, left, and right. */\n offset?: { bottom: string; left: string; right: string };\n\n /**\n * If `true`, the Subscription Bell will display an icon that there is 1 unread message.\n * When hovering over the Subscription Bell, the user will see custom text set by message.prenotify.\n */\n prenotify: boolean;\n\n /** Either `bottom-left` or `bottom-right`. The Subscription Bell will be fixed at this location on your page. */\n position?: 'bottom-left' | 'bottom-right';\n\n /** Set `false` to hide the 'Powered by OneSignal' text in the Subscription Bell dialog popup. */\n showCredit: boolean;\n\n /**\n * The Subscription Bell will initially appear at one of these sizes, and then shrink down to size `small` after the user subscribes.\n */\n size?: 'small' | 'medium' | 'large';\n\n /** Customize the Subscription Bell text. */\n text: {\n 'dialog.blocked.message': string;\n 'dialog.blocked.title': string;\n 'dialog.main.button.subscribe': string;\n 'dialog.main.button.unsubscribe': string;\n 'dialog.main.title': string;\n 'message.action.resubscribed': string;\n 'message.action.subscribed': string;\n 'message.action.subscribing': string;\n 'message.action.unsubscribed': string;\n 'message.prenotify': string;\n 'tip.state.blocked': string;\n 'tip.state.subscribed': string;\n 'tip.state.unsubscribed': string;\n };\n };\n\n persistNotification?: boolean;\n webhooks?: {\n /**\n * Enable this setting only if your server has CORS enabled and supports non-simple CORS requests.\n * If this setting is disabled, your webhook will not need CORS to receive data, but it will not receive the custom headers.\n * The simplest option is to leave it disabled.\n * @default false\n */\n cors: boolean;\n\n /**\n * This event occurs after a notification is clicked.\n * @example https://site.com/hook\n */\n 'notification.clicked'?: string;\n\n /**\n * This event occurs after a notification is intentionally dismissed by the user (clicking the notification body or one of the notification action buttons does not trigger the dismissed webhook),\n * after a group of notifications are all dismissed (with this notification as part of that group), or after a notification expires on its own time and disappears. This event is supported on Chrome only.\n * @example https://site.com/hook\n */\n 'notification.dismissed'?: string;\n\n /**\n * This event occurs after a notification is displayed.\n * @example https://site.com/hook\n */\n 'notification.willDisplay'?: string;\n };\n autoResubscribe?: boolean;\n autoRegister?: boolean;\n notificationClickHandlerMatch?: string;\n notificationClickHandlerAction?: string;\n path?: string;\n serviceWorkerParam?: { scope: string };\n serviceWorkerPath?: string;\n serviceWorkerOverrideForTypical?: boolean;\n serviceWorkerUpdaterPath?: string;\n allowLocalhostAsSecureOrigin?: boolean;\n [key: string]: any;\n}\n\nexport interface IOneSignalOneSignal {\n\tSlidedown: IOneSignalSlidedown;\n\tNotifications: IOneSignalNotifications;\n\tSession: IOneSignalSession;\n\tUser: IOneSignalUser;\n\tDebug: IOneSignalDebug;\n\tlogin(externalId: string, jwtToken?: string): Promise<void>;\n\tlogout(): Promise<void>;\n\tinit(options: IInitObject): Promise<void>;\n\tsetConsentGiven(consent: boolean): Promise<void>;\n\tsetConsentRequired(requiresConsent: boolean): Promise<void>;\n}\nexport interface IOneSignalNotifications {\n\tpermissionNative: NotificationPermission;\n\tpermission: boolean;\n\tsetDefaultUrl(url: string): Promise<void>;\n\tsetDefaultTitle(title: string): Promise<void>;\n\tisPushSupported(): boolean;\n\trequestPermission(): Promise<void>;\n\taddEventListener<K extends NotificationEventName>(event: K, listener: (obj: NotificationEventTypeMap[K]) => void): void;\n\tremoveEventListener<K extends NotificationEventName>(event: K, listener: (obj: NotificationEventTypeMap[K]) => void): void;\n}\nexport interface IOneSignalSlidedown {\n\tpromptPush(options?: AutoPromptOptions): Promise<void>;\n\tpromptPushCategories(options?: AutoPromptOptions): Promise<void>;\n\tpromptSms(options?: AutoPromptOptions): Promise<void>;\n\tpromptEmail(options?: AutoPromptOptions): Promise<void>;\n\tpromptSmsAndEmail(options?: AutoPromptOptions): Promise<void>;\n\taddEventListener(event: SlidedownEventName, listener: (wasShown: boolean) => void): void;\n\tremoveEventListener(event: SlidedownEventName, listener: (wasShown: boolean) => void): void;\n}\nexport interface IOneSignalDebug {\n\tsetLogLevel(logLevel: string): void;\n}\nexport interface IOneSignalSession {\n\tsendOutcome(outcomeName: string, outcomeWeight?: number): Promise<void>;\n\tsendUniqueOutcome(outcomeName: string): Promise<void>;\n}\nexport interface IOneSignalUser {\n\tonesignalId: string | undefined;\n\texternalId: string | undefined;\n\tPushSubscription: IOneSignalPushSubscription;\n\taddAlias(label: string, id: string): void;\n\taddAliases(aliases: { [key: string]: string }): void;\n\tremoveAlias(label: string): void;\n\tremoveAliases(labels: string[]): void;\n\taddEmail(email: string): void;\n\tremoveEmail(email: string): void;\n\taddSms(smsNumber: string): void;\n\tremoveSms(smsNumber: string): void;\n\taddTag(key: string, value: string): void;\n\taddTags(tags: { [key: string]: string }): void;\n\tremoveTag(key: string): void;\n\tremoveTags(keys: string[]): void;\n\tgetTags(): { [key: string]: string };\n\taddEventListener(event: 'change', listener: (change: UserChangeEvent) => void): void;\n\tremoveEventListener(event: 'change', listener: (change: UserChangeEvent) => void): void;\n\tsetLanguage(language: string): void;\n\tgetLanguage(): string;\n}\nexport interface IOneSignalPushSubscription {\n\tid: string | null | undefined;\n\ttoken: string | null | undefined;\n\toptedIn: boolean | undefined;\n\toptIn(): Promise<void>;\n\toptOut(): Promise<void>;\n\taddEventListener(event: 'change', listener: (change: SubscriptionChangeEvent) => void): void;\n\tremoveEventListener(event: 'change', listener: (change: SubscriptionChangeEvent) => void): void;\n}\nfunction oneSignalLogin(externalId: string, jwtToken?: string): Promise<void> {\n return new Promise((resolve, reject) => {\n if (isOneSignalScriptFailed) {\n reject(new Error('OneSignal script failed to load.'));\n return;\n }\n\n try {\n window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {\n OneSignal.login(externalId, jwtToken).then(() => resolve())\n .catch((error: any) => reject(error));\n });\n } catch (error) {\n reject(error);\n }\n });\n}\nfunction oneSignalLogout(): Promise<void> {\n return new Promise((resolve, reject) => {\n if (isOneSignalScriptFailed) {\n reject(new Error('OneSignal script failed to load.'));\n return;\n }\n\n try {\n window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {\n OneSignal.logout().then(() => resolve())\n .catch((error: any) => reject(error));\n });\n } catch (error) {\n reject(error);\n }\n });\n}\nfunction oneSignalSetConsentGiven(consent: boolean): Promise<void> {\n return new Promise((resolve, reject) => {\n if (isOneSignalScriptFailed) {\n reject(new Error('OneSignal script failed to load.'));\n return;\n }\n\n try {\n window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {\n OneSignal.setConsentGiven(consent).then(() => resolve())\n .catch((error: any) => reject(error));\n });\n } catch (error) {\n reject(error);\n }\n });\n}\nfunction oneSignalSetConsentRequired(requiresConsent: boolean): Promise<void> {\n return new Promise((resolve, reject) => {\n if (isOneSignalScriptFailed) {\n reject(new Error('OneSignal script failed to load.'));\n return;\n }\n\n try {\n window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {\n OneSignal.setConsentRequired(requiresConsent).then(() => resolve())\n .catch((error: any) => reject(error));\n });\n } catch (error) {\n reject(error);\n }\n });\n}\nfunction slidedownPromptPush(options?: AutoPromptOptions): Promise<void> {\n return new Promise((resolve, reject) => {\n if (isOneSignalScriptFailed) {\n reject(new Error('OneSignal script failed to load.'));\n return;\n }\n\n try {\n window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {\n OneSignal.Slidedown.promptPush(options).then(() => resolve())\n .catch((error: any) => reject(error));\n });\n } catch (error) {\n reject(error);\n }\n });\n}\nfunction slidedownPromptPushCategories(options?: AutoPromptOptions): Promise<void> {\n return new Promise((resolve, reject) => {\n if (isOneSignalScriptFailed) {\n reject(new Error('OneSignal script failed to load.'));\n return;\n }\n\n try {\n window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {\n OneSignal.Slidedown.promptPushCategories(options).then(() => resolve())\n .catch((error: any) => reject(error));\n });\n } catch (error) {\n reject(error);\n }\n });\n}\nfunction slidedownPromptSms(options?: AutoPromptOptions): Promise<void> {\n return new Promise((resolve, reject) => {\n if (isOneSignalScriptFailed) {\n reject(new Error('OneSignal script failed to load.'));\n return;\n }\n\n try {\n window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {\n OneSignal.Slidedown.promptSms(options).then(() => resolve())\n .catch((error: any) => reject(error));\n });\n } catch (error) {\n reject(error);\n }\n });\n}\nfunction slidedownPromptEmail(options?: AutoPromptOptions): Promise<void> {\n return new Promise((resolve, reject) => {\n if (isOneSignalScriptFailed) {\n reject(new Error('OneSignal script failed to load.'));\n return;\n }\n\n try {\n window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {\n OneSignal.Slidedown.promptEmail(options).then(() => resolve())\n .catch((error: any) => reject(error));\n });\n } catch (error) {\n reject(error);\n }\n });\n}\nfunction slidedownPromptSmsAndEmail(options?: AutoPromptOptions): Promise<void> {\n return new Promise((resolve, reject) => {\n if (isOneSignalScriptFailed) {\n reject(new Error('OneSignal script failed to load.'));\n return;\n }\n\n try {\n window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {\n OneSignal.Slidedown.promptSmsAndEmail(options).then(() => resolve())\n .catch((error: any) => reject(error));\n });\n } catch (error) {\n reject(error);\n }\n });\n}\nfunction slidedownAddEventListener(event: SlidedownEventName, listener: (wasShown: boolean) => void): void {\n \n window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {\n OneSignal.Slidedown.addEventListener(event, listener);\n });\n \n}\nfunction slidedownRemoveEventListener(event: SlidedownEventName, listener: (wasShown: boolean) => void): void {\n \n window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {\n OneSignal.Slidedown.removeEventListener(event, listener);\n });\n \n}\nfunction notificationsSetDefaultUrl(url: string): Promise<void> {\n return new Promise((resolve, reject) => {\n if (isOneSignalScriptFailed) {\n reject(new Error('OneSignal script failed to load.'));\n return;\n }\n\n try {\n window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {\n OneSignal.Notifications.setDefaultUrl(url).then(() => resolve())\n .catch((error: any) => reject(error));\n });\n } catch (error) {\n reject(error);\n }\n });\n}\nfunction notificationsSetDefaultTitle(title: string): Promise<void> {\n return new Promise((resolve, reject) => {\n if (isOneSignalScriptFailed) {\n reject(new Error('OneSignal script failed to load.'));\n return;\n }\n\n try {\n window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {\n OneSignal.Notifications.setDefaultTitle(title).then(() => resolve())\n .catch((error: any) => reject(error));\n });\n } catch (error) {\n reject(error);\n }\n });\n}\nfunction notificationsRequestPermission(): Promise<void> {\n return new Promise((resolve, reject) => {\n if (isOneSignalScriptFailed) {\n reject(new Error('OneSignal script failed to load.'));\n return;\n }\n\n try {\n window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {\n OneSignal.Notifications.requestPermission().then(() => resolve())\n .catch((error: any) => reject(error));\n });\n } catch (error) {\n reject(error);\n }\n });\n}\nfunction notificationsAddEventListener<K extends NotificationEventName>(event: K, listener: (obj: NotificationEventTypeMap[K]) => void): void {\n \n window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {\n OneSignal.Notifications.addEventListener(event, listener);\n });\n \n}\nfunction notificationsRemoveEventListener<K extends NotificationEventName>(event: K, listener: (obj: NotificationEventTypeMap[K]) => void): void {\n \n window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {\n OneSignal.Notifications.removeEventListener(event, listener);\n });\n \n}\nfunction sessionSendOutcome(outcomeName: string, outcomeWeight?: number): Promise<void> {\n return new Promise((resolve, reject) => {\n if (isOneSignalScriptFailed) {\n reject(new Error('OneSignal script failed to load.'));\n return;\n }\n\n try {\n window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {\n OneSignal.Session.sendOutcome(outcomeName, outcomeWeight).then(() => resolve())\n .catch((error: any) => reject(error));\n });\n } catch (error) {\n reject(error);\n }\n });\n}\nfunction sessionSendUniqueOutcome(outcomeName: string): Promise<void> {\n return new Promise((resolve, reject) => {\n if (isOneSignalScriptFailed) {\n reject(new Error('OneSignal script failed to load.'));\n return;\n }\n\n try {\n window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {\n OneSignal.Session.sendUniqueOutcome(outcomeName).then(() => resolve())\n .catch((error: any) => reject(error));\n });\n } catch (error) {\n reject(error);\n }\n });\n}\nfunction userAddAlias(label: string, id: string): void {\n \n window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {\n OneSignal.User.addAlias(label, id);\n });\n \n}\nfunction userAddAliases(aliases: { [key: string]: string }): void {\n \n window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {\n OneSignal.User.addAliases(aliases);\n });\n \n}\nfunction userRemoveAlias(label: string): void {\n \n window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {\n OneSignal.User.removeAlias(label);\n });\n \n}\nfunction userRemoveAliases(labels: string[]): void {\n \n window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {\n OneSignal.User.removeAliases(labels);\n });\n \n}\nfunction userAddEmail(email: string): void {\n \n window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {\n OneSignal.User.addEmail(email);\n });\n \n}\nfunction userRemoveEmail(email: string): void {\n \n window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {\n OneSignal.User.removeEmail(email);\n });\n \n}\nfunction userAddSms(smsNumber: string): void {\n \n window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {\n OneSignal.User.addSms(smsNumber);\n });\n \n}\nfunction userRemoveSms(smsNumber: string): void {\n \n window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {\n OneSignal.User.removeSms(smsNumber);\n });\n \n}\nfunction userAddTag(key: string, value: string): void {\n \n window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {\n OneSignal.User.addTag(key, value);\n });\n \n}\nfunction userAddTags(tags: { [key: string]: string }): void {\n \n window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {\n OneSignal.User.addTags(tags);\n });\n \n}\nfunction userRemoveTag(key: string): void {\n \n window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {\n OneSignal.User.removeTag(key);\n });\n \n}\nfunction userRemoveTags(keys: string[]): void {\n \n window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {\n OneSignal.User.removeTags(keys);\n });\n \n}\nfunction userGetTags(): { [key: string]: string } {\n let retVal: { [key: string]: string };\n window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {\n retVal = OneSignal.User.getTags();\n });\n return retVal;\n}\nfunction userAddEventListener(event: 'change', listener: (change: UserChangeEvent) => void): void {\n \n window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {\n OneSignal.User.addEventListener(event, listener);\n });\n \n}\nfunction userRemoveEventListener(event: 'change', listener: (change: UserChangeEvent) => void): void {\n \n window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {\n OneSignal.User.removeEventListener(event, listener);\n });\n \n}\nfunction userSetLanguage(language: string): void {\n \n window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {\n OneSignal.User.setLanguage(language);\n });\n \n}\nfunction userGetLanguage(): string {\n let retVal: string;\n window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {\n retVal = OneSignal.User.getLanguage();\n });\n return retVal;\n}\nfunction pushSubscriptionOptIn(): Promise<void> {\n return new Promise((resolve, reject) => {\n if (isOneSignalScriptFailed) {\n reject(new Error('OneSignal script failed to load.'));\n return;\n }\n\n try {\n window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {\n OneSignal.User.PushSubscription.optIn().then(() => resolve())\n .catch((error: any) => reject(error));\n });\n } catch (error) {\n reject(error);\n }\n });\n}\nfunction pushSubscriptionOptOut(): Promise<void> {\n return new Promise((resolve, reject) => {\n if (isOneSignalScriptFailed) {\n reject(new Error('OneSignal script failed to load.'));\n return;\n }\n\n try {\n window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {\n OneSignal.User.PushSubscription.optOut().then(() => resolve())\n .catch((error: any) => reject(error));\n });\n } catch (error) {\n reject(error);\n }\n });\n}\nfunction pushSubscriptionAddEventListener(event: 'change', listener: (change: SubscriptionChangeEvent) => void): void {\n \n window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {\n OneSignal.User.PushSubscription.addEventListener(event, listener);\n });\n \n}\nfunction pushSubscriptionRemoveEventListener(event: 'change', listener: (change: SubscriptionChangeEvent) => void): void {\n \n window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {\n OneSignal.User.PushSubscription.removeEventListener(event, listener);\n });\n \n}\nfunction debugSetLogLevel(logLevel: string): void {\n \n window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {\n OneSignal.Debug.setLogLevel(logLevel);\n });\n \n}\nconst PushSubscriptionNamespace: IOneSignalPushSubscription = {\n\tget id(): string | null | undefined { return window.OneSignal?.User?.PushSubscription?.id; },\n\tget token(): string | null | undefined { return window.OneSignal?.User?.PushSubscription?.token; },\n\tget optedIn(): boolean | undefined { return window.OneSignal?.User?.PushSubscription?.optedIn; },\n\toptIn: pushSubscriptionOptIn,\n\toptOut: pushSubscriptionOptOut,\n\taddEventListener: pushSubscriptionAddEventListener,\n\tremoveEventListener: pushSubscriptionRemoveEventListener,\n};\n\nconst UserNamespace: IOneSignalUser = {\n\tget onesignalId(): string | undefined { return window.OneSignal?.User?.onesignalId; },\n\tget externalId(): string | undefined { return window.OneSignal?.User?.externalId; },\n\taddAlias: userAddAlias,\n\taddAliases: userAddAliases,\n\tremoveAlias: userRemoveAlias,\n\tremoveAliases: userRemoveAliases,\n\taddEmail: userAddEmail,\n\tremoveEmail: userRemoveEmail,\n\taddSms: userAddSms,\n\tremoveSms: userRemoveSms,\n\taddTag: userAddTag,\n\taddTags: userAddTags,\n\tremoveTag: userRemoveTag,\n\tremoveTags: userRemoveTags,\n\tgetTags: userGetTags,\n\taddEventListener: userAddEventListener,\n\tremoveEventListener: userRemoveEventListener,\n\tsetLanguage: userSetLanguage,\n\tgetLanguage: userGetLanguage,\n\tPushSubscription: PushSubscriptionNamespace,\n};\n\nconst SessionNamespace: IOneSignalSession = {\n\tsendOutcome: sessionSendOutcome,\n\tsendUniqueOutcome: sessionSendUniqueOutcome,\n};\n\nconst DebugNamespace: IOneSignalDebug = {\n\tsetLogLevel: debugSetLogLevel,\n};\n\nconst SlidedownNamespace: IOneSignalSlidedown = {\n\tpromptPush: slidedownPromptPush,\n\tpromptPushCategories: slidedownPromptPushCategories,\n\tpromptSms: slidedownPromptSms,\n\tpromptEmail: slidedownPromptEmail,\n\tpromptSmsAndEmail: slidedownPromptSmsAndEmail,\n\taddEventListener: slidedownAddEventListener,\n\tremoveEventListener: slidedownRemoveEventListener,\n};\n\nconst NotificationsNamespace: IOneSignalNotifications = {\n\tget permissionNative(): NotificationPermission { return window.OneSignal?.Notifications?.permissionNative ?? 'default'; },\n\tget permission(): boolean { return window.OneSignal?.Notifications?.permission ?? false; },\n\tsetDefaultUrl: notificationsSetDefaultUrl,\n\tsetDefaultTitle: notificationsSetDefaultTitle,\n\tisPushSupported,\n\trequestPermission: notificationsRequestPermission,\n\taddEventListener: notificationsAddEventListener,\n\tremoveEventListener: notificationsRemoveEventListener,\n};\n\nconst OneSignalNamespace: IOneSignalOneSignal = {\n\tlogin: oneSignalLogin,\n\tlogout: oneSignalLogout,\n\tinit,\n\tsetConsentGiven: oneSignalSetConsentGiven,\n\tsetConsentRequired: oneSignalSetConsentRequired,\n\tSlidedown: SlidedownNamespace,\n\tNotifications: NotificationsNamespace,\n\tSession: SessionNamespace,\n\tUser: UserNamespace,\n\tDebug: DebugNamespace,\n};\n\nconst OneSignal = OneSignalNamespace;\nexport default OneSignal;\n"],"names":["ONESIGNAL_SDK_ID","ONE_SIGNAL_SCRIPT_SRC","isOneSignalInitialized","isOneSignalScriptFailed","addSDKScript","handleOnError","script","isPushNotificationsSupported","supportsVapidPush","supportsSafariPush","isMacOSSafariInIframe","isPushSupported","init","options","resolve","_a","OneSignal","oneSignalLogin","externalId","jwtToken","reject","error","oneSignalLogout","oneSignalSetConsentGiven","consent","oneSignalSetConsentRequired","requiresConsent","slidedownPromptPush","slidedownPromptPushCategories","slidedownPromptSms","slidedownPromptEmail","slidedownPromptSmsAndEmail","slidedownAddEventListener","event","listener","slidedownRemoveEventListener","notificationsSetDefaultUrl","url","notificationsSetDefaultTitle","title","notificationsRequestPermission","notificationsAddEventListener","notificationsRemoveEventListener","sessionSendOutcome","outcomeName","outcomeWeight","sessionSendUniqueOutcome","userAddAlias","label","id","userAddAliases","aliases","userRemoveAlias","userRemoveAliases","labels","userAddEmail","email","userRemoveEmail","userAddSms","smsNumber","userRemoveSms","userAddTag","key","value","userAddTags","tags","userRemoveTag","userRemoveTags","keys","userGetTags","retVal","userAddEventListener","userRemoveEventListener","userSetLanguage","language","userGetLanguage","pushSubscriptionOptIn","pushSubscriptionOptOut","pushSubscriptionAddEventListener","pushSubscriptionRemoveEventListener","debugSetLogLevel","logLevel","PushSubscriptionNamespace","_c","_b","UserNamespace","SessionNamespace","DebugNamespace","SlidedownNamespace","NotificationsNamespace","OneSignalNamespace"],"mappings":"aAAA,MAAMA,EAAmB,gBACnBC,EAAwB,8DAG9B,IAAIC,EAAyB,GAIzBC,EAA0B,GAE1B,OAAO,OAAW,MACb,OAAA,kBAAoB,OAAO,mBAAqB,CAAC,EAC3CC,EAAA,GAef,SAASC,GAAgB,CACGF,EAAA,EAC5B,CAEA,SAASC,GAAe,CAChB,MAAAE,EAAS,SAAS,cAAc,QAAQ,EAC9CA,EAAO,GAAKN,EACZM,EAAO,MAAQ,GACfA,EAAO,IAAML,EAIbK,EAAO,QAAU,IAAM,CACPD,EAAA,CAChB,EAES,SAAA,KAAK,YAAYC,CAAM,CAClC,CASA,SAASC,GAA+B,CAC/B,OAAAC,KAAuBC,EAAmB,CACnD,CAEA,SAASC,GAAiC,CAExC,OAAO,OAAO,MAAQ,QACtB,UAAU,SAAW,wBACrB,UAAU,WAAa,UACzB,CAEA,SAASD,GAA8B,CACrC,OAAQ,OAAO,QAAU,OAAO,OAAO,OAAO,iBAAqB,KAC3DC,EAAsB,CAChC,CAGA,SAASF,GAA6B,CACpC,OAAO,OAAO,wBAA4B,KACnC,wBAAwB,UAAU,eAAe,sBAAsB,CAChF,CASA,MAAMG,EAAkB,IACfJ,EAA6B,EAMhCK,EAAQC,GAAwC,CACpD,GAAIX,EACK,OAAA,QAAQ,OAAO,mCAAmC,EAG3D,GAAI,CAACW,GAAW,CAACA,EAAQ,MACjB,MAAA,IAAI,MAAM,2CAA2C,EAG7D,OAAK,SAIE,IAAI,QAAeC,GAAY,QAC7BC,EAAA,OAAA,oBAAA,MAAAA,EAAmB,KAAMC,GAAc,CAC5CA,EAAU,KAAKH,CAAO,EAAE,KAAK,IAAM,CACRX,EAAA,GACjBY,EAAA,CAAA,CACT,CAAA,EACF,CACF,EAVQ,QAAQ,OAAO,0BAA0B,CAWpD,EAkZA,SAASG,EAAeC,EAAoBC,EAAkC,CAC5E,OAAO,IAAI,QAAQ,CAACL,EAASM,IAAW,OACtC,GAAIjB,EAAyB,CACpBiB,EAAA,IAAI,MAAM,kCAAkC,CAAC,EACpD,MAAA,CAGE,GAAA,EACKL,EAAA,OAAA,oBAAA,MAAAA,EAAmB,KAAMC,GAAmC,CACjEA,EAAU,MAAME,EAAYC,CAAQ,EAAE,KAAK,IAAML,EAAS,CAAA,EACvD,MAAOO,GAAeD,EAAOC,CAAK,CAAC,CAAA,SAEjCA,EAAO,CACdD,EAAOC,CAAK,CAAA,CACd,CACD,CACH,CACA,SAASC,GAAiC,CACxC,OAAO,IAAI,QAAQ,CAACR,EAASM,IAAW,OACtC,GAAIjB,EAAyB,CACpBiB,EAAA,IAAI,MAAM,kCAAkC,CAAC,EACpD,MAAA,CAGE,GAAA,EACKL,EAAA,OAAA,oBAAA,MAAAA,EAAmB,KAAMC,GAAmC,CACjEA,EAAU,OAAA,EAAS,KAAK,IAAMF,EAAA,CAAS,EACpC,MAAOO,GAAeD,EAAOC,CAAK,CAAC,CAAA,SAEjCA,EAAO,CACdD,EAAOC,CAAK,CAAA,CACd,CACD,CACH,CACA,SAASE,EAAyBC,EAAiC,CACjE,OAAO,IAAI,QAAQ,CAACV,EAASM,IAAW,OACtC,GAAIjB,EAAyB,CACpBiB,EAAA,IAAI,MAAM,kCAAkC,CAAC,EACpD,MAAA,CAGE,GAAA,EACKL,EAAA,OAAA,oBAAA,MAAAA,EAAmB,KAAMC,GAAmC,CACjEA,EAAU,gBAAgBQ,CAAO,EAAE,KAAK,IAAMV,GAAS,EACpD,MAAOO,GAAeD,EAAOC,CAAK,CAAC,CAAA,SAEjCA,EAAO,CACdD,EAAOC,CAAK,CAAA,CACd,CACD,CACH,CACA,SAASI,EAA4BC,EAAyC,CAC5E,OAAO,IAAI,QAAQ,CAACZ,EAASM,IAAW,OACtC,GAAIjB,EAAyB,CACpBiB,EAAA,IAAI,MAAM,kCAAkC,CAAC,EACpD,MAAA,CAGE,GAAA,EACKL,EAAA,OAAA,oBAAA,MAAAA,EAAmB,KAAMC,GAAmC,CACjEA,EAAU,mBAAmBU,CAAe,EAAE,KAAK,IAAMZ,GAAS,EAC/D,MAAOO,GAAeD,EAAOC,CAAK,CAAC,CAAA,SAEjCA,EAAO,CACdD,EAAOC,CAAK,CAAA,CACd,CACD,CACH,CACA,SAASM,EAAoBd,EAA4C,CACvE,OAAO,IAAI,QAAQ,CAACC,EAASM,IAAW,OACtC,GAAIjB,EAAyB,CACpBiB,EAAA,IAAI,MAAM,kCAAkC,CAAC,EACpD,MAAA,CAGE,GAAA,EACKL,EAAA,OAAA,oBAAA,MAAAA,EAAmB,KAAMC,GAAmC,CACjEA,EAAU,UAAU,WAAWH,CAAO,EAAE,KAAK,IAAMC,EAAS,CAAA,EACzD,MAAOO,GAAeD,EAAOC,CAAK,CAAC,CAAA,SAEjCA,EAAO,CACdD,EAAOC,CAAK,CAAA,CACd,CACD,CACH,CACA,SAASO,EAA8Bf,EAA4C,CACjF,OAAO,IAAI,QAAQ,CAACC,EAASM,IAAW,OACtC,GAAIjB,EAAyB,CACpBiB,EAAA,IAAI,MAAM,kCAAkC,CAAC,EACpD,MAAA,CAGE,GAAA,EACKL,EAAA,OAAA,oBAAA,MAAAA,EAAmB,KAAMC,GAAmC,CACjEA,EAAU,UAAU,qBAAqBH,CAAO,EAAE,KAAK,IAAMC,EAAS,CAAA,EACnE,MAAOO,GAAeD,EAAOC,CAAK,CAAC,CAAA,SAEjCA,EAAO,CACdD,EAAOC,CAAK,CAAA,CACd,CACD,CACH,CACA,SAASQ,EAAmBhB,EAA4C,CACtE,OAAO,IAAI,QAAQ,CAACC,EAASM,IAAW,OACtC,GAAIjB,EAAyB,CACpBiB,EAAA,IAAI,MAAM,kCAAkC,CAAC,EACpD,MAAA,CAGE,GAAA,EACKL,EAAA,OAAA,oBAAA,MAAAA,EAAmB,KAAMC,GAAmC,CACjEA,EAAU,UAAU,UAAUH,CAAO,EAAE,KAAK,IAAMC,EAAS,CAAA,EACxD,MAAOO,GAAeD,EAAOC,CAAK,CAAC,CAAA,SAEjCA,EAAO,CACdD,EAAOC,CAAK,CAAA,CACd,CACD,CACH,CACA,SAASS,EAAqBjB,EAA4C,CACxE,OAAO,IAAI,QAAQ,CAACC,EAASM,IAAW,OACtC,GAAIjB,EAAyB,CACpBiB,EAAA,IAAI,MAAM,kCAAkC,CAAC,EACpD,MAAA,CAGE,GAAA,EACKL,EAAA,OAAA,oBAAA,MAAAA,EAAmB,KAAMC,GAAmC,CACjEA,EAAU,UAAU,YAAYH,CAAO,EAAE,KAAK,IAAMC,EAAS,CAAA,EAC1D,MAAOO,GAAeD,EAAOC,CAAK,CAAC,CAAA,SAEjCA,EAAO,CACdD,EAAOC,CAAK,CAAA,CACd,CACD,CACH,CACA,SAASU,EAA2BlB,EAA4C,CAC9E,OAAO,IAAI,QAAQ,CAACC,EAASM,IAAW,OACtC,GAAIjB,EAAyB,CACpBiB,EAAA,IAAI,MAAM,kCAAkC,CAAC,EACpD,MAAA,CAGE,GAAA,EACKL,EAAA,OAAA,oBAAA,MAAAA,EAAmB,KAAMC,GAAmC,CACjEA,EAAU,UAAU,kBAAkBH,CAAO,EAAE,KAAK,IAAMC,EAAS,CAAA,EAChE,MAAOO,GAAeD,EAAOC,CAAK,CAAC,CAAA,SAEjCA,EAAO,CACdD,EAAOC,CAAK,CAAA,CACd,CACD,CACH,CACA,SAASW,EAA0BC,EAA2BC,EAA6C,QAElGnB,EAAA,OAAA,oBAAA,MAAAA,EAAmB,KAAMC,GAAmC,CACjEA,EAAU,UAAU,iBAAiBiB,EAAOC,CAAQ,CAAA,EAGxD,CACA,SAASC,EAA6BF,EAA2BC,EAA6C,QAErGnB,EAAA,OAAA,oBAAA,MAAAA,EAAmB,KAAMC,GAAmC,CACjEA,EAAU,UAAU,oBAAoBiB,EAAOC,CAAQ,CAAA,EAG3D,CACA,SAASE,EAA2BC,EAA4B,CAC9D,OAAO,IAAI,QAAQ,CAACvB,EAASM,IAAW,OACtC,GAAIjB,EAAyB,CACpBiB,EAAA,IAAI,MAAM,kCAAkC,CAAC,EACpD,MAAA,CAGE,GAAA,EACKL,EAAA,OAAA,oBAAA,MAAAA,EAAmB,KAAMC,GAAmC,CACjEA,EAAU,cAAc,cAAcqB,CAAG,EAAE,KAAK,IAAMvB,EAAS,CAAA,EAC5D,MAAOO,GAAeD,EAAOC,CAAK,CAAC,CAAA,SAEjCA,EAAO,CACdD,EAAOC,CAAK,CAAA,CACd,CACD,CACH,CACA,SAASiB,EAA6BC,EAA8B,CAClE,OAAO,IAAI,QAAQ,CAACzB,EAASM,IAAW,OACtC,GAAIjB,EAAyB,CACpBiB,EAAA,IAAI,MAAM,kCAAkC,CAAC,EACpD,MAAA,CAGE,GAAA,EACKL,EAAA,OAAA,oBAAA,MAAAA,EAAmB,KAAMC,GAAmC,CACjEA,EAAU,cAAc,gBAAgBuB,CAAK,EAAE,KAAK,IAAMzB,EAAS,CAAA,EAChE,MAAOO,GAAeD,EAAOC,CAAK,CAAC,CAAA,SAEjCA,EAAO,CACdD,EAAOC,CAAK,CAAA,CACd,CACD,CACH,CACA,SAASmB,GAAgD,CACvD,OAAO,IAAI,QAAQ,CAAC1B,EAASM,IAAW,OACtC,GAAIjB,EAAyB,CACpBiB,EAAA,IAAI,MAAM,kCAAkC,CAAC,EACpD,MAAA,CAGE,GAAA,EACKL,EAAA,OAAA,oBAAA,MAAAA,EAAmB,KAAMC,GAAmC,CACjEA,EAAU,cAAc,kBAAkB,EAAE,KAAK,IAAMF,GAAS,EAC7D,MAAOO,GAAeD,EAAOC,CAAK,CAAC,CAAA,SAEjCA,EAAO,CACdD,EAAOC,CAAK,CAAA,CACd,CACD,CACH,CACA,SAASoB,EAA+DR,EAAUC,EAA4D,QAErInB,EAAA,OAAA,oBAAA,MAAAA,EAAmB,KAAMC,GAAmC,CACjEA,EAAU,cAAc,iBAAiBiB,EAAOC,CAAQ,CAAA,EAG5D,CACA,SAASQ,EAAkET,EAAUC,EAA4D,QAExInB,EAAA,OAAA,oBAAA,MAAAA,EAAmB,KAAMC,GAAmC,CACjEA,EAAU,cAAc,oBAAoBiB,EAAOC,CAAQ,CAAA,EAG/D,CACA,SAASS,EAAmBC,EAAqBC,EAAuC,CACtF,OAAO,IAAI,QAAQ,CAAC/B,EAASM,IAAW,OACtC,GAAIjB,EAAyB,CACpBiB,EAAA,IAAI,MAAM,kCAAkC,CAAC,EACpD,MAAA,CAGE,GAAA,EACKL,EAAA,OAAA,oBAAA,MAAAA,EAAmB,KAAMC,GAAmC,CACjEA,EAAU,QAAQ,YAAY4B,EAAaC,CAAa,EAAE,KAAK,IAAM/B,EAAS,CAAA,EAC3E,MAAOO,GAAeD,EAAOC,CAAK,CAAC,CAAA,SAEjCA,EAAO,CACdD,EAAOC,CAAK,CAAA,CACd,CACD,CACH,CACA,SAASyB,EAAyBF,EAAoC,CACpE,OAAO,IAAI,QAAQ,CAAC9B,EAASM,IAAW,OACtC,GAAIjB,EAAyB,CACpBiB,EAAA,IAAI,MAAM,kCAAkC,CAAC,EACpD,MAAA,CAGE,GAAA,EACKL,EAAA,OAAA,oBAAA,MAAAA,EAAmB,KAAMC,GAAmC,CACjEA,EAAU,QAAQ,kBAAkB4B,CAAW,EAAE,KAAK,IAAM9B,EAAS,CAAA,EAClE,MAAOO,GAAeD,EAAOC,CAAK,CAAC,CAAA,SAEjCA,EAAO,CACdD,EAAOC,CAAK,CAAA,CACd,CACD,CACH,CACA,SAAS0B,EAAaC,EAAeC,EAAkB,QAE9ClC,EAAA,OAAA,oBAAA,MAAAA,EAAmB,KAAMC,GAAmC,CACjEA,EAAU,KAAK,SAASgC,EAAOC,CAAE,CAAA,EAGrC,CACA,SAASC,EAAeC,EAA0C,QAEzDpC,EAAA,OAAA,oBAAA,MAAAA,EAAmB,KAAMC,GAAmC,CACjEA,EAAU,KAAK,WAAWmC,CAAO,CAAA,EAGrC,CACA,SAASC,EAAgBJ,EAAqB,QAErCjC,EAAA,OAAA,oBAAA,MAAAA,EAAmB,KAAMC,GAAmC,CACjEA,EAAU,KAAK,YAAYgC,CAAK,CAAA,EAGpC,CACA,SAASK,EAAkBC,EAAwB,QAE1CvC,EAAA,OAAA,oBAAA,MAAAA,EAAmB,KAAMC,GAAmC,CACjEA,EAAU,KAAK,cAAcsC,CAAM,CAAA,EAGvC,CACA,SAASC,EAAaC,EAAqB,QAElCzC,EAAA,OAAA,oBAAA,MAAAA,EAAmB,KAAMC,GAAmC,CACjEA,EAAU,KAAK,SAASwC,CAAK,CAAA,EAGjC,CACA,SAASC,EAAgBD,EAAqB,QAErCzC,EAAA,OAAA,oBAAA,MAAAA,EAAmB,KAAMC,GAAmC,CACjEA,EAAU,KAAK,YAAYwC,CAAK,CAAA,EAGpC,CACA,SAASE,EAAWC,EAAyB,QAEpC5C,EAAA,OAAA,oBAAA,MAAAA,EAAmB,KAAMC,GAAmC,CACjEA,EAAU,KAAK,OAAO2C,CAAS,CAAA,EAGnC,CACA,SAASC,EAAcD,EAAyB,QAEvC5C,EAAA,OAAA,oBAAA,MAAAA,EAAmB,KAAMC,GAAmC,CACjEA,EAAU,KAAK,UAAU2C,CAAS,CAAA,EAGtC,CACA,SAASE,EAAWC,EAAaC,EAAqB,QAE7ChD,EAAA,OAAA,oBAAA,MAAAA,EAAmB,KAAMC,GAAmC,CACjEA,EAAU,KAAK,OAAO8C,EAAKC,CAAK,CAAA,EAGpC,CACA,SAASC,EAAYC,EAAuC,QAEnDlD,EAAA,OAAA,oBAAA,MAAAA,EAAmB,KAAMC,GAAmC,CACjEA,EAAU,KAAK,QAAQiD,CAAI,CAAA,EAG/B,CACA,SAASC,EAAcJ,EAAmB,QAEjC/C,EAAA,OAAA,oBAAA,MAAAA,EAAmB,KAAMC,GAAmC,CACjEA,EAAU,KAAK,UAAU8C,CAAG,CAAA,EAGhC,CACA,SAASK,EAAeC,EAAsB,QAErCrD,EAAA,OAAA,oBAAA,MAAAA,EAAmB,KAAMC,GAAmC,CACjEA,EAAU,KAAK,WAAWoD,CAAI,CAAA,EAGlC,CACA,SAASC,GAAyC,OAC5C,IAAAC,EACG,OAAAvD,EAAA,OAAA,oBAAA,MAAAA,EAAmB,KAAMC,GAAmC,CACxDA,EAAAA,EAAU,KAAK,QAAQ,CAAA,GAE3BsD,CACT,CACA,SAASC,EAAqBtC,EAAiBC,EAAmD,QAEzFnB,EAAA,OAAA,oBAAA,MAAAA,EAAmB,KAAMC,GAAmC,CACjEA,EAAU,KAAK,iBAAiBiB,EAAOC,CAAQ,CAAA,EAGnD,CACA,SAASsC,EAAwBvC,EAAiBC,EAAmD,QAE5FnB,EAAA,OAAA,oBAAA,MAAAA,EAAmB,KAAMC,GAAmC,CACjEA,EAAU,KAAK,oBAAoBiB,EAAOC,CAAQ,CAAA,EAGtD,CACA,SAASuC,EAAgBC,EAAwB,QAExC3D,EAAA,OAAA,oBAAA,MAAAA,EAAmB,KAAMC,GAAmC,CACjEA,EAAU,KAAK,YAAY0D,CAAQ,CAAA,EAGvC,CACA,SAASC,GAA0B,OAC7B,IAAAL,EACG,OAAAvD,EAAA,OAAA,oBAAA,MAAAA,EAAmB,KAAMC,GAAmC,CACxDA,EAAAA,EAAU,KAAK,YAAY,CAAA,GAE/BsD,CACT,CACA,SAASM,IAAuC,CAC9C,OAAO,IAAI,QAAQ,CAAC9D,EAASM,IAAW,OACtC,GAAIjB,EAAyB,CACpBiB,EAAA,IAAI,MAAM,kCAAkC,CAAC,EACpD,MAAA,CAGE,GAAA,EACKL,EAAA,OAAA,oBAAA,MAAAA,EAAmB,KAAMC,GAAmC,CACjEA,EAAU,KAAK,iBAAiB,MAAA,EAAQ,KAAK,IAAMF,EAAS,CAAA,EACzD,MAAOO,GAAeD,EAAOC,CAAK,CAAC,CAAA,SAEjCA,EAAO,CACdD,EAAOC,CAAK,CAAA,CACd,CACD,CACH,CACA,SAASwD,IAAwC,CAC/C,OAAO,IAAI,QAAQ,CAAC/D,EAASM,IAAW,OACtC,GAAIjB,EAAyB,CACpBiB,EAAA,IAAI,MAAM,kCAAkC,CAAC,EACpD,MAAA,CAGE,GAAA,EACKL,EAAA,OAAA,oBAAA,MAAAA,EAAmB,KAAMC,GAAmC,CACjEA,EAAU,KAAK,iBAAiB,OAAA,EAAS,KAAK,IAAMF,EAAS,CAAA,EAC1D,MAAOO,GAAeD,EAAOC,CAAK,CAAC,CAAA,SAEjCA,EAAO,CACdD,EAAOC,CAAK,CAAA,CACd,CACD,CACH,CACA,SAASyD,GAAiC7C,EAAiBC,EAA2D,QAE7GnB,EAAA,OAAA,oBAAA,MAAAA,EAAmB,KAAMC,GAAmC,CACjEA,EAAU,KAAK,iBAAiB,iBAAiBiB,EAAOC,CAAQ,CAAA,EAGpE,CACA,SAAS6C,GAAoC9C,EAAiBC,EAA2D,QAEhHnB,EAAA,OAAA,oBAAA,MAAAA,EAAmB,KAAMC,GAAmC,CACjEA,EAAU,KAAK,iBAAiB,oBAAoBiB,EAAOC,CAAQ,CAAA,EAGvE,CACA,SAAS8C,GAAiBC,EAAwB,QAEzClE,EAAA,OAAA,oBAAA,MAAAA,EAAmB,KAAMC,GAAmC,CACjEA,EAAU,MAAM,YAAYiE,CAAQ,CAAA,EAGxC,CACA,MAAMC,GAAwD,CAC7D,IAAI,IAAgC,WAAS,OAAAC,GAAAC,GAAArE,EAAA,OAAO,YAAP,YAAAA,EAAkB,OAAlB,YAAAqE,EAAwB,mBAAxB,YAAAD,EAA0C,EAAI,EAC3F,IAAI,OAAmC,WAAS,OAAAA,GAAAC,GAAArE,EAAA,OAAO,YAAP,YAAAA,EAAkB,OAAlB,YAAAqE,EAAwB,mBAAxB,YAAAD,EAA0C,KAAO,EACjG,IAAI,SAA+B,WAAS,OAAAA,GAAAC,GAAArE,EAAA,OAAO,YAAP,YAAAA,EAAkB,OAAlB,YAAAqE,EAAwB,mBAAxB,YAAAD,EAA0C,OAAS,EAC/F,MAAOP,GACP,OAAQC,GACR,iBAAkBC,GAClB,oBAAqBC,EACtB,EAEMM,GAAgC,CACrC,IAAI,aAAkC,SAAS,OAAAD,GAAArE,EAAA,OAAO,YAAP,YAAAA,EAAkB,OAAlB,YAAAqE,EAAwB,WAAa,EACpF,IAAI,YAAiC,SAAS,OAAAA,GAAArE,EAAA,OAAO,YAAP,YAAAA,EAAkB,OAAlB,YAAAqE,EAAwB,UAAY,EAClF,SAAUrC,EACV,WAAYG,EACZ,YAAaE,EACb,cAAeC,EACf,SAAUE,EACV,YAAaE,EACb,OAAQC,EACR,UAAWE,EACX,OAAQC,EACR,QAASG,EACT,UAAWE,EACX,WAAYC,EACZ,QAASE,EACT,iBAAkBE,EAClB,oBAAqBC,EACrB,YAAaC,EACb,YAAaE,EACb,iBAAkBO,EACnB,EAEMI,GAAsC,CAC3C,YAAa3C,EACb,kBAAmBG,CACpB,EAEMyC,GAAkC,CACvC,YAAaP,EACd,EAEMQ,GAA0C,CAC/C,WAAY7D,EACZ,qBAAsBC,EACtB,UAAWC,EACX,YAAaC,EACb,kBAAmBC,EACnB,iBAAkBC,EAClB,oBAAqBG,CACtB,EAEMsD,GAAkD,CACvD,IAAI,kBAA2C,SAAS,QAAAL,GAAArE,EAAA,OAAO,YAAP,YAAAA,EAAkB,gBAAlB,YAAAqE,EAAiC,mBAAoB,SAAW,EACxH,IAAI,YAAsB,SAAS,QAAAA,GAAArE,EAAA,OAAO,YAAP,YAAAA,EAAkB,gBAAlB,YAAAqE,EAAiC,aAAc,EAAO,EACzF,cAAehD,EACf,gBAAiBE,EACjB,gBAAA3B,EACA,kBAAmB6B,EACnB,iBAAkBC,EAClB,oBAAqBC,CACtB,EAEMgD,GAA0C,CAC/C,MAAOzE,EACP,OAAQK,EACR,KAAAV,EACA,gBAAiBW,EACjB,mBAAoBE,EACpB,UAAW+D,GACX,cAAeC,GACf,QAASH,GACT,KAAMD,GACN,MAAOE,EACR,EAEMvE,GAAY0E"}
package/index.ts CHANGED
@@ -110,16 +110,16 @@ const init = (options: IInitObject): Promise<void> => {
110
110
  });
111
111
  };
112
112
 
113
- interface AutoPromptOptions { force?: boolean; forceSlidedownOverNative?: boolean; slidedownPromptOptions?: IOneSignalAutoPromptOptions; }
114
- interface IOneSignalAutoPromptOptions { force?: boolean; forceSlidedownOverNative?: boolean; isInUpdateMode?: boolean; categoryOptions?: IOneSignalCategories; }
115
- interface IOneSignalCategories { positiveUpdateButton: string; negativeUpdateButton: string; savingButtonText: string; errorButtonText: string; updateMessage: string; tags: IOneSignalTagCategory[]; }
116
- interface IOneSignalTagCategory { tag: string; label: string; checked?: boolean; }
117
- type PushSubscriptionNamespaceProperties = { id: string | null | undefined; token: string | null | undefined; optedIn: boolean; };
118
- type SubscriptionChangeEvent = { previous: PushSubscriptionNamespaceProperties; current: PushSubscriptionNamespaceProperties; };
119
- type NotificationEventName = 'click' | 'foregroundWillDisplay' | 'dismiss' | 'permissionChange' | 'permissionPromptDisplay';
120
- type SlidedownEventName = 'slidedownShown';
121
- type OneSignalDeferredLoadedCallback = (onesignal: IOneSignalOneSignal) => void;
122
- interface IOSNotification {
113
+ export interface AutoPromptOptions { force?: boolean; forceSlidedownOverNative?: boolean; slidedownPromptOptions?: IOneSignalAutoPromptOptions; }
114
+ export interface IOneSignalAutoPromptOptions { force?: boolean; forceSlidedownOverNative?: boolean; isInUpdateMode?: boolean; categoryOptions?: IOneSignalCategories; }
115
+ export interface IOneSignalCategories { positiveUpdateButton: string; negativeUpdateButton: string; savingButtonText: string; errorButtonText: string; updateMessage: string; tags: IOneSignalTagCategory[]; }
116
+ export interface IOneSignalTagCategory { tag: string; label: string; checked?: boolean; }
117
+ export type PushSubscriptionNamespaceProperties = { id: string | null | undefined; token: string | null | undefined; optedIn: boolean; };
118
+ export type SubscriptionChangeEvent = { previous: PushSubscriptionNamespaceProperties; current: PushSubscriptionNamespaceProperties; };
119
+ export type NotificationEventName = 'click' | 'foregroundWillDisplay' | 'dismiss' | 'permissionChange' | 'permissionPromptDisplay';
120
+ export type SlidedownEventName = 'slidedownShown';
121
+ export type OneSignalDeferredLoadedCallback = (onesignal: IOneSignalOneSignal) => void;
122
+ export interface IOSNotification {
123
123
  /**
124
124
  * The OneSignal notification id;
125
125
  * - Primary id on OneSignal's REST API and dashboard
@@ -181,7 +181,7 @@ interface IOSNotification {
181
181
  readonly confirmDelivery: boolean;
182
182
  }
183
183
 
184
- interface IOSNotificationActionButton {
184
+ export interface IOSNotificationActionButton {
185
185
  /**
186
186
  * Any unique identifier to represent which button was clicked. This is typically passed back to the service worker
187
187
  * and host page through events to identify which button was clicked.
@@ -202,12 +202,12 @@ interface IOSNotificationActionButton {
202
202
  readonly launchURL?: string;
203
203
  }
204
204
 
205
- interface NotificationClickResult {
205
+ export interface NotificationClickResult {
206
206
  readonly actionId?: string;
207
207
  readonly url?: string;
208
208
  }
209
209
 
210
- type NotificationEventTypeMap = {
210
+ export type NotificationEventTypeMap = {
211
211
  'click': NotificationClickEvent;
212
212
  'foregroundWillDisplay': NotificationForegroundWillDisplayEvent;
213
213
  'dismiss': NotificationDismissEvent;
@@ -215,37 +215,219 @@ type NotificationEventTypeMap = {
215
215
  'permissionPromptDisplay': void;
216
216
  };
217
217
 
218
- interface NotificationForegroundWillDisplayEvent {
218
+ export interface NotificationForegroundWillDisplayEvent {
219
219
  readonly notification: IOSNotification;
220
220
  preventDefault(): void;
221
221
  }
222
222
 
223
- interface NotificationDismissEvent {
223
+ export interface NotificationDismissEvent {
224
224
  notification: IOSNotification;
225
225
  }
226
226
 
227
- interface NotificationClickEvent {
227
+ export interface NotificationClickEvent {
228
228
  readonly notification: IOSNotification;
229
229
  readonly result: NotificationClickResult;
230
230
  }
231
231
 
232
- type UserChangeEvent = {
232
+ export type UserChangeEvent = {
233
233
  current: UserNamespaceProperties;
234
234
  };
235
- type UserNamespaceProperties = {
235
+ export type UserNamespaceProperties = {
236
236
  onesignalId: string | undefined;
237
237
  externalId: string | undefined;
238
238
  };
239
239
 
240
- interface IInitObject {
240
+ export interface IInitObject {
241
241
  appId: string;
242
242
  subdomainName?: string;
243
243
  requiresUserPrivacyConsent?: boolean;
244
- promptOptions?: object;
245
- welcomeNotification?: object;
246
- notifyButton?: object;
244
+ promptOptions?: {
245
+ slidedown: {
246
+ prompts: {
247
+ /**
248
+ * Whether to automatically display the prompt.
249
+ * `true` will display the prompt based on the delay options.
250
+ * `false` will prevent the prompt from displaying until the Slidedowns methods are used.
251
+ */
252
+ autoPrompt: boolean;
253
+
254
+ /**
255
+ * Only available for type: category. Up to 10 categories.
256
+ * @example
257
+ * categories: [{ tag: 'local_news', label: 'Local News' }] // The user will be tagged with local_news but will see "Local News" in the prompt.
258
+ */
259
+ categories: {
260
+ /** Should identify the action. */
261
+ tag: string;
262
+
263
+ /** What the user will see. */
264
+ label: string;
265
+ }[];
266
+
267
+ /**
268
+ * The delay options for the prompt.
269
+ * @example delay: { pageViews: 3, timeDelay: 20 } // The user will not be shown the prompt until 20 seconds after the 3rd page view.
270
+ */
271
+ delay: {
272
+ /** The number of pages a user needs to visit before the prompt is displayed. */
273
+ pageViews?: number;
274
+
275
+ /** The number of seconds a user needs to wait before the prompt is displayed.Both options must be satisfied for the prompt to display */
276
+ timeDelay?: number;
277
+ };
278
+
279
+ /**
280
+ * The text to display in the prompt.
281
+ */
282
+ text?: {
283
+ /** The callout asking the user to opt-in. Up to 90 characters. */
284
+ actionMessage?: string;
285
+
286
+ /** Triggers the opt-in. Up to 15 characters. */
287
+ acceptButton?: string;
288
+
289
+ /** Cancels opt-in. Up to 15 characters. */
290
+ cancelMessage?: string;
291
+
292
+ /** The message of the confirmation prompt displayed after the email and/or phone number is provided. Up to 90 characters. */
293
+ confirmMessage?: string;
294
+
295
+ /** Identifies the email text field. Up to 15 characters. */
296
+ emailLabel?: string;
297
+
298
+ /** Cancels the category update. Up to 15 characters. */
299
+ negativeUpdateButton?: string;
300
+
301
+ /** Saves the updated category tags. Up to 15 characters. */
302
+ positiveUpdateButton?: string;
303
+
304
+ /** Identifies the phone number text field. Up to 15 characters. */
305
+ smsLabel?: string;
306
+
307
+ /** A different message shown to subscribers presented the prompt again to update categories. Up to 90 characters. */
308
+ updateMessage?: string;
309
+ };
310
+
311
+ /**
312
+ * The type of prompt to display.
313
+ * `push` which is the Slide Prompt without categories.
314
+ * `category` which is the Slide Prompt with categories.
315
+ * `sms` only asks for phone number.
316
+ * `email` only asks for email address.
317
+ * `smsAndEmail` asks for both phone number and email address.
318
+ */
319
+ type: 'push' | 'category' | 'sms' | 'email' | 'smsAndEmail';
320
+ }[];
321
+ };
322
+ };
323
+ welcomeNotification?: {
324
+ /**
325
+ * Disables sending a welcome notification to new site visitors. If you want to disable welcome notifications, this is the only option you need.
326
+ */
327
+ disabled?: boolean;
328
+
329
+ /**
330
+ * The welcome notification's message. You can localize this to your own language.
331
+ * If left blank or set to blank, the default of 'Thanks for subscribing!' will be used.
332
+ */
333
+ message: string;
334
+
335
+ /**
336
+ * The welcome notification's title. You can localize this to your own language. If not set, or left blank, the site's title will be used.
337
+ * Set to one space ' ' to clear the title, although this is not recommended.
338
+ */
339
+ title?: string;
340
+
341
+ /**
342
+ * By default, clicking the welcome notification does not open any link.
343
+ * This is recommended because the user has just visited your site and subscribed.
344
+ */
345
+ url: string;
346
+ };
347
+
348
+ /**
349
+ * Will enable customization of the notify/subscription bell button.
350
+ */
351
+ notifyButton?: {
352
+ /**
353
+ * A function you define that returns true to show the Subscription Bell, or false to hide it.
354
+ * Typically used the hide the Subscription Bell after the user is subscribed.
355
+ * This function is not re-evaluated on every state change; this function is only evaluated once when the Subscription Bell begins to show.
356
+ */
357
+ displayPredicate?: () => boolean | Promise<boolean>;
358
+
359
+ /**
360
+ * Enable the Subscription Bell. The Subscription Bell is otherwise disabled by default.
361
+ */
362
+ enable?: boolean;
363
+
364
+ /** Specify CSS-valid pixel offsets using bottom, left, and right. */
365
+ offset?: { bottom: string; left: string; right: string };
366
+
367
+ /**
368
+ * If `true`, the Subscription Bell will display an icon that there is 1 unread message.
369
+ * When hovering over the Subscription Bell, the user will see custom text set by message.prenotify.
370
+ */
371
+ prenotify: boolean;
372
+
373
+ /** Either `bottom-left` or `bottom-right`. The Subscription Bell will be fixed at this location on your page. */
374
+ position?: 'bottom-left' | 'bottom-right';
375
+
376
+ /** Set `false` to hide the 'Powered by OneSignal' text in the Subscription Bell dialog popup. */
377
+ showCredit: boolean;
378
+
379
+ /**
380
+ * The Subscription Bell will initially appear at one of these sizes, and then shrink down to size `small` after the user subscribes.
381
+ */
382
+ size?: 'small' | 'medium' | 'large';
383
+
384
+ /** Customize the Subscription Bell text. */
385
+ text: {
386
+ 'dialog.blocked.message': string;
387
+ 'dialog.blocked.title': string;
388
+ 'dialog.main.button.subscribe': string;
389
+ 'dialog.main.button.unsubscribe': string;
390
+ 'dialog.main.title': string;
391
+ 'message.action.resubscribed': string;
392
+ 'message.action.subscribed': string;
393
+ 'message.action.subscribing': string;
394
+ 'message.action.unsubscribed': string;
395
+ 'message.prenotify': string;
396
+ 'tip.state.blocked': string;
397
+ 'tip.state.subscribed': string;
398
+ 'tip.state.unsubscribed': string;
399
+ };
400
+ };
401
+
247
402
  persistNotification?: boolean;
248
- webhooks?: object;
403
+ webhooks?: {
404
+ /**
405
+ * Enable this setting only if your server has CORS enabled and supports non-simple CORS requests.
406
+ * If this setting is disabled, your webhook will not need CORS to receive data, but it will not receive the custom headers.
407
+ * The simplest option is to leave it disabled.
408
+ * @default false
409
+ */
410
+ cors: boolean;
411
+
412
+ /**
413
+ * This event occurs after a notification is clicked.
414
+ * @example https://site.com/hook
415
+ */
416
+ 'notification.clicked'?: string;
417
+
418
+ /**
419
+ * This event occurs after a notification is intentionally dismissed by the user (clicking the notification body or one of the notification action buttons does not trigger the dismissed webhook),
420
+ * after a group of notifications are all dismissed (with this notification as part of that group), or after a notification expires on its own time and disappears. This event is supported on Chrome only.
421
+ * @example https://site.com/hook
422
+ */
423
+ 'notification.dismissed'?: string;
424
+
425
+ /**
426
+ * This event occurs after a notification is displayed.
427
+ * @example https://site.com/hook
428
+ */
429
+ 'notification.willDisplay'?: string;
430
+ };
249
431
  autoResubscribe?: boolean;
250
432
  autoRegister?: boolean;
251
433
  notificationClickHandlerMatch?: string;
@@ -259,7 +441,7 @@ interface IInitObject {
259
441
  [key: string]: any;
260
442
  }
261
443
 
262
- interface IOneSignalOneSignal {
444
+ export interface IOneSignalOneSignal {
263
445
  Slidedown: IOneSignalSlidedown;
264
446
  Notifications: IOneSignalNotifications;
265
447
  Session: IOneSignalSession;
@@ -271,7 +453,7 @@ interface IOneSignalOneSignal {
271
453
  setConsentGiven(consent: boolean): Promise<void>;
272
454
  setConsentRequired(requiresConsent: boolean): Promise<void>;
273
455
  }
274
- interface IOneSignalNotifications {
456
+ export interface IOneSignalNotifications {
275
457
  permissionNative: NotificationPermission;
276
458
  permission: boolean;
277
459
  setDefaultUrl(url: string): Promise<void>;
@@ -281,7 +463,7 @@ interface IOneSignalNotifications {
281
463
  addEventListener<K extends NotificationEventName>(event: K, listener: (obj: NotificationEventTypeMap[K]) => void): void;
282
464
  removeEventListener<K extends NotificationEventName>(event: K, listener: (obj: NotificationEventTypeMap[K]) => void): void;
283
465
  }
284
- interface IOneSignalSlidedown {
466
+ export interface IOneSignalSlidedown {
285
467
  promptPush(options?: AutoPromptOptions): Promise<void>;
286
468
  promptPushCategories(options?: AutoPromptOptions): Promise<void>;
287
469
  promptSms(options?: AutoPromptOptions): Promise<void>;
@@ -290,14 +472,14 @@ interface IOneSignalSlidedown {
290
472
  addEventListener(event: SlidedownEventName, listener: (wasShown: boolean) => void): void;
291
473
  removeEventListener(event: SlidedownEventName, listener: (wasShown: boolean) => void): void;
292
474
  }
293
- interface IOneSignalDebug {
475
+ export interface IOneSignalDebug {
294
476
  setLogLevel(logLevel: string): void;
295
477
  }
296
- interface IOneSignalSession {
478
+ export interface IOneSignalSession {
297
479
  sendOutcome(outcomeName: string, outcomeWeight?: number): Promise<void>;
298
480
  sendUniqueOutcome(outcomeName: string): Promise<void>;
299
481
  }
300
- interface IOneSignalUser {
482
+ export interface IOneSignalUser {
301
483
  onesignalId: string | undefined;
302
484
  externalId: string | undefined;
303
485
  PushSubscription: IOneSignalPushSubscription;
@@ -319,7 +501,7 @@ interface IOneSignalUser {
319
501
  setLanguage(language: string): void;
320
502
  getLanguage(): string;
321
503
  }
322
- interface IOneSignalPushSubscription {
504
+ export interface IOneSignalPushSubscription {
323
505
  id: string | null | undefined;
324
506
  token: string | null | undefined;
325
507
  optedIn: boolean | undefined;