react-native-notify-kit 10.1.0 → 10.2.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 (52) hide show
  1. package/README.md +99 -96
  2. package/android/build.gradle +2 -2
  3. package/android/src/main/AndroidManifest.xml +0 -1
  4. package/android/src/main/java/app/notifee/core/ForegroundService.java +1 -0
  5. package/android/src/main/java/app/notifee/core/NotificationManager.java +21 -8
  6. package/android/src/main/java/app/notifee/core/RebootBroadcastReceiver.java +16 -0
  7. package/android/src/main/java/app/notifee/core/ReceiverService.java +18 -13
  8. package/android/src/main/java/app/notifee/core/model/NotificationAndroidActionModel.java +1 -2
  9. package/android/src/main/java/app/notifee/core/model/NotificationAndroidPressActionModel.java +3 -9
  10. package/android/src/main/java/app/notifee/core/model/TimestampTriggerModel.java +42 -27
  11. package/android/src/main/java/app/notifee/core/utility/IntentUtils.java +0 -28
  12. package/android/src/main/java/app/notifee/core/utility/PowerManagerUtils.java +79 -41
  13. package/android/src/main/java/app/notifee/core/utility/ResourceUtils.java +5 -1
  14. package/android/src/main/kotlin/io/invertase/notifee/NotifeeApiModule.kt +6 -6
  15. package/android/src/main/kotlin/io/invertase/notifee/NotifeeReactUtils.kt +1 -2
  16. package/android/src/test/java/app/notifee/core/model/TimestampTriggerModelTest.java +150 -0
  17. package/cli/dist/lib/patchPodfile.d.ts +3 -1
  18. package/cli/dist/lib/patchPodfile.js +125 -33
  19. package/cli/dist/lib/patchPodfile.js.map +1 -1
  20. package/dist/index.d.ts +2 -0
  21. package/dist/types/Module.d.ts +27 -13
  22. package/dist/types/Notification.d.ts +1 -1
  23. package/dist/types/NotificationIOS.d.ts +44 -21
  24. package/dist/types/NotificationIOS.js +15 -1
  25. package/dist/types/NotificationIOS.js.map +1 -1
  26. package/dist/types/PowerManagerInfo.d.ts +9 -4
  27. package/dist/types/Trigger.d.ts +45 -2
  28. package/dist/types/Trigger.js +22 -0
  29. package/dist/types/Trigger.js.map +1 -1
  30. package/dist/validators/validateIOSCategory.js +2 -2
  31. package/dist/validators/validateIOSCategory.js.map +1 -1
  32. package/dist/validators/validateTrigger.js +26 -1
  33. package/dist/validators/validateTrigger.js.map +1 -1
  34. package/dist/version.d.ts +1 -1
  35. package/dist/version.js +1 -1
  36. package/ios/NotifeeCore/NotifeeCore+NSNotificationCenter.m +20 -10
  37. package/ios/NotifeeCore/NotifeeCore+UNUserNotificationCenter.h +1 -2
  38. package/ios/NotifeeCore/NotifeeCore+UNUserNotificationCenter.m +44 -35
  39. package/ios/NotifeeCore/NotifeeCore.m +1042 -119
  40. package/ios/NotifeeCore/NotifeeCoreUtil.h +36 -1
  41. package/ios/NotifeeCore/NotifeeCoreUtil.m +533 -9
  42. package/ios/RNNotifee/NotifeeApiModule.mm +2 -2
  43. package/package.json +1 -1
  44. package/src/index.ts +2 -0
  45. package/src/types/Module.ts +27 -13
  46. package/src/types/Notification.ts +1 -1
  47. package/src/types/NotificationIOS.ts +43 -28
  48. package/src/types/PowerManagerInfo.ts +9 -4
  49. package/src/types/Trigger.ts +45 -1
  50. package/src/validators/validateIOSCategory.ts +4 -2
  51. package/src/validators/validateTrigger.ts +38 -0
  52. package/src/version.ts +1 -1
