react-native-notify-kit 10.7.2 → 10.8.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.
Files changed (49) hide show
  1. package/README.md +2 -0
  2. package/android/src/main/java/app/notifee/core/ForegroundService.java +944 -93
  3. package/android/src/test/java/app/notifee/core/ForegroundServiceTest.java +4281 -57
  4. package/android/src/test/java/app/notifee/core/NotificationManagerActionRoutingTest.java +37 -0
  5. package/dist/fcm/parseFcmPayload.d.ts +1 -0
  6. package/dist/fcm/parseFcmPayload.js.map +1 -1
  7. package/dist/fcm/reconstructNotification.js +96 -8
  8. package/dist/fcm/reconstructNotification.js.map +1 -1
  9. package/dist/types/Notification.d.ts +25 -1
  10. package/dist/types/Notification.js +10 -0
  11. package/dist/types/Notification.js.map +1 -1
  12. package/dist/validators/validateAndroidPressAction.js +3 -0
  13. package/dist/validators/validateAndroidPressAction.js.map +1 -1
  14. package/dist/validators/validateIOSNotification.js +5 -2
  15. package/dist/validators/validateIOSNotification.js.map +1 -1
  16. package/dist/version.d.ts +1 -1
  17. package/dist/version.js +1 -1
  18. package/ios/NotifeeCore/NotifeeCore.m +36 -3
  19. package/ios/NotifeeCore/NotifeeCoreExtensionHelper.m +82 -3
  20. package/ios/NotifeeCore/NotifeeCoreFcmIdentity.h +91 -0
  21. package/package.json +1 -1
  22. package/server/README.md +5 -3
  23. package/server/dist/buildPayload.d.ts.map +1 -1
  24. package/server/dist/buildPayload.js +2 -0
  25. package/server/dist/buildPayload.js.map +1 -1
  26. package/server/dist/ios.d.ts.map +1 -1
  27. package/server/dist/ios.js +8 -1
  28. package/server/dist/ios.js.map +1 -1
  29. package/server/dist/serialize.d.ts +2 -0
  30. package/server/dist/serialize.d.ts.map +1 -1
  31. package/server/dist/serialize.js +6 -0
  32. package/server/dist/serialize.js.map +1 -1
  33. package/server/dist/types.d.ts +1 -1
  34. package/server/dist/types.d.ts.map +1 -1
  35. package/server/dist/validation.d.ts.map +1 -1
  36. package/server/dist/validation.js +160 -6
  37. package/server/dist/validation.js.map +1 -1
  38. package/server/src/buildPayload.ts +2 -0
  39. package/server/src/ios.ts +8 -1
  40. package/server/src/serialize.ts +8 -0
  41. package/server/src/types.ts +1 -0
  42. package/server/src/validation.ts +187 -6
  43. package/src/fcm/parseFcmPayload.ts +1 -0
  44. package/src/fcm/reconstructNotification.ts +105 -10
  45. package/src/internal/fcmContract.d.ts +57 -12
  46. package/src/types/Notification.ts +27 -0
  47. package/src/validators/validateAndroidPressAction.ts +4 -0
  48. package/src/validators/validateIOSNotification.ts +7 -2
  49. package/src/version.ts +1 -1
@@ -21,6 +21,7 @@ import static app.notifee.core.event.NotificationEvent.TYPE_ACTION_PRESS;
21
21
  import static org.junit.Assert.assertEquals;
22
22
  import static org.junit.Assert.assertNotNull;
23
23
  import static org.junit.Assert.assertTrue;
24
+ import static org.mockito.Mockito.mock;
24
25
 
25
26
  import android.Manifest;
26
27
  import android.app.Activity;
@@ -34,10 +35,13 @@ import android.content.pm.ActivityInfo;
34
35
  import android.content.pm.ResolveInfo;
35
36
  import android.os.Build;
36
37
  import android.os.Bundle;
38
+ import androidx.work.impl.WorkManagerImpl;
37
39
  import app.notifee.core.event.MainComponentEvent;
38
40
  import app.notifee.core.model.NotificationModel;
39
41
  import com.google.common.util.concurrent.ListenableFuture;
40
42
  import java.util.ArrayList;
43
+ import java.util.Collections;
44
+ import java.util.List;
41
45
  import java.util.concurrent.TimeUnit;
42
46
  import org.junit.After;
43
47
  import org.junit.Before;
@@ -82,6 +86,39 @@ public class NotificationManagerActionRoutingTest {
82
86
  ShadowPendingIntent.reset();
83
87
  }
84
88
 
