react-onesignal 2.0.4 → 3.0.0-beta.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.es.js CHANGED
@@ -1,157 +1,94 @@
1
1
  const ONESIGNAL_SDK_ID = 'onesignal-sdk';
2
- const ONE_SIGNAL_SCRIPT_SRC = 'https://cdn.onesignal.com/sdks/OneSignalSDK.js';
3
- const reactOneSignalFunctionQueue = [];
2
+ const ONE_SIGNAL_SCRIPT_SRC = "https://cdn.onesignal.com/sdks/web/v16/OneSignalSDK.page.js";
4
3
  // true if the script is successfully loaded from CDN.
5
4
  let isOneSignalInitialized = false;
6
5
  // true if the script fails to load from CDN. A separate flag is necessary
7
6
  // to disambiguate between a CDN load failure and a delayed call to
8
7
  // OneSignal#init.
9
8
  let isOneSignalScriptFailed = false;
10
- const doesOneSignalExist = () => {
11
- if (window["OneSignal"]) {
12
- return true;
13
- }
14
- return false;
15
- };
16
- const handleOnLoad = (resolve, options) => {
17
- isOneSignalInitialized = true;
18
- // OneSignal is assumed to be loaded correctly because this method
19
- // is called after the script is successfully loaded by CDN, but
20
- // just in case.
21
- window["OneSignal"] = window["OneSignal"] || [];
22
- window["OneSignal"].push(() => {
23
- window["OneSignal"].init(options);
24
- });
25
- window["OneSignal"].push(() => {
26
- processQueuedOneSignalFunctions();
27
- resolve();
28
- });
29
- };
30
- const handleOnError = (resolve) => {
9
+ window.OneSignalDeferred = window.OneSignalDeferred || [];
10
+ addSDKScript();
11
+ /* H E L P E R S */
12
+ function handleOnError() {
31
13
  isOneSignalScriptFailed = true;
32
- // Ensure that any unresolved functions are cleared from the queue,
33
- // even in the event of a CDN load failure.
34
- processQueuedOneSignalFunctions();
35
- resolve();
36
- };
37
- const processQueuedOneSignalFunctions = () => {
38
- reactOneSignalFunctionQueue.forEach(element => {
39
- const { name, args, promiseResolver } = element;
40
- if (!!promiseResolver) {
41
- OneSignalReact[name](...args).then(result => {
42
- promiseResolver(result);
43
- });
44
- }
45
- else {
46
- OneSignalReact[name](...args);
47
- }
48
- });
49
- };
50
- const init = (options) => new Promise(resolve => {
51
- if (isOneSignalInitialized) {
52
- resolve();
53
- return;
54
- }
55
- if (!options || !options.appId) {
56
- throw new Error('You need to provide your OneSignal appId.');
57
- }
58
- if (!document) {
59
- resolve();
60
- return;
61
- }
14
+ }
15
+ function addSDKScript() {
62
16
  const script = document.createElement('script');
63
17
  script.id = ONESIGNAL_SDK_ID;
18
+ script.defer = true;
64
19
  script.src = ONE_SIGNAL_SCRIPT_SRC;
65
- script.async = true;
66
- script.onload = () => {
67
- handleOnLoad(resolve, options);
68
- };
69
20
  // Always resolve whether or not the script is successfully initialized.
70
21
  // This is important for users who may block cdn.onesignal.com w/ adblock.
71
22
  script.onerror = () => {
72
- handleOnError(resolve);
23
+ handleOnError();
73
24
  };
74
25
  document.head.appendChild(script);
75
- });
76
- function on(event, listener) {
77
- if (!doesOneSignalExist()) {
78
- reactOneSignalFunctionQueue.push({
79
- name: 'on',
80
- args: arguments,
81
- });
82
- return;
83
- }
84
- window["OneSignal"].push(() => {
85
- window["OneSignal"].on(event, listener);
86
- });
87
26
  }
88
- function off(event, listener) {
89
- if (!doesOneSignalExist()) {
90
- reactOneSignalFunctionQueue.push({
91
- name: 'off',
92
- args: arguments,
93
- });
94
- return;
27
+ /**
28
+ * The following code is copied directly from the native SDK source file BrowserSupportsPush.ts
29
+ * S T A R T
30
+ */
31
+ // Checks if the browser supports push notifications by checking if specific
32
+ // classes and properties on them exist
33
+ function isPushNotificationsSupported() {
34
+ return supportsVapidPush() || supportsSafariPush();
35
+ }
36
+ function isMacOSSafariInIframe() {
37
+ // Fallback detection for Safari on macOS in an iframe context
38
+ return window.top !== window && // isContextIframe
39
+ navigator.vendor === "Apple Computer, Inc." && // isSafari
40
+ navigator.platform === "MacIntel"; // isMacOS
41
+ }
42
+ function supportsSafariPush() {
43
+ return (window.safari && typeof window.safari.pushNotification !== "undefined") ||
44
+ isMacOSSafariInIframe();
45
+ }
46
+ // Does the browser support the standard Push API
47
+ function supportsVapidPush() {
48
+ return typeof PushSubscriptionOptions !== "undefined" &&
49
+ PushSubscriptionOptions.prototype.hasOwnProperty("applicationServerKey");
50
+ }
51
+ /* E N D */
52
+ /**
53
+ * This is a SPECIAL FUNCTION
54
+ * It is a hardcoded implementation copied from the upstream/native WebSDK since we want to return a boolean immediately
55
+ * Natively, this is done via the shimloading mechanism (i.e. if the SDK loads, push is supported)
56
+ * @PublicApi
57
+ */
58
+ const isPushSupported = () => {
59
+ return isPushNotificationsSupported();
60
+ };
61
+ /**
62
+ * @PublicApi
63
+ */
64
+ const init = (options) => {
65
+ if (isOneSignalInitialized) {
66
+ return Promise.reject(`OneSignal is already initialized.`);
95
67
  }
96
- window["OneSignal"].push(() => {
97
- window["OneSignal"].off(event, listener);
98
- });
99
- }
100
- function once(event, listener) {
101
- if (!doesOneSignalExist()) {
102
- reactOneSignalFunctionQueue.push({
103
- name: 'once',
104
- args: arguments,
105
- });
106
- return;
68
+ if (!options || !options.appId) {
69
+ throw new Error('You need to provide your OneSignal appId.');
107
70
  }
108
- window["OneSignal"].push(() => {
109
- window["OneSignal"].once(event, listener);
110
- });
111
- }
112
- function isPushNotificationsEnabled(callback) {
113
- return new Promise((resolve, reject) => {
114
- if (isOneSignalScriptFailed) {
115
- resolve();
116
- return;
117
- }
118
- if (!doesOneSignalExist()) {
119
- reactOneSignalFunctionQueue.push({
120
- name: 'isPushNotificationsEnabled',
121
- args: arguments,
122
- promiseResolver: resolve,
123
- });
124
- return;
125
- }
126
- try {
127
- window["OneSignal"].push(() => {
128
- window["OneSignal"].isPushNotificationsEnabled(callback)
129
- .then((value) => resolve(value))
130
- .catch((error) => reject(error));
71
+ if (!document) {
72
+ return Promise.reject(`Document is not defined.`);
73
+ }
74
+ return new Promise((resolve) => {
75
+ window['OneSignalDeferred'].push((OneSignal) => {
76
+ OneSignal.init(options).then(() => {
77
+ isOneSignalInitialized = true;
78
+ resolve();
131
79
  });
132
- }
133
- catch (error) {
134
- reject(error);
135
- }
80
+ });
136
81
  });
137
- }
138
- function showHttpPrompt(options) {
82
+ };
83
+ function oneSignalLogin(externalId, jwtToken) {
139
84
  return new Promise((resolve, reject) => {
85
+ var _a;
140
86
  if (isOneSignalScriptFailed) {
141
- resolve();
142
- return;
143
- }
144
- if (!doesOneSignalExist()) {
145
- reactOneSignalFunctionQueue.push({
146
- name: 'showHttpPrompt',
147
- args: arguments,
148
- promiseResolver: resolve,
149
- });
150
- return;
87
+ reject();
151
88
  }
152
89
  try {
153
- window["OneSignal"].push(() => {
154
- window["OneSignal"].showHttpPrompt(options)
90
+ (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
91
+ OneSignal.login(externalId, jwtToken)
155
92
  .then((value) => resolve(value))
156
93
  .catch((error) => reject(error));
157
94
  });
@@ -161,23 +98,15 @@ function showHttpPrompt(options) {
161
98
  }
162
99
  });
163
100
  }
164
- function registerForPushNotifications(options) {
101
+ function oneSignalLogout() {
165
102
  return new Promise((resolve, reject) => {
103
+ var _a;
166
104
  if (isOneSignalScriptFailed) {
167
- resolve();
168
- return;
169
- }
170
- if (!doesOneSignalExist()) {
171
- reactOneSignalFunctionQueue.push({
172
- name: 'registerForPushNotifications',
173
- args: arguments,
174
- promiseResolver: resolve,
175
- });
176
- return;
105
+ reject();
177
106
  }
178
107
  try {
179
- window["OneSignal"].push(() => {
180
- window["OneSignal"].registerForPushNotifications(options)
108
+ (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
109
+ OneSignal.logout()
181
110
  .then((value) => resolve(value))
182
111
  .catch((error) => reject(error));
183
112
  });
@@ -187,23 +116,15 @@ function registerForPushNotifications(options) {
187
116
  }
188
117
  });
189
118
  }
190
- function setDefaultNotificationUrl(url) {
119
+ function oneSignalSetConsentGiven(consent) {
191
120
  return new Promise((resolve, reject) => {
121
+ var _a;
192
122
  if (isOneSignalScriptFailed) {
193
- resolve();
194
- return;
195
- }
196
- if (!doesOneSignalExist()) {
197
- reactOneSignalFunctionQueue.push({
198
- name: 'setDefaultNotificationUrl',
199
- args: arguments,
200
- promiseResolver: resolve,
201
- });
202
- return;
123
+ reject();
203
124
  }
204
125
  try {
205
- window["OneSignal"].push(() => {
206
- window["OneSignal"].setDefaultNotificationUrl(url)
126
+ (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
127
+ OneSignal.setConsentGiven(consent)
207
128
  .then((value) => resolve(value))
208
129
  .catch((error) => reject(error));
209
130
  });
@@ -213,23 +134,15 @@ function setDefaultNotificationUrl(url) {
213
134
  }
214
135
  });
215
136
  }
216
- function setDefaultTitle(title) {
137
+ function oneSignalSetConsentRequired(requiresConsent) {
217
138
  return new Promise((resolve, reject) => {
139
+ var _a;
218
140
  if (isOneSignalScriptFailed) {
219
- resolve();
220
- return;
221
- }
222
- if (!doesOneSignalExist()) {
223
- reactOneSignalFunctionQueue.push({
224
- name: 'setDefaultTitle',
225
- args: arguments,
226
- promiseResolver: resolve,
227
- });
228
- return;
141
+ reject();
229
142
  }
230
143
  try {
231
- window["OneSignal"].push(() => {
232
- window["OneSignal"].setDefaultTitle(title)
144
+ (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
145
+ OneSignal.setConsentRequired(requiresConsent)
233
146
  .then((value) => resolve(value))
234
147
  .catch((error) => reject(error));
235
148
  });
@@ -239,23 +152,15 @@ function setDefaultTitle(title) {
239
152
  }
240
153
  });
241
154
  }
242
- function getTags(callback) {
155
+ function slidedownPromptPush(options) {
243
156
  return new Promise((resolve, reject) => {
157
+ var _a;
244
158
  if (isOneSignalScriptFailed) {
245
- resolve();
246
- return;
247
- }
248
- if (!doesOneSignalExist()) {
249
- reactOneSignalFunctionQueue.push({
250
- name: 'getTags',
251
- args: arguments,
252
- promiseResolver: resolve,
253
- });
254
- return;
159
+ reject();
255
160
  }
256
161
  try {
257
- window["OneSignal"].push(() => {
258
- window["OneSignal"].getTags(callback)
162
+ (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
163
+ OneSignal.Slidedown.promptPush(options)
259
164
  .then((value) => resolve(value))
260
165
  .catch((error) => reject(error));
261
166
  });
@@ -265,23 +170,15 @@ function getTags(callback) {
265
170
  }
266
171
  });
267
172
  }
268
- function sendTag(key, value, callback) {
173
+ function slidedownPromptPushCategories(options) {
269
174
  return new Promise((resolve, reject) => {
175
+ var _a;
270
176
  if (isOneSignalScriptFailed) {
271
- resolve();
272
- return;
273
- }
274
- if (!doesOneSignalExist()) {
275
- reactOneSignalFunctionQueue.push({
276
- name: 'sendTag',
277
- args: arguments,
278
- promiseResolver: resolve,
279
- });
280
- return;
177
+ reject();
281
178
  }
282
179
  try {
283
- window["OneSignal"].push(() => {
284
- window["OneSignal"].sendTag(key, value, callback)
180
+ (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
181
+ OneSignal.Slidedown.promptPushCategories(options)
285
182
  .then((value) => resolve(value))
286
183
  .catch((error) => reject(error));
287
184
  });
@@ -291,23 +188,15 @@ function sendTag(key, value, callback) {
291
188
  }
292
189
  });
293
190
  }
294
- function sendTags(tags, callback) {
191
+ function slidedownPromptSms(options) {
295
192
  return new Promise((resolve, reject) => {
193
+ var _a;
296
194
  if (isOneSignalScriptFailed) {
297
- resolve();
298
- return;
299
- }
300
- if (!doesOneSignalExist()) {
301
- reactOneSignalFunctionQueue.push({
302
- name: 'sendTags',
303
- args: arguments,
304
- promiseResolver: resolve,
305
- });
306
- return;
195
+ reject();
307
196
  }
308
197
  try {
309
- window["OneSignal"].push(() => {
310
- window["OneSignal"].sendTags(tags, callback)
198
+ (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
199
+ OneSignal.Slidedown.promptSms(options)
311
200
  .then((value) => resolve(value))
312
201
  .catch((error) => reject(error));
313
202
  });
@@ -317,23 +206,15 @@ function sendTags(tags, callback) {
317
206
  }
318
207
  });
319
208
  }
320
- function deleteTag(tag) {
209
+ function slidedownPromptEmail(options) {
321
210
  return new Promise((resolve, reject) => {
211
+ var _a;
322
212
  if (isOneSignalScriptFailed) {
323
- resolve();
324
- return;
325
- }
326
- if (!doesOneSignalExist()) {
327
- reactOneSignalFunctionQueue.push({
328
- name: 'deleteTag',
329
- args: arguments,
330
- promiseResolver: resolve,
331
- });
332
- return;
213
+ reject();
333
214
  }
334
215
  try {
335
- window["OneSignal"].push(() => {
336
- window["OneSignal"].deleteTag(tag)
216
+ (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
217
+ OneSignal.Slidedown.promptEmail(options)
337
218
  .then((value) => resolve(value))
338
219
  .catch((error) => reject(error));
339
220
  });
@@ -343,23 +224,15 @@ function deleteTag(tag) {
343
224
  }
344
225
  });
345
226
  }
346
- function deleteTags(tags, callback) {
227
+ function slidedownPromptSmsAndEmail(options) {
347
228
  return new Promise((resolve, reject) => {
229
+ var _a;
348
230
  if (isOneSignalScriptFailed) {
349
- resolve();
350
- return;
351
- }
352
- if (!doesOneSignalExist()) {
353
- reactOneSignalFunctionQueue.push({
354
- name: 'deleteTags',
355
- args: arguments,
356
- promiseResolver: resolve,
357
- });
358
- return;
231
+ reject();
359
232
  }
360
233
  try {
361
- window["OneSignal"].push(() => {
362
- window["OneSignal"].deleteTags(tags, callback)
234
+ (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
235
+ OneSignal.Slidedown.promptSmsAndEmail(options)
363
236
  .then((value) => resolve(value))
364
237
  .catch((error) => reject(error));
365
238
  });
@@ -369,75 +242,27 @@ function deleteTags(tags, callback) {
369
242
  }
370
243
  });
371
244
  }
372
- function addListenerForNotificationOpened(callback) {
373
- return new Promise((resolve, reject) => {
374
- if (isOneSignalScriptFailed) {
375
- resolve();
376
- return;
377
- }
378
- if (!doesOneSignalExist()) {
379
- reactOneSignalFunctionQueue.push({
380
- name: 'addListenerForNotificationOpened',
381
- args: arguments,
382
- promiseResolver: resolve,
383
- });
384
- return;
385
- }
386
- try {
387
- window["OneSignal"].push(() => {
388
- window["OneSignal"].addListenerForNotificationOpened(callback)
389
- .then((value) => resolve(value))
390
- .catch((error) => reject(error));
391
- });
392
- }
393
- catch (error) {
394
- reject(error);
395
- }
245
+ function slidedownAddEventListener(event, listener) {
246
+ var _a;
247
+ (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
248
+ OneSignal.Slidedown.addEventListener(event, listener);
396
249
  });
397
250
  }
398
- function setSubscription(newSubscription) {
399
- return new Promise((resolve, reject) => {
400
- if (isOneSignalScriptFailed) {
401
- resolve();
402
- return;
403
- }
404
- if (!doesOneSignalExist()) {
405
- reactOneSignalFunctionQueue.push({
406
- name: 'setSubscription',
407
- args: arguments,
408
- promiseResolver: resolve,
409
- });
410
- return;
411
- }
412
- try {
413
- window["OneSignal"].push(() => {
414
- window["OneSignal"].setSubscription(newSubscription)
415
- .then((value) => resolve(value))
416
- .catch((error) => reject(error));
417
- });
418
- }
419
- catch (error) {
420
- reject(error);
421
- }
251
+ function slidedownRemoveEventListener(event, listener) {
252
+ var _a;
253
+ (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
254
+ OneSignal.Slidedown.removeEventListener(event, listener);
422
255
  });
423
256
  }
424
- function showHttpPermissionRequest(options) {
257
+ function notificationsSetDefaultUrl(url) {
425
258
  return new Promise((resolve, reject) => {
259
+ var _a;
426
260
  if (isOneSignalScriptFailed) {
427
- resolve();
428
- return;
429
- }
430
- if (!doesOneSignalExist()) {
431
- reactOneSignalFunctionQueue.push({
432
- name: 'showHttpPermissionRequest',
433
- args: arguments,
434
- promiseResolver: resolve,
435
- });
436
- return;
261
+ reject();
437
262
  }
438
263
  try {
439
- window["OneSignal"].push(() => {
440
- window["OneSignal"].showHttpPermissionRequest(options)
264
+ (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
265
+ OneSignal.Notifications.setDefaultUrl(url)
441
266
  .then((value) => resolve(value))
442
267
  .catch((error) => reject(error));
443
268
  });
@@ -447,23 +272,15 @@ function showHttpPermissionRequest(options) {
447
272
  }
448
273
  });
449
274
  }
450
- function showNativePrompt() {
275
+ function notificationsSetDefaultTitle(title) {
451
276
  return new Promise((resolve, reject) => {
277
+ var _a;
452
278
  if (isOneSignalScriptFailed) {
453
- resolve();
454
- return;
455
- }
456
- if (!doesOneSignalExist()) {
457
- reactOneSignalFunctionQueue.push({
458
- name: 'showNativePrompt',
459
- args: arguments,
460
- promiseResolver: resolve,
461
- });
462
- return;
279
+ reject();
463
280
  }
464
281
  try {
465
- window["OneSignal"].push(() => {
466
- window["OneSignal"].showNativePrompt()
282
+ (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
283
+ OneSignal.Notifications.setDefaultTitle(title)
467
284
  .then((value) => resolve(value))
468
285
  .catch((error) => reject(error));
469
286
  });
@@ -473,23 +290,15 @@ function showNativePrompt() {
473
290
  }
474
291
  });
475
292
  }
476
- function showSlidedownPrompt(options) {
293
+ function notificationsGetPermissionStatus(onComplete) {
477
294
  return new Promise((resolve, reject) => {
295
+ var _a;
478
296
  if (isOneSignalScriptFailed) {
479
- resolve();
480
- return;
481
- }
482
- if (!doesOneSignalExist()) {
483
- reactOneSignalFunctionQueue.push({
484
- name: 'showSlidedownPrompt',
485
- args: arguments,
486
- promiseResolver: resolve,
487
- });
488
- return;
297
+ reject();
489
298
  }
490
299
  try {
491
- window["OneSignal"].push(() => {
492
- window["OneSignal"].showSlidedownPrompt(options)
300
+ (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
301
+ OneSignal.Notifications.getPermissionStatus(onComplete)
493
302
  .then((value) => resolve(value))
494
303
  .catch((error) => reject(error));
495
304
  });
@@ -499,23 +308,15 @@ function showSlidedownPrompt(options) {
499
308
  }
500
309
  });
501
310
  }
502
- function showCategorySlidedown(options) {
311
+ function notificationsRequestPermission() {
503
312
  return new Promise((resolve, reject) => {
313
+ var _a;
504
314
  if (isOneSignalScriptFailed) {
505
- resolve();
506
- return;
507
- }
508
- if (!doesOneSignalExist()) {
509
- reactOneSignalFunctionQueue.push({
510
- name: 'showCategorySlidedown',
511
- args: arguments,
512
- promiseResolver: resolve,
513
- });
514
- return;
315
+ reject();
515
316
  }
516
317
  try {
517
- window["OneSignal"].push(() => {
518
- window["OneSignal"].showCategorySlidedown(options)
318
+ (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
319
+ OneSignal.Notifications.requestPermission()
519
320
  .then((value) => resolve(value))
520
321
  .catch((error) => reject(error));
521
322
  });
@@ -525,75 +326,27 @@ function showCategorySlidedown(options) {
525
326
  }
526
327
  });
527
328
  }
528
- function showSmsSlidedown(options) {
529
- return new Promise((resolve, reject) => {
530
- if (isOneSignalScriptFailed) {
531
- resolve();
532
- return;
533
- }
534
- if (!doesOneSignalExist()) {
535
- reactOneSignalFunctionQueue.push({
536
- name: 'showSmsSlidedown',
537
- args: arguments,
538
- promiseResolver: resolve,
539
- });
540
- return;
541
- }
542
- try {
543
- window["OneSignal"].push(() => {
544
- window["OneSignal"].showSmsSlidedown(options)
545
- .then((value) => resolve(value))
546
- .catch((error) => reject(error));
547
- });
548
- }
549
- catch (error) {
550
- reject(error);
551
- }
329
+ function notificationsAddEventListener(event, listener) {
330
+ var _a;
331
+ (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
332
+ OneSignal.Notifications.addEventListener(event, listener);
552
333
  });
553
334
  }
554
- function showEmailSlidedown(options) {
555
- return new Promise((resolve, reject) => {
556
- if (isOneSignalScriptFailed) {
557
- resolve();
558
- return;
559
- }
560
- if (!doesOneSignalExist()) {
561
- reactOneSignalFunctionQueue.push({
562
- name: 'showEmailSlidedown',
563
- args: arguments,
564
- promiseResolver: resolve,
565
- });
566
- return;
567
- }
568
- try {
569
- window["OneSignal"].push(() => {
570
- window["OneSignal"].showEmailSlidedown(options)
571
- .then((value) => resolve(value))
572
- .catch((error) => reject(error));
573
- });
574
- }
575
- catch (error) {
576
- reject(error);
577
- }
335
+ function notificationsRemoveEventListener(event, listener) {
336
+ var _a;
337
+ (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
338
+ OneSignal.Notifications.removeEventListener(event, listener);
578
339
  });
579
340
  }
580
- function showSmsAndEmailSlidedown(options) {
341
+ function sessionSendOutcome(outcomeName, outcomeWeight) {
581
342
  return new Promise((resolve, reject) => {
343
+ var _a;
582
344
  if (isOneSignalScriptFailed) {
583
- resolve();
584
- return;
585
- }
586
- if (!doesOneSignalExist()) {
587
- reactOneSignalFunctionQueue.push({
588
- name: 'showSmsAndEmailSlidedown',
589
- args: arguments,
590
- promiseResolver: resolve,
591
- });
592
- return;
345
+ reject();
593
346
  }
594
347
  try {
595
- window["OneSignal"].push(() => {
596
- window["OneSignal"].showSmsAndEmailSlidedown(options)
348
+ (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
349
+ OneSignal.Session.sendOutcome(outcomeName, outcomeWeight)
597
350
  .then((value) => resolve(value))
598
351
  .catch((error) => reject(error));
599
352
  });
@@ -603,23 +356,15 @@ function showSmsAndEmailSlidedown(options) {
603
356
  }
604
357
  });
605
358
  }
606
- function getNotificationPermission(onComplete) {
359
+ function sessionSendUniqueOutcome(outcomeName) {
607
360
  return new Promise((resolve, reject) => {
361
+ var _a;
608
362
  if (isOneSignalScriptFailed) {
609
- resolve();
610
- return;
611
- }
612
- if (!doesOneSignalExist()) {
613
- reactOneSignalFunctionQueue.push({
614
- name: 'getNotificationPermission',
615
- args: arguments,
616
- promiseResolver: resolve,
617
- });
618
- return;
363
+ reject();
619
364
  }
620
365
  try {
621
- window["OneSignal"].push(() => {
622
- window["OneSignal"].getNotificationPermission(onComplete)
366
+ (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
367
+ OneSignal.Session.sendUniqueOutcome(outcomeName)
623
368
  .then((value) => resolve(value))
624
369
  .catch((error) => reject(error));
625
370
  });
@@ -629,231 +374,63 @@ function getNotificationPermission(onComplete) {
629
374
  }
630
375
  });
631
376
  }
632
- function getUserId(callback) {
633
- return new Promise((resolve, reject) => {
634
- if (isOneSignalScriptFailed) {
635
- resolve();
636
- return;
637
- }
638
- if (!doesOneSignalExist()) {
639
- reactOneSignalFunctionQueue.push({
640
- name: 'getUserId',
641
- args: arguments,
642
- promiseResolver: resolve,
643
- });
644
- return;
645
- }
646
- try {
647
- window["OneSignal"].push(() => {
648
- window["OneSignal"].getUserId(callback)
649
- .then((value) => resolve(value))
650
- .catch((error) => reject(error));
651
- });
652
- }
653
- catch (error) {
654
- reject(error);
655
- }
377
+ function userAddAlias(label, id) {
378
+ var _a;
379
+ (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
380
+ OneSignal.User.addAlias(label, id);
656
381
  });
657
382
  }
658
- function getSubscription(callback) {
659
- return new Promise((resolve, reject) => {
660
- if (isOneSignalScriptFailed) {
661
- resolve();
662
- return;
663
- }
664
- if (!doesOneSignalExist()) {
665
- reactOneSignalFunctionQueue.push({
666
- name: 'getSubscription',
667
- args: arguments,
668
- promiseResolver: resolve,
669
- });
670
- return;
671
- }
672
- try {
673
- window["OneSignal"].push(() => {
674
- window["OneSignal"].getSubscription(callback)
675
- .then((value) => resolve(value))
676
- .catch((error) => reject(error));
677
- });
678
- }
679
- catch (error) {
680
- reject(error);
681
- }
383
+ function userAddAliases(aliases) {
384
+ var _a;
385
+ (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
386
+ OneSignal.User.addAliases(aliases);
682
387
  });
683
388
  }
684
- function setEmail(email, options) {
685
- return new Promise((resolve, reject) => {
686
- if (isOneSignalScriptFailed) {
687
- resolve();
688
- return;
689
- }
690
- if (!doesOneSignalExist()) {
691
- reactOneSignalFunctionQueue.push({
692
- name: 'setEmail',
693
- args: arguments,
694
- promiseResolver: resolve,
695
- });
696
- return;
697
- }
698
- try {
699
- window["OneSignal"].push(() => {
700
- window["OneSignal"].setEmail(email, options)
701
- .then((value) => resolve(value))
702
- .catch((error) => reject(error));
703
- });
704
- }
705
- catch (error) {
706
- reject(error);
707
- }
389
+ function userRemoveAlias(label) {
390
+ var _a;
391
+ (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
392
+ OneSignal.User.removeAlias(label);
708
393
  });
709
394
  }
710
- function setSMSNumber(smsNumber, options) {
711
- return new Promise((resolve, reject) => {
712
- if (isOneSignalScriptFailed) {
713
- resolve();
714
- return;
715
- }
716
- if (!doesOneSignalExist()) {
717
- reactOneSignalFunctionQueue.push({
718
- name: 'setSMSNumber',
719
- args: arguments,
720
- promiseResolver: resolve,
721
- });
722
- return;
723
- }
724
- try {
725
- window["OneSignal"].push(() => {
726
- window["OneSignal"].setSMSNumber(smsNumber, options)
727
- .then((value) => resolve(value))
728
- .catch((error) => reject(error));
729
- });
730
- }
731
- catch (error) {
732
- reject(error);
733
- }
395
+ function userRemoveAliases(labels) {
396
+ var _a;
397
+ (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
398
+ OneSignal.User.removeAliases(labels);
734
399
  });
735
400
  }
736
- function logoutEmail() {
737
- return new Promise((resolve, reject) => {
738
- if (isOneSignalScriptFailed) {
739
- resolve();
740
- return;
741
- }
742
- if (!doesOneSignalExist()) {
743
- reactOneSignalFunctionQueue.push({
744
- name: 'logoutEmail',
745
- args: arguments,
746
- promiseResolver: resolve,
747
- });
748
- return;
749
- }
750
- try {
751
- window["OneSignal"].push(() => {
752
- window["OneSignal"].logoutEmail()
753
- .then((value) => resolve(value))
754
- .catch((error) => reject(error));
755
- });
756
- }
757
- catch (error) {
758
- reject(error);
759
- }
401
+ function userAddEmail(email) {
402
+ var _a;
403
+ (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
404
+ OneSignal.User.addEmail(email);
760
405
  });
761
406
  }
762
- function logoutSMS() {
763
- return new Promise((resolve, reject) => {
764
- if (isOneSignalScriptFailed) {
765
- resolve();
766
- return;
767
- }
768
- if (!doesOneSignalExist()) {
769
- reactOneSignalFunctionQueue.push({
770
- name: 'logoutSMS',
771
- args: arguments,
772
- promiseResolver: resolve,
773
- });
774
- return;
775
- }
776
- try {
777
- window["OneSignal"].push(() => {
778
- window["OneSignal"].logoutSMS()
779
- .then((value) => resolve(value))
780
- .catch((error) => reject(error));
781
- });
782
- }
783
- catch (error) {
784
- reject(error);
785
- }
407
+ function userRemoveEmail(email) {
408
+ var _a;
409
+ (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
410
+ OneSignal.User.removeEmail(email);
786
411
  });
787
412
  }
788
- function setExternalUserId(externalUserId, authHash) {
789
- return new Promise((resolve, reject) => {
790
- if (isOneSignalScriptFailed) {
791
- resolve();
792
- return;
793
- }
794
- if (!doesOneSignalExist()) {
795
- reactOneSignalFunctionQueue.push({
796
- name: 'setExternalUserId',
797
- args: arguments,
798
- promiseResolver: resolve,
799
- });
800
- return;
801
- }
802
- try {
803
- window["OneSignal"].push(() => {
804
- window["OneSignal"].setExternalUserId(externalUserId, authHash)
805
- .then((value) => resolve(value))
806
- .catch((error) => reject(error));
807
- });
808
- }
809
- catch (error) {
810
- reject(error);
811
- }
413
+ function userAddSms(smsNumber) {
414
+ var _a;
415
+ (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
416
+ OneSignal.User.addSms(smsNumber);
812
417
  });
813
418
  }
814
- function removeExternalUserId() {
815
- return new Promise((resolve, reject) => {
816
- if (isOneSignalScriptFailed) {
817
- resolve();
818
- return;
819
- }
820
- if (!doesOneSignalExist()) {
821
- reactOneSignalFunctionQueue.push({
822
- name: 'removeExternalUserId',
823
- args: arguments,
824
- promiseResolver: resolve,
825
- });
826
- return;
827
- }
828
- try {
829
- window["OneSignal"].push(() => {
830
- window["OneSignal"].removeExternalUserId()
831
- .then((value) => resolve(value))
832
- .catch((error) => reject(error));
833
- });
834
- }
835
- catch (error) {
836
- reject(error);
837
- }
419
+ function userRemoveSms(smsNumber) {
420
+ var _a;
421
+ (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
422
+ OneSignal.User.removeSms(smsNumber);
838
423
  });
839
424
  }
840
- function getExternalUserId() {
425
+ function pushSubscriptionOptIn() {
841
426
  return new Promise((resolve, reject) => {
427
+ var _a;
842
428
  if (isOneSignalScriptFailed) {
843
- resolve();
844
- return;
845
- }
846
- if (!doesOneSignalExist()) {
847
- reactOneSignalFunctionQueue.push({
848
- name: 'getExternalUserId',
849
- args: arguments,
850
- promiseResolver: resolve,
851
- });
852
- return;
429
+ reject();
853
430
  }
854
431
  try {
855
- window["OneSignal"].push(() => {
856
- window["OneSignal"].getExternalUserId()
432
+ (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
433
+ OneSignal.User.PushSubscription.optIn()
857
434
  .then((value) => resolve(value))
858
435
  .catch((error) => reject(error));
859
436
  });
@@ -863,23 +440,15 @@ function getExternalUserId() {
863
440
  }
864
441
  });
865
442
  }
866
- function provideUserConsent(consent) {
443
+ function pushSubscriptionOptOut() {
867
444
  return new Promise((resolve, reject) => {
445
+ var _a;
868
446
  if (isOneSignalScriptFailed) {
869
- resolve();
870
- return;
871
- }
872
- if (!doesOneSignalExist()) {
873
- reactOneSignalFunctionQueue.push({
874
- name: 'provideUserConsent',
875
- args: arguments,
876
- promiseResolver: resolve,
877
- });
878
- return;
447
+ reject();
879
448
  }
880
449
  try {
881
- window["OneSignal"].push(() => {
882
- window["OneSignal"].provideUserConsent(consent)
450
+ (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
451
+ OneSignal.User.PushSubscription.optOut()
883
452
  .then((value) => resolve(value))
884
453
  .catch((error) => reject(error));
885
454
  });
@@ -889,123 +458,79 @@ function provideUserConsent(consent) {
889
458
  }
890
459
  });
891
460
  }
892
- function getEmailId(callback) {
893
- return new Promise((resolve, reject) => {
894
- if (isOneSignalScriptFailed) {
895
- resolve();
896
- return;
897
- }
898
- if (!doesOneSignalExist()) {
899
- reactOneSignalFunctionQueue.push({
900
- name: 'getEmailId',
901
- args: arguments,
902
- promiseResolver: resolve,
903
- });
904
- return;
905
- }
906
- try {
907
- window["OneSignal"].push(() => {
908
- window["OneSignal"].getEmailId(callback)
909
- .then((value) => resolve(value))
910
- .catch((error) => reject(error));
911
- });
912
- }
913
- catch (error) {
914
- reject(error);
915
- }
461
+ function pushSubscriptionAddEventListener(event, listener) {
462
+ var _a;
463
+ (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
464
+ OneSignal.User.PushSubscription.addEventListener(event, listener);
916
465
  });
917
466
  }
918
- function getSMSId(callback) {
919
- return new Promise((resolve, reject) => {
920
- if (isOneSignalScriptFailed) {
921
- resolve();
922
- return;
923
- }
924
- if (!doesOneSignalExist()) {
925
- reactOneSignalFunctionQueue.push({
926
- name: 'getSMSId',
927
- args: arguments,
928
- promiseResolver: resolve,
929
- });
930
- return;
931
- }
932
- try {
933
- window["OneSignal"].push(() => {
934
- window["OneSignal"].getSMSId(callback)
935
- .then((value) => resolve(value))
936
- .catch((error) => reject(error));
937
- });
938
- }
939
- catch (error) {
940
- reject(error);
941
- }
467
+ function pushSubscriptionRemoveEventListener(event, listener) {
468
+ var _a;
469
+ (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
470
+ OneSignal.User.PushSubscription.removeEventListener(event, listener);
942
471
  });
943
472
  }
944
- function sendOutcome(outcomeName, outcomeWeight) {
945
- return new Promise((resolve, reject) => {
946
- if (isOneSignalScriptFailed) {
947
- resolve();
948
- return;
949
- }
950
- if (!doesOneSignalExist()) {
951
- reactOneSignalFunctionQueue.push({
952
- name: 'sendOutcome',
953
- args: arguments,
954
- promiseResolver: resolve,
955
- });
956
- return;
957
- }
958
- try {
959
- window["OneSignal"].push(() => {
960
- window["OneSignal"].sendOutcome(outcomeName, outcomeWeight)
961
- .then((value) => resolve(value))
962
- .catch((error) => reject(error));
963
- });
964
- }
965
- catch (error) {
966
- reject(error);
967
- }
473
+ function debugSetLogLevel(logLevel) {
474
+ var _a;
475
+ (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
476
+ OneSignal.Debug.setLogLevel(logLevel);
968
477
  });
969
478
  }
970
- const OneSignalReact = {
479
+ const PushSubscriptionNamespace = {
480
+ optIn: pushSubscriptionOptIn,
481
+ optOut: pushSubscriptionOptOut,
482
+ addEventListener: pushSubscriptionAddEventListener,
483
+ removeEventListener: pushSubscriptionRemoveEventListener,
484
+ };
485
+ const UserNamespace = {
486
+ addAlias: userAddAlias,
487
+ addAliases: userAddAliases,
488
+ removeAlias: userRemoveAlias,
489
+ removeAliases: userRemoveAliases,
490
+ addEmail: userAddEmail,
491
+ removeEmail: userRemoveEmail,
492
+ addSms: userAddSms,
493
+ removeSms: userRemoveSms,
494
+ PushSubscription: PushSubscriptionNamespace,
495
+ };
496
+ const SessionNamespace = {
497
+ sendOutcome: sessionSendOutcome,
498
+ sendUniqueOutcome: sessionSendUniqueOutcome,
499
+ };
500
+ const DebugNamespace = {
501
+ setLogLevel: debugSetLogLevel,
502
+ };
503
+ const SlidedownNamespace = {
504
+ promptPush: slidedownPromptPush,
505
+ promptPushCategories: slidedownPromptPushCategories,
506
+ promptSms: slidedownPromptSms,
507
+ promptEmail: slidedownPromptEmail,
508
+ promptSmsAndEmail: slidedownPromptSmsAndEmail,
509
+ addEventListener: slidedownAddEventListener,
510
+ removeEventListener: slidedownRemoveEventListener,
511
+ };
512
+ const NotificationsNamespace = {
513
+ setDefaultUrl: notificationsSetDefaultUrl,
514
+ setDefaultTitle: notificationsSetDefaultTitle,
515
+ isPushSupported,
516
+ getPermissionStatus: notificationsGetPermissionStatus,
517
+ requestPermission: notificationsRequestPermission,
518
+ addEventListener: notificationsAddEventListener,
519
+ removeEventListener: notificationsRemoveEventListener,
520
+ };
521
+ const OneSignalNamespace = {
522
+ login: oneSignalLogin,
523
+ logout: oneSignalLogout,
971
524
  init,
972
- on,
973
- off,
974
- once,
975
- isPushNotificationsEnabled,
976
- showHttpPrompt,
977
- registerForPushNotifications,
978
- setDefaultNotificationUrl,
979
- setDefaultTitle,
980
- getTags,
981
- sendTag,
982
- sendTags,
983
- deleteTag,
984
- deleteTags,
985
- addListenerForNotificationOpened,
986
- setSubscription,
987
- showHttpPermissionRequest,
988
- showNativePrompt,
989
- showSlidedownPrompt,
990
- showCategorySlidedown,
991
- showSmsSlidedown,
992
- showEmailSlidedown,
993
- showSmsAndEmailSlidedown,
994
- getNotificationPermission,
995
- getUserId,
996
- getSubscription,
997
- setEmail,
998
- setSMSNumber,
999
- logoutEmail,
1000
- logoutSMS,
1001
- setExternalUserId,
1002
- removeExternalUserId,
1003
- getExternalUserId,
1004
- provideUserConsent,
1005
- getEmailId,
1006
- getSMSId,
1007
- sendOutcome,
1008
- };
525
+ setConsentGiven: oneSignalSetConsentGiven,
526
+ setConsentRequired: oneSignalSetConsentRequired,
527
+ Slidedown: SlidedownNamespace,
528
+ Notifications: NotificationsNamespace,
529
+ Session: SessionNamespace,
530
+ User: UserNamespace,
531
+ Debug: DebugNamespace,
532
+ };
533
+ const OneSignal = OneSignalNamespace;
1009
534
 
1010
- export default OneSignalReact;
535
+ export default OneSignal;
1011
536
  //# sourceMappingURL=index.es.js.map