@@ -66,24 +66,19 @@ export interface NotificationIOS {
66
66
  */
67
67
  threadId?: string;
68
68
  /**
69
- * The argument that is inserted in the IOSCategory.summaryFormat for this notification.
70
- *
71
- * See `IOSCategory.summaryFormat`.
69
+ * Kept for compatibility. No-op on supported iOS versions because notification summary
70
+ * arguments are ignored by iOS 15+.
72
71
  *
73
72
  * @platform ios iOS >= 12
73
+ * @deprecated May be removed in a future major release.
74
74
  */
75
75
  summaryArgument?: string;
76
76
  /**
77
- * A number that indicates how many items in the summary are being represented.
78
- *
79
- * For example if a messages app sends one notification for 3 new messages in a group chat,
80
- * the summaryArgument could be the name of the group chat and the summaryArgumentCount should be 3.
81
- *
82
- * If set, value cannot be 0 or less.
83
- *
84
- * See `IOSCategory.summaryFormat`.
77
+ * Kept for compatibility. No-op on supported iOS versions because notification summary
78
+ * arguments are ignored by iOS 15+.
85
79
  *
86
80
  * @platform ios iOS >= 12
81
+ * @deprecated May be removed in a future major release.
87
82
  */
88
83
  summaryArgumentCount?: number;
89
84
  /**
@@ -97,7 +92,7 @@ export interface NotificationIOS {
97
92
  /**
98
93
  * Optional property to customise how notifications are presented when the app is in the foreground.
99
94
  *
100
- * By default, Notifee will show iOS notifications in heads-up mode if your app is currently in the foreground.
95
+ * By default, Notify Kit will show iOS notifications in heads-up mode if your app is currently in the foreground.
101
96
  */
102
97
  foregroundPresentationOptions?: IOSForegroundPresentationOptions;
103
98
  /**
@@ -127,7 +122,7 @@ export interface IOSCommunicationInfoPerson {
127
122
  /**
128
123
  * An interface to customise how notifications are shown when the app is in the foreground.
129
124
  *
130
- * By default, Notifee will show iOS notifications in heads-up mode if your app is currently in the foreground.
125
+ * By default, Notify Kit will show iOS notifications in heads-up mode if your app is currently in the foreground.
131
126
  *
132
127
  * View the [Foreground Notifications](/react-native/ios/appearance#foreground-notifications) to learn
133
128
  * more.
@@ -157,16 +152,12 @@ export interface IOSForegroundPresentationOptions {
157
152
  /**
158
153
  * Present the notification as a banner
159
154
  *
160
- * For iOS 13 and lower, will be equivalent to setting `alert` to true
161
- *
162
155
  * Defaults to true
163
156
  */
164
157
  banner?: boolean;
165
158
  /**
166
159
  * Show the notification in Notification Center
167
160
  *
168
- * For iOS 13 and lower, will be equivalent to setting `alert` to true
169
- *
170
161
  * Defaults to true
171
162
  */
172
163
  list?: boolean;
@@ -223,11 +214,13 @@ export interface IOSNotificationPermissions {
223
214
  */
224
215
  provisional?: boolean;
225
216
  /**
226
- * Request permission for Siri to automatically read out notification messages over AirPods.
217
+ * Explicit announcement authorization requests are no longer needed because announcement
218
+ * authorization is included by iOS on supported versions. Kept for API compatibility.
227
219
  *
228
220
  * Defaults to false.
229
221
  *
230
222
  * @platform ios iOS >= 13
223
+ * @deprecated May be removed in a future major release.
231
224
  */
232
225
  announcement?: boolean;
233
226
  }
@@ -339,12 +332,26 @@ export interface IOSNotificationSettings {
339
332
  authorizationStatus: AuthorizationStatus;
340
333
  }
341
334
  /**
342
- * TODO docs, used to provide context to Siri
335
+ * Intent identifiers used to provide category context to Siri.
343
336
  *
344
337
  * @platform ios
345
338
  */
346
339
  export declare enum IOSIntentIdentifier {
340
+ /**
341
+ * Start a call intent.
342
+ *
343
+ * Maps to Apple's unified `INStartCallIntentIdentifier`.
344
+ */
345
+ START_CALL = 25,
346
+ /**
347
+ * @deprecated Use `START_CALL` instead. Apple deprecated the separate audio call
348
+ * intent identifier in favor of a unified start call identifier.
349
+ */
347
350
  START_AUDIO_CALL = 0,
351
+ /**
352
+ * @deprecated Use `START_CALL` instead. Apple deprecated the separate video call
353
+ * intent identifier in favor of a unified start call identifier.
354
+ */
348
355
  START_VIDEO_CALL = 1,
349
356
  SEARCH_CALL_HISTORY = 2,
350
357
  SET_AUDIO_SOURCE_IN_CAR = 3,
@@ -396,10 +403,26 @@ export interface IOSNotificationCategory {
396
403
  * Defaults to `false`.
397
404
  */
398
405
  allowInCarPlay?: boolean;
406
+ /**
407
+ * Kept for compatibility. No-op on supported iOS versions because announcement category
408
+ * options are ignored by iOS 15+.
409
+ *
410
+ * Defaults to `false`.
411
+ *
412
+ * @deprecated May be removed in a future major release.
413
+ */
399
414
  allowAnnouncement?: boolean;
400
415
  hiddenPreviewsShowTitle?: boolean;
401
416
  hiddenPreviewsShowSubtitle?: boolean;
402
417
  hiddenPreviewsBodyPlaceholder?: string;
418
+ /**
419
+ * Intent identifiers used by the system to provide category context to Siri.
420
+ *
421
+ * Use `IOSIntentIdentifier.START_CALL` for call categories. Legacy
422
+ * `START_AUDIO_CALL` and `START_VIDEO_CALL` values remain accepted for source
423
+ * compatibility, but both map to Apple's unified start call intent identifier.
424
+ * Categories read back from iOS can return `START_CALL` for call intents.
425
+ */
403
426
  intentIdentifiers?: IOSIntentIdentifier[];
404
427
  actions?: IOSNotificationCategoryAction[];
405
428
  }
@@ -544,11 +567,11 @@ export type IOSNotificationInterruptionLevel = 'active' | 'critical' | 'passive'
544
567
  */
545
568
  export interface IOSNotificationConfig {
546
569
  /**
547
- * Whether Notifee should handle remote (push) notifications on iOS.
570
+ * Whether Notify Kit should handle remote (push) notifications on iOS.
548
571
  *
549
572
  * When set to `false`, remote notifications (e.g. from Firebase Cloud Messaging)
550
573
  * will be forwarded to the original notification delegate instead of being
551
- * processed by Notifee. This allows libraries like React Native Firebase
574
+ * processed by Notify Kit. This allows libraries like React Native Firebase
552
575
  * Messaging to receive tap events via `onNotificationOpenedApp()` and
553
576
  * `getInitialNotification()`.
554
577
  *
@@ -54,13 +54,27 @@ export var IOSNotificationSetting;
54
54
  IOSNotificationSetting[IOSNotificationSetting["ENABLED"] = 1] = "ENABLED";
55
55
  })(IOSNotificationSetting || (IOSNotificationSetting = {}));
56
56
  /**
57
- * TODO docs, used to provide context to Siri
57
+ * Intent identifiers used to provide category context to Siri.
58
58
  *
59
59
  * @platform ios
60
60
  */
61
61
  export var IOSIntentIdentifier;
62
62
  (function (IOSIntentIdentifier) {
63
+ /**
64
+ * Start a call intent.
65
+ *
66
+ * Maps to Apple's unified `INStartCallIntentIdentifier`.
67
+ */
68
+ IOSIntentIdentifier[IOSIntentIdentifier["START_CALL"] = 25] = "START_CALL";
69
+ /**
70
+ * @deprecated Use `START_CALL` instead. Apple deprecated the separate audio call
71
+ * intent identifier in favor of a unified start call identifier.
72
+ */
63
73
  IOSIntentIdentifier[IOSIntentIdentifier["START_AUDIO_CALL"] = 0] = "START_AUDIO_CALL";
74
+ /**
75
+ * @deprecated Use `START_CALL` instead. Apple deprecated the separate video call
76
+ * intent identifier in favor of a unified start call identifier.
77
+ */
64
78
  IOSIntentIdentifier[IOSIntentIdentifier["START_VIDEO_CALL"] = 1] = "START_VIDEO_CALL";
65
79
  IOSIntentIdentifier[IOSIntentIdentifier["SEARCH_CALL_HISTORY"] = 2] = "SEARCH_CALL_HISTORY";
66
80
  IOSIntentIdentifier[IOSIntentIdentifier["SET_AUDIO_SOURCE_IN_CAR"] = 3] = "SET_AUDIO_SOURCE_IN_CAR";
@@ -1 +1 @@
1
- {"version":3,"file":"NotificationIOS.js","sourceRoot":"","sources":["../../src/types/NotificationIOS.ts"],"names":[],"mappings":"AAAA;;GAEG;AAoRH;;;;;;;GAOG;AACH,MAAM,CAAN,IAAY,sBAqBX;AArBD,WAAY,sBAAsB;IAChC;;;OAGG;IACH,sFAAkB,CAAA;IAElB;;OAEG;IACH,qEAAS,CAAA;IAET;;OAEG;IACH,uEAAU,CAAA;IAEV;;OAEG;IACH,+FAAsB,CAAA;AACxB,CAAC,EArBW,sBAAsB,KAAtB,sBAAsB,QAqBjC;AAED;;;;;;;GAOG;AACH,MAAM,CAAN,IAAY,sBAgBX;AAhBD,WAAY,sBAAsB;IAChC;;;OAGG;IACH,sFAAkB,CAAA;IAElB;;OAEG;IACH,2EAAY,CAAA;IAEZ;;OAEG;IACH,yEAAW,CAAA;AACb,CAAC,EAhBW,sBAAsB,KAAtB,sBAAsB,QAgBjC;AAsED;;;;GAIG;AACH,MAAM,CAAN,IAAY,mBAkDX;AAlDD,WAAY,mBAAmB;IAC7B,qFAAoB,CAAA;IAEpB,qFAAoB,CAAA;IAEpB,2FAAuB,CAAA;IAEvB,mGAA2B,CAAA;IAE3B,2GAA+B,CAAA;IAE/B,+GAAiC,CAAA;IAEjC,qGAA4B,CAAA;IAE5B,yFAAsB,CAAA;IAEtB,2FAAuB,CAAA;IAEvB,+EAAiB,CAAA;IAEjB,gFAAkB,CAAA;IAElB,4EAAgB,CAAA;IAEhB,kFAAmB,CAAA;IAEnB,kFAAmB,CAAA;IAEnB,wFAAsB,CAAA;IAEtB,8EAAiB,CAAA;IAEjB,4FAAwB,CAAA;IAExB,gGAA0B,CAAA;IAE1B,8EAAiB,CAAA;IAEjB,oFAAoB,CAAA;IAEpB,wFAAsB,CAAA;IAEtB,8FAAyB,CAAA;IAEzB,wFAAsB,CAAA;IAEtB,8EAAiB,CAAA;IAEjB,oFAAoB,CAAA;AACtB,CAAC,EAlDW,mBAAmB,KAAnB,mBAAmB,QAkD9B"}
1
+ {"version":3,"file":"NotificationIOS.js","sourceRoot":"","sources":["../../src/types/NotificationIOS.ts"],"names":[],"mappings":"AAAA;;GAEG;AA6QH;;;;;;;GAOG;AACH,MAAM,CAAN,IAAY,sBAqBX;AArBD,WAAY,sBAAsB;IAChC;;;OAGG;IACH,sFAAkB,CAAA;IAElB;;OAEG;IACH,qEAAS,CAAA;IAET;;OAEG;IACH,uEAAU,CAAA;IAEV;;OAEG;IACH,+FAAsB,CAAA;AACxB,CAAC,EArBW,sBAAsB,KAAtB,sBAAsB,QAqBjC;AAED;;;;;;;GAOG;AACH,MAAM,CAAN,IAAY,sBAgBX;AAhBD,WAAY,sBAAsB;IAChC;;;OAGG;IACH,sFAAkB,CAAA;IAElB;;OAEG;IACH,2EAAY,CAAA;IAEZ;;OAEG;IACH,yEAAW,CAAA;AACb,CAAC,EAhBW,sBAAsB,KAAtB,sBAAsB,QAgBjC;AAsED;;;;GAIG;AACH,MAAM,CAAN,IAAY,mBAiEX;AAjED,WAAY,mBAAmB;IAC7B;;;;OAIG;IACH,0EAAe,CAAA;IAEf;;;OAGG;IACH,qFAAoB,CAAA;IAEpB;;;OAGG;IACH,qFAAoB,CAAA;IAEpB,2FAAuB,CAAA;IAEvB,mGAA2B,CAAA;IAE3B,2GAA+B,CAAA;IAE/B,+GAAiC,CAAA;IAEjC,qGAA4B,CAAA;IAE5B,yFAAsB,CAAA;IAEtB,2FAAuB,CAAA;IAEvB,+EAAiB,CAAA;IAEjB,gFAAkB,CAAA;IAElB,4EAAgB,CAAA;IAEhB,kFAAmB,CAAA;IAEnB,kFAAmB,CAAA;IAEnB,wFAAsB,CAAA;IAEtB,8EAAiB,CAAA;IAEjB,4FAAwB,CAAA;IAExB,gGAA0B,CAAA;IAE1B,8EAAiB,CAAA;IAEjB,oFAAoB,CAAA;IAEpB,wFAAsB,CAAA;IAEtB,8FAAyB,CAAA;IAEzB,wFAAsB,CAAA;IAEtB,8EAAiB,CAAA;IAEjB,oFAAoB,CAAA;AACtB,CAAC,EAjEW,mBAAmB,KAAnB,mBAAmB,QAiE9B"}
@@ -25,12 +25,17 @@ export interface PowerManagerInfo {
25
25
  */
26
26
  version?: string;
27
27
  /**
28
- * The activity that the user will be navigated to if `openPowerManagerSettings()` is called.
28
+ * The known vendor-settings activity candidate for this device manufacturer.
29
29
  *
30
- * Use this as an indicator of what steps the user may have to perform,
31
- * in-order to prevent your app from being killed.
30
+ * This value is based on Notify Kit's manufacturer mapping. It is not prevalidated
31
+ * with `PackageManager`, and it is not a guarantee that the activity is installed
32
+ * or accessible on the current device firmware.
32
33
  *
33
- * If no activity can be found, value will be null.
34
+ * Use this as a best-effort indicator of what steps the user may have to perform,
35
+ * in-order to prevent your app from being killed. `openPowerManagerSettings()`
36
+ * handles unavailable or rejected candidates safely.
37
+ *
38
+ * If no known activity candidate exists, value will be null.
34
39
  */
35
40
  activity?: string | null;
36
41
  }
@@ -20,12 +20,33 @@ export interface TimestampTrigger {
20
20
  * if set to `RepeatFrequency.HOURLY`, the notification will repeat every hour from the timestamp specified.
21
21
  * if set to `RepeatFrequency.DAILY`, the notification will repeat every day from the timestamp specified.
22
22
  * if set to `RepeatFrequency.WEEKLY`, the notification will repeat every week from the timestamp specified.
23
+ * if set to `RepeatFrequency.MONTHLY`, the notification will repeat every calendar month from the timestamp specified.
24
+ *
25
+ * Yearly recurrence is not supported.
23
26
  */
24
27
  repeatFrequency?: RepeatFrequency;
28
+ /**
29
+ * Multiplier applied to `repeatFrequency` for timestamp triggers.
30
+ *
31
+ * For example, `repeatFrequency: RepeatFrequency.DAILY` with
32
+ * `repeatInterval: 2` repeats every 2 days. `RepeatFrequency.WEEKLY`
33
+ * with `repeatInterval: 2` repeats every 2 weeks, and
34
+ * `RepeatFrequency.MONTHLY` with `repeatInterval: 3` repeats every
35
+ * 3 months.
36
+ *
37
+ * Valid only when `repeatFrequency` is set to a repeating value. It is
38
+ * not valid without `repeatFrequency` or with `RepeatFrequency.NONE`.
39
+ * Must be a positive integer.
40
+ *
41
+ * Defaults to `1` when `repeatFrequency` is set.
42
+ */
43
+ repeatInterval?: number;
25
44
  /**
26
45
  * Choose to schedule your trigger notification with Android's AlarmManager API.
27
46
  *
28
- * By default, trigger notifications are created with Android's WorkManager API.
47
+ * By default, timestamp trigger notifications use AlarmManager on Android. Set
48
+ * this to `false` to opt out to WorkManager. `RepeatFrequency.MONTHLY` is not
49
+ * supported when this is `false`.
29
50
  *
30
51
  * @platform android
31
52
  */
@@ -65,14 +86,36 @@ export interface TimestampTriggerAlarmManager {
65
86
  }
66
87
  /**
67
88
  * An interface representing the different frequencies which can be used with `TimestampTrigger.repeatFrequency`.
89
+ * Supported timestamp repeat frequencies are hourly, daily, weekly, and monthly.
90
+ * Yearly recurrence is not supported.
68
91
  *
69
92
  * View the [Triggers](/react-native/triggers) documentation to learn more.
70
93
  */
71
94
  export declare enum RepeatFrequency {
95
+ /**
96
+ * Do not repeat. `TimestampTrigger.repeatInterval` cannot be used with `NONE`.
97
+ */
72
98
  NONE = -1,
99
+ /**
100
+ * Repeat every calendar hour from the timestamp.
101
+ */
73
102
  HOURLY = 0,
103
+ /**
104
+ * Repeat every calendar day from the timestamp.
105
+ */
74
106
  DAILY = 1,
75
- WEEKLY = 2
107
+ /**
108
+ * Repeat every calendar week from the timestamp.
109
+ */
110
+ WEEKLY = 2,
111
+ /**
112
+ * Repeat every calendar month from the timestamp.
113
+ *
114
+ * Use `TimestampTrigger.repeatInterval` for intervals such as every 3 months.
115
+ * Monthly repeats use native calendar semantics; dates that do not exist in a
116
+ * target month are adjusted by the platform calendar.
117
+ */
118
+ MONTHLY = 3
76
119
  }
77
120
  /**
78
121
  * Interface for building a trigger that repeats at a specified interval.
@@ -13,15 +13,37 @@ export var AlarmType;
13
13
  })(AlarmType || (AlarmType = {}));
14
14
  /**
15
15
  * An interface representing the different frequencies which can be used with `TimestampTrigger.repeatFrequency`.
16
+ * Supported timestamp repeat frequencies are hourly, daily, weekly, and monthly.
17
+ * Yearly recurrence is not supported.
16
18
  *
17
19
  * View the [Triggers](/react-native/triggers) documentation to learn more.
18
20
  */
19
21
  export var RepeatFrequency;
20
22
  (function (RepeatFrequency) {
23
+ /**
24
+ * Do not repeat. `TimestampTrigger.repeatInterval` cannot be used with `NONE`.
25
+ */
21
26
  RepeatFrequency[RepeatFrequency["NONE"] = -1] = "NONE";
27
+ /**
28
+ * Repeat every calendar hour from the timestamp.
29
+ */
22
30
  RepeatFrequency[RepeatFrequency["HOURLY"] = 0] = "HOURLY";
31
+ /**
32
+ * Repeat every calendar day from the timestamp.
33
+ */
23
34
  RepeatFrequency[RepeatFrequency["DAILY"] = 1] = "DAILY";
35
+ /**
36
+ * Repeat every calendar week from the timestamp.
37
+ */
24
38
  RepeatFrequency[RepeatFrequency["WEEKLY"] = 2] = "WEEKLY";
39
+ /**
40
+ * Repeat every calendar month from the timestamp.
41
+ *
42
+ * Use `TimestampTrigger.repeatInterval` for intervals such as every 3 months.
43
+ * Monthly repeats use native calendar semantics; dates that do not exist in a
44
+ * target month are adjusted by the platform calendar.
45
+ */
46
+ RepeatFrequency[RepeatFrequency["MONTHLY"] = 3] = "MONTHLY";
25
47
  })(RepeatFrequency || (RepeatFrequency = {}));
26
48
  /**
27
49
  * An interface representing the different units of time which can be used with `IntervalTrigger.timeUnit`.
@@ -1 +1 @@
1
- {"version":3,"file":"Trigger.js","sourceRoot":"","sources":["../../src/types/Trigger.ts"],"names":[],"mappings":"AAoCA;;;;GAIG;AACH,MAAM,CAAN,IAAY,SAMX;AAND,WAAY,SAAS;IACnB,uCAAG,CAAA;IACH,iFAAwB,CAAA;IACxB,mDAAS,CAAA;IACT,6FAA8B,CAAA;IAC9B,+DAAe,CAAA;AACjB,CAAC,EANW,SAAS,KAAT,SAAS,QAMpB;AAwBD;;;;GAIG;AACH,MAAM,CAAN,IAAY,eAKX;AALD,WAAY,eAAe;IACzB,sDAAS,CAAA;IACT,yDAAU,CAAA;IACV,uDAAS,CAAA;IACT,yDAAU,CAAA;AACZ,CAAC,EALW,eAAe,KAAf,eAAe,QAK1B;AAgCD;;;;GAIG;AACH,MAAM,CAAN,IAAY,QAKX;AALD,WAAY,QAAQ;IAClB,+BAAmB,CAAA;IACnB,+BAAmB,CAAA;IACnB,2BAAe,CAAA;IACf,yBAAa,CAAA;AACf,CAAC,EALW,QAAQ,KAAR,QAAQ,QAKnB;AAED;;;;GAIG;AACH,MAAM,CAAN,IAAY,WAGX;AAHD,WAAY,WAAW;IACrB,uDAAa,CAAA;IACb,qDAAY,CAAA;AACd,CAAC,EAHW,WAAW,KAAX,WAAW,QAGtB"}
1
+ {"version":3,"file":"Trigger.js","sourceRoot":"","sources":["../../src/types/Trigger.ts"],"names":[],"mappings":"AA0DA;;;;GAIG;AACH,MAAM,CAAN,IAAY,SAMX;AAND,WAAY,SAAS;IACnB,uCAAG,CAAA;IACH,iFAAwB,CAAA;IACxB,mDAAS,CAAA;IACT,6FAA8B,CAAA;IAC9B,+DAAe,CAAA;AACjB,CAAC,EANW,SAAS,KAAT,SAAS,QAMpB;AAwBD;;;;;;GAMG;AACH,MAAM,CAAN,IAAY,eAyBX;AAzBD,WAAY,eAAe;IACzB;;OAEG;IACH,sDAAS,CAAA;IACT;;OAEG;IACH,yDAAU,CAAA;IACV;;OAEG;IACH,uDAAS,CAAA;IACT;;OAEG;IACH,yDAAU,CAAA;IACV;;;;;;OAMG;IACH,2DAAW,CAAA;AACb,CAAC,EAzBW,eAAe,KAAf,eAAe,QAyB1B;AAgCD;;;;GAIG;AACH,MAAM,CAAN,IAAY,QAKX;AALD,WAAY,QAAQ;IAClB,+BAAmB,CAAA;IACnB,+BAAmB,CAAA;IACnB,2BAAe,CAAA;IACf,yBAAa,CAAA;AACf,CAAC,EALW,QAAQ,KAAR,QAAQ,QAKnB;AAED;;;;GAIG;AACH,MAAM,CAAN,IAAY,WAGX;AAHD,WAAY,WAAW;IACrB,uDAAa,CAAA;IACb,qDAAY,CAAA;AACd,CAAC,EAHW,WAAW,KAAX,WAAW,QAGtB"}
@@ -86,10 +86,10 @@ export default function validateIOSCategory(category) {
86
86
  if (!isArray(category.intentIdentifiers)) {
87
87
  throw new Error("'category.intentIdentifiers' expected an array value.");
88
88
  }
89
- const identifiers = Object.values(IOSIntentIdentifier);
89
+ const identifiers = Object.values(IOSIntentIdentifier).filter((identifier) => typeof identifier === 'number');
90
90
  for (let i = 0; i < category.intentIdentifiers.length; i++) {
91
91
  const intentIdentifier = category.intentIdentifiers[i];
92
- if (!identifiers.includes(intentIdentifier)) {
92
+ if (typeof intentIdentifier !== 'number' || !identifiers.includes(intentIdentifier)) {
93
93
  throw new Error(`'category.intentIdentifiers' unexpected intentIdentifier "${intentIdentifier}" at array index "${i}".`);
94
94
  }
95
95
  }
@@ -1 +1 @@
1
- {"version":3,"file":"validateIOSCategory.js","sourceRoot":"","sources":["../../src/validators/validateIOSCategory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validateIOSCategory.js","sourceRoot":"","sources":["../../src/validators/validateIOSCategory.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  /*
2
2
  * Copyright (c) 2016-present Invertase Limited
3
3
  */
4
- import { objectHasProperty, isNumber, isObject, isValidEnum, isUndefined, isBoolean, } from '../utils';
4
+ import { objectHasProperty, isNumber, isObject, isValidEnum, isUndefined, isBoolean, isAndroid, } from '../utils';
5
5
  import { TimeUnit, RepeatFrequency, TriggerType, AlarmType, } from '../types/Trigger';
6
6
  const MINIMUM_INTERVAL = 15;
7
7
  function isMinimumInterval(interval, timeUnit) {
@@ -65,6 +65,26 @@ function validateTimestampTrigger(trigger) {
65
65
  }
66
66
  out.repeatFrequency = trigger.repeatFrequency;
67
67
  }
68
+ const hasRepeatFrequency = objectHasProperty(trigger, 'repeatFrequency') && !isUndefined(trigger.repeatFrequency);
69
+ const isRepeating = hasRepeatFrequency && trigger.repeatFrequency !== RepeatFrequency.NONE;
70
+ if (objectHasProperty(trigger, 'repeatInterval') && !isUndefined(trigger.repeatInterval)) {
71
+ if (!hasRepeatFrequency) {
72
+ throw new Error("'trigger.repeatInterval' requires a repeatFrequency value.");
73
+ }
74
+ if (trigger.repeatFrequency === RepeatFrequency.NONE) {
75
+ throw new Error("'trigger.repeatInterval' requires a repeating repeatFrequency value.");
76
+ }
77
+ if (!isNumber(trigger.repeatInterval) ||
78
+ !Number.isFinite(trigger.repeatInterval) ||
79
+ !Number.isInteger(trigger.repeatInterval) ||
80
+ trigger.repeatInterval <= 0) {
81
+ throw new Error("'trigger.repeatInterval' expected a positive integer value.");
82
+ }
83
+ out.repeatInterval = trigger.repeatInterval;
84
+ }
85
+ else if (isRepeating) {
86
+ out.repeatInterval = 1;
87
+ }
68
88
  if (objectHasProperty(trigger, 'alarmManager') && !isUndefined(trigger.alarmManager)) {
69
89
  if (isBoolean(trigger.alarmManager)) {
70
90
  if (trigger.alarmManager) {
@@ -85,6 +105,11 @@ function validateTimestampTrigger(trigger) {
85
105
  // Default to AlarmManager for reliable delivery when app is killed
86
106
  out.alarmManager = validateTimestampAlarmManager();
87
107
  }
108
+ if (isAndroid &&
109
+ trigger.alarmManager === false &&
110
+ out.repeatFrequency === RepeatFrequency.MONTHLY) {
111
+ throw new Error("'trigger.repeatFrequency' MONTHLY is not supported when 'trigger.alarmManager' is false.");
112
+ }
88
113
  return out;
89
114
  }
90
115
  function validateTimestampAlarmManager(alarmManager) {
@@ -1 +1 @@
1
- {"version":3,"file":"validateTrigger.js","sourceRoot":"","sources":["../../src/validators/validateTrigger.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validateTrigger.js","sourceRoot":"","sources":["../../src/validators/validateTrigger.ts"],"names":[],"mappings":"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"}
package/dist/version.d.ts CHANGED
@@ -1 +1 @@
1
- export declare const version = "10.1.0";
1
+ export declare const version = "10.2.1";
package/dist/version.js CHANGED
@@ -1,3 +1,3 @@
1
1
  // Generated by genversion.
2
- export const version = '10.1.0';
2
+ export const version = '10.2.1';
3
3
  //# sourceMappingURL=version.js.map
@@ -18,6 +18,11 @@
18
18
  #import <UIKit/UIKit.h>
19
19
  #import "NotifeeCore+NSNotificationCenter.h"
20
20
  #import "NotifeeCore+UNUserNotificationCenter.h"
21
+ #import "NotifeeCore.h"
22
+
23
+ @interface NotifeeCore (RollingTimestampTopUp)
24
+ + (void)topUpRollingTimestampTriggersWithCompletion:(void (^)(NSError *error))completion;
25
+ @end
21
26
 
22
27
  @implementation NotifeeCoreNSNotificationCenter
23
28
 
@@ -42,6 +47,11 @@
42
47
  selector:@selector(application_onDidFinishLaunchingNotification:)
43
48
  name:UIApplicationDidFinishLaunchingNotification
44
49
  object:nil];
50
+ [[NSNotificationCenter defaultCenter]
51
+ addObserver:strongSelf
52
+ selector:@selector(application_didBecomeActiveNotification:)
53
+ name:UIApplicationDidBecomeActiveNotification
54
+ object:nil];
45
55
  [[NSNotificationCenter defaultCenter]
46
56
  addObserver:strongSelf
47
57
  selector:@selector(messaging_didReceiveRemoteNotification:)
@@ -58,21 +68,21 @@
58
68
  #pragma mark Application Notifications
59
69
 
60
70
  - (void)application_onDidFinishLaunchingNotification:(nonnull NSNotification *)notification {
61
- #pragma clang diagnostic push
62
- #pragma clang diagnostic ignored "-Wdeprecated-declarations"
63
- // UIApplicationLaunchOptionsLocalNotificationKey is deprecated since iOS 10.
64
- // On modern iOS, initial notification is delivered via didReceiveNotificationResponse:
65
- // which sets _initialNotification and _notificationOpenedAppID directly.
66
- // This legacy path only works for UILocalNotification (pre-iOS 10).
67
- UILocalNotification *launchNotification =
68
- (UILocalNotification *)notification.userInfo[UIApplicationLaunchOptionsLocalNotificationKey];
69
- [[NotifeeCoreUNUserNotificationCenter instance]
70
- onDidFinishLaunchingNotification:launchNotification.userInfo];
71
+ [[NotifeeCoreUNUserNotificationCenter instance] markInitialNotificationGathered];
71
72
  [[NotifeeCoreUNUserNotificationCenter instance] getInitialNotification];
72
73
 
73
74
  [[NotifeeCoreUNUserNotificationCenter instance] observe];
74
75
  }
75
76
 
77
+ - (void)application_didBecomeActiveNotification:(nonnull NSNotification *)notification {
78
+ [NotifeeCore topUpRollingTimestampTriggersWithCompletion:^(NSError *error) {
79
+ if (error != nil) {
80
+ NSLog(@"NotifeeCore: Failed to top up rolling timestamp triggers after app became active: %@",
81
+ error);
82
+ }
83
+ }];
84
+ }
85
+
76
86
  - (void)messaging_didReceiveRemoteNotification:(nonnull NSNotification *)notification {
77
87
  // Intentionally empty: remote notifications are handled via
78
88
  // UNUserNotificationCenterDelegate (willPresentNotification:,
@@ -30,7 +30,6 @@ NS_ASSUME_NONNULL_BEGIN
30
30
  @property(strong, nullable) NSDictionary *initialNotification;
31
31
  @property bool initialNotificationGathered;
32
32
  @property(nullable) notifeeMethodNSDictionaryBlock initialNotificationBlock;
33
- @property NSString *initialNoticationID;
34
33
  @property NSString *notificationOpenedAppID;
35
34
 
36
35
  + (_Nonnull instancetype)instance;
@@ -39,7 +38,7 @@ NS_ASSUME_NONNULL_BEGIN
39
38
 
40
39
  - (nullable NSDictionary *)getInitialNotification;
41
40
 
42
- - (void)onDidFinishLaunchingNotification:(NSDictionary *)notification;
41
+ - (void)markInitialNotificationGathered;
43
42
 
44
43
  @end
45
44