react-onesignal 2.0.4 → 3.0.0-beta.2

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,95 @@
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
+ var _a;
76
+ (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
77
+ OneSignal.init(options).then(() => {
78
+ isOneSignalInitialized = true;
79
+ resolve();
131
80
  });
132
- }
133
- catch (error) {
134
- reject(error);
135
- }
81
+ });
136
82
  });
137
- }
138
- function showHttpPrompt(options) {
83
+ };
84
+ function oneSignalLogin(externalId, jwtToken) {
139
85
  return new Promise((resolve, reject) => {
86
+ var _a;
140
87
  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;
88
+ reject();
151
89
  }
152
90
  try {
153
- window["OneSignal"].push(() => {
154
- window["OneSignal"].showHttpPrompt(options)
91
+ (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
92
+ OneSignal.login(externalId, jwtToken)
155
93
  .then((value) => resolve(value))
156
94
  .catch((error) => reject(error));
157
95
  });
@@ -161,23 +99,15 @@ function showHttpPrompt(options) {
161
99
  }
162
100
  });
163
101
  }
164
- function registerForPushNotifications(options) {
102
+ function oneSignalLogout() {
165
103
  return new Promise((resolve, reject) => {
104
+ var _a;
166
105
  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;
106
+ reject();
177
107
  }
178
108
  try {
179
- window["OneSignal"].push(() => {
180
- window["OneSignal"].registerForPushNotifications(options)
109
+ (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
110
+ OneSignal.logout()
181
111
  .then((value) => resolve(value))
182
112
  .catch((error) => reject(error));
183
113
  });
@@ -187,23 +117,15 @@ function registerForPushNotifications(options) {
187
117
  }
188
118
  });
189
119
  }
190
- function setDefaultNotificationUrl(url) {
120
+ function oneSignalSetConsentGiven(consent) {
191
121
  return new Promise((resolve, reject) => {
122
+ var _a;
192
123
  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;
124
+ reject();
203
125
  }
204
126
  try {
205
- window["OneSignal"].push(() => {
206
- window["OneSignal"].setDefaultNotificationUrl(url)
127
+ (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
128
+ OneSignal.setConsentGiven(consent)
207
129
  .then((value) => resolve(value))
208
130
  .catch((error) => reject(error));
209
131
  });
@@ -213,23 +135,15 @@ function setDefaultNotificationUrl(url) {
213
135
  }
214
136
  });
215
137
  }
216
- function setDefaultTitle(title) {
138
+ function oneSignalSetConsentRequired(requiresConsent) {
217
139
  return new Promise((resolve, reject) => {
140
+ var _a;
218
141
  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;
142
+ reject();
229
143
  }
230
144
  try {
231
- window["OneSignal"].push(() => {
232
- window["OneSignal"].setDefaultTitle(title)
145
+ (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
146
+ OneSignal.setConsentRequired(requiresConsent)
233
147
  .then((value) => resolve(value))
234
148
  .catch((error) => reject(error));
235
149
  });
@@ -239,23 +153,15 @@ function setDefaultTitle(title) {
239
153
  }
240
154
  });
241
155
  }
242
- function getTags(callback) {
156
+ function slidedownPromptPush(options) {
243
157
  return new Promise((resolve, reject) => {
158
+ var _a;
244
159
  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;
160
+ reject();
255
161
  }
256
162
  try {
257
- window["OneSignal"].push(() => {
258
- window["OneSignal"].getTags(callback)
163
+ (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
164
+ OneSignal.Slidedown.promptPush(options)
259
165
  .then((value) => resolve(value))
260
166
  .catch((error) => reject(error));
261
167
  });
@@ -265,23 +171,15 @@ function getTags(callback) {
265
171
  }
266
172
  });
267
173
  }
268
- function sendTag(key, value, callback) {
174
+ function slidedownPromptPushCategories(options) {
269
175
  return new Promise((resolve, reject) => {
176
+ var _a;
270
177
  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;
178
+ reject();
281
179
  }
282
180
  try {
283
- window["OneSignal"].push(() => {
284
- window["OneSignal"].sendTag(key, value, callback)
181
+ (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
182
+ OneSignal.Slidedown.promptPushCategories(options)
285
183
  .then((value) => resolve(value))
286
184
  .catch((error) => reject(error));
287
185
  });
@@ -291,23 +189,15 @@ function sendTag(key, value, callback) {
291
189
  }
292
190
  });
293
191
  }
294
- function sendTags(tags, callback) {
192
+ function slidedownPromptSms(options) {
295
193
  return new Promise((resolve, reject) => {
194
+ var _a;
296
195
  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;
196
+ reject();
307
197
  }
308
198
  try {
309
- window["OneSignal"].push(() => {
310
- window["OneSignal"].sendTags(tags, callback)
199
+ (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
200
+ OneSignal.Slidedown.promptSms(options)
311
201
  .then((value) => resolve(value))
312
202
  .catch((error) => reject(error));
313
203
  });
@@ -317,23 +207,15 @@ function sendTags(tags, callback) {
317
207
  }
318
208
  });
319
209
  }
320
- function deleteTag(tag) {
210
+ function slidedownPromptEmail(options) {
321
211
  return new Promise((resolve, reject) => {
212
+ var _a;
322
213
  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;
214
+ reject();
333
215
  }
334
216
  try {
335
- window["OneSignal"].push(() => {
336
- window["OneSignal"].deleteTag(tag)
217
+ (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
218
+ OneSignal.Slidedown.promptEmail(options)
337
219
  .then((value) => resolve(value))
338
220
  .catch((error) => reject(error));
339
221
  });
@@ -343,23 +225,15 @@ function deleteTag(tag) {
343
225
  }
344
226
  });
345
227
  }
346
- function deleteTags(tags, callback) {
228
+ function slidedownPromptSmsAndEmail(options) {
347
229
  return new Promise((resolve, reject) => {
230
+ var _a;
348
231
  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;
232
+ reject();
359
233
  }
360
234
  try {
361
- window["OneSignal"].push(() => {
362
- window["OneSignal"].deleteTags(tags, callback)
235
+ (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
236
+ OneSignal.Slidedown.promptSmsAndEmail(options)
363
237
  .then((value) => resolve(value))
364
238
  .catch((error) => reject(error));
365
239
  });
@@ -369,75 +243,27 @@ function deleteTags(tags, callback) {
369
243
  }
370
244
  });
371
245
  }
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
- }
246
+ function slidedownAddEventListener(event, listener) {
247
+ var _a;
248
+ (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
249
+ OneSignal.Slidedown.addEventListener(event, listener);
396
250
  });
397
251
  }
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
- }
252
+ function slidedownRemoveEventListener(event, listener) {
253
+ var _a;
254
+ (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
255
+ OneSignal.Slidedown.removeEventListener(event, listener);
422
256
  });
423
257
  }
424
- function showHttpPermissionRequest(options) {
258
+ function notificationsSetDefaultUrl(url) {
425
259
  return new Promise((resolve, reject) => {
260
+ var _a;
426
261
  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;
262
+ reject();
437
263
  }
438
264
  try {
439
- window["OneSignal"].push(() => {
440
- window["OneSignal"].showHttpPermissionRequest(options)
265
+ (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
266
+ OneSignal.Notifications.setDefaultUrl(url)
441
267
  .then((value) => resolve(value))
442
268
  .catch((error) => reject(error));
443
269
  });
@@ -447,23 +273,15 @@ function showHttpPermissionRequest(options) {
447
273
  }
448
274
  });
449
275
  }
450
- function showNativePrompt() {
276
+ function notificationsSetDefaultTitle(title) {
451
277
  return new Promise((resolve, reject) => {
278
+ var _a;
452
279
  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;
280
+ reject();
463
281
  }
464
282
  try {
465
- window["OneSignal"].push(() => {
466
- window["OneSignal"].showNativePrompt()
283
+ (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
284
+ OneSignal.Notifications.setDefaultTitle(title)
467
285
  .then((value) => resolve(value))
468
286
  .catch((error) => reject(error));
469
287
  });
@@ -473,23 +291,15 @@ function showNativePrompt() {
473
291
  }
474
292
  });
475
293
  }
476
- function showSlidedownPrompt(options) {
294
+ function notificationsGetPermissionStatus(onComplete) {
477
295
  return new Promise((resolve, reject) => {
296
+ var _a;
478
297
  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;
298
+ reject();
489
299
  }
490
300
  try {
491
- window["OneSignal"].push(() => {
492
- window["OneSignal"].showSlidedownPrompt(options)
301
+ (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
302
+ OneSignal.Notifications.getPermissionStatus(onComplete)
493
303
  .then((value) => resolve(value))
494
304
  .catch((error) => reject(error));
495
305
  });
@@ -499,23 +309,15 @@ function showSlidedownPrompt(options) {
499
309
  }
500
310
  });
501
311
  }
502
- function showCategorySlidedown(options) {
312
+ function notificationsRequestPermission() {
503
313
  return new Promise((resolve, reject) => {
314
+ var _a;
504
315
  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;
316
+ reject();
515
317
  }
516
318
  try {
517
- window["OneSignal"].push(() => {
518
- window["OneSignal"].showCategorySlidedown(options)
319
+ (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
320
+ OneSignal.Notifications.requestPermission()
519
321
  .then((value) => resolve(value))
520
322
  .catch((error) => reject(error));
521
323
  });
@@ -525,75 +327,27 @@ function showCategorySlidedown(options) {
525
327
  }
526
328
  });
527
329
  }
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
- }
330
+ function notificationsAddEventListener(event, listener) {
331
+ var _a;
332
+ (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
333
+ OneSignal.Notifications.addEventListener(event, listener);
552
334
  });
553
335
  }
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
- }
336
+ function notificationsRemoveEventListener(event, listener) {
337
+ var _a;
338
+ (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
339
+ OneSignal.Notifications.removeEventListener(event, listener);
578
340
  });
579
341
  }
580
- function showSmsAndEmailSlidedown(options) {
342
+ function sessionSendOutcome(outcomeName, outcomeWeight) {
581
343
  return new Promise((resolve, reject) => {
344
+ var _a;
582
345
  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;
346
+ reject();
593
347
  }
594
348
  try {
595
- window["OneSignal"].push(() => {
596
- window["OneSignal"].showSmsAndEmailSlidedown(options)
349
+ (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
350
+ OneSignal.Session.sendOutcome(outcomeName, outcomeWeight)
597
351
  .then((value) => resolve(value))
598
352
  .catch((error) => reject(error));
599
353
  });
@@ -603,23 +357,15 @@ function showSmsAndEmailSlidedown(options) {
603
357
  }
604
358
  });
605
359
  }
606
- function getNotificationPermission(onComplete) {
360
+ function sessionSendUniqueOutcome(outcomeName) {
607
361
  return new Promise((resolve, reject) => {
362
+ var _a;
608
363
  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;
364
+ reject();
619
365
  }
620
366
  try {
621
- window["OneSignal"].push(() => {
622
- window["OneSignal"].getNotificationPermission(onComplete)
367
+ (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
368
+ OneSignal.Session.sendUniqueOutcome(outcomeName)
623
369
  .then((value) => resolve(value))
624
370
  .catch((error) => reject(error));
625
371
  });
@@ -629,231 +375,63 @@ function getNotificationPermission(onComplete) {
629
375
  }
630
376
  });
631
377
  }
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
- }
378
+ function userAddAlias(label, id) {
379
+ var _a;
380
+ (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
381
+ OneSignal.User.addAlias(label, id);
656
382
  });
657
383
  }
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
- }
384
+ function userAddAliases(aliases) {
385
+ var _a;
386
+ (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
387
+ OneSignal.User.addAliases(aliases);
682
388
  });
683
389
  }
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
- }
390
+ function userRemoveAlias(label) {
391
+ var _a;
392
+ (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
393
+ OneSignal.User.removeAlias(label);
708
394
  });
709
395
  }
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
- }
396
+ function userRemoveAliases(labels) {
397
+ var _a;
398
+ (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
399
+ OneSignal.User.removeAliases(labels);
734
400
  });
735
401
  }
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
- }
402
+ function userAddEmail(email) {
403
+ var _a;
404
+ (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
405
+ OneSignal.User.addEmail(email);
760
406
  });
761
407
  }
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
- }
408
+ function userRemoveEmail(email) {
409
+ var _a;
410
+ (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
411
+ OneSignal.User.removeEmail(email);
786
412
  });
787
413
  }
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
- }
414
+ function userAddSms(smsNumber) {
415
+ var _a;
416
+ (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
417
+ OneSignal.User.addSms(smsNumber);
812
418
  });
813
419
  }
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
- }
420
+ function userRemoveSms(smsNumber) {
421
+ var _a;
422
+ (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
423
+ OneSignal.User.removeSms(smsNumber);
838
424
  });
839
425
  }
840
- function getExternalUserId() {
426
+ function pushSubscriptionOptIn() {
841
427
  return new Promise((resolve, reject) => {
428
+ var _a;
842
429
  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;
430
+ reject();
853
431
  }
854
432
  try {
855
- window["OneSignal"].push(() => {
856
- window["OneSignal"].getExternalUserId()
433
+ (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
434
+ OneSignal.User.PushSubscription.optIn()
857
435
  .then((value) => resolve(value))
858
436
  .catch((error) => reject(error));
859
437
  });
@@ -863,23 +441,15 @@ function getExternalUserId() {
863
441
  }
864
442
  });
865
443
  }
866
- function provideUserConsent(consent) {
444
+ function pushSubscriptionOptOut() {
867
445
  return new Promise((resolve, reject) => {
446
+ var _a;
868
447
  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;
448
+ reject();
879
449
  }
880
450
  try {
881
- window["OneSignal"].push(() => {
882
- window["OneSignal"].provideUserConsent(consent)
451
+ (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
452
+ OneSignal.User.PushSubscription.optOut()
883
453
  .then((value) => resolve(value))
884
454
  .catch((error) => reject(error));
885
455
  });
@@ -889,123 +459,82 @@ function provideUserConsent(consent) {
889
459
  }
890
460
  });
891
461
  }
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
- }
462
+ function pushSubscriptionAddEventListener(event, listener) {
463
+ var _a;
464
+ (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
465
+ OneSignal.User.PushSubscription.addEventListener(event, listener);
916
466
  });
917
467
  }
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
- }
468
+ function pushSubscriptionRemoveEventListener(event, listener) {
469
+ var _a;
470
+ (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
471
+ OneSignal.User.PushSubscription.removeEventListener(event, listener);
942
472
  });
943
473
  }
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
- }
474
+ function debugSetLogLevel(logLevel) {
475
+ var _a;
476
+ (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
477
+ OneSignal.Debug.setLogLevel(logLevel);
968
478
  });
969
479
  }
970
- const OneSignalReact = {
480
+ const PushSubscriptionNamespace = {
481
+ get id() { var _a, _b, _c; return (_c = (_b = (_a = window.OneSignal) === null || _a === void 0 ? void 0 : _a.User) === null || _b === void 0 ? void 0 : _b.PushSubscription) === null || _c === void 0 ? void 0 : _c.id; },
482
+ get token() { var _a, _b, _c; return (_c = (_b = (_a = window.OneSignal) === null || _a === void 0 ? void 0 : _a.User) === null || _b === void 0 ? void 0 : _b.PushSubscription) === null || _c === void 0 ? void 0 : _c.token; },
483
+ get optedIn() { var _a, _b, _c; return (_c = (_b = (_a = window.OneSignal) === null || _a === void 0 ? void 0 : _a.User) === null || _b === void 0 ? void 0 : _b.PushSubscription) === null || _c === void 0 ? void 0 : _c.optedIn; },
484
+ optIn: pushSubscriptionOptIn,
485
+ optOut: pushSubscriptionOptOut,
486
+ addEventListener: pushSubscriptionAddEventListener,
487
+ removeEventListener: pushSubscriptionRemoveEventListener,
488
+ };
489
+ const UserNamespace = {
490
+ addAlias: userAddAlias,
491
+ addAliases: userAddAliases,
492
+ removeAlias: userRemoveAlias,
493
+ removeAliases: userRemoveAliases,
494
+ addEmail: userAddEmail,
495
+ removeEmail: userRemoveEmail,
496
+ addSms: userAddSms,
497
+ removeSms: userRemoveSms,
498
+ PushSubscription: PushSubscriptionNamespace,
499
+ };
500
+ const SessionNamespace = {
501
+ sendOutcome: sessionSendOutcome,
502
+ sendUniqueOutcome: sessionSendUniqueOutcome,
503
+ };
504
+ const DebugNamespace = {
505
+ setLogLevel: debugSetLogLevel,
506
+ };
507
+ const SlidedownNamespace = {
508
+ promptPush: slidedownPromptPush,
509
+ promptPushCategories: slidedownPromptPushCategories,
510
+ promptSms: slidedownPromptSms,
511
+ promptEmail: slidedownPromptEmail,
512
+ promptSmsAndEmail: slidedownPromptSmsAndEmail,
513
+ addEventListener: slidedownAddEventListener,
514
+ removeEventListener: slidedownRemoveEventListener,
515
+ };
516
+ const NotificationsNamespace = {
517
+ setDefaultUrl: notificationsSetDefaultUrl,
518
+ setDefaultTitle: notificationsSetDefaultTitle,
519
+ isPushSupported,
520
+ getPermissionStatus: notificationsGetPermissionStatus,
521
+ requestPermission: notificationsRequestPermission,
522
+ addEventListener: notificationsAddEventListener,
523
+ removeEventListener: notificationsRemoveEventListener,
524
+ };
525
+ const OneSignalNamespace = {
526
+ login: oneSignalLogin,
527
+ logout: oneSignalLogout,
971
528
  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
- };
529
+ setConsentGiven: oneSignalSetConsentGiven,
530
+ setConsentRequired: oneSignalSetConsentRequired,
531
+ Slidedown: SlidedownNamespace,
532
+ Notifications: NotificationsNamespace,
533
+ Session: SessionNamespace,
534
+ User: UserNamespace,
535
+ Debug: DebugNamespace,
536
+ };
537
+ const OneSignal = OneSignalNamespace;
1009
538
 
1010
- export default OneSignalReact;
539
+ export default OneSignal;
1011
540
  //# sourceMappingURL=index.es.js.map