react-onesignal 3.0.1 → 3.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.cjs +40 -0
- package/.github/workflows/release.yml +40 -0
- package/.releaserc.json +133 -0
- package/CHANGELOG.md +15 -0
- package/README.md +83 -62
- package/dist/index.d.ts +402 -228
- package/dist/index.es.js +529 -552
- package/dist/index.es.js.map +1 -1
- package/dist/index.js +1 -554
- package/dist/index.js.map +1 -1
- package/index.ts +378 -136
- package/package.json +30 -55
- package/tsconfig.json +2 -3
- package/vite.config.ts +20 -0
- package/.eslintrc.js +0 -51
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
|
|
@@ -161,7 +161,7 @@ interface IOSNotification {
|
|
|
161
161
|
* If this value is the same as existing notification, it will replace it
|
|
162
162
|
* Can be set when creating the notification with "Web Push Topic" on the dashboard
|
|
163
163
|
* or web_push_topic from the REST API.
|
|
164
|
-
|
|
164
|
+
*/
|
|
165
165
|
readonly topic?: string;
|
|
166
166
|
|
|
167
167
|
/**
|
|
@@ -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,56 +202,246 @@ 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;
|
|
214
214
|
'permissionChange': boolean;
|
|
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
|
+
export type UserChangeEvent = {
|
|
233
|
+
current: UserNamespaceProperties;
|
|
234
|
+
};
|
|
235
|
+
export type UserNamespaceProperties = {
|
|
236
|
+
onesignalId: string | undefined;
|
|
237
|
+
externalId: string | undefined;
|
|
238
|
+
};
|
|
232
239
|
|
|
233
|
-
interface IInitObject {
|
|
240
|
+
export interface IInitObject {
|
|
234
241
|
appId: string;
|
|
235
242
|
subdomainName?: string;
|
|
236
243
|
requiresUserPrivacyConsent?: boolean;
|
|
237
|
-
promptOptions?:
|
|
238
|
-
|
|
239
|
-
|
|
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
|
+
|
|
240
402
|
persistNotification?: boolean;
|
|
241
|
-
webhooks?:
|
|
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
|
+
};
|
|
242
431
|
autoResubscribe?: boolean;
|
|
243
432
|
autoRegister?: boolean;
|
|
244
433
|
notificationClickHandlerMatch?: string;
|
|
245
434
|
notificationClickHandlerAction?: string;
|
|
435
|
+
path?: string;
|
|
246
436
|
serviceWorkerParam?: { scope: string };
|
|
247
437
|
serviceWorkerPath?: string;
|
|
438
|
+
serviceWorkerOverrideForTypical?: boolean;
|
|
248
439
|
serviceWorkerUpdaterPath?: string;
|
|
249
|
-
path?: string;
|
|
250
440
|
allowLocalhostAsSecureOrigin?: boolean;
|
|
251
441
|
[key: string]: any;
|
|
252
442
|
}
|
|
253
443
|
|
|
254
|
-
interface IOneSignalOneSignal {
|
|
444
|
+
export interface IOneSignalOneSignal {
|
|
255
445
|
Slidedown: IOneSignalSlidedown;
|
|
256
446
|
Notifications: IOneSignalNotifications;
|
|
257
447
|
Session: IOneSignalSession;
|
|
@@ -263,7 +453,7 @@ interface IOneSignalOneSignal {
|
|
|
263
453
|
setConsentGiven(consent: boolean): Promise<void>;
|
|
264
454
|
setConsentRequired(requiresConsent: boolean): Promise<void>;
|
|
265
455
|
}
|
|
266
|
-
interface IOneSignalNotifications {
|
|
456
|
+
export interface IOneSignalNotifications {
|
|
267
457
|
permissionNative: NotificationPermission;
|
|
268
458
|
permission: boolean;
|
|
269
459
|
setDefaultUrl(url: string): Promise<void>;
|
|
@@ -273,7 +463,7 @@ interface IOneSignalNotifications {
|
|
|
273
463
|
addEventListener<K extends NotificationEventName>(event: K, listener: (obj: NotificationEventTypeMap[K]) => void): void;
|
|
274
464
|
removeEventListener<K extends NotificationEventName>(event: K, listener: (obj: NotificationEventTypeMap[K]) => void): void;
|
|
275
465
|
}
|
|
276
|
-
interface IOneSignalSlidedown {
|
|
466
|
+
export interface IOneSignalSlidedown {
|
|
277
467
|
promptPush(options?: AutoPromptOptions): Promise<void>;
|
|
278
468
|
promptPushCategories(options?: AutoPromptOptions): Promise<void>;
|
|
279
469
|
promptSms(options?: AutoPromptOptions): Promise<void>;
|
|
@@ -282,14 +472,16 @@ interface IOneSignalSlidedown {
|
|
|
282
472
|
addEventListener(event: SlidedownEventName, listener: (wasShown: boolean) => void): void;
|
|
283
473
|
removeEventListener(event: SlidedownEventName, listener: (wasShown: boolean) => void): void;
|
|
284
474
|
}
|
|
285
|
-
interface IOneSignalDebug {
|
|
475
|
+
export interface IOneSignalDebug {
|
|
286
476
|
setLogLevel(logLevel: string): void;
|
|
287
477
|
}
|
|
288
|
-
interface IOneSignalSession {
|
|
478
|
+
export interface IOneSignalSession {
|
|
289
479
|
sendOutcome(outcomeName: string, outcomeWeight?: number): Promise<void>;
|
|
290
480
|
sendUniqueOutcome(outcomeName: string): Promise<void>;
|
|
291
481
|
}
|
|
292
|
-
interface IOneSignalUser {
|
|
482
|
+
export interface IOneSignalUser {
|
|
483
|
+
onesignalId: string | undefined;
|
|
484
|
+
externalId: string | undefined;
|
|
293
485
|
PushSubscription: IOneSignalPushSubscription;
|
|
294
486
|
addAlias(label: string, id: string): void;
|
|
295
487
|
addAliases(aliases: { [key: string]: string }): void;
|
|
@@ -303,8 +495,13 @@ interface IOneSignalUser {
|
|
|
303
495
|
addTags(tags: { [key: string]: string }): void;
|
|
304
496
|
removeTag(key: string): void;
|
|
305
497
|
removeTags(keys: string[]): void;
|
|
498
|
+
getTags(): { [key: string]: string };
|
|
499
|
+
addEventListener(event: 'change', listener: (change: UserChangeEvent) => void): void;
|
|
500
|
+
removeEventListener(event: 'change', listener: (change: UserChangeEvent) => void): void;
|
|
501
|
+
setLanguage(language: string): void;
|
|
502
|
+
getLanguage(): string;
|
|
306
503
|
}
|
|
307
|
-
interface IOneSignalPushSubscription {
|
|
504
|
+
export interface IOneSignalPushSubscription {
|
|
308
505
|
id: string | null | undefined;
|
|
309
506
|
token: string | null | undefined;
|
|
310
507
|
optedIn: boolean | undefined;
|
|
@@ -313,17 +510,16 @@ interface IOneSignalPushSubscription {
|
|
|
313
510
|
addEventListener(event: 'change', listener: (change: SubscriptionChangeEvent) => void): void;
|
|
314
511
|
removeEventListener(event: 'change', listener: (change: SubscriptionChangeEvent) => void): void;
|
|
315
512
|
}
|
|
316
|
-
|
|
317
513
|
function oneSignalLogin(externalId: string, jwtToken?: string): Promise<void> {
|
|
318
514
|
return new Promise((resolve, reject) => {
|
|
319
515
|
if (isOneSignalScriptFailed) {
|
|
320
|
-
reject();
|
|
516
|
+
reject(new Error('OneSignal script failed to load.'));
|
|
517
|
+
return;
|
|
321
518
|
}
|
|
322
519
|
|
|
323
520
|
try {
|
|
324
521
|
window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {
|
|
325
|
-
OneSignal.login(externalId, jwtToken)
|
|
326
|
-
.then((value: any) => resolve(value))
|
|
522
|
+
OneSignal.login(externalId, jwtToken).then(() => resolve())
|
|
327
523
|
.catch((error: any) => reject(error));
|
|
328
524
|
});
|
|
329
525
|
} catch (error) {
|
|
@@ -331,17 +527,16 @@ function oneSignalLogin(externalId: string, jwtToken?: string): Promise<void> {
|
|
|
331
527
|
}
|
|
332
528
|
});
|
|
333
529
|
}
|
|
334
|
-
|
|
335
530
|
function oneSignalLogout(): Promise<void> {
|
|
336
531
|
return new Promise((resolve, reject) => {
|
|
337
532
|
if (isOneSignalScriptFailed) {
|
|
338
|
-
reject();
|
|
533
|
+
reject(new Error('OneSignal script failed to load.'));
|
|
534
|
+
return;
|
|
339
535
|
}
|
|
340
536
|
|
|
341
537
|
try {
|
|
342
538
|
window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {
|
|
343
|
-
OneSignal.logout()
|
|
344
|
-
.then((value: any) => resolve(value))
|
|
539
|
+
OneSignal.logout().then(() => resolve())
|
|
345
540
|
.catch((error: any) => reject(error));
|
|
346
541
|
});
|
|
347
542
|
} catch (error) {
|
|
@@ -349,17 +544,16 @@ function oneSignalLogout(): Promise<void> {
|
|
|
349
544
|
}
|
|
350
545
|
});
|
|
351
546
|
}
|
|
352
|
-
|
|
353
547
|
function oneSignalSetConsentGiven(consent: boolean): Promise<void> {
|
|
354
548
|
return new Promise((resolve, reject) => {
|
|
355
549
|
if (isOneSignalScriptFailed) {
|
|
356
|
-
reject();
|
|
550
|
+
reject(new Error('OneSignal script failed to load.'));
|
|
551
|
+
return;
|
|
357
552
|
}
|
|
358
553
|
|
|
359
554
|
try {
|
|
360
555
|
window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {
|
|
361
|
-
OneSignal.setConsentGiven(consent)
|
|
362
|
-
.then((value: any) => resolve(value))
|
|
556
|
+
OneSignal.setConsentGiven(consent).then(() => resolve())
|
|
363
557
|
.catch((error: any) => reject(error));
|
|
364
558
|
});
|
|
365
559
|
} catch (error) {
|
|
@@ -367,17 +561,16 @@ function oneSignalSetConsentGiven(consent: boolean): Promise<void> {
|
|
|
367
561
|
}
|
|
368
562
|
});
|
|
369
563
|
}
|
|
370
|
-
|
|
371
564
|
function oneSignalSetConsentRequired(requiresConsent: boolean): Promise<void> {
|
|
372
565
|
return new Promise((resolve, reject) => {
|
|
373
566
|
if (isOneSignalScriptFailed) {
|
|
374
|
-
reject();
|
|
567
|
+
reject(new Error('OneSignal script failed to load.'));
|
|
568
|
+
return;
|
|
375
569
|
}
|
|
376
570
|
|
|
377
571
|
try {
|
|
378
572
|
window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {
|
|
379
|
-
OneSignal.setConsentRequired(requiresConsent)
|
|
380
|
-
.then((value: any) => resolve(value))
|
|
573
|
+
OneSignal.setConsentRequired(requiresConsent).then(() => resolve())
|
|
381
574
|
.catch((error: any) => reject(error));
|
|
382
575
|
});
|
|
383
576
|
} catch (error) {
|
|
@@ -385,17 +578,16 @@ function oneSignalSetConsentRequired(requiresConsent: boolean): Promise<void> {
|
|
|
385
578
|
}
|
|
386
579
|
});
|
|
387
580
|
}
|
|
388
|
-
|
|
389
581
|
function slidedownPromptPush(options?: AutoPromptOptions): Promise<void> {
|
|
390
582
|
return new Promise((resolve, reject) => {
|
|
391
583
|
if (isOneSignalScriptFailed) {
|
|
392
|
-
reject();
|
|
584
|
+
reject(new Error('OneSignal script failed to load.'));
|
|
585
|
+
return;
|
|
393
586
|
}
|
|
394
587
|
|
|
395
588
|
try {
|
|
396
589
|
window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {
|
|
397
|
-
OneSignal.Slidedown.promptPush(options)
|
|
398
|
-
.then((value: any) => resolve(value))
|
|
590
|
+
OneSignal.Slidedown.promptPush(options).then(() => resolve())
|
|
399
591
|
.catch((error: any) => reject(error));
|
|
400
592
|
});
|
|
401
593
|
} catch (error) {
|
|
@@ -403,17 +595,16 @@ function slidedownPromptPush(options?: AutoPromptOptions): Promise<void> {
|
|
|
403
595
|
}
|
|
404
596
|
});
|
|
405
597
|
}
|
|
406
|
-
|
|
407
598
|
function slidedownPromptPushCategories(options?: AutoPromptOptions): Promise<void> {
|
|
408
599
|
return new Promise((resolve, reject) => {
|
|
409
600
|
if (isOneSignalScriptFailed) {
|
|
410
|
-
reject();
|
|
601
|
+
reject(new Error('OneSignal script failed to load.'));
|
|
602
|
+
return;
|
|
411
603
|
}
|
|
412
604
|
|
|
413
605
|
try {
|
|
414
606
|
window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {
|
|
415
|
-
OneSignal.Slidedown.promptPushCategories(options)
|
|
416
|
-
.then((value: any) => resolve(value))
|
|
607
|
+
OneSignal.Slidedown.promptPushCategories(options).then(() => resolve())
|
|
417
608
|
.catch((error: any) => reject(error));
|
|
418
609
|
});
|
|
419
610
|
} catch (error) {
|
|
@@ -421,17 +612,16 @@ function slidedownPromptPushCategories(options?: AutoPromptOptions): Promise<voi
|
|
|
421
612
|
}
|
|
422
613
|
});
|
|
423
614
|
}
|
|
424
|
-
|
|
425
615
|
function slidedownPromptSms(options?: AutoPromptOptions): Promise<void> {
|
|
426
616
|
return new Promise((resolve, reject) => {
|
|
427
617
|
if (isOneSignalScriptFailed) {
|
|
428
|
-
reject();
|
|
618
|
+
reject(new Error('OneSignal script failed to load.'));
|
|
619
|
+
return;
|
|
429
620
|
}
|
|
430
621
|
|
|
431
622
|
try {
|
|
432
623
|
window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {
|
|
433
|
-
OneSignal.Slidedown.promptSms(options)
|
|
434
|
-
.then((value: any) => resolve(value))
|
|
624
|
+
OneSignal.Slidedown.promptSms(options).then(() => resolve())
|
|
435
625
|
.catch((error: any) => reject(error));
|
|
436
626
|
});
|
|
437
627
|
} catch (error) {
|
|
@@ -439,17 +629,16 @@ function slidedownPromptSms(options?: AutoPromptOptions): Promise<void> {
|
|
|
439
629
|
}
|
|
440
630
|
});
|
|
441
631
|
}
|
|
442
|
-
|
|
443
632
|
function slidedownPromptEmail(options?: AutoPromptOptions): Promise<void> {
|
|
444
633
|
return new Promise((resolve, reject) => {
|
|
445
634
|
if (isOneSignalScriptFailed) {
|
|
446
|
-
reject();
|
|
635
|
+
reject(new Error('OneSignal script failed to load.'));
|
|
636
|
+
return;
|
|
447
637
|
}
|
|
448
638
|
|
|
449
639
|
try {
|
|
450
640
|
window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {
|
|
451
|
-
OneSignal.Slidedown.promptEmail(options)
|
|
452
|
-
.then((value: any) => resolve(value))
|
|
641
|
+
OneSignal.Slidedown.promptEmail(options).then(() => resolve())
|
|
453
642
|
.catch((error: any) => reject(error));
|
|
454
643
|
});
|
|
455
644
|
} catch (error) {
|
|
@@ -457,17 +646,16 @@ function slidedownPromptEmail(options?: AutoPromptOptions): Promise<void> {
|
|
|
457
646
|
}
|
|
458
647
|
});
|
|
459
648
|
}
|
|
460
|
-
|
|
461
649
|
function slidedownPromptSmsAndEmail(options?: AutoPromptOptions): Promise<void> {
|
|
462
650
|
return new Promise((resolve, reject) => {
|
|
463
651
|
if (isOneSignalScriptFailed) {
|
|
464
|
-
reject();
|
|
652
|
+
reject(new Error('OneSignal script failed to load.'));
|
|
653
|
+
return;
|
|
465
654
|
}
|
|
466
655
|
|
|
467
656
|
try {
|
|
468
657
|
window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {
|
|
469
|
-
OneSignal.Slidedown.promptSmsAndEmail(options)
|
|
470
|
-
.then((value: any) => resolve(value))
|
|
658
|
+
OneSignal.Slidedown.promptSmsAndEmail(options).then(() => resolve())
|
|
471
659
|
.catch((error: any) => reject(error));
|
|
472
660
|
});
|
|
473
661
|
} catch (error) {
|
|
@@ -475,29 +663,30 @@ function slidedownPromptSmsAndEmail(options?: AutoPromptOptions): Promise<void>
|
|
|
475
663
|
}
|
|
476
664
|
});
|
|
477
665
|
}
|
|
478
|
-
|
|
479
666
|
function slidedownAddEventListener(event: SlidedownEventName, listener: (wasShown: boolean) => void): void {
|
|
667
|
+
|
|
480
668
|
window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {
|
|
481
|
-
OneSignal.Slidedown.addEventListener(event, listener)
|
|
669
|
+
OneSignal.Slidedown.addEventListener(event, listener);
|
|
482
670
|
});
|
|
671
|
+
|
|
483
672
|
}
|
|
484
|
-
|
|
485
673
|
function slidedownRemoveEventListener(event: SlidedownEventName, listener: (wasShown: boolean) => void): void {
|
|
674
|
+
|
|
486
675
|
window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {
|
|
487
|
-
OneSignal.Slidedown.removeEventListener(event, listener)
|
|
676
|
+
OneSignal.Slidedown.removeEventListener(event, listener);
|
|
488
677
|
});
|
|
678
|
+
|
|
489
679
|
}
|
|
490
|
-
|
|
491
680
|
function notificationsSetDefaultUrl(url: string): Promise<void> {
|
|
492
681
|
return new Promise((resolve, reject) => {
|
|
493
682
|
if (isOneSignalScriptFailed) {
|
|
494
|
-
reject();
|
|
683
|
+
reject(new Error('OneSignal script failed to load.'));
|
|
684
|
+
return;
|
|
495
685
|
}
|
|
496
686
|
|
|
497
687
|
try {
|
|
498
688
|
window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {
|
|
499
|
-
OneSignal.Notifications.setDefaultUrl(url)
|
|
500
|
-
.then((value: any) => resolve(value))
|
|
689
|
+
OneSignal.Notifications.setDefaultUrl(url).then(() => resolve())
|
|
501
690
|
.catch((error: any) => reject(error));
|
|
502
691
|
});
|
|
503
692
|
} catch (error) {
|
|
@@ -505,17 +694,16 @@ function notificationsSetDefaultUrl(url: string): Promise<void> {
|
|
|
505
694
|
}
|
|
506
695
|
});
|
|
507
696
|
}
|
|
508
|
-
|
|
509
697
|
function notificationsSetDefaultTitle(title: string): Promise<void> {
|
|
510
698
|
return new Promise((resolve, reject) => {
|
|
511
699
|
if (isOneSignalScriptFailed) {
|
|
512
|
-
reject();
|
|
700
|
+
reject(new Error('OneSignal script failed to load.'));
|
|
701
|
+
return;
|
|
513
702
|
}
|
|
514
703
|
|
|
515
704
|
try {
|
|
516
705
|
window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {
|
|
517
|
-
OneSignal.Notifications.setDefaultTitle(title)
|
|
518
|
-
.then((value: any) => resolve(value))
|
|
706
|
+
OneSignal.Notifications.setDefaultTitle(title).then(() => resolve())
|
|
519
707
|
.catch((error: any) => reject(error));
|
|
520
708
|
});
|
|
521
709
|
} catch (error) {
|
|
@@ -523,17 +711,16 @@ function notificationsSetDefaultTitle(title: string): Promise<void> {
|
|
|
523
711
|
}
|
|
524
712
|
});
|
|
525
713
|
}
|
|
526
|
-
|
|
527
714
|
function notificationsRequestPermission(): Promise<void> {
|
|
528
715
|
return new Promise((resolve, reject) => {
|
|
529
716
|
if (isOneSignalScriptFailed) {
|
|
530
|
-
reject();
|
|
717
|
+
reject(new Error('OneSignal script failed to load.'));
|
|
718
|
+
return;
|
|
531
719
|
}
|
|
532
720
|
|
|
533
721
|
try {
|
|
534
722
|
window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {
|
|
535
|
-
OneSignal.Notifications.requestPermission()
|
|
536
|
-
.then((value: any) => resolve(value))
|
|
723
|
+
OneSignal.Notifications.requestPermission().then(() => resolve())
|
|
537
724
|
.catch((error: any) => reject(error));
|
|
538
725
|
});
|
|
539
726
|
} catch (error) {
|
|
@@ -541,29 +728,30 @@ function notificationsRequestPermission(): Promise<void> {
|
|
|
541
728
|
}
|
|
542
729
|
});
|
|
543
730
|
}
|
|
544
|
-
|
|
545
731
|
function notificationsAddEventListener<K extends NotificationEventName>(event: K, listener: (obj: NotificationEventTypeMap[K]) => void): void {
|
|
732
|
+
|
|
546
733
|
window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {
|
|
547
|
-
OneSignal.Notifications.addEventListener(event, listener)
|
|
734
|
+
OneSignal.Notifications.addEventListener(event, listener);
|
|
548
735
|
});
|
|
736
|
+
|
|
549
737
|
}
|
|
550
|
-
|
|
551
738
|
function notificationsRemoveEventListener<K extends NotificationEventName>(event: K, listener: (obj: NotificationEventTypeMap[K]) => void): void {
|
|
739
|
+
|
|
552
740
|
window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {
|
|
553
|
-
OneSignal.Notifications.removeEventListener(event, listener)
|
|
741
|
+
OneSignal.Notifications.removeEventListener(event, listener);
|
|
554
742
|
});
|
|
743
|
+
|
|
555
744
|
}
|
|
556
|
-
|
|
557
745
|
function sessionSendOutcome(outcomeName: string, outcomeWeight?: number): Promise<void> {
|
|
558
746
|
return new Promise((resolve, reject) => {
|
|
559
747
|
if (isOneSignalScriptFailed) {
|
|
560
|
-
reject();
|
|
748
|
+
reject(new Error('OneSignal script failed to load.'));
|
|
749
|
+
return;
|
|
561
750
|
}
|
|
562
751
|
|
|
563
752
|
try {
|
|
564
753
|
window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {
|
|
565
|
-
OneSignal.Session.sendOutcome(outcomeName, outcomeWeight)
|
|
566
|
-
.then((value: any) => resolve(value))
|
|
754
|
+
OneSignal.Session.sendOutcome(outcomeName, outcomeWeight).then(() => resolve())
|
|
567
755
|
.catch((error: any) => reject(error));
|
|
568
756
|
});
|
|
569
757
|
} catch (error) {
|
|
@@ -571,17 +759,16 @@ function sessionSendOutcome(outcomeName: string, outcomeWeight?: number): Promis
|
|
|
571
759
|
}
|
|
572
760
|
});
|
|
573
761
|
}
|
|
574
|
-
|
|
575
762
|
function sessionSendUniqueOutcome(outcomeName: string): Promise<void> {
|
|
576
763
|
return new Promise((resolve, reject) => {
|
|
577
764
|
if (isOneSignalScriptFailed) {
|
|
578
|
-
reject();
|
|
765
|
+
reject(new Error('OneSignal script failed to load.'));
|
|
766
|
+
return;
|
|
579
767
|
}
|
|
580
768
|
|
|
581
769
|
try {
|
|
582
770
|
window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {
|
|
583
|
-
OneSignal.Session.sendUniqueOutcome(outcomeName)
|
|
584
|
-
.then((value: any) => resolve(value))
|
|
771
|
+
OneSignal.Session.sendUniqueOutcome(outcomeName).then(() => resolve())
|
|
585
772
|
.catch((error: any) => reject(error));
|
|
586
773
|
});
|
|
587
774
|
} catch (error) {
|
|
@@ -589,89 +776,135 @@ function sessionSendUniqueOutcome(outcomeName: string): Promise<void> {
|
|
|
589
776
|
}
|
|
590
777
|
});
|
|
591
778
|
}
|
|
592
|
-
|
|
593
779
|
function userAddAlias(label: string, id: string): void {
|
|
780
|
+
|
|
594
781
|
window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {
|
|
595
|
-
OneSignal.User.addAlias(label, id)
|
|
782
|
+
OneSignal.User.addAlias(label, id);
|
|
596
783
|
});
|
|
784
|
+
|
|
597
785
|
}
|
|
598
|
-
|
|
599
786
|
function userAddAliases(aliases: { [key: string]: string }): void {
|
|
787
|
+
|
|
600
788
|
window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {
|
|
601
|
-
OneSignal.User.addAliases(aliases)
|
|
789
|
+
OneSignal.User.addAliases(aliases);
|
|
602
790
|
});
|
|
791
|
+
|
|
603
792
|
}
|
|
604
|
-
|
|
605
793
|
function userRemoveAlias(label: string): void {
|
|
794
|
+
|
|
606
795
|
window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {
|
|
607
|
-
OneSignal.User.removeAlias(label)
|
|
796
|
+
OneSignal.User.removeAlias(label);
|
|
608
797
|
});
|
|
798
|
+
|
|
609
799
|
}
|
|
610
|
-
|
|
611
800
|
function userRemoveAliases(labels: string[]): void {
|
|
801
|
+
|
|
612
802
|
window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {
|
|
613
|
-
OneSignal.User.removeAliases(labels)
|
|
803
|
+
OneSignal.User.removeAliases(labels);
|
|
614
804
|
});
|
|
805
|
+
|
|
615
806
|
}
|
|
616
|
-
|
|
617
807
|
function userAddEmail(email: string): void {
|
|
808
|
+
|
|
618
809
|
window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {
|
|
619
|
-
OneSignal.User.addEmail(email)
|
|
810
|
+
OneSignal.User.addEmail(email);
|
|
620
811
|
});
|
|
812
|
+
|
|
621
813
|
}
|
|
622
|
-
|
|
623
814
|
function userRemoveEmail(email: string): void {
|
|
815
|
+
|
|
624
816
|
window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {
|
|
625
|
-
OneSignal.User.removeEmail(email)
|
|
817
|
+
OneSignal.User.removeEmail(email);
|
|
626
818
|
});
|
|
819
|
+
|
|
627
820
|
}
|
|
628
|
-
|
|
629
821
|
function userAddSms(smsNumber: string): void {
|
|
822
|
+
|
|
630
823
|
window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {
|
|
631
|
-
OneSignal.User.addSms(smsNumber)
|
|
824
|
+
OneSignal.User.addSms(smsNumber);
|
|
632
825
|
});
|
|
826
|
+
|
|
633
827
|
}
|
|
634
|
-
|
|
635
828
|
function userRemoveSms(smsNumber: string): void {
|
|
829
|
+
|
|
636
830
|
window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {
|
|
637
|
-
OneSignal.User.removeSms(smsNumber)
|
|
831
|
+
OneSignal.User.removeSms(smsNumber);
|
|
638
832
|
});
|
|
833
|
+
|
|
639
834
|
}
|
|
640
|
-
|
|
641
835
|
function userAddTag(key: string, value: string): void {
|
|
836
|
+
|
|
642
837
|
window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {
|
|
643
|
-
OneSignal.User.addTag(key, value)
|
|
838
|
+
OneSignal.User.addTag(key, value);
|
|
644
839
|
});
|
|
840
|
+
|
|
645
841
|
}
|
|
646
|
-
|
|
647
842
|
function userAddTags(tags: { [key: string]: string }): void {
|
|
843
|
+
|
|
648
844
|
window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {
|
|
649
|
-
OneSignal.User.addTags(tags)
|
|
845
|
+
OneSignal.User.addTags(tags);
|
|
650
846
|
});
|
|
847
|
+
|
|
651
848
|
}
|
|
652
|
-
|
|
653
849
|
function userRemoveTag(key: string): void {
|
|
850
|
+
|
|
654
851
|
window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {
|
|
655
|
-
OneSignal.User.removeTag(key)
|
|
852
|
+
OneSignal.User.removeTag(key);
|
|
656
853
|
});
|
|
854
|
+
|
|
657
855
|
}
|
|
658
|
-
|
|
659
856
|
function userRemoveTags(keys: string[]): void {
|
|
857
|
+
|
|
660
858
|
window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {
|
|
661
|
-
OneSignal.User.removeTags(keys)
|
|
859
|
+
OneSignal.User.removeTags(keys);
|
|
662
860
|
});
|
|
861
|
+
|
|
862
|
+
}
|
|
863
|
+
function userGetTags(): { [key: string]: string } {
|
|
864
|
+
let retVal: { [key: string]: string };
|
|
865
|
+
window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {
|
|
866
|
+
retVal = OneSignal.User.getTags();
|
|
867
|
+
});
|
|
868
|
+
return retVal;
|
|
869
|
+
}
|
|
870
|
+
function userAddEventListener(event: 'change', listener: (change: UserChangeEvent) => void): void {
|
|
871
|
+
|
|
872
|
+
window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {
|
|
873
|
+
OneSignal.User.addEventListener(event, listener);
|
|
874
|
+
});
|
|
875
|
+
|
|
876
|
+
}
|
|
877
|
+
function userRemoveEventListener(event: 'change', listener: (change: UserChangeEvent) => void): void {
|
|
878
|
+
|
|
879
|
+
window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {
|
|
880
|
+
OneSignal.User.removeEventListener(event, listener);
|
|
881
|
+
});
|
|
882
|
+
|
|
883
|
+
}
|
|
884
|
+
function userSetLanguage(language: string): void {
|
|
885
|
+
|
|
886
|
+
window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {
|
|
887
|
+
OneSignal.User.setLanguage(language);
|
|
888
|
+
});
|
|
889
|
+
|
|
890
|
+
}
|
|
891
|
+
function userGetLanguage(): string {
|
|
892
|
+
let retVal: string;
|
|
893
|
+
window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {
|
|
894
|
+
retVal = OneSignal.User.getLanguage();
|
|
895
|
+
});
|
|
896
|
+
return retVal;
|
|
663
897
|
}
|
|
664
|
-
|
|
665
898
|
function pushSubscriptionOptIn(): Promise<void> {
|
|
666
899
|
return new Promise((resolve, reject) => {
|
|
667
900
|
if (isOneSignalScriptFailed) {
|
|
668
|
-
reject();
|
|
901
|
+
reject(new Error('OneSignal script failed to load.'));
|
|
902
|
+
return;
|
|
669
903
|
}
|
|
670
904
|
|
|
671
905
|
try {
|
|
672
906
|
window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {
|
|
673
|
-
OneSignal.User.PushSubscription.optIn()
|
|
674
|
-
.then((value: any) => resolve(value))
|
|
907
|
+
OneSignal.User.PushSubscription.optIn().then(() => resolve())
|
|
675
908
|
.catch((error: any) => reject(error));
|
|
676
909
|
});
|
|
677
910
|
} catch (error) {
|
|
@@ -679,17 +912,16 @@ function pushSubscriptionOptIn(): Promise<void> {
|
|
|
679
912
|
}
|
|
680
913
|
});
|
|
681
914
|
}
|
|
682
|
-
|
|
683
915
|
function pushSubscriptionOptOut(): Promise<void> {
|
|
684
916
|
return new Promise((resolve, reject) => {
|
|
685
917
|
if (isOneSignalScriptFailed) {
|
|
686
|
-
reject();
|
|
918
|
+
reject(new Error('OneSignal script failed to load.'));
|
|
919
|
+
return;
|
|
687
920
|
}
|
|
688
921
|
|
|
689
922
|
try {
|
|
690
923
|
window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {
|
|
691
|
-
OneSignal.User.PushSubscription.optOut()
|
|
692
|
-
.then((value: any) => resolve(value))
|
|
924
|
+
OneSignal.User.PushSubscription.optOut().then(() => resolve())
|
|
693
925
|
.catch((error: any) => reject(error));
|
|
694
926
|
});
|
|
695
927
|
} catch (error) {
|
|
@@ -697,28 +929,31 @@ function pushSubscriptionOptOut(): Promise<void> {
|
|
|
697
929
|
}
|
|
698
930
|
});
|
|
699
931
|
}
|
|
700
|
-
|
|
701
932
|
function pushSubscriptionAddEventListener(event: 'change', listener: (change: SubscriptionChangeEvent) => void): void {
|
|
933
|
+
|
|
702
934
|
window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {
|
|
703
|
-
OneSignal.User.PushSubscription.addEventListener(event, listener)
|
|
935
|
+
OneSignal.User.PushSubscription.addEventListener(event, listener);
|
|
704
936
|
});
|
|
937
|
+
|
|
705
938
|
}
|
|
706
|
-
|
|
707
939
|
function pushSubscriptionRemoveEventListener(event: 'change', listener: (change: SubscriptionChangeEvent) => void): void {
|
|
940
|
+
|
|
708
941
|
window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {
|
|
709
|
-
OneSignal.User.PushSubscription.removeEventListener(event, listener)
|
|
942
|
+
OneSignal.User.PushSubscription.removeEventListener(event, listener);
|
|
710
943
|
});
|
|
944
|
+
|
|
711
945
|
}
|
|
712
|
-
|
|
713
946
|
function debugSetLogLevel(logLevel: string): void {
|
|
947
|
+
|
|
714
948
|
window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {
|
|
715
|
-
OneSignal.Debug.setLogLevel(logLevel)
|
|
949
|
+
OneSignal.Debug.setLogLevel(logLevel);
|
|
716
950
|
});
|
|
951
|
+
|
|
717
952
|
}
|
|
718
953
|
const PushSubscriptionNamespace: IOneSignalPushSubscription = {
|
|
719
|
-
get id(): string | null | undefined { return window.OneSignal?.User?.PushSubscription?.id },
|
|
720
|
-
get token(): string | null | undefined { return window.OneSignal?.User?.PushSubscription?.token },
|
|
721
|
-
get optedIn(): boolean | undefined { return window.OneSignal?.User?.PushSubscription?.optedIn },
|
|
954
|
+
get id(): string | null | undefined { return window.OneSignal?.User?.PushSubscription?.id; },
|
|
955
|
+
get token(): string | null | undefined { return window.OneSignal?.User?.PushSubscription?.token; },
|
|
956
|
+
get optedIn(): boolean | undefined { return window.OneSignal?.User?.PushSubscription?.optedIn; },
|
|
722
957
|
optIn: pushSubscriptionOptIn,
|
|
723
958
|
optOut: pushSubscriptionOptOut,
|
|
724
959
|
addEventListener: pushSubscriptionAddEventListener,
|
|
@@ -726,6 +961,8 @@ const PushSubscriptionNamespace: IOneSignalPushSubscription = {
|
|
|
726
961
|
};
|
|
727
962
|
|
|
728
963
|
const UserNamespace: IOneSignalUser = {
|
|
964
|
+
get onesignalId(): string | undefined { return window.OneSignal?.User?.onesignalId; },
|
|
965
|
+
get externalId(): string | undefined { return window.OneSignal?.User?.externalId; },
|
|
729
966
|
addAlias: userAddAlias,
|
|
730
967
|
addAliases: userAddAliases,
|
|
731
968
|
removeAlias: userRemoveAlias,
|
|
@@ -738,6 +975,11 @@ const UserNamespace: IOneSignalUser = {
|
|
|
738
975
|
addTags: userAddTags,
|
|
739
976
|
removeTag: userRemoveTag,
|
|
740
977
|
removeTags: userRemoveTags,
|
|
978
|
+
getTags: userGetTags,
|
|
979
|
+
addEventListener: userAddEventListener,
|
|
980
|
+
removeEventListener: userRemoveEventListener,
|
|
981
|
+
setLanguage: userSetLanguage,
|
|
982
|
+
getLanguage: userGetLanguage,
|
|
741
983
|
PushSubscription: PushSubscriptionNamespace,
|
|
742
984
|
};
|
|
743
985
|
|