onesignal-vue 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/README.md CHANGED
@@ -13,12 +13,25 @@ You can find more information on OneSignal [here](https://onesignal.com/).
13
13
  * 🏠 [Homepage](https://onesignal.com)
14
14
  * 🖤 [npm](https://www.npmjs.com/package/onesignal-vue)
15
15
 
16
+ > 🚧 Version 2 now in Beta!
17
+ See our [migration guide](./MigrationGuide.md) to get started.
18
+
16
19
  ## Contents
17
20
  - [Install](#install)
18
21
  - [Usage](#usage)
19
22
  - [API](#onesignal-api)
20
23
  - [Advanced Usage](#advanced-usage)
21
24
 
25
+ ---
26
+ ## Vue Compatibility
27
+ Make sure you install a plugin version compatible with your Vue environment.
28
+
29
+ | Vue | OneSignal Plugin |
30
+ |-----|------------------|
31
+ | 2 | onesignal-vue |
32
+ | 3 | [onesignal-vue3](https://github.com/OneSignal/onesignal-vue3) |
33
+
34
+
22
35
  ---
23
36
  ## Install
24
37
 
@@ -119,43 +132,43 @@ This package includes Typescript support.
119
132
 
120
133
  ```ts
121
134
  interface IOneSignal {
122
- init(options?: any): Promise<void>
123
- on(event: string, listener: Function): void
124
- off(event: string, listener: Function): void
125
- once(event: string, listener: Function): void
126
- isPushNotificationsEnabled(callback?: Action<boolean>): Promise<boolean>
127
- showHttpPrompt(options?: AutoPromptOptions): Promise<void>
128
- registerForPushNotifications(options?: RegisterOptions): Promise<void>
129
- setDefaultNotificationUrl(url: string): Promise<void>
130
- setDefaultTitle(title: string): Promise<void>
131
- getTags(callback?: Action<any>): Promise<void>
132
- sendTag(key: string, value: any, callback?: Action<Object>): Promise<Object | null>
133
- sendTags(tags: TagsObject<any>, callback?: Action<Object>): Promise<Object | null>
134
- deleteTag(tag: string): Promise<Array<string>>
135
- deleteTags(tags: Array<string>, callback?: Action<Array<string>>): Promise<Array<string>>
136
- addListenerForNotificationOpened(callback?: Action<Notification>): Promise<void>
137
- setSubscription(newSubscription: boolean): Promise<void>
138
- showHttpPermissionRequest(options?: AutoPromptOptions): Promise<any>
139
- showNativePrompt(): Promise<void>
140
- showSlidedownPrompt(options?: AutoPromptOptions): Promise<void>
141
- showCategorySlidedown(options?: AutoPromptOptions): Promise<void>
142
- showSmsSlidedown(options?: AutoPromptOptions): Promise<void>
143
- showEmailSlidedown(options?: AutoPromptOptions): Promise<void>
144
- showSmsAndEmailSlidedown(options?: AutoPromptOptions): Promise<void>
145
- getNotificationPermission(onComplete?: Function): Promise<NotificationPermission>
146
- getUserId(callback?: Action<string | undefined | null>): Promise<string | undefined | null>
147
- getSubscription(callback?: Action<boolean>): Promise<boolean>
148
- setEmail(email: string, options?: SetEmailOptions): Promise<string|null>
149
- setSMSNumber(smsNumber: string, options?: SetSMSOptions): Promise<string | null>
150
- logoutEmail(): Promise<void>
151
- logoutSMS(): Promise<void>
152
- setExternalUserId(externalUserId: string | undefined | null, authHash?: string): Promise<void>
153
- removeExternalUserId(): Promise<void>
154
- getExternalUserId(): Promise<string | undefined | null>
155
- provideUserConsent(consent: boolean): Promise<void>
156
- getEmailId(callback?: Action<string | undefined>): Promise<string | null | undefined>
157
- getSMSId(callback?: Action<string | undefined>): Promise<string | null | undefined>
158
- sendOutcome(outcomeName: string, outcomeWeight?: number | undefined): Promise<void>
135
+ init(options: IInitObject): Promise<void>;
136
+ on(event: string, listener: () => void): void;
137
+ off(event: string, listener: () => void): void;
138
+ once(event: string, listener: () => void): void;
139
+ isPushNotificationsEnabled(callback?: Action<boolean>): Promise<boolean>;
140
+ showHttpPrompt(options?: AutoPromptOptions): Promise<void>;
141
+ registerForPushNotifications(options?: RegisterOptions): Promise<void>;
142
+ setDefaultNotificationUrl(url: string): Promise<void>;
143
+ setDefaultTitle(title: string): Promise<void>;
144
+ getTags(callback?: Action<any>): Promise<void>;
145
+ sendTag(key: string, value: any, callback?: Action<Object>): Promise<Object | null>;
146
+ sendTags(tags: TagsObject<any>, callback?: Action<Object>): Promise<Object | null>;
147
+ deleteTag(tag: string): Promise<Array<string>>;
148
+ deleteTags(tags: Array<string>, callback?: Action<Array<string>>): Promise<Array<string>>;
149
+ addListenerForNotificationOpened(callback?: Action<Notification>): Promise<void>;
150
+ setSubscription(newSubscription: boolean): Promise<void>;
151
+ showHttpPermissionRequest(options?: AutoPromptOptions): Promise<any>;
152
+ showNativePrompt(): Promise<void>;
153
+ showSlidedownPrompt(options?: AutoPromptOptions): Promise<void>;
154
+ showCategorySlidedown(options?: AutoPromptOptions): Promise<void>;
155
+ showSmsSlidedown(options?: AutoPromptOptions): Promise<void>;
156
+ showEmailSlidedown(options?: AutoPromptOptions): Promise<void>;
157
+ showSmsAndEmailSlidedown(options?: AutoPromptOptions): Promise<void>;
158
+ getNotificationPermission(onComplete?: Function): Promise<NotificationPermission>;
159
+ getUserId(callback?: Action<string | undefined | null>): Promise<string | undefined | null>;
160
+ getSubscription(callback?: Action<boolean>): Promise<boolean>;
161
+ setEmail(email: string, options?: SetEmailOptions): Promise<string | null>;
162
+ setSMSNumber(smsNumber: string, options?: SetSMSOptions): Promise<string | null>;
163
+ logoutEmail(): Promise<void>;
164
+ logoutSMS(): Promise<void>;
165
+ setExternalUserId(externalUserId: string | undefined | null, authHash?: string): Promise<void>;
166
+ removeExternalUserId(): Promise<void>;
167
+ getExternalUserId(): Promise<string | undefined | null>;
168
+ provideUserConsent(consent: boolean): Promise<void>;
169
+ getEmailId(callback?: Action<string | undefined>): Promise<string | null | undefined>;
170
+ getSMSId(callback?: Action<string | undefined>): Promise<string | null | undefined>;
171
+ sendOutcome(outcomeName: string, outcomeWeight?: number | undefined): Promise<void>;
159
172
  }
160
173
  ```
161
174
 
@@ -211,6 +224,3 @@ This project is [Modified MIT](https://github.com/OneSignal/onesignal-vue/blob/m
211
224
 
212
225
 
213
226
  Enjoy!
214
-
215
-
216
- Enjoy!
package/dist/index.d.ts CHANGED
@@ -1,118 +1,140 @@
1
- declare const VueApp: any;
2
- declare module 'vue/types/vue' {
3
- interface Vue {
4
- $OneSignal: IOneSignal;
5
- }
6
- }
7
- declare global {
8
- interface Window {
9
- OneSignal: any;
10
- }
11
- }
12
- declare type Action<T> = (item: T) => void;
13
- interface AutoPromptOptions {
14
- force?: boolean;
15
- forceSlidedownOverNative?: boolean;
16
- slidedownPromptOptions?: IOneSignalAutoPromptOptions;
17
- }
18
- interface RegisterOptions {
19
- modalPrompt?: boolean;
20
- httpPermissionRequest?: boolean;
21
- slidedown?: boolean;
22
- autoAccept?: boolean;
23
- }
24
- interface SetSMSOptions {
25
- identifierAuthHash?: string;
26
- }
27
- interface SetEmailOptions {
28
- identifierAuthHash?: string;
29
- emailAuthHash?: string;
30
- }
31
- interface TagsObject<T> {
32
- [key: string]: T;
33
- }
34
- interface IOneSignalAutoPromptOptions {
35
- force?: boolean;
36
- forceSlidedownOverNative?: boolean;
37
- isInUpdateMode?: boolean;
38
- categoryOptions?: IOneSignalCategories;
39
- }
40
- interface IOneSignalCategories {
41
- positiveUpdateButton: string;
42
- negativeUpdateButton: string;
43
- savingButtonText: string;
44
- errorButtonText: string;
45
- updateMessage: string;
46
- tags: IOneSignalTagCategory[];
47
- }
48
- interface IOneSignalTagCategory {
49
- tag: string;
50
- label: string;
51
- checked?: boolean;
52
- }
53
- interface IInitObject {
54
- appId: string;
55
- subdomainName?: string;
56
- requiresUserPrivacyConsent?: boolean;
57
- promptOptions?: object;
58
- welcomeNotification?: object;
59
- notifyButton?: object;
60
- persistNotification?: boolean;
61
- webhooks?: object;
62
- autoResubscribe?: boolean;
63
- autoRegister?: boolean;
64
- notificationClickHandlerMatch?: string;
65
- notificationClickHandlerAction?: string;
66
- serviceWorkerParam?: {
67
- scope: string;
68
- };
69
- serviceWorkerPath?: string;
70
- serviceWorkerUpdaterPath?: string;
71
- path?: string;
72
- allowLocalhostAsSecureOrigin?: boolean;
73
- [key: string]: any;
74
- }
75
- interface IOneSignal {
76
- init(options: IInitObject): Promise<void>;
77
- on(event: string, listener: () => void): void;
78
- off(event: string, listener: () => void): void;
79
- once(event: string, listener: () => void): void;
80
- isPushNotificationsEnabled(callback?: Action<boolean>): Promise<boolean>;
81
- showHttpPrompt(options?: AutoPromptOptions): Promise<void>;
82
- registerForPushNotifications(options?: RegisterOptions): Promise<void>;
83
- setDefaultNotificationUrl(url: string): Promise<void>;
84
- setDefaultTitle(title: string): Promise<void>;
85
- getTags(callback?: Action<any>): Promise<void>;
86
- sendTag(key: string, value: any, callback?: Action<Object>): Promise<Object | null>;
87
- sendTags(tags: TagsObject<any>, callback?: Action<Object>): Promise<Object | null>;
88
- deleteTag(tag: string): Promise<Array<string>>;
89
- deleteTags(tags: Array<string>, callback?: Action<Array<string>>): Promise<Array<string>>;
90
- addListenerForNotificationOpened(callback?: Action<Notification>): Promise<void>;
91
- setSubscription(newSubscription: boolean): Promise<void>;
92
- showHttpPermissionRequest(options?: AutoPromptOptions): Promise<any>;
93
- showNativePrompt(): Promise<void>;
94
- showSlidedownPrompt(options?: AutoPromptOptions): Promise<void>;
95
- showCategorySlidedown(options?: AutoPromptOptions): Promise<void>;
96
- showSmsSlidedown(options?: AutoPromptOptions): Promise<void>;
97
- showEmailSlidedown(options?: AutoPromptOptions): Promise<void>;
98
- showSmsAndEmailSlidedown(options?: AutoPromptOptions): Promise<void>;
99
- getNotificationPermission(onComplete?: Function): Promise<NotificationPermission>;
100
- getUserId(callback?: Action<string | undefined | null>): Promise<string | undefined | null>;
101
- getSubscription(callback?: Action<boolean>): Promise<boolean>;
102
- setEmail(email: string, options?: SetEmailOptions): Promise<string | null>;
103
- setSMSNumber(smsNumber: string, options?: SetSMSOptions): Promise<string | null>;
104
- logoutEmail(): Promise<void>;
105
- logoutSMS(): Promise<void>;
106
- setExternalUserId(externalUserId: string | undefined | null, authHash?: string): Promise<void>;
107
- removeExternalUserId(): Promise<void>;
108
- getExternalUserId(): Promise<string | undefined | null>;
109
- provideUserConsent(consent: boolean): Promise<void>;
110
- getEmailId(callback?: Action<string | undefined>): Promise<string | null | undefined>;
111
- getSMSId(callback?: Action<string | undefined>): Promise<string | null | undefined>;
112
- sendOutcome(outcomeName: string, outcomeWeight?: number | undefined): Promise<void>;
113
- [index: string]: Function;
114
- }
115
- declare const OneSignalVuePlugin: {
116
- install(app: typeof VueApp): void;
117
- };
118
- export default OneSignalVuePlugin;
1
+ declare const VueApp: any;
2
+ declare module 'vue/types/vue' {
3
+ interface Vue {
4
+ $OneSignal: IOneSignalOneSignal;
5
+ }
6
+ }
7
+ declare global {
8
+ interface Window {
9
+ OneSignalDeferred?: OneSignalDeferredLoadedCallback[];
10
+ safari?: {
11
+ pushNotification: any;
12
+ };
13
+ }
14
+ }
15
+ type Action<T> = (item: T) => void;
16
+ interface AutoPromptOptions {
17
+ force?: boolean;
18
+ forceSlidedownOverNative?: boolean;
19
+ slidedownPromptOptions?: IOneSignalAutoPromptOptions;
20
+ }
21
+ interface IOneSignalAutoPromptOptions {
22
+ force?: boolean;
23
+ forceSlidedownOverNative?: boolean;
24
+ isInUpdateMode?: boolean;
25
+ categoryOptions?: IOneSignalCategories;
26
+ }
27
+ interface IOneSignalCategories {
28
+ positiveUpdateButton: string;
29
+ negativeUpdateButton: string;
30
+ savingButtonText: string;
31
+ errorButtonText: string;
32
+ updateMessage: string;
33
+ tags: IOneSignalTagCategory[];
34
+ }
35
+ interface IOneSignalTagCategory {
36
+ tag: string;
37
+ label: string;
38
+ checked?: boolean;
39
+ }
40
+ type PushSubscriptionNamespaceProperties = {
41
+ id: string | null | undefined;
42
+ token: string | null | undefined;
43
+ optedIn: boolean;
44
+ };
45
+ type SubscriptionChangeEvent = {
46
+ previous: PushSubscriptionNamespaceProperties;
47
+ current: PushSubscriptionNamespaceProperties;
48
+ };
49
+ type NotificationEventName = 'click' | 'willDisplay' | 'dismiss' | 'permissionChange' | 'permissionPromptDisplay';
50
+ type SlidedownEventName = 'slidedownShown';
51
+ type OneSignalDeferredLoadedCallback = (onesignal: IOneSignalOneSignal) => void;
52
+ interface IInitObject {
53
+ appId: string;
54
+ subdomainName?: string;
55
+ requiresUserPrivacyConsent?: boolean;
56
+ promptOptions?: object;
57
+ welcomeNotification?: object;
58
+ notifyButton?: object;
59
+ persistNotification?: boolean;
60
+ webhooks?: object;
61
+ autoResubscribe?: boolean;
62
+ autoRegister?: boolean;
63
+ notificationClickHandlerMatch?: string;
64
+ notificationClickHandlerAction?: string;
65
+ serviceWorkerParam?: {
66
+ scope: string;
67
+ };
68
+ serviceWorkerPath?: string;
69
+ serviceWorkerUpdaterPath?: string;
70
+ path?: string;
71
+ allowLocalhostAsSecureOrigin?: boolean;
72
+ [key: string]: any;
73
+ }
74
+ interface IOneSignalOneSignal {
75
+ login(externalId: string, jwtToken?: string): Promise<void>;
76
+ logout(): Promise<void>;
77
+ init(options: IInitObject): Promise<void>;
78
+ setConsentGiven(consent: boolean): Promise<void>;
79
+ setConsentRequired(requiresConsent: boolean): Promise<void>;
80
+ Slidedown: IOneSignalSlidedown;
81
+ Notifications: IOneSignalNotifications;
82
+ Session: IOneSignalSession;
83
+ User: IOneSignalUser;
84
+ Debug: IOneSignalDebug;
85
+ [index: string]: any;
86
+ }
87
+ interface IOneSignalNotifications {
88
+ setDefaultUrl(url: string): Promise<void>;
89
+ setDefaultTitle(title: string): Promise<void>;
90
+ isPushSupported(): boolean;
91
+ getPermissionStatus(onComplete: Action<NotificationPermission>): Promise<NotificationPermission>;
92
+ requestPermission(): Promise<void>;
93
+ addEventListener(event: NotificationEventName, listener: (obj: any) => void): void;
94
+ removeEventListener(event: NotificationEventName, listener: (obj: any) => void): void;
95
+ [index: string]: any;
96
+ }
97
+ interface IOneSignalSlidedown {
98
+ promptPush(options?: AutoPromptOptions): Promise<void>;
99
+ promptPushCategories(options?: AutoPromptOptions): Promise<void>;
100
+ promptSms(options?: AutoPromptOptions): Promise<void>;
101
+ promptEmail(options?: AutoPromptOptions): Promise<void>;
102
+ promptSmsAndEmail(options?: AutoPromptOptions): Promise<void>;
103
+ addEventListener(event: SlidedownEventName, listener: (wasShown: boolean) => void): void;
104
+ removeEventListener(event: SlidedownEventName, listener: (wasShown: boolean) => void): void;
105
+ [index: string]: any;
106
+ }
107
+ interface IOneSignalDebug {
108
+ setLogLevel(logLevel: string): void;
109
+ [index: string]: any;
110
+ }
111
+ interface IOneSignalSession {
112
+ sendOutcome(outcomeName: string, outcomeWeight?: number): Promise<void>;
113
+ sendUniqueOutcome(outcomeName: string): Promise<void>;
114
+ [index: string]: any;
115
+ }
116
+ interface IOneSignalUser {
117
+ addAlias(label: string, id: string): void;
118
+ addAliases(aliases: {
119
+ [key: string]: string;
120
+ }): void;
121
+ removeAlias(label: string): void;
122
+ removeAliases(labels: string[]): void;
123
+ addEmail(email: string): void;
124
+ removeEmail(email: string): void;
125
+ addSms(smsNumber: string): void;
126
+ removeSms(smsNumber: string): void;
127
+ PushSubscription: IOneSignalPushSubscription;
128
+ [index: string]: any;
129
+ }
130
+ interface IOneSignalPushSubscription {
131
+ optIn(): Promise<void>;
132
+ optOut(): Promise<void>;
133
+ addEventListener(event: 'subscriptionChange', listener: (change: SubscriptionChangeEvent) => void): void;
134
+ removeEventListener(event: 'subscriptionChange', listener: (change: SubscriptionChangeEvent) => void): void;
135
+ [index: string]: any;
136
+ }
137
+ declare const OneSignalVuePlugin: {
138
+ install(app: typeof VueApp): void;
139
+ };
140
+ export default OneSignalVuePlugin;