react-onesignal 3.0.0 → 3.1.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.
@@ -0,0 +1,40 @@
1
+ name: Release
2
+ on:
3
+ push:
4
+ branches:
5
+ - main
6
+
7
+ jobs:
8
+ release:
9
+ name: Release
10
+ runs-on: ubuntu-latest
11
+ permissions:
12
+ contents: write
13
+ issues: write
14
+ pull-requests: write
15
+ steps:
16
+ - name: Checkout
17
+ uses: actions/checkout@v4
18
+ with:
19
+ fetch-depth: 0
20
+ token: ${{ secrets.GH_WEB_SHIM_PUSH_TOKEN }}
21
+ - name: Setup Node.js
22
+ uses: actions/setup-node@v4
23
+ with:
24
+ node-version: 'lts/*'
25
+ registry-url: 'https://registry.npmjs.org'
26
+ - name: Install dependencies
27
+ run: yarn install --frozen-lockfile
28
+ - name: Release
29
+ env:
30
+ GITHUB_TOKEN: ${{ secrets.GH_WEB_SHIM_PUSH_TOKEN }}
31
+ NODE_AUTH_TOKEN: ${{ secrets.NPM_WEB_SHIM_PUSH_TOKEN }}
32
+ NPM_TOKEN: ${{ secrets.NPM_WEB_SHIM_PUSH_TOKEN }}
33
+ run: |
34
+ npx -p semantic-release \
35
+ -p @semantic-release/changelog \
36
+ -p @semantic-release/git \
37
+ -p @semantic-release/github \
38
+ -p @semantic-release/npm \
39
+ -p conventional-changelog-conventionalcommits \
40
+ semantic-release
@@ -0,0 +1,133 @@
1
+ {
2
+ "branches": [
3
+ "main"
4
+ ],
5
+ "tagFormat": "${version}",
6
+ "plugins": [
7
+ [
8
+ "@semantic-release/commit-analyzer",
9
+ {
10
+ "releaseRules": [
11
+ {
12
+ "breaking": true,
13
+ "release": "minor"
14
+ },
15
+ {
16
+ "type": "feat",
17
+ "release": "minor"
18
+ },
19
+ {
20
+ "type": "fix",
21
+ "release": "patch"
22
+ },
23
+ {
24
+ "type": "docs",
25
+ "release": "patch"
26
+ },
27
+ {
28
+ "type": "perf",
29
+ "release": "patch"
30
+ },
31
+ {
32
+ "type": "refactor",
33
+ "release": "patch"
34
+ },
35
+ {
36
+ "type": "style",
37
+ "release": "patch"
38
+ },
39
+ {
40
+ "type": "test",
41
+ "release": "patch"
42
+ },
43
+ {
44
+ "type": "build",
45
+ "release": "patch"
46
+ },
47
+ {
48
+ "type": "ci",
49
+ "release": "patch"
50
+ },
51
+ {
52
+ "type": "chore",
53
+ "scope": "deps",
54
+ "release": "patch"
55
+ }
56
+ ]
57
+ }
58
+ ],
59
+ [
60
+ "@semantic-release/release-notes-generator",
61
+ {
62
+ "preset": "conventionalcommits",
63
+ "writerOpts": {
64
+ "types": [
65
+ {
66
+ "type": "feat",
67
+ "section": "Features"
68
+ },
69
+ {
70
+ "type": "fix",
71
+ "section": "Bug Fixes"
72
+ },
73
+ {
74
+ "type": "docs",
75
+ "section": "Documentation",
76
+ "hidden": false
77
+ },
78
+ {
79
+ "type": "deps",
80
+ "section": "Dependency Updates",
81
+ "hidden": false
82
+ },
83
+ {
84
+ "type": "chore",
85
+ "hidden": true
86
+ },
87
+ {
88
+ "type": "style",
89
+ "hidden": true
90
+ },
91
+ {
92
+ "type": "refactor",
93
+ "hidden": true
94
+ },
95
+ {
96
+ "type": "perf",
97
+ "hidden": true
98
+ },
99
+ {
100
+ "type": "test",
101
+ "hidden": true
102
+ }
103
+ ]
104
+ }
105
+ }
106
+ ],
107
+ [
108
+ "@semantic-release/changelog",
109
+ {
110
+ "changelogFile": "CHANGELOG.md",
111
+ "changelogTitle": "# Changelog"
112
+ }
113
+ ],
114
+ [
115
+ "@semantic-release/npm",
116
+ {
117
+ "pkgRoot": "."
118
+ }
119
+ ],
120
+ [
121
+ "@semantic-release/git",
122
+ {
123
+ "assets": [
124
+ "dist/**",
125
+ "package.json",
126
+ "CHANGELOG.md"
127
+ ],
128
+ "message": "chore(release): ${nextRelease.version}\n\n${nextRelease.notes} [skip ci]"
129
+ }
130
+ ],
131
+ "@semantic-release/github"
132
+ ]
133
+ }
package/CHANGELOG.md ADDED
@@ -0,0 +1,9 @@
1
+ # Changelog
2
+
3
+ ## [3.1.1](https://github.com/OneSignal/react-onesignal/compare/3.1.0...3.1.1) (2025-03-14)
4
+
5
+ ## [3.1.0](https://github.com/OneSignal/react-onesignal/compare/3.0.1...3.1.0) (2025-03-14)
6
+
7
+ ### Features
8
+
9
+ * sync with web-shim-codegen v3.0.1 ([93627ba](https://github.com/OneSignal/react-onesignal/commit/93627ba19f6aac555b68ef726b7d6ae9c4aa2a31)), closes [#143](https://github.com/OneSignal/react-onesignal/issues/143)
package/dist/index.d.ts CHANGED
@@ -78,7 +78,7 @@ interface IOSNotification {
78
78
  * If this value is the same as existing notification, it will replace it
79
79
  * Can be set when creating the notification with "Web Push Topic" on the dashboard
80
80
  * or web_push_topic from the REST API.
81
- */
81
+ */
82
82
  readonly topic?: string;
83
83
  /**
84
84
  * Custom object that was sent with the notification;
@@ -136,6 +136,13 @@ interface NotificationClickEvent {
136
136
  readonly notification: IOSNotification;
137
137
  readonly result: NotificationClickResult;
138
138
  }
139
+ declare type UserChangeEvent = {
140
+ current: UserNamespaceProperties;
141
+ };
142
+ declare type UserNamespaceProperties = {
143
+ onesignalId: string | undefined;
144
+ externalId: string | undefined;
145
+ };
139
146
  interface IInitObject {
140
147
  appId: string;
141
148
  subdomainName?: string;
@@ -149,12 +156,13 @@ interface IInitObject {
149
156
  autoRegister?: boolean;
150
157
  notificationClickHandlerMatch?: string;
151
158
  notificationClickHandlerAction?: string;
159
+ path?: string;
152
160
  serviceWorkerParam?: {
153
161
  scope: string;
154
162
  };
155
163
  serviceWorkerPath?: string;
164
+ serviceWorkerOverrideForTypical?: boolean;
156
165
  serviceWorkerUpdaterPath?: string;
157
- path?: string;
158
166
  allowLocalhostAsSecureOrigin?: boolean;
159
167
  [key: string]: any;
160
168
  }
@@ -197,6 +205,8 @@ interface IOneSignalSession {
197
205
  sendUniqueOutcome(outcomeName: string): Promise<void>;
198
206
  }
199
207
  interface IOneSignalUser {
208
+ onesignalId: string | undefined;
209
+ externalId: string | undefined;
200
210
  PushSubscription: IOneSignalPushSubscription;
201
211
  addAlias(label: string, id: string): void;
202
212
  addAliases(aliases: {
@@ -214,6 +224,13 @@ interface IOneSignalUser {
214
224
  }): void;
215
225
  removeTag(key: string): void;
216
226
  removeTags(keys: string[]): void;
227
+ getTags(): {
228
+ [key: string]: string;
229
+ };
230
+ addEventListener(event: 'change', listener: (change: UserChangeEvent) => void): void;
231
+ removeEventListener(event: 'change', listener: (change: UserChangeEvent) => void): void;
232
+ setLanguage(language: string): void;
233
+ getLanguage(): string;
217
234
  }
218
235
  interface IOneSignalPushSubscription {
219
236
  id: string | null | undefined;
package/dist/index.es.js CHANGED
@@ -6,7 +6,7 @@ let isOneSignalInitialized = false;
6
6
  // to disambiguate between a CDN load failure and a delayed call to
7
7
  // OneSignal#init.
8
8
  let isOneSignalScriptFailed = false;
9
- if (window) {
9
+ if (typeof window !== 'undefined') {
10
10
  window.OneSignalDeferred = window.OneSignalDeferred || [];
11
11
  addSDKScript();
12
12
  }
@@ -87,12 +87,12 @@ function oneSignalLogin(externalId, jwtToken) {
87
87
  return new Promise((resolve, reject) => {
88
88
  var _a;
89
89
  if (isOneSignalScriptFailed) {
90
- reject();
90
+ reject(new Error('OneSignal script failed to load.'));
91
+ return;
91
92
  }
92
93
  try {
93
94
  (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
94
- OneSignal.login(externalId, jwtToken)
95
- .then((value) => resolve(value))
95
+ OneSignal.login(externalId, jwtToken).then(() => resolve())
96
96
  .catch((error) => reject(error));
97
97
  });
98
98
  }
@@ -105,12 +105,12 @@ function oneSignalLogout() {
105
105
  return new Promise((resolve, reject) => {
106
106
  var _a;
107
107
  if (isOneSignalScriptFailed) {
108
- reject();
108
+ reject(new Error('OneSignal script failed to load.'));
109
+ return;
109
110
  }
110
111
  try {
111
112
  (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
112
- OneSignal.logout()
113
- .then((value) => resolve(value))
113
+ OneSignal.logout().then(() => resolve())
114
114
  .catch((error) => reject(error));
115
115
  });
116
116
  }
@@ -123,12 +123,12 @@ function oneSignalSetConsentGiven(consent) {
123
123
  return new Promise((resolve, reject) => {
124
124
  var _a;
125
125
  if (isOneSignalScriptFailed) {
126
- reject();
126
+ reject(new Error('OneSignal script failed to load.'));
127
+ return;
127
128
  }
128
129
  try {
129
130
  (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
130
- OneSignal.setConsentGiven(consent)
131
- .then((value) => resolve(value))
131
+ OneSignal.setConsentGiven(consent).then(() => resolve())
132
132
  .catch((error) => reject(error));
133
133
  });
134
134
  }
@@ -141,12 +141,12 @@ function oneSignalSetConsentRequired(requiresConsent) {
141
141
  return new Promise((resolve, reject) => {
142
142
  var _a;
143
143
  if (isOneSignalScriptFailed) {
144
- reject();
144
+ reject(new Error('OneSignal script failed to load.'));
145
+ return;
145
146
  }
146
147
  try {
147
148
  (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
148
- OneSignal.setConsentRequired(requiresConsent)
149
- .then((value) => resolve(value))
149
+ OneSignal.setConsentRequired(requiresConsent).then(() => resolve())
150
150
  .catch((error) => reject(error));
151
151
  });
152
152
  }
@@ -159,12 +159,12 @@ function slidedownPromptPush(options) {
159
159
  return new Promise((resolve, reject) => {
160
160
  var _a;
161
161
  if (isOneSignalScriptFailed) {
162
- reject();
162
+ reject(new Error('OneSignal script failed to load.'));
163
+ return;
163
164
  }
164
165
  try {
165
166
  (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
166
- OneSignal.Slidedown.promptPush(options)
167
- .then((value) => resolve(value))
167
+ OneSignal.Slidedown.promptPush(options).then(() => resolve())
168
168
  .catch((error) => reject(error));
169
169
  });
170
170
  }
@@ -177,12 +177,12 @@ function slidedownPromptPushCategories(options) {
177
177
  return new Promise((resolve, reject) => {
178
178
  var _a;
179
179
  if (isOneSignalScriptFailed) {
180
- reject();
180
+ reject(new Error('OneSignal script failed to load.'));
181
+ return;
181
182
  }
182
183
  try {
183
184
  (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
184
- OneSignal.Slidedown.promptPushCategories(options)
185
- .then((value) => resolve(value))
185
+ OneSignal.Slidedown.promptPushCategories(options).then(() => resolve())
186
186
  .catch((error) => reject(error));
187
187
  });
188
188
  }
@@ -195,12 +195,12 @@ function slidedownPromptSms(options) {
195
195
  return new Promise((resolve, reject) => {
196
196
  var _a;
197
197
  if (isOneSignalScriptFailed) {
198
- reject();
198
+ reject(new Error('OneSignal script failed to load.'));
199
+ return;
199
200
  }
200
201
  try {
201
202
  (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
202
- OneSignal.Slidedown.promptSms(options)
203
- .then((value) => resolve(value))
203
+ OneSignal.Slidedown.promptSms(options).then(() => resolve())
204
204
  .catch((error) => reject(error));
205
205
  });
206
206
  }
@@ -213,12 +213,12 @@ function slidedownPromptEmail(options) {
213
213
  return new Promise((resolve, reject) => {
214
214
  var _a;
215
215
  if (isOneSignalScriptFailed) {
216
- reject();
216
+ reject(new Error('OneSignal script failed to load.'));
217
+ return;
217
218
  }
218
219
  try {
219
220
  (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
220
- OneSignal.Slidedown.promptEmail(options)
221
- .then((value) => resolve(value))
221
+ OneSignal.Slidedown.promptEmail(options).then(() => resolve())
222
222
  .catch((error) => reject(error));
223
223
  });
224
224
  }
@@ -231,12 +231,12 @@ function slidedownPromptSmsAndEmail(options) {
231
231
  return new Promise((resolve, reject) => {
232
232
  var _a;
233
233
  if (isOneSignalScriptFailed) {
234
- reject();
234
+ reject(new Error('OneSignal script failed to load.'));
235
+ return;
235
236
  }
236
237
  try {
237
238
  (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
238
- OneSignal.Slidedown.promptSmsAndEmail(options)
239
- .then((value) => resolve(value))
239
+ OneSignal.Slidedown.promptSmsAndEmail(options).then(() => resolve())
240
240
  .catch((error) => reject(error));
241
241
  });
242
242
  }
@@ -261,12 +261,12 @@ function notificationsSetDefaultUrl(url) {
261
261
  return new Promise((resolve, reject) => {
262
262
  var _a;
263
263
  if (isOneSignalScriptFailed) {
264
- reject();
264
+ reject(new Error('OneSignal script failed to load.'));
265
+ return;
265
266
  }
266
267
  try {
267
268
  (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
268
- OneSignal.Notifications.setDefaultUrl(url)
269
- .then((value) => resolve(value))
269
+ OneSignal.Notifications.setDefaultUrl(url).then(() => resolve())
270
270
  .catch((error) => reject(error));
271
271
  });
272
272
  }
@@ -279,12 +279,12 @@ function notificationsSetDefaultTitle(title) {
279
279
  return new Promise((resolve, reject) => {
280
280
  var _a;
281
281
  if (isOneSignalScriptFailed) {
282
- reject();
282
+ reject(new Error('OneSignal script failed to load.'));
283
+ return;
283
284
  }
284
285
  try {
285
286
  (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
286
- OneSignal.Notifications.setDefaultTitle(title)
287
- .then((value) => resolve(value))
287
+ OneSignal.Notifications.setDefaultTitle(title).then(() => resolve())
288
288
  .catch((error) => reject(error));
289
289
  });
290
290
  }
@@ -297,12 +297,12 @@ function notificationsRequestPermission() {
297
297
  return new Promise((resolve, reject) => {
298
298
  var _a;
299
299
  if (isOneSignalScriptFailed) {
300
- reject();
300
+ reject(new Error('OneSignal script failed to load.'));
301
+ return;
301
302
  }
302
303
  try {
303
304
  (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
304
- OneSignal.Notifications.requestPermission()
305
- .then((value) => resolve(value))
305
+ OneSignal.Notifications.requestPermission().then(() => resolve())
306
306
  .catch((error) => reject(error));
307
307
  });
308
308
  }
@@ -327,12 +327,12 @@ function sessionSendOutcome(outcomeName, outcomeWeight) {
327
327
  return new Promise((resolve, reject) => {
328
328
  var _a;
329
329
  if (isOneSignalScriptFailed) {
330
- reject();
330
+ reject(new Error('OneSignal script failed to load.'));
331
+ return;
331
332
  }
332
333
  try {
333
334
  (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
334
- OneSignal.Session.sendOutcome(outcomeName, outcomeWeight)
335
- .then((value) => resolve(value))
335
+ OneSignal.Session.sendOutcome(outcomeName, outcomeWeight).then(() => resolve())
336
336
  .catch((error) => reject(error));
337
337
  });
338
338
  }
@@ -345,12 +345,12 @@ function sessionSendUniqueOutcome(outcomeName) {
345
345
  return new Promise((resolve, reject) => {
346
346
  var _a;
347
347
  if (isOneSignalScriptFailed) {
348
- reject();
348
+ reject(new Error('OneSignal script failed to load.'));
349
+ return;
349
350
  }
350
351
  try {
351
352
  (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
352
- OneSignal.Session.sendUniqueOutcome(outcomeName)
353
- .then((value) => resolve(value))
353
+ OneSignal.Session.sendUniqueOutcome(outcomeName).then(() => resolve())
354
354
  .catch((error) => reject(error));
355
355
  });
356
356
  }
@@ -431,16 +431,50 @@ function userRemoveTags(keys) {
431
431
  OneSignal.User.removeTags(keys);
432
432
  });
433
433
  }
434
+ function userGetTags() {
435
+ var _a;
436
+ let retVal;
437
+ (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
438
+ retVal = OneSignal.User.getTags();
439
+ });
440
+ return retVal;
441
+ }
442
+ function userAddEventListener(event, listener) {
443
+ var _a;
444
+ (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
445
+ OneSignal.User.addEventListener(event, listener);
446
+ });
447
+ }
448
+ function userRemoveEventListener(event, listener) {
449
+ var _a;
450
+ (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
451
+ OneSignal.User.removeEventListener(event, listener);
452
+ });
453
+ }
454
+ function userSetLanguage(language) {
455
+ var _a;
456
+ (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
457
+ OneSignal.User.setLanguage(language);
458
+ });
459
+ }
460
+ function userGetLanguage() {
461
+ var _a;
462
+ let retVal;
463
+ (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
464
+ retVal = OneSignal.User.getLanguage();
465
+ });
466
+ return retVal;
467
+ }
434
468
  function pushSubscriptionOptIn() {
435
469
  return new Promise((resolve, reject) => {
436
470
  var _a;
437
471
  if (isOneSignalScriptFailed) {
438
- reject();
472
+ reject(new Error('OneSignal script failed to load.'));
473
+ return;
439
474
  }
440
475
  try {
441
476
  (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
442
- OneSignal.User.PushSubscription.optIn()
443
- .then((value) => resolve(value))
477
+ OneSignal.User.PushSubscription.optIn().then(() => resolve())
444
478
  .catch((error) => reject(error));
445
479
  });
446
480
  }
@@ -453,12 +487,12 @@ function pushSubscriptionOptOut() {
453
487
  return new Promise((resolve, reject) => {
454
488
  var _a;
455
489
  if (isOneSignalScriptFailed) {
456
- reject();
490
+ reject(new Error('OneSignal script failed to load.'));
491
+ return;
457
492
  }
458
493
  try {
459
494
  (_a = window.OneSignalDeferred) === null || _a === void 0 ? void 0 : _a.push((OneSignal) => {
460
- OneSignal.User.PushSubscription.optOut()
461
- .then((value) => resolve(value))
495
+ OneSignal.User.PushSubscription.optOut().then(() => resolve())
462
496
  .catch((error) => reject(error));
463
497
  });
464
498
  }
@@ -495,6 +529,8 @@ const PushSubscriptionNamespace = {
495
529
  removeEventListener: pushSubscriptionRemoveEventListener,
496
530
  };
497
531
  const UserNamespace = {
532
+ get onesignalId() { var _a, _b; return (_b = (_a = window.OneSignal) === null || _a === void 0 ? void 0 : _a.User) === null || _b === void 0 ? void 0 : _b.onesignalId; },
533
+ get externalId() { var _a, _b; return (_b = (_a = window.OneSignal) === null || _a === void 0 ? void 0 : _a.User) === null || _b === void 0 ? void 0 : _b.externalId; },
498
534
  addAlias: userAddAlias,
499
535
  addAliases: userAddAliases,
500
536
  removeAlias: userRemoveAlias,
@@ -507,6 +543,11 @@ const UserNamespace = {
507
543
  addTags: userAddTags,
508
544
  removeTag: userRemoveTag,
509
545
  removeTags: userRemoveTags,
546
+ getTags: userGetTags,
547
+ addEventListener: userAddEventListener,
548
+ removeEventListener: userRemoveEventListener,
549
+ setLanguage: userSetLanguage,
550
+ getLanguage: userGetLanguage,
510
551
  PushSubscription: PushSubscriptionNamespace,
511
552
  };
512
553
  const SessionNamespace = {