89
+ @Test
90
+ public void sameLogicalId_isNativeDisplayReadbackAndCancelIdentity() throws Exception {
91
+ String logicalId = "logical-42";
92
+ NotificationModel first =
93
+ buildNotificationModel(logicalId, buildPressAction("open", null, null));
94
+ NotificationModel second =
95
+ buildNotificationModel(logicalId, buildPressAction("reply", null, null));
96
+
97
+ displayNotification(first);
98
+ displayNotification(second);
99
+
100
+ android.app.NotificationManager nativeManager =
101
+ (android.app.NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
102
+ assertEquals(1, nativeManager.getActiveNotifications().length);
103
+ assertEquals(logicalId.hashCode(), nativeManager.getActiveNotifications()[0].getId());
104
+
105
+ List<Bundle> displayed =
106
+ NotificationManager.getDisplayedNotifications().get(5, TimeUnit.SECONDS);
107
+ assertEquals(1, displayed.size());
108
+ assertEquals(logicalId, displayed.get(0).getString("id"));
109
+ assertEquals(logicalId, displayed.get(0).getBundle("notification").getString("id"));
110
+
111
+ WorkManagerImpl.setDelegate(mock(WorkManagerImpl.class));
112
+ try {
113
+ NotificationManager.cancelAllNotificationsWithIds(
114
+ 1, Collections.singletonList(logicalId), null)
115
+ .get(5, TimeUnit.SECONDS);
116
+ assertEquals(0, nativeManager.getActiveNotifications().length);
117
+ } finally {
118
+ WorkManagerImpl.setDelegate(null);
119
+ }
120
+ }
121
+
85
122
  @Test
86
123
  public void displayNotification_android12PlusNoLaunchAction_routesToReceiverService()
87
124
  throws Exception {
@@ -1,6 +1,7 @@
1
1
  export type ParsedPayload = {
2
2
  _v?: number;
3
3
  title?: string;
4
+ subtitle?: string;
4
5
  body?: string;
5
6
  android?: Record<string, unknown>;
6
7
  ios?: Record<string, unknown>;
@@ -1 +1 @@
1
- {"version":3,"file":"parseFcmPayload.js","sourceRoot":"","sources":["../../src/fcm/parseFcmPayload.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,MAAM,GAAG,2BAA2B,CAAC;AAW3C;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAAC,IAAwC;IACtE,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,CAAC,eAAe,KAAK,QAAQ,EAAE,CAAC;QACtD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,MAAqB,CAAC;IAC1B,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAC5C,CAAC;IAAC,OAAO,CAAU,EAAE,CAAC;QACpB,MAAM,MAAM,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC1D,OAAO,CAAC,IAAI,CACV,GAAG,MAAM,qCAAqC,MAAM,mCAAmC,CACxF,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3E,OAAO,CAAC,IAAI,CACV,GAAG,MAAM,gFAAgF,CAC1F,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,sEAAsE;IACtE,iDAAiD;IACjD,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACrC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;QAChD,OAAO,CAAC,IAAI,CACV,GAAG,MAAM,4BAA4B,UAAU,gEAAgE,CAChH,CAAC;IACJ,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"parseFcmPayload.js","sourceRoot":"","sources":["../../src/fcm/parseFcmPayload.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,MAAM,GAAG,2BAA2B,CAAC;AAY3C;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAAC,IAAwC;IACtE,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,CAAC,eAAe,KAAK,QAAQ,EAAE,CAAC;QACtD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,MAAqB,CAAC;IAC1B,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAC5C,CAAC;IAAC,OAAO,CAAU,EAAE,CAAC;QACpB,MAAM,MAAM,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC1D,OAAO,CAAC,IAAI,CACV,GAAG,MAAM,qCAAqC,MAAM,mCAAmC,CACxF,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3E,OAAO,CAAC,IAAI,CACV,GAAG,MAAM,gFAAgF,CAC1F,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,sEAAsE;IACtE,iDAAiD;IACjD,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACrC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;QAChD,OAAO,CAAC,IAAI,CACV,GAAG,MAAM,4BAA4B,UAAU,gEAAgE,CAChH,CAAC;IACJ,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -12,6 +12,41 @@ const STYLE_TYPE_MAP = {
12
12
  BIG_TEXT: AndroidStyle.BIGTEXT,
13
13
  BIG_PICTURE: AndroidStyle.BIGPICTURE,
14
14
  };
15
+ const ANDROID_INPUT_KEYS = new Set([
16
+ 'allowFreeFormInput',
17
+ 'allowGeneratedReplies',
18
+ 'choices',
19
+ 'editableChoices',
20
+ 'placeholder',
21
+ ]);
22
+ function assertFcmPressAction(value, path) {
23
+ if (value === null || typeof value !== 'object' || Array.isArray(value)) {
24
+ throw new Error(`${PREFIX} ${path} must be an object`);
25
+ }
26
+ const pressAction = value;
27
+ if (typeof pressAction.id !== 'string' || pressAction.id.length === 0) {
28
+ throw new Error(`${PREFIX} ${path}.id must be a non-empty string`);
29
+ }
30
+ if (pressAction.id === '__NOTIFEE_OPT_OUT__') {
31
+ throw new Error(`${PREFIX} ${path}.id is reserved for explicit null`);
32
+ }
33
+ if (pressAction.launchActivity !== undefined && typeof pressAction.launchActivity !== 'string') {
34
+ throw new Error(`${PREFIX} ${path}.launchActivity must be a string`);
35
+ }
36
+ if (pressAction.mainComponent !== undefined && typeof pressAction.mainComponent !== 'string') {
37
+ throw new Error(`${PREFIX} ${path}.mainComponent must be a string`);
38
+ }
39
+ if (pressAction.launchActivityFlags !== undefined) {
40
+ if (!Array.isArray(pressAction.launchActivityFlags)) {
41
+ throw new Error(`${PREFIX} ${path}.launchActivityFlags must be an array`);
42
+ }
43
+ for (const flag of pressAction.launchActivityFlags) {
44
+ if (typeof flag !== 'number' || !Number.isInteger(flag) || flag < 0 || flag > 20) {
45
+ throw new Error(`${PREFIX} ${path}.launchActivityFlags contains an invalid flag`);
46
+ }
47
+ }
48
+ }
49
+ }
15
50
  /**
16
51
  * Reconstructs a {@link Notification} object suitable for
17
52
  * `displayNotification` from the parsed FCM payload + config defaults.
@@ -27,6 +62,9 @@ export function reconstructNotification(parsed, remoteMessage, config) {
27
62
  title,
28
63
  body,
29
64
  };
65
+ if (typeof parsed?.subtitle === 'string') {
66
+ notification.subtitle = parsed.subtitle;
67
+ }
30
68
  if (Object.keys(data).length > 0) {
31
69
  notification.data = data;
32
70
  }
@@ -81,9 +119,13 @@ function buildAndroidConfig(raw, config) {
81
119
  if (typeof channelId === 'string') {
82
120
  android.channelId = channelId;
83
121
  }
84
- // pressAction: payload > config default
85
- const pressAction = raw?.pressAction ?? config.defaultPressAction;
86
- if (pressAction && typeof pressAction === 'object') {
122
+ // Explicit null opts out of the body tap; only absence uses the configured default.
123
+ const pressAction = raw?.pressAction === undefined ? config.defaultPressAction : raw.pressAction;
124
+ if (pressAction === null) {
125
+ android.pressAction = null;
126
+ }
127
+ else if (pressAction !== undefined) {
128
+ assertFcmPressAction(pressAction, 'android.pressAction');
87
129
  android.pressAction = pressAction;
88
130
  }
89
131
  // Direct string copies
@@ -91,6 +133,9 @@ function buildAndroidConfig(raw, config) {
91
133
  android.smallIcon = raw.smallIcon;
92
134
  if (typeof raw?.largeIcon === 'string')
93
135
  android.largeIcon = raw.largeIcon;
136
+ if (typeof raw?.circularLargeIcon === 'boolean') {
137
+ android.circularLargeIcon = raw.circularLargeIcon;
138
+ }
94
139
  if (typeof raw?.color === 'string')
95
140
  android.color = raw.color;
96
141
  // Timestamp fields — preserve only values accepted by the canonical Android validator
@@ -99,9 +144,39 @@ function buildAndroidConfig(raw, config) {
99
144
  if (typeof raw?.timestamp === 'number' && isValidTimestamp(raw.timestamp)) {
100
145
  android.timestamp = raw.timestamp;
101
146
  }
102
- // Actions array — pass through (trust server validation)
103
- if (Array.isArray(raw?.actions)) {
104
- android.actions = raw.actions;
147
+ // Legacy input:false means no reply. Other malformed inputs must fail here:
148
+ // the normal validator accepts some of them as a default RemoteInput.
149
+ if (raw?.actions !== undefined) {
150
+ if (!Array.isArray(raw.actions)) {
151
+ throw new Error(`${PREFIX} android.actions must be an array`);
152
+ }
153
+ android.actions = raw.actions.map((action, index) => {
154
+ if (action === null || typeof action !== 'object' || Array.isArray(action)) {
155
+ return action;
156
+ }
157
+ if (action.pressAction !== undefined) {
158
+ assertFcmPressAction(action.pressAction, `android.actions[${index}].pressAction`);
159
+ }
160
+ const input = action.input;
161
+ if (input === false) {
162
+ const withoutInput = { ...action };
163
+ delete withoutInput.input;
164
+ return withoutInput;
165
+ }
166
+ if (input !== undefined &&
167
+ input !== true &&
168
+ (input === null || typeof input !== 'object' || Array.isArray(input))) {
169
+ throw new Error(`${PREFIX} android.actions[${index}].input is invalid`);
170
+ }
171
+ if (input !== undefined && input !== true) {
172
+ for (const key of Object.keys(input)) {
173
+ if (!ANDROID_INPUT_KEYS.has(key)) {
174
+ throw new Error(`${PREFIX} android.actions[${index}].input.${key} is unsupported`);
175
+ }
176
+ }
177
+ }
178
+ return action;
179
+ });
105
180
  }
106
181
  // Style — enum mapping with defense-in-depth for unknown types
107
182
  if (raw?.style && typeof raw.style === 'object') {
@@ -110,10 +185,23 @@ function buildAndroidConfig(raw, config) {
110
185
  const mappedType = STYLE_TYPE_MAP[style.type];
111
186
  if (mappedType !== undefined) {
112
187
  if (mappedType === AndroidStyle.BIGTEXT && typeof style.text === 'string') {
113
- android.style = { type: AndroidStyle.BIGTEXT, text: style.text };
188
+ android.style = {
189
+ type: AndroidStyle.BIGTEXT,
190
+ text: style.text,
191
+ ...(typeof style.title === 'string' ? { title: style.title } : {}),
192
+ ...(typeof style.summary === 'string' ? { summary: style.summary } : {}),
193
+ };
114
194
  }
115
195
  else if (mappedType === AndroidStyle.BIGPICTURE && typeof style.picture === 'string') {
116
- android.style = { type: AndroidStyle.BIGPICTURE, picture: style.picture };
196
+ android.style = {
197
+ type: AndroidStyle.BIGPICTURE,
198
+ picture: style.picture,
199
+ ...(typeof style.title === 'string' ? { title: style.title } : {}),
200
+ ...(typeof style.summary === 'string' ? { summary: style.summary } : {}),
201
+ ...(style.largeIcon === null || typeof style.largeIcon === 'string'
202
+ ? { largeIcon: style.largeIcon }
203
+ : {}),
204
+ };
117
205
  }
118
206
  else {
119
207
  const field = mappedType === AndroidStyle.BIGTEXT ? 'text' : 'picture';
@@ -1 +1 @@
1
- {"version":3,"file":"reconstructNotification.js","sourceRoot":"","sources":["../../src/fcm/reconstructNotification.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reconstructNotification.js","sourceRoot":"","sources":["../../src/fcm/reconstructNotification.ts"],"names":[],"mappings":"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"}
@@ -371,7 +371,17 @@ export declare enum EventType {
371
371
  *
372
372
  * Event type is sent when a notification wants to start a foreground service but a foreground service is already started.
373
373
  */
374
- FG_ALREADY_EXIST = 8
374
+ FG_ALREADY_EXIST = 8,
375
+ /**
376
+ * Event type for an Android Foreground Service timeout handled by the native timeout path.
377
+ *
378
+ * Delivery to JavaScript is best-effort; JavaScript execution is not guaranteed.
379
+ * This event does not confirm completed Android service teardown, guarantee cancellation of
380
+ * JavaScript work, or authorize a new Foreground Service start.
381
+ *
382
+ * @platform android
383
+ */
384
+ FG_TIMEOUT = 9
375
385
  }
376
386
  /**
377
387
  * An interface representing the different detail values which can be provided with a notification event.
@@ -390,6 +400,7 @@ export interface EventDetail {
390
400
  * - [`EventType.DELIVERED`](/react-native/reference/eventtype#delivered)
391
401
  * - [`EventType.TRIGGER_NOTIFICATION_CREATED`](/react-native/reference/eventtype#trigger_notification_created)
392
402
  * - [`EventType.FG_ALREADY_EXIST`](/react-native/reference/eventtype#fg_already_exist)
403
+ * - [`EventType.FG_TIMEOUT`](/react-native/reference/eventtype#fg_timeout)
393
404
  */
394
405
  notification?: Notification;
395
406
  /**
@@ -443,6 +454,19 @@ export interface EventDetail {
443
454
  * @platform android API Level >= 28
444
455
  */
445
456
  blocked?: boolean;
457
+ /**
458
+ * The start command identifier reported by Android's timeout callback for `EventType.FG_TIMEOUT`.
459
+ *
460
+ * @platform android
461
+ */
462
+ startId?: number;
463
+ /**
464
+ * The Foreground Service type reported by Android's timeout callback for `EventType.FG_TIMEOUT`.
465
+ * A value of `-1` is preserved when the callback overload does not provide an explicit type.
466
+ *
467
+ * @platform android
468
+ */
469
+ fgsType?: number;
446
470
  }
447
471
  /**
448
472
  * An enum representing the notification authorization status for this app on the device.
@@ -77,6 +77,16 @@ export var EventType;
77
77
  * Event type is sent when a notification wants to start a foreground service but a foreground service is already started.
78
78
  */
79
79
  EventType[EventType["FG_ALREADY_EXIST"] = 8] = "FG_ALREADY_EXIST";
80
+ /**
81
+ * Event type for an Android Foreground Service timeout handled by the native timeout path.
82
+ *
83
+ * Delivery to JavaScript is best-effort; JavaScript execution is not guaranteed.
84
+ * This event does not confirm completed Android service teardown, guarantee cancellation of
85
+ * JavaScript work, or authorize a new Foreground Service start.
86
+ *
87
+ * @platform android
88
+ */
89
+ EventType[EventType["FG_TIMEOUT"] = 9] = "FG_TIMEOUT";
80
90
  })(EventType || (EventType = {}));
81
91
  /**
82
92
  * An enum representing the notification authorization status for this app on the device.
@@ -1 +1 @@
1
- {"version":3,"file":"Notification.js","sourceRoot":"","sources":["../../src/types/Notification.ts"],"names":[],"mappings":"AAAA;;GAEG;AA6UH;;;;;GAKG;AACH,MAAM,CAAN,IAAY,SA8EX;AA9ED,WAAY,SAAS;IACnB;;;;;OAKG;IACH,gDAAY,CAAA;IAEZ;;;;;;;OAOG;IACH,mDAAa,CAAA;IAEb;;;;;;;;;OASG;IACH,2CAAS,CAAA;IAET;;OAEG;IACH,yDAAgB,CAAA;IAEhB;;;;;;OAMG;IACH,mDAAa,CAAA;IAEb;;;;;OAKG;IACH,uDAAe,CAAA;IAEf;;;;OAIG;IACH,+DAAmB,CAAA;IAEnB;;;;OAIG;IACH,2EAAyB,CAAA;IAEzB;;OAEG;IACH,yFAAgC,CAAA;IAEhC;;;;OAIG;IACH,iEAAoB,CAAA;AACtB,CAAC,EA9EW,SAAS,KAAT,SAAS,QA8EpB;AA+ED;;;;;;GAMG;AACH,MAAM,CAAN,IAAY,mBA0BX;AA1BD,WAAY,mBAAmB;IAC7B;;;;;;;OAOG;IACH,kFAAmB,CAAA;IAEnB;;OAEG;IACH,iEAAU,CAAA;IAEV;;OAEG;IACH,yEAAc,CAAA;IAEd;;;OAGG;IACH,2EAAe,CAAA;AACjB,CAAC,EA1BW,mBAAmB,KAAnB,mBAAmB,QA0B9B"}
1
+ {"version":3,"file":"Notification.js","sourceRoot":"","sources":["../../src/types/Notification.ts"],"names":[],"mappings":"AAAA;;GAEG;AA6UH;;;;;GAKG;AACH,MAAM,CAAN,IAAY,SAyFX;AAzFD,WAAY,SAAS;IACnB;;;;;OAKG;IACH,gDAAY,CAAA;IAEZ;;;;;;;OAOG;IACH,mDAAa,CAAA;IAEb;;;;;;;;;OASG;IACH,2CAAS,CAAA;IAET;;OAEG;IACH,yDAAgB,CAAA;IAEhB;;;;;;OAMG;IACH,mDAAa,CAAA;IAEb;;;;;OAKG;IACH,uDAAe,CAAA;IAEf;;;;OAIG;IACH,+DAAmB,CAAA;IAEnB;;;;OAIG;IACH,2EAAyB,CAAA;IAEzB;;OAEG;IACH,yFAAgC,CAAA;IAEhC;;;;OAIG;IACH,iEAAoB,CAAA;IAEpB;;;;;;;;OAQG;IACH,qDAAc,CAAA;AAChB,CAAC,EAzFW,SAAS,KAAT,SAAS,QAyFpB;AA+FD;;;;;;GAMG;AACH,MAAM,CAAN,IAAY,mBA0BX;AA1BD,WAAY,mBAAmB;IAC7B;;;;;;;OAOG;IACH,kFAAmB,CAAA;IAEnB;;OAEG;IACH,iEAAU,CAAA;IAEV;;OAEG;IACH,yEAAc,CAAA;IAEd;;;OAGG;IACH,2EAAe,CAAA;AACjB,CAAC,EA1BW,mBAAmB,KAAnB,mBAAmB,QA0B9B"}
@@ -11,6 +11,9 @@ export default function validateAndroidPressAction(pressAction) {
11
11
  if (!isString(pressAction.id) || pressAction.id.length === 0) {
12
12
  throw new Error("'id' expected a non-empty string value.");
13
13
  }
14
+ if (pressAction.id === '__NOTIFEE_OPT_OUT__') {
15
+ throw new Error("'id' is reserved for an explicit null pressAction.");
16
+ }
14
17
  const out = {
15
18
  id: pressAction.id,
16
19
  };
@@ -1 +1 @@
1
- {"version":3,"file":"validateAndroidPressAction.js","sourceRoot":"","sources":["../../src/validators/validateAndroidPressAction.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAE9E,MAAM,6BAA6B,GAAG,SAAS,CAAC;AAChD,MAAM,0BAA0B,GAAG,SAAS,CAAC;AAE7C,MAAM,CAAC,OAAO,UAAU,0BAA0B,CAChD,WAAoC;IAEpC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IAC7D,CAAC;IAED,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,WAAW,CAAC,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7D,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IAC7D,CAAC;IAED,MAAM,GAAG,GAA4B;QACnC,EAAE,EAAE,WAAW,CAAC,EAAE;KACnB,CAAC;IAEF,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,cAAc,CAAC,EAAE,CAAC;QAC7C,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,cAAc,CAAC,EAAE,CAAC;YAC1C,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;QAC/D,CAAC;QAED,GAAG,CAAC,cAAc,GAAG,WAAW,CAAC,cAAc,CAAC;IAClD,CAAC;SAAM,IAAI,WAAW,CAAC,EAAE,KAAK,0BAA0B,EAAE,CAAC;QACzD,uCAAuC;QACvC,GAAG,CAAC,cAAc,GAAG,6BAA6B,CAAC;IACrD,CAAC;IAED,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,mBAAmB,CAAC,EAAE,CAAC;QAClD,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,mBAAmB,CAAC,EAAE,CAAC;YAC9C,MAAM,IAAI,KAAK,CACb,+EAA+E,CAChF,CAAC;QACJ,CAAC;QAED,wCAAwC;QACxC,IAAI,WAAW,CAAC,mBAAmB,CAAC,MAAM,EAAE,CAAC;YAC3C,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAClD,MAAM,IAAI,KAAK,CACb,+EAA+E,CAChF,CAAC;YACJ,CAAC;QACH,CAAC;QAED,GAAG,CAAC,mBAAmB,GAAG,WAAW,CAAC,mBAAmB,CAAC;IAC5D,CAAC;IAED,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,aAAa,CAAC,EAAE,CAAC;QAC5C,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,aAAa,CAAC,EAAE,CAAC;YACzC,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAC9D,CAAC;QAED,GAAG,CAAC,aAAa,GAAG,WAAW,CAAC,aAAa,CAAC;IAChD,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"validateAndroidPressAction.js","sourceRoot":"","sources":["../../src/validators/validateAndroidPressAction.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAE9E,MAAM,6BAA6B,GAAG,SAAS,CAAC;AAChD,MAAM,0BAA0B,GAAG,SAAS,CAAC;AAE7C,MAAM,CAAC,OAAO,UAAU,0BAA0B,CAChD,WAAoC;IAEpC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IAC7D,CAAC;IAED,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,WAAW,CAAC,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7D,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IAC7D,CAAC;IAED,IAAI,WAAW,CAAC,EAAE,KAAK,qBAAqB,EAAE,CAAC;QAC7C,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;IACxE,CAAC;IAED,MAAM,GAAG,GAA4B;QACnC,EAAE,EAAE,WAAW,CAAC,EAAE;KACnB,CAAC;IAEF,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,cAAc,CAAC,EAAE,CAAC;QAC7C,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,cAAc,CAAC,EAAE,CAAC;YAC1C,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;QAC/D,CAAC;QAED,GAAG,CAAC,cAAc,GAAG,WAAW,CAAC,cAAc,CAAC;IAClD,CAAC;SAAM,IAAI,WAAW,CAAC,EAAE,KAAK,0BAA0B,EAAE,CAAC;QACzD,uCAAuC;QACvC,GAAG,CAAC,cAAc,GAAG,6BAA6B,CAAC;IACrD,CAAC;IAED,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,mBAAmB,CAAC,EAAE,CAAC;QAClD,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,mBAAmB,CAAC,EAAE,CAAC;YAC9C,MAAM,IAAI,KAAK,CACb,+EAA+E,CAChF,CAAC;QACJ,CAAC;QAED,wCAAwC;QACxC,IAAI,WAAW,CAAC,mBAAmB,CAAC,MAAM,EAAE,CAAC;YAC3C,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAClD,MAAM,IAAI,KAAK,CACb,+EAA+E,CAChF,CAAC;YACJ,CAAC;QACH,CAAC;QAED,GAAG,CAAC,mBAAmB,GAAG,WAAW,CAAC,mBAAmB,CAAC;IAC5D,CAAC;IAED,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,aAAa,CAAC,EAAE,CAAC;QAC5C,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,aAAa,CAAC,EAAE,CAAC;YACzC,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAC9D,CAAC;QAED,GAAG,CAAC,aAAa,GAAG,WAAW,CAAC,aAAa,CAAC;IAChD,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -102,8 +102,11 @@ export default function validateIOSNotification(ios) {
102
102
  /**
103
103
  * badgeCount
104
104
  */
105
- if (objectHasProperty(ios, 'badgeCount')) {
106
- if (!isNumber(ios.badgeCount) || ios.badgeCount < 0) {
105
+ if (objectHasProperty(ios, 'badgeCount') && ios.badgeCount !== null) {
106
+ if (!isNumber(ios.badgeCount) ||
107
+ !Number.isFinite(ios.badgeCount) ||
108
+ !Number.isInteger(ios.badgeCount) ||
109
+ ios.badgeCount < 0) {
107
110
  throw new Error("'notification.ios.badgeCount' expected a number value >=0.");
108
111
  }
109
112
  out.badgeCount = ios.badgeCount;
@@ -1 +1 @@
1
- {"version":3,"file":"validateIOSNotification.js","sourceRoot":"","sources":["../../src/validators/validateIOSNotification.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validateIOSNotification.js","sourceRoot":"","sources":["../../src/validators/validateIOSNotification.ts"],"names":[],"mappings":"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"}
package/dist/version.d.ts CHANGED
@@ -1 +1 @@
1
- export declare const version = "10.7.2";
1
+ export declare const version = "10.8.1";
package/dist/version.js CHANGED
@@ -1,3 +1,3 @@
1
1
  // Generated by genversion.
2
- export const version = '10.7.2';
2
+ export const version = '10.8.1';
3
3
  //# sourceMappingURL=version.js.map
@@ -24,6 +24,7 @@
24
24
  #import "NotifeeCore.h"
25
25
  #import "NotifeeCoreDelegateHolder.h"
26
26
  #import "NotifeeCoreExtensionHelper.h"
27
+ #import "NotifeeCoreFcmIdentity.h"
27
28
  #import "NotifeeCoreUtil.h"
28
29
 
29
30
  @interface NotifeeCoreUNUserNotificationCenter (Rechain)
@@ -144,6 +145,11 @@ typedef NS_ENUM(NSInteger, NotifeeCoreRollingErrorCode) {
144
145
  return rollingPublicId;
145
146
  }
146
147
 
148
+ NSString *fcmLogicalId = NotifeeFcmLogicalIdForRequest(request);
149
+ if (fcmLogicalId != nil) {
150
+ return fcmLogicalId;
151
+ }
152
+
147
153
  NSString *identifier = request.identifier;
148
154
  if ([self isPotentialRollingInternalNotificationId:identifier]) {
149
155
  return nil;
@@ -193,6 +199,14 @@ typedef NS_ENUM(NSInteger, NotifeeCoreRollingErrorCode) {
193
199
  deliveredNotifications:(NSArray<UNNotification *> *)deliveredNotifications
194
200
  record:(NSDictionary *)record {
195
201
  NSMutableOrderedSet<NSString *> *identifiers = [NSMutableOrderedSet orderedSet];
202
+ NSMutableArray<UNNotificationRequest *> *requests = [NSMutableArray array];
203
+ for (UNNotification *notification in deliveredNotifications) {
204
+ [requests addObject:notification.request];
205
+ }
206
+ for (NSString *physicalId in NotifeeFcmIdentifiersForLogicalId(requests, publicId)) {
207
+ [self addString:physicalId toOrderedSet:identifiers];
208
+ }
209
+ BOOL removeDirectIdentifier = NotifeeShouldRemoveDirectIdentifierForLogicalId(requests, publicId);
196
210
 
197
211
  NSArray *scheduledIds = record[@"scheduledIds"];
198
212
  if ([scheduledIds isKindOfClass:NSArray.class]) {
@@ -204,7 +218,7 @@ typedef NS_ENUM(NSInteger, NotifeeCoreRollingErrorCode) {
204
218
  for (UNNotification *notification in deliveredNotifications) {
205
219
  UNNotificationRequest *request = notification.request;
206
220
  NSString *identifier = request.identifier;
207
- if ([identifier isEqualToString:publicId]) {
221
+ if (removeDirectIdentifier && [identifier isEqualToString:publicId]) {
208
222
  [self addString:identifier toOrderedSet:identifiers];
209
223
  continue;
210
224
  }
@@ -873,7 +887,13 @@ typedef NS_ENUM(NSInteger, NotifeeCoreRollingErrorCode) {
873
887
  [self rollingDeliveredIdentifiersForPublicId:notificationId
874
888
  deliveredNotifications:deliveredNotifications
875
889
  record:record];
876
- [self addString:notificationId toOrderedSet:deliveredIdentifiersToRemove];
890
+ NSMutableArray<UNNotificationRequest *> *requests = [NSMutableArray array];
891
+ for (UNNotification *notification in deliveredNotifications) {
892
+ [requests addObject:notification.request];
893
+ }
894
+ if (NotifeeShouldRemoveDirectIdentifierForLogicalId(requests, notificationId)) {
895
+ [self addString:notificationId toOrderedSet:deliveredIdentifiersToRemove];
896
+ }
877
897
  if ([deliveredIdentifiersToRemove count] > 0) {
878
898
  [center removeDeliveredNotificationsWithIdentifiers:[deliveredIdentifiersToRemove array]];
879
899
  }
@@ -935,7 +955,13 @@ typedef NS_ENUM(NSInteger, NotifeeCoreRollingErrorCode) {
935
955
  deliveredNotifications:deliveredNotifications
936
956
  record:record];
937
957
  [deliveredIdentifiersToRemove unionOrderedSet:rollingDeliveredIdentifiers];
938
- [self addString:publicId toOrderedSet:deliveredIdentifiersToRemove];
958
+ NSMutableArray<UNNotificationRequest *> *requests = [NSMutableArray array];
959
+ for (UNNotification *notification in deliveredNotifications) {
960
+ [requests addObject:notification.request];
961
+ }
962
+ if (NotifeeShouldRemoveDirectIdentifierForLogicalId(requests, publicId)) {
963
+ [self addString:publicId toOrderedSet:deliveredIdentifiersToRemove];
964
+ }
939
965
  }
940
966
 
941
967
  if (cancelTrigger) {
@@ -1050,6 +1076,13 @@ typedef NS_ENUM(NSInteger, NotifeeCoreRollingErrorCode) {
1050
1076
  triggerNotification[@"notification"] = publicNotification;
1051
1077
  }
1052
1078
 
1079
+ NSString *fcmLogicalId = NotifeeFcmLogicalIdForRequest(request);
1080
+ if (fcmLogicalId != nil && [notification isKindOfClass:NSDictionary.class]) {
1081
+ NSMutableDictionary *publicNotification = [notification mutableCopy];
1082
+ publicNotification[@"id"] = fcmLogicalId;
1083
+ triggerNotification[@"notification"] = publicNotification;
1084
+ }
1085
+
1053
1086
  [triggerNotifications addObject:triggerNotification];
1054
1087
  }
1055
1088
  block(nil, triggerNotifications);
@@ -22,9 +22,18 @@
22
22
 
23
23
  static NSString *const kNoExtension = @"";
24
24
  static NSString *const kImagePathPrefix = @"image/";
25
+ static NSString *const kPayloadDataName = @"notifee_data";
25
26
  static NSTimeInterval const kNotifeeExtensionOrchestrationTimeoutInterval = 25.0;
26
27
  static NSTimeInterval const kNotifeeExtensionFinalizationReserveInterval = 5.0;
27
28
 
29
+ static BOOL IsFcmTransportKey(NSString *key) {
30
+ return [key isEqualToString:@"aps"] || [key isEqualToString:@"from"] ||
31
+ [key isEqualToString:@"collapse_key"] || [key isEqualToString:@"message_type"] ||
32
+ [key isEqualToString:@"message_id"] || [key isEqualToString:@"fcm_options"] ||
33
+ [key hasPrefix:@"android."] || [key hasPrefix:@"google."] || [key hasPrefix:@"gcm."] ||
34
+ [key hasPrefix:@"fcm."] || [key hasPrefix:@"notifee"];
35
+ }
36
+
28
37
  @interface NotifeeCoreUtil (NotifeeCoreExtensionHelper)
29
38
  + (INSendMessageIntent *)generateSenderIntentForCommunicationNotification:
30
39
  (NSDictionary *)communicationInfo
@@ -33,6 +42,7 @@ static NSTimeInterval const kNotifeeExtensionFinalizationReserveInterval = 5.0;
33
42
 
34
43
  @interface NotifeeCoreExtensionHelper ()
35
44
  - (NSMutableDictionary *)parseNotifeeOptions:(id)payload;
45
+ - (NSDictionary *)parseNotifeeData:(id)payload;
36
46
  - (NSTimeInterval)orchestrationTimeoutInterval;
37
47
  - (dispatch_time_t)orchestrationCurrentTime;
38
48
  - (void)scheduleOrchestrationFinalizerAtDeadline:(dispatch_time_t)deadline
@@ -96,7 +106,9 @@ static NSTimeInterval const kNotifeeExtensionFinalizationReserveInterval = 5.0;
96
106
  }
97
107
 
98
108
  - (void)populateNotificationContentWithRequest:(UNNotificationRequest *_Nullable)request {
99
- id notifeeOptionsPayload = self.modifiedContent.userInfo[kPayloadOptionsName];
109
+ NSDictionary *originalUserInfo = [self.modifiedContent.userInfo copy];
110
+ NSNumber *originalBadge = self.modifiedContent.badge;
111
+ id notifeeOptionsPayload = originalUserInfo[kPayloadOptionsName];
100
112
  if (!notifeeOptionsPayload) {
101
113
  [self deliverNotification];
102
114
  return;
@@ -109,10 +121,28 @@ static NSTimeInterval const kNotifeeExtensionFinalizationReserveInterval = 5.0;
109
121
  return;
110
122
  }
111
123
 
124
+ NSDictionary *iosOptions =
125
+ [options[@"ios"] isKindOfClass:[NSDictionary class]] ? options[@"ios"] : nil;
126
+ if (iosOptions[@"badgeCount"] == [NSNull null]) {
127
+ NSMutableDictionary *normalizedIOSOptions = [iosOptions mutableCopy];
128
+ [normalizedIOSOptions removeObjectForKey:@"badgeCount"];
129
+ options[@"ios"] = normalizedIOSOptions;
130
+ iosOptions = normalizedIOSOptions;
131
+ }
132
+
112
133
  options[@"remote"] = @YES;
113
134
 
114
- // Convert options to Notification and set defaults
115
- if (options[@"data"] == nil) {
135
+ // The server sends custom data outside notifee_options so it can share the
136
+ // same _v:1 options blob with Android. Preserve every server-supported key
137
+ // in notification.data, even when its name collides with APNs metadata.
138
+ NSDictionary *parsedData = [self.helper parseNotifeeData:originalUserInfo[kPayloadDataName]];
139
+ if (parsedData != nil) {
140
+ NSMutableDictionary *data = [options[@"data"] isKindOfClass:[NSDictionary class]]
141
+ ? [options[@"data"] mutableCopy]
142
+ : [NSMutableDictionary dictionary];
143
+ [data addEntriesFromDictionary:parsedData];
144
+ options[@"data"] = data;
145
+ } else if (options[@"data"] == nil) {
116
146
  options[@"data"] = [NSDictionary dictionary];
117
147
  }
118
148
 
@@ -130,6 +160,26 @@ static NSTimeInterval const kNotifeeExtensionFinalizationReserveInterval = 5.0;
130
160
  }
131
161
 
132
162
  self.modifiedContent = [NotifeeCore buildNotificationContent:options withTrigger:nil];
163
+
164
+ // The builder creates NotifyKit event metadata. Its user data takes legacy
165
+ // precedence over outer userInfo, while incoming APNs/FCM keys remain
166
+ // authoritative at the top level.
167
+ NSMutableDictionary *mergedUserInfo = [originalUserInfo mutableCopy];
168
+ NSDictionary *builtUserInfo = self.modifiedContent.userInfo;
169
+ for (id key in builtUserInfo) {
170
+ if ([key isKindOfClass:[NSString class]] && !IsFcmTransportKey(key) &&
171
+ ![key isEqualToString:kNotifeeUserInfoNotification] &&
172
+ ![key isEqualToString:kNotifeeUserInfoTrigger]) {
173
+ mergedUserInfo[key] = builtUserInfo[key];
174
+ }
175
+ }
176
+ mergedUserInfo[kNotifeeUserInfoNotification] = builtUserInfo[kNotifeeUserInfoNotification];
177
+ // This NSE path builds withTrigger:nil; no top-level trigger is authoritative.
178
+ [mergedUserInfo removeObjectForKey:kNotifeeUserInfoTrigger];
179
+ self.modifiedContent.userInfo = mergedUserInfo;
180
+ if (originalBadge != nil && iosOptions[@"badgeCount"] == nil) {
181
+ self.modifiedContent.badge = originalBadge;
182
+ }
133
183
  [self startOrchestrationWithOptions:options];
134
184
  }
135
185
 
@@ -438,6 +488,35 @@ static NSTimeInterval const kNotifeeExtensionFinalizationReserveInterval = 5.0;
438
488
  return nil;
439
489
  }
440
490
 
491
+ - (NSDictionary *)parseNotifeeData:(id)payload {
492
+ if (payload == nil) {
493
+ return nil;
494
+ }
495
+ if (![payload isKindOfClass:[NSString class]]) {
496
+ NSLog(@"NotifeeCoreExtensionHelper: Ignoring notifee_data because it is not a JSON string");
497
+ return @{};
498
+ }
499
+
500
+ NSData *data = [payload dataUsingEncoding:NSUTF8StringEncoding];
501
+ NSError *error = nil;
502
+ id jsonObject =
503
+ data == nil ? nil : [NSJSONSerialization JSONObjectWithData:data options:0 error:&error];
504
+ if (![jsonObject isKindOfClass:[NSDictionary class]]) {
505
+ NSLog(@"NotifeeCoreExtensionHelper: Ignoring invalid notifee_data JSON");
506
+ return @{};
507
+ }
508
+
509
+ NSMutableDictionary *customData = [NSMutableDictionary dictionary];
510
+ for (id key in jsonObject) {
511
+ id value = jsonObject[key];
512
+ if ([key isKindOfClass:[NSString class]] && [value isKindOfClass:[NSString class]] &&
513
+ ![key isEqualToString:kPayloadOptionsName] && ![key isEqualToString:kPayloadDataName]) {
514
+ customData[key] = value;
515
+ }
516
+ }
517
+ return customData;
518
+ }
519
+
441
520
  - (void)populateNotificationContent:(UNNotificationRequest *_Nullable)request
442
521
  withContent:(UNMutableNotificationContent *)content
443
522
  withContentHandler:(void (^)(UNNotificationContent *_Nonnull))contentHandler {