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