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