@onesignal/onesignal-vue3 1.0.2 → 2.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.js CHANGED
@@ -1,705 +1,540 @@
1
1
  const ONESIGNAL_SDK_ID = 'onesignal-sdk';
2
- const ONE_SIGNAL_SCRIPT_SRC = 'https://cdn.onesignal.com/sdks/OneSignalSDK.js';
3
- const ONESIGNAL_NOT_SETUP_ERROR = 'OneSignal is not setup correctly.';
4
- const MAX_TIMEOUT = 30;
2
+ const ONE_SIGNAL_SCRIPT_SRC = "https://cdn.onesignal.com/sdks/web/v16/OneSignalSDK.page.js";
3
+ // true if the script is successfully loaded from CDN.
5
4
  let isOneSignalInitialized = false;
6
- const vueOneSignalFunctionQueue = [];
5
+ // true if the script fails to load from CDN. A separate flag is necessary
6
+ // to disambiguate between a CDN load failure and a delayed call to
7
+ // OneSignal#init.
8
+ let isOneSignalScriptFailed = false;
9
+ window.OneSignalDeferred = window.OneSignalDeferred || [];
10
+ addSDKScript();
7
11
  /* H E L P E R S */
8
- const injectScript = () => {
12
+ function handleOnError() {
13
+ isOneSignalScriptFailed = true;
14
+ }
15
+ function addSDKScript() {
9
16
  const script = document.createElement('script');
10
17
  script.id = ONESIGNAL_SDK_ID;
18
+ script.defer = true;
11
19
  script.src = ONE_SIGNAL_SCRIPT_SRC;
12
- script.async = true;
20
+ // Always resolve whether or not the script is successfully initialized.
21
+ // This is important for users who may block cdn.onesignal.com w/ adblock.
22
+ script.onerror = () => {
23
+ handleOnError();
24
+ };
13
25
  document.head.appendChild(script);
14
- };
15
- const doesOneSignalExist = () => {
16
- if (window.OneSignal) {
17
- return true;
18
- }
19
- return false;
20
- };
21
- const processQueuedOneSignalFunctions = () => {
22
- vueOneSignalFunctionQueue.forEach(element => {
23
- const { name, args, promiseResolver } = element;
24
- if (!!promiseResolver) {
25
- OneSignalVue[name](...args).then((result) => {
26
- promiseResolver(result);
27
- });
28
- }
29
- else {
30
- window.OneSignal[name](...args);
31
- }
32
- });
33
- };
34
- const setupOneSignalIfMissing = () => {
35
- if (!doesOneSignalExist()) {
36
- window.OneSignal = window.OneSignal || [];
37
- }
38
- };
39
- /* O N E S I G N A L A P I */
40
- function init(options) {
41
- return new Promise(resolve => {
42
- if (isOneSignalInitialized) {
43
- return;
44
- }
45
- injectScript();
46
- setupOneSignalIfMissing();
47
- window.OneSignal.push(() => {
48
- window.OneSignal.init(options);
49
- });
50
- const timeout = setTimeout(() => {
51
- console.error(ONESIGNAL_NOT_SETUP_ERROR);
52
- }, MAX_TIMEOUT * 1000);
53
- window.OneSignal.push(() => {
54
- clearTimeout(timeout);
55
- isOneSignalInitialized = true;
56
- processQueuedOneSignalFunctions();
57
- resolve();
58
- });
59
- });
60
26
  }
61
- function on(event, listener) {
62
- if (!doesOneSignalExist()) {
63
- vueOneSignalFunctionQueue.push({
64
- name: 'on',
65
- args: arguments,
66
- });
67
- return;
27
+ /* O N E S I G N A L A P I */
28
+ /**
29
+ * @PublicApi
30
+ */
31
+ const init = (options) => {
32
+ if (isOneSignalInitialized) {
33
+ return Promise.reject(`OneSignal is already initialized.`);
68
34
  }
69
- window.OneSignal.push(() => {
70
- window.OneSignal.on(event, listener);
71
- });
72
- }
73
- function off(event, listener) {
74
- if (!doesOneSignalExist()) {
75
- vueOneSignalFunctionQueue.push({
76
- name: 'off',
77
- args: arguments,
78
- });
79
- return;
35
+ if (!options || !options.appId) {
36
+ throw new Error('You need to provide your OneSignal appId.');
80
37
  }
81
- window.OneSignal.push(() => {
82
- window.OneSignal.off(event, listener);
83
- });
84
- }
85
- function once(event, listener) {
86
- if (!doesOneSignalExist()) {
87
- vueOneSignalFunctionQueue.push({
88
- name: 'once',
89
- args: arguments,
90
- });
91
- return;
38
+ if (!document) {
39
+ return Promise.reject(`Document is not defined.`);
92
40
  }
93
- window.OneSignal.push(() => {
94
- window.OneSignal.once(event, listener);
95
- });
96
- }
97
- function isPushNotificationsEnabled(callback) {
98
- return new Promise(function (resolve, reject) {
99
- if (!doesOneSignalExist()) {
100
- vueOneSignalFunctionQueue.push({
101
- name: 'isPushNotificationsEnabled',
102
- args: arguments,
103
- promiseResolver: resolve,
41
+ return new Promise((resolve) => {
42
+ var _a;
43
+ (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
44
+ OneSignal.init(options).then(() => {
45
+ isOneSignalInitialized = true;
46
+ resolve();
104
47
  });
105
- return;
106
- }
107
- window.OneSignal.push(() => {
108
- window.OneSignal.isPushNotificationsEnabled(callback)
109
- .then(value => resolve(value))
110
- .catch(error => reject(error));
111
48
  });
112
49
  });
113
- }
114
- function showHttpPrompt(options) {
50
+ };
51
+ /**
52
+ * The following code is copied directly from the native SDK source file BrowserSupportsPush.ts
53
+ * S T A R T
54
+ */
55
+ // Checks if the browser supports push notifications by checking if specific
56
+ // classes and properties on them exist
57
+ function isPushNotificationsSupported() {
58
+ return supportsVapidPush() || supportsSafariPush();
59
+ }
60
+ function isMacOSSafariInIframe() {
61
+ // Fallback detection for Safari on macOS in an iframe context
62
+ return window.top !== window && // isContextIframe
63
+ navigator.vendor === "Apple Computer, Inc." && // isSafari
64
+ navigator.platform === "MacIntel"; // isMacOS
65
+ }
66
+ function supportsSafariPush() {
67
+ return (window.safari && typeof window.safari.pushNotification !== "undefined") ||
68
+ isMacOSSafariInIframe();
69
+ }
70
+ // Does the browser support the standard Push API
71
+ function supportsVapidPush() {
72
+ return typeof PushSubscriptionOptions !== "undefined" &&
73
+ PushSubscriptionOptions.prototype.hasOwnProperty("applicationServerKey");
74
+ }
75
+ /* E N D */
76
+ /**
77
+ * @PublicApi
78
+ */
79
+ const isPushSupported = () => {
80
+ return isPushNotificationsSupported();
81
+ };
82
+ function oneSignalLogin(externalId, jwtToken) {
115
83
  return new Promise(function (resolve, reject) {
116
- if (!doesOneSignalExist()) {
117
- vueOneSignalFunctionQueue.push({
118
- name: 'showHttpPrompt',
119
- args: arguments,
120
- promiseResolver: resolve,
84
+ var _a;
85
+ if (isOneSignalScriptFailed) {
86
+ reject();
87
+ }
88
+ try {
89
+ (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
90
+ OneSignal.login(externalId, jwtToken)
91
+ .then(value => resolve(value))
92
+ .catch(error => reject(error));
121
93
  });
122
- return;
123
94
  }
124
- window.OneSignal.push(() => {
125
- window.OneSignal.showHttpPrompt(options)
126
- .then(value => resolve(value))
127
- .catch(error => reject(error));
128
- });
95
+ catch (error) {
96
+ reject(error);
97
+ }
129
98
  });
130
99
  }
131
- function registerForPushNotifications(options) {
100
+ function oneSignalLogout() {
132
101
  return new Promise(function (resolve, reject) {
133
- if (!doesOneSignalExist()) {
134
- vueOneSignalFunctionQueue.push({
135
- name: 'registerForPushNotifications',
136
- args: arguments,
137
- promiseResolver: resolve,
102
+ var _a;
103
+ if (isOneSignalScriptFailed) {
104
+ reject();
105
+ }
106
+ try {
107
+ (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
108
+ OneSignal.logout()
109
+ .then(value => resolve(value))
110
+ .catch(error => reject(error));
138
111
  });
139
- return;
140
112
  }
141
- window.OneSignal.push(() => {
142
- window.OneSignal.registerForPushNotifications(options)
143
- .then(value => resolve(value))
144
- .catch(error => reject(error));
145
- });
113
+ catch (error) {
114
+ reject(error);
115
+ }
146
116
  });
147
117
  }
148
- function setDefaultNotificationUrl(url) {
118
+ function oneSignalSetConsentGiven(consent) {
149
119
  return new Promise(function (resolve, reject) {
150
- if (!doesOneSignalExist()) {
151
- vueOneSignalFunctionQueue.push({
152
- name: 'setDefaultNotificationUrl',
153
- args: arguments,
154
- promiseResolver: resolve,
120
+ var _a;
121
+ if (isOneSignalScriptFailed) {
122
+ reject();
123
+ }
124
+ try {
125
+ (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
126
+ OneSignal.setConsentGiven(consent)
127
+ .then(value => resolve(value))
128
+ .catch(error => reject(error));
155
129
  });
156
- return;
157
130
  }
158
- window.OneSignal.push(() => {
159
- window.OneSignal.setDefaultNotificationUrl(url)
160
- .then(value => resolve(value))
161
- .catch(error => reject(error));
162
- });
131
+ catch (error) {
132
+ reject(error);
133
+ }
163
134
  });
164
135
  }
165
- function setDefaultTitle(title) {
136
+ function oneSignalSetConsentRequired(requiresConsent) {
166
137
  return new Promise(function (resolve, reject) {
167
- if (!doesOneSignalExist()) {
168
- vueOneSignalFunctionQueue.push({
169
- name: 'setDefaultTitle',
170
- args: arguments,
171
- promiseResolver: resolve,
138
+ var _a;
139
+ if (isOneSignalScriptFailed) {
140
+ reject();
141
+ }
142
+ try {
143
+ (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
144
+ OneSignal.setConsentRequired(requiresConsent)
145
+ .then(value => resolve(value))
146
+ .catch(error => reject(error));
172
147
  });
173
- return;
174
148
  }
175
- window.OneSignal.push(() => {
176
- window.OneSignal.setDefaultTitle(title)
177
- .then(value => resolve(value))
178
- .catch(error => reject(error));
179
- });
149
+ catch (error) {
150
+ reject(error);
151
+ }
180
152
  });
181
153
  }
182
- function getTags(callback) {
154
+ function slidedownPromptPush(options) {
183
155
  return new Promise(function (resolve, reject) {
184
- if (!doesOneSignalExist()) {
185
- vueOneSignalFunctionQueue.push({
186
- name: 'getTags',
187
- args: arguments,
188
- promiseResolver: resolve,
156
+ var _a;
157
+ if (isOneSignalScriptFailed) {
158
+ reject();
159
+ }
160
+ try {
161
+ (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
162
+ OneSignal.Slidedown.promptPush(options)
163
+ .then(value => resolve(value))
164
+ .catch(error => reject(error));
189
165
  });
190
- return;
191
166
  }
192
- window.OneSignal.push(() => {
193
- window.OneSignal.getTags(callback)
194
- .then(value => resolve(value))
195
- .catch(error => reject(error));
196
- });
167
+ catch (error) {
168
+ reject(error);
169
+ }
197
170
  });
198
171
  }
199
- function sendTag(key, value, callback) {
172
+ function slidedownPromptPushCategories(options) {
200
173
  return new Promise(function (resolve, reject) {
201
- if (!doesOneSignalExist()) {
202
- vueOneSignalFunctionQueue.push({
203
- name: 'sendTag',
204
- args: arguments,
205
- promiseResolver: resolve,
174
+ var _a;
175
+ if (isOneSignalScriptFailed) {
176
+ reject();
177
+ }
178
+ try {
179
+ (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
180
+ OneSignal.Slidedown.promptPushCategories(options)
181
+ .then(value => resolve(value))
182
+ .catch(error => reject(error));
206
183
  });
207
- return;
208
184
  }
209
- window.OneSignal.push(() => {
210
- window.OneSignal.sendTag(key, value, callback)
211
- .then(value => resolve(value))
212
- .catch(error => reject(error));
213
- });
185
+ catch (error) {
186
+ reject(error);
187
+ }
214
188
  });
215
189
  }
216
- function sendTags(tags, callback) {
190
+ function slidedownPromptSms(options) {
217
191
  return new Promise(function (resolve, reject) {
218
- if (!doesOneSignalExist()) {
219
- vueOneSignalFunctionQueue.push({
220
- name: 'sendTags',
221
- args: arguments,
222
- promiseResolver: resolve,
192
+ var _a;
193
+ if (isOneSignalScriptFailed) {
194
+ reject();
195
+ }
196
+ try {
197
+ (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
198
+ OneSignal.Slidedown.promptSms(options)
199
+ .then(value => resolve(value))
200
+ .catch(error => reject(error));
223
201
  });
224
- return;
225
202
  }
226
- window.OneSignal.push(() => {
227
- window.OneSignal.sendTags(tags, callback)
228
- .then(value => resolve(value))
229
- .catch(error => reject(error));
230
- });
203
+ catch (error) {
204
+ reject(error);
205
+ }
231
206
  });
232
207
  }
233
- function deleteTag(tag) {
208
+ function slidedownPromptEmail(options) {
234
209
  return new Promise(function (resolve, reject) {
235
- if (!doesOneSignalExist()) {
236
- vueOneSignalFunctionQueue.push({
237
- name: 'deleteTag',
238
- args: arguments,
239
- promiseResolver: resolve,
210
+ var _a;
211
+ if (isOneSignalScriptFailed) {
212
+ reject();
213
+ }
214
+ try {
215
+ (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
216
+ OneSignal.Slidedown.promptEmail(options)
217
+ .then(value => resolve(value))
218
+ .catch(error => reject(error));
240
219
  });
241
- return;
242
220
  }
243
- window.OneSignal.push(() => {
244
- window.OneSignal.deleteTag(tag)
245
- .then(value => resolve(value))
246
- .catch(error => reject(error));
247
- });
221
+ catch (error) {
222
+ reject(error);
223
+ }
248
224
  });
249
225
  }
250
- function deleteTags(tags, callback) {
226
+ function slidedownPromptSmsAndEmail(options) {
251
227
  return new Promise(function (resolve, reject) {
252
- if (!doesOneSignalExist()) {
253
- vueOneSignalFunctionQueue.push({
254
- name: 'deleteTags',
255
- args: arguments,
256
- promiseResolver: resolve,
228
+ var _a;
229
+ if (isOneSignalScriptFailed) {
230
+ reject();
231
+ }
232
+ try {
233
+ (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
234
+ OneSignal.Slidedown.promptSmsAndEmail(options)
235
+ .then(value => resolve(value))
236
+ .catch(error => reject(error));
257
237
  });
258
- return;
259
238
  }
260
- window.OneSignal.push(() => {
261
- window.OneSignal.deleteTags(tags, callback)
262
- .then(value => resolve(value))
263
- .catch(error => reject(error));
264
- });
239
+ catch (error) {
240
+ reject(error);
241
+ }
265
242
  });
266
243
  }
267
- function addListenerForNotificationOpened(callback) {
268
- return new Promise(function (resolve, reject) {
269
- if (!doesOneSignalExist()) {
270
- vueOneSignalFunctionQueue.push({
271
- name: 'addListenerForNotificationOpened',
272
- args: arguments,
273
- promiseResolver: resolve,
274
- });
275
- return;
276
- }
277
- window.OneSignal.push(() => {
278
- window.OneSignal.addListenerForNotificationOpened(callback)
279
- .then(value => resolve(value))
280
- .catch(error => reject(error));
281
- });
244
+ function slidedownAddEventListener(event, listener) {
245
+ var _a;
246
+ (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
247
+ OneSignal.Slidedown.addEventListener(event, listener);
282
248
  });
283
249
  }
284
- function setSubscription(newSubscription) {
285
- return new Promise(function (resolve, reject) {
286
- if (!doesOneSignalExist()) {
287
- vueOneSignalFunctionQueue.push({
288
- name: 'setSubscription',
289
- args: arguments,
290
- promiseResolver: resolve,
291
- });
292
- return;
293
- }
294
- window.OneSignal.push(() => {
295
- window.OneSignal.setSubscription(newSubscription)
296
- .then(value => resolve(value))
297
- .catch(error => reject(error));
298
- });
250
+ function slidedownRemoveEventListener(event, listener) {
251
+ var _a;
252
+ (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
253
+ OneSignal.Slidedown.removeEventListener(event, listener);
299
254
  });
300
255
  }
301
- function showHttpPermissionRequest(options) {
256
+ function notificationsSetDefaultUrl(url) {
302
257
  return new Promise(function (resolve, reject) {
303
- if (!doesOneSignalExist()) {
304
- vueOneSignalFunctionQueue.push({
305
- name: 'showHttpPermissionRequest',
306
- args: arguments,
307
- promiseResolver: resolve,
258
+ var _a;
259
+ if (isOneSignalScriptFailed) {
260
+ reject();
261
+ }
262
+ try {
263
+ (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
264
+ OneSignal.Notifications.setDefaultUrl(url)
265
+ .then(value => resolve(value))
266
+ .catch(error => reject(error));
308
267
  });
309
- return;
310
268
  }
311
- window.OneSignal.push(() => {
312
- window.OneSignal.showHttpPermissionRequest(options)
313
- .then(value => resolve(value))
314
- .catch(error => reject(error));
315
- });
269
+ catch (error) {
270
+ reject(error);
271
+ }
316
272
  });
317
273
  }
318
- function showNativePrompt() {
274
+ function notificationsSetDefaultTitle(title) {
319
275
  return new Promise(function (resolve, reject) {
320
- if (!doesOneSignalExist()) {
321
- vueOneSignalFunctionQueue.push({
322
- name: 'showNativePrompt',
323
- args: arguments,
324
- promiseResolver: resolve,
276
+ var _a;
277
+ if (isOneSignalScriptFailed) {
278
+ reject();
279
+ }
280
+ try {
281
+ (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
282
+ OneSignal.Notifications.setDefaultTitle(title)
283
+ .then(value => resolve(value))
284
+ .catch(error => reject(error));
325
285
  });
326
- return;
327
286
  }
328
- window.OneSignal.push(() => {
329
- window.OneSignal.showNativePrompt()
330
- .then(value => resolve(value))
331
- .catch(error => reject(error));
332
- });
287
+ catch (error) {
288
+ reject(error);
289
+ }
333
290
  });
334
291
  }
335
- function showSlidedownPrompt(options) {
292
+ function notificationsGetPermissionStatus(onComplete) {
336
293
  return new Promise(function (resolve, reject) {
337
- if (!doesOneSignalExist()) {
338
- vueOneSignalFunctionQueue.push({
339
- name: 'showSlidedownPrompt',
340
- args: arguments,
341
- promiseResolver: resolve,
294
+ var _a;
295
+ if (isOneSignalScriptFailed) {
296
+ reject();
297
+ }
298
+ try {
299
+ (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
300
+ OneSignal.Notifications.getPermissionStatus(onComplete)
301
+ .then(value => resolve(value))
302
+ .catch(error => reject(error));
342
303
  });
343
- return;
344
304
  }
345
- window.OneSignal.push(() => {
346
- window.OneSignal.showSlidedownPrompt(options)
347
- .then(value => resolve(value))
348
- .catch(error => reject(error));
349
- });
305
+ catch (error) {
306
+ reject(error);
307
+ }
350
308
  });
351
309
  }
352
- function showCategorySlidedown(options) {
310
+ function notificationsRequestPermission() {
353
311
  return new Promise(function (resolve, reject) {
354
- if (!doesOneSignalExist()) {
355
- vueOneSignalFunctionQueue.push({
356
- name: 'showCategorySlidedown',
357
- args: arguments,
358
- promiseResolver: resolve,
312
+ var _a;
313
+ if (isOneSignalScriptFailed) {
314
+ reject();
315
+ }
316
+ try {
317
+ (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
318
+ OneSignal.Notifications.requestPermission()
319
+ .then(value => resolve(value))
320
+ .catch(error => reject(error));
359
321
  });
360
- return;
361
322
  }
362
- window.OneSignal.push(() => {
363
- window.OneSignal.showCategorySlidedown(options)
364
- .then(value => resolve(value))
365
- .catch(error => reject(error));
366
- });
323
+ catch (error) {
324
+ reject(error);
325
+ }
367
326
  });
368
327
  }
369
- function showSmsSlidedown(options) {
370
- return new Promise(function (resolve, reject) {
371
- if (!doesOneSignalExist()) {
372
- vueOneSignalFunctionQueue.push({
373
- name: 'showSmsSlidedown',
374
- args: arguments,
375
- promiseResolver: resolve,
376
- });
377
- return;
378
- }
379
- window.OneSignal.push(() => {
380
- window.OneSignal.showSmsSlidedown(options)
381
- .then(value => resolve(value))
382
- .catch(error => reject(error));
383
- });
328
+ function notificationsAddEventListener(event, listener) {
329
+ var _a;
330
+ (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
331
+ OneSignal.Notifications.addEventListener(event, listener);
384
332
  });
385
333
  }
386
- function showEmailSlidedown(options) {
387
- return new Promise(function (resolve, reject) {
388
- if (!doesOneSignalExist()) {
389
- vueOneSignalFunctionQueue.push({
390
- name: 'showEmailSlidedown',
391
- args: arguments,
392
- promiseResolver: resolve,
393
- });
394
- return;
395
- }
396
- window.OneSignal.push(() => {
397
- window.OneSignal.showEmailSlidedown(options)
398
- .then(value => resolve(value))
399
- .catch(error => reject(error));
400
- });
334
+ function notificationsRemoveEventListener(event, listener) {
335
+ var _a;
336
+ (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
337
+ OneSignal.Notifications.removeEventListener(event, listener);
401
338
  });
402
339
  }
403
- function showSmsAndEmailSlidedown(options) {
340
+ function sessionSendOutcome(outcomeName, outcomeWeight) {
404
341
  return new Promise(function (resolve, reject) {
405
- if (!doesOneSignalExist()) {
406
- vueOneSignalFunctionQueue.push({
407
- name: 'showSmsAndEmailSlidedown',
408
- args: arguments,
409
- promiseResolver: resolve,
342
+ var _a;
343
+ if (isOneSignalScriptFailed) {
344
+ reject();
345
+ }
346
+ try {
347
+ (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
348
+ OneSignal.Session.sendOutcome(outcomeName, outcomeWeight)
349
+ .then(value => resolve(value))
350
+ .catch(error => reject(error));
410
351
  });
411
- return;
412
352
  }
413
- window.OneSignal.push(() => {
414
- window.OneSignal.showSmsAndEmailSlidedown(options)
415
- .then(value => resolve(value))
416
- .catch(error => reject(error));
417
- });
353
+ catch (error) {
354
+ reject(error);
355
+ }
418
356
  });
419
357
  }
420
- function getNotificationPermission(onComplete) {
358
+ function sessionSendUniqueOutcome(outcomeName) {
421
359
  return new Promise(function (resolve, reject) {
422
- if (!doesOneSignalExist()) {
423
- vueOneSignalFunctionQueue.push({
424
- name: 'getNotificationPermission',
425
- args: arguments,
426
- promiseResolver: resolve,
360
+ var _a;
361
+ if (isOneSignalScriptFailed) {
362
+ reject();
363
+ }
364
+ try {
365
+ (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
366
+ OneSignal.Session.sendUniqueOutcome(outcomeName)
367
+ .then(value => resolve(value))
368
+ .catch(error => reject(error));
427
369
  });
428
- return;
429
370
  }
430
- window.OneSignal.push(() => {
431
- window.OneSignal.getNotificationPermission(onComplete)
432
- .then(value => resolve(value))
433
- .catch(error => reject(error));
434
- });
371
+ catch (error) {
372
+ reject(error);
373
+ }
435
374
  });
436
375
  }
437
- function getUserId(callback) {
438
- return new Promise(function (resolve, reject) {
439
- if (!doesOneSignalExist()) {
440
- vueOneSignalFunctionQueue.push({
441
- name: 'getUserId',
442
- args: arguments,
443
- promiseResolver: resolve,
444
- });
445
- return;
446
- }
447
- window.OneSignal.push(() => {
448
- window.OneSignal.getUserId(callback)
449
- .then(value => resolve(value))
450
- .catch(error => reject(error));
451
- });
376
+ function userAddAlias(label, id) {
377
+ var _a;
378
+ (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
379
+ OneSignal.User.addAlias(label, id);
452
380
  });
453
381
  }
454
- function getSubscription(callback) {
455
- return new Promise(function (resolve, reject) {
456
- if (!doesOneSignalExist()) {
457
- vueOneSignalFunctionQueue.push({
458
- name: 'getSubscription',
459
- args: arguments,
460
- promiseResolver: resolve,
461
- });
462
- return;
463
- }
464
- window.OneSignal.push(() => {
465
- window.OneSignal.getSubscription(callback)
466
- .then(value => resolve(value))
467
- .catch(error => reject(error));
468
- });
382
+ function userAddAliases(aliases) {
383
+ var _a;
384
+ (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
385
+ OneSignal.User.addAliases(aliases);
469
386
  });
470
387
  }
471
- function setEmail(email, options) {
472
- return new Promise(function (resolve, reject) {
473
- if (!doesOneSignalExist()) {
474
- vueOneSignalFunctionQueue.push({
475
- name: 'setEmail',
476
- args: arguments,
477
- promiseResolver: resolve,
478
- });
479
- return;
480
- }
481
- window.OneSignal.push(() => {
482
- window.OneSignal.setEmail(email, options)
483
- .then(value => resolve(value))
484
- .catch(error => reject(error));
485
- });
388
+ function userRemoveAlias(label) {
389
+ var _a;
390
+ (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
391
+ OneSignal.User.removeAlias(label);
486
392
  });
487
393
  }
488
- function setSMSNumber(smsNumber, options) {
489
- return new Promise(function (resolve, reject) {
490
- if (!doesOneSignalExist()) {
491
- vueOneSignalFunctionQueue.push({
492
- name: 'setSMSNumber',
493
- args: arguments,
494
- promiseResolver: resolve,
495
- });
496
- return;
497
- }
498
- window.OneSignal.push(() => {
499
- window.OneSignal.setSMSNumber(smsNumber, options)
500
- .then(value => resolve(value))
501
- .catch(error => reject(error));
502
- });
394
+ function userRemoveAliases(labels) {
395
+ var _a;
396
+ (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
397
+ OneSignal.User.removeAliases(labels);
503
398
  });
504
399
  }
505
- function logoutEmail() {
506
- return new Promise(function (resolve, reject) {
507
- if (!doesOneSignalExist()) {
508
- vueOneSignalFunctionQueue.push({
509
- name: 'logoutEmail',
510
- args: arguments,
511
- promiseResolver: resolve,
512
- });
513
- return;
514
- }
515
- window.OneSignal.push(() => {
516
- window.OneSignal.logoutEmail()
517
- .then(value => resolve(value))
518
- .catch(error => reject(error));
519
- });
400
+ function userAddEmail(email) {
401
+ var _a;
402
+ (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
403
+ OneSignal.User.addEmail(email);
520
404
  });
521
405
  }
522
- function logoutSMS() {
523
- return new Promise(function (resolve, reject) {
524
- if (!doesOneSignalExist()) {
525
- vueOneSignalFunctionQueue.push({
526
- name: 'logoutSMS',
527
- args: arguments,
528
- promiseResolver: resolve,
529
- });
530
- return;
531
- }
532
- window.OneSignal.push(() => {
533
- window.OneSignal.logoutSMS()
534
- .then(value => resolve(value))
535
- .catch(error => reject(error));
536
- });
406
+ function userRemoveEmail(email) {
407
+ var _a;
408
+ (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
409
+ OneSignal.User.removeEmail(email);
537
410
  });
538
411
  }
539
- function setExternalUserId(externalUserId, authHash) {
540
- return new Promise(function (resolve, reject) {
541
- if (!doesOneSignalExist()) {
542
- vueOneSignalFunctionQueue.push({
543
- name: 'setExternalUserId',
544
- args: arguments,
545
- promiseResolver: resolve,
546
- });
547
- return;
548
- }
549
- window.OneSignal.push(() => {
550
- window.OneSignal.setExternalUserId(externalUserId, authHash)
551
- .then(value => resolve(value))
552
- .catch(error => reject(error));
553
- });
412
+ function userAddSms(smsNumber) {
413
+ var _a;
414
+ (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
415
+ OneSignal.User.addSms(smsNumber);
554
416
  });
555
417
  }
556
- function removeExternalUserId() {
557
- return new Promise(function (resolve, reject) {
558
- if (!doesOneSignalExist()) {
559
- vueOneSignalFunctionQueue.push({
560
- name: 'removeExternalUserId',
561
- args: arguments,
562
- promiseResolver: resolve,
563
- });
564
- return;
565
- }
566
- window.OneSignal.push(() => {
567
- window.OneSignal.removeExternalUserId()
568
- .then(value => resolve(value))
569
- .catch(error => reject(error));
570
- });
418
+ function userRemoveSms(smsNumber) {
419
+ var _a;
420
+ (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
421
+ OneSignal.User.removeSms(smsNumber);
571
422
  });
572
423
  }
573
- function getExternalUserId() {
424
+ function pushSubscriptionOptIn() {
574
425
  return new Promise(function (resolve, reject) {
575
- if (!doesOneSignalExist()) {
576
- vueOneSignalFunctionQueue.push({
577
- name: 'getExternalUserId',
578
- args: arguments,
579
- promiseResolver: resolve,
426
+ var _a;
427
+ if (isOneSignalScriptFailed) {
428
+ reject();
429
+ }
430
+ try {
431
+ (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
432
+ OneSignal.User.PushSubscription.optIn()
433
+ .then(value => resolve(value))
434
+ .catch(error => reject(error));
580
435
  });
581
- return;
582
436
  }
583
- window.OneSignal.push(() => {
584
- window.OneSignal.getExternalUserId()
585
- .then(value => resolve(value))
586
- .catch(error => reject(error));
587
- });
437
+ catch (error) {
438
+ reject(error);
439
+ }
588
440
  });
589
441
  }
590
- function provideUserConsent(consent) {
442
+ function pushSubscriptionOptOut() {
591
443
  return new Promise(function (resolve, reject) {
592
- if (!doesOneSignalExist()) {
593
- vueOneSignalFunctionQueue.push({
594
- name: 'provideUserConsent',
595
- args: arguments,
596
- promiseResolver: resolve,
444
+ var _a;
445
+ if (isOneSignalScriptFailed) {
446
+ reject();
447
+ }
448
+ try {
449
+ (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
450
+ OneSignal.User.PushSubscription.optOut()
451
+ .then(value => resolve(value))
452
+ .catch(error => reject(error));
597
453
  });
598
- return;
599
454
  }
600
- window.OneSignal.push(() => {
601
- window.OneSignal.provideUserConsent(consent)
602
- .then(value => resolve(value))
603
- .catch(error => reject(error));
604
- });
455
+ catch (error) {
456
+ reject(error);
457
+ }
605
458
  });
606
459
  }
607
- function getEmailId(callback) {
608
- return new Promise(function (resolve, reject) {
609
- if (!doesOneSignalExist()) {
610
- vueOneSignalFunctionQueue.push({
611
- name: 'getEmailId',
612
- args: arguments,
613
- promiseResolver: resolve,
614
- });
615
- return;
616
- }
617
- window.OneSignal.push(() => {
618
- window.OneSignal.getEmailId(callback)
619
- .then(value => resolve(value))
620
- .catch(error => reject(error));
621
- });
460
+ function pushSubscriptionAddEventListener(event, listener) {
461
+ var _a;
462
+ (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
463
+ OneSignal.User.PushSubscription.addEventListener(event, listener);
622
464
  });
623
465
  }
624
- function getSMSId(callback) {
625
- return new Promise(function (resolve, reject) {
626
- if (!doesOneSignalExist()) {
627
- vueOneSignalFunctionQueue.push({
628
- name: 'getSMSId',
629
- args: arguments,
630
- promiseResolver: resolve,
631
- });
632
- return;
633
- }
634
- window.OneSignal.push(() => {
635
- window.OneSignal.getSMSId(callback)
636
- .then(value => resolve(value))
637
- .catch(error => reject(error));
638
- });
466
+ function pushSubscriptionRemoveEventListener(event, listener) {
467
+ var _a;
468
+ (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
469
+ OneSignal.User.PushSubscription.removeEventListener(event, listener);
639
470
  });
640
471
  }
641
- function sendOutcome(outcomeName, outcomeWeight) {
642
- return new Promise(function (resolve, reject) {
643
- if (!doesOneSignalExist()) {
644
- vueOneSignalFunctionQueue.push({
645
- name: 'sendOutcome',
646
- args: arguments,
647
- promiseResolver: resolve,
648
- });
649
- return;
650
- }
651
- window.OneSignal.push(() => {
652
- window.OneSignal.sendOutcome(outcomeName, outcomeWeight)
653
- .then(value => resolve(value))
654
- .catch(error => reject(error));
655
- });
472
+ function debugSetLogLevel(logLevel) {
473
+ var _a;
474
+ (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
475
+ OneSignal.Debug.setLogLevel(logLevel);
656
476
  });
657
477
  }
658
- const OneSignalVue = {
478
+ const PushSubscriptionNamespace = {
479
+ optIn: pushSubscriptionOptIn,
480
+ optOut: pushSubscriptionOptOut,
481
+ addEventListener: pushSubscriptionAddEventListener,
482
+ removeEventListener: pushSubscriptionRemoveEventListener,
483
+ };
484
+ const UserNamespace = {
485
+ addAlias: userAddAlias,
486
+ addAliases: userAddAliases,
487
+ removeAlias: userRemoveAlias,
488
+ removeAliases: userRemoveAliases,
489
+ addEmail: userAddEmail,
490
+ removeEmail: userRemoveEmail,
491
+ addSms: userAddSms,
492
+ removeSms: userRemoveSms,
493
+ PushSubscription: PushSubscriptionNamespace,
494
+ };
495
+ const SessionNamespace = {
496
+ sendOutcome: sessionSendOutcome,
497
+ sendUniqueOutcome: sessionSendUniqueOutcome,
498
+ };
499
+ const DebugNamespace = {
500
+ setLogLevel: debugSetLogLevel,
501
+ };
502
+ const SlidedownNamespace = {
503
+ promptPush: slidedownPromptPush,
504
+ promptPushCategories: slidedownPromptPushCategories,
505
+ promptSms: slidedownPromptSms,
506
+ promptEmail: slidedownPromptEmail,
507
+ promptSmsAndEmail: slidedownPromptSmsAndEmail,
508
+ addEventListener: slidedownAddEventListener,
509
+ removeEventListener: slidedownRemoveEventListener,
510
+ };
511
+ const NotificationsNamespace = {
512
+ setDefaultUrl: notificationsSetDefaultUrl,
513
+ setDefaultTitle: notificationsSetDefaultTitle,
514
+ isPushSupported,
515
+ getPermissionStatus: notificationsGetPermissionStatus,
516
+ requestPermission: notificationsRequestPermission,
517
+ addEventListener: notificationsAddEventListener,
518
+ removeEventListener: notificationsRemoveEventListener,
519
+ };
520
+ const OneSignalNamespace = {
521
+ login: oneSignalLogin,
522
+ logout: oneSignalLogout,
659
523
  init,
660
- on,
661
- off,
662
- once,
663
- isPushNotificationsEnabled,
664
- showHttpPrompt,
665
- registerForPushNotifications,
666
- setDefaultNotificationUrl,
667
- setDefaultTitle,
668
- getTags,
669
- sendTag,
670
- sendTags,
671
- deleteTag,
672
- deleteTags,
673
- addListenerForNotificationOpened,
674
- setSubscription,
675
- showHttpPermissionRequest,
676
- showNativePrompt,
677
- showSlidedownPrompt,
678
- showCategorySlidedown,
679
- showSmsSlidedown,
680
- showEmailSlidedown,
681
- showSmsAndEmailSlidedown,
682
- getNotificationPermission,
683
- getUserId,
684
- getSubscription,
685
- setEmail,
686
- setSMSNumber,
687
- logoutEmail,
688
- logoutSMS,
689
- setExternalUserId,
690
- removeExternalUserId,
691
- getExternalUserId,
692
- provideUserConsent,
693
- getEmailId,
694
- getSMSId,
695
- sendOutcome,
524
+ setConsentGiven: oneSignalSetConsentGiven,
525
+ setConsentRequired: oneSignalSetConsentRequired,
526
+ Slidedown: SlidedownNamespace,
527
+ Notifications: NotificationsNamespace,
528
+ Session: SessionNamespace,
529
+ User: UserNamespace,
530
+ Debug: DebugNamespace,
696
531
  };
697
532
  export const useOneSignal = () => {
698
- return OneSignalVue;
533
+ return OneSignalNamespace;
699
534
  };
700
535
  const OneSignalVuePlugin = {
701
536
  install(app, options) {
702
- app.config.globalProperties.$OneSignal = OneSignalVue;
537
+ app.config.globalProperties.$OneSignal = OneSignalNamespace;
703
538
  app.config.globalProperties.$OneSignal.init(options);
704
539
  }
705
540
  };