@ammarahmed/notifee-react-native 7.3.0

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 (215) hide show
  1. package/.gitattributes +3 -0
  2. package/LICENSE +44 -0
  3. package/README.md +131 -0
  4. package/RNNotifee.podspec +39 -0
  5. package/RNNotifeeCore.podspec +33 -0
  6. package/android/build.gradle +116 -0
  7. package/android/gradle.properties +1 -0
  8. package/android/libs/app/notifee/core/202108261756/core-202108261756.aar +0 -0
  9. package/android/libs/app/notifee/core/202108261756/core-202108261756.aar.md5 +1 -0
  10. package/android/libs/app/notifee/core/202108261756/core-202108261756.aar.sha1 +1 -0
  11. package/android/libs/app/notifee/core/202108261756/core-202108261756.aar.sha256 +1 -0
  12. package/android/libs/app/notifee/core/202108261756/core-202108261756.aar.sha512 +1 -0
  13. package/android/libs/app/notifee/core/202108261756/core-202108261756.pom +9 -0
  14. package/android/libs/app/notifee/core/202108261756/core-202108261756.pom.md5 +1 -0
  15. package/android/libs/app/notifee/core/202108261756/core-202108261756.pom.sha1 +1 -0
  16. package/android/libs/app/notifee/core/202108261756/core-202108261756.pom.sha256 +1 -0
  17. package/android/libs/app/notifee/core/202108261756/core-202108261756.pom.sha512 +1 -0
  18. package/android/libs/app/notifee/core/maven-metadata.xml +13 -0
  19. package/android/libs/app/notifee/core/maven-metadata.xml.md5 +1 -0
  20. package/android/libs/app/notifee/core/maven-metadata.xml.sha1 +1 -0
  21. package/android/libs/app/notifee/core/maven-metadata.xml.sha256 +1 -0
  22. package/android/libs/app/notifee/core/maven-metadata.xml.sha512 +1 -0
  23. package/android/lint.xml +5 -0
  24. package/android/proguard-rules.pro +74 -0
  25. package/android/settings.gradle +1 -0
  26. package/android/src/main/AndroidManifest.xml +12 -0
  27. package/android/src/main/java/io/invertase/notifee/NotifeeApiModule.java +349 -0
  28. package/android/src/main/java/io/invertase/notifee/NotifeeEventSubscriber.java +118 -0
  29. package/android/src/main/java/io/invertase/notifee/NotifeeInitProvider.java +55 -0
  30. package/android/src/main/java/io/invertase/notifee/NotifeePackage.java +30 -0
  31. package/android/src/main/java/io/invertase/notifee/NotifeeReactUtils.java +244 -0
  32. package/app.plugin.js +1 -0
  33. package/dist/NotifeeApiModule.d.ts +53 -0
  34. package/dist/NotifeeApiModule.js +607 -0
  35. package/dist/NotifeeApiModule.js.map +1 -0
  36. package/dist/NotifeeJSEventEmitter.d.ts +3 -0
  37. package/dist/NotifeeJSEventEmitter.js +14 -0
  38. package/dist/NotifeeJSEventEmitter.js.map +1 -0
  39. package/dist/NotifeeNativeError.d.ts +15 -0
  40. package/dist/NotifeeNativeError.js +61 -0
  41. package/dist/NotifeeNativeError.js.map +1 -0
  42. package/dist/NotifeeNativeModule.d.ts +14 -0
  43. package/dist/NotifeeNativeModule.js +43 -0
  44. package/dist/NotifeeNativeModule.js.map +1 -0
  45. package/dist/NotifeeNativeModule.web.d.ts +12 -0
  46. package/dist/NotifeeNativeModule.web.js +19 -0
  47. package/dist/NotifeeNativeModule.web.js.map +1 -0
  48. package/dist/index.d.ts +8 -0
  49. package/dist/index.js +43 -0
  50. package/dist/index.js.map +1 -0
  51. package/dist/types/Library.d.ts +21 -0
  52. package/dist/types/Library.js +6 -0
  53. package/dist/types/Library.js.map +1 -0
  54. package/dist/types/Module.d.ts +572 -0
  55. package/dist/types/Module.js +6 -0
  56. package/dist/types/Module.js.map +1 -0
  57. package/dist/types/Notification.d.ts +450 -0
  58. package/dist/types/Notification.js +105 -0
  59. package/dist/types/Notification.js.map +1 -0
  60. package/dist/types/NotificationAndroid.d.ts +1276 -0
  61. package/dist/types/NotificationAndroid.js +380 -0
  62. package/dist/types/NotificationAndroid.js.map +1 -0
  63. package/dist/types/NotificationIOS.d.ts +537 -0
  64. package/dist/types/NotificationIOS.js +92 -0
  65. package/dist/types/NotificationIOS.js.map +1 -0
  66. package/dist/types/NotificationWeb.d.ts +5 -0
  67. package/dist/types/NotificationWeb.js +3 -0
  68. package/dist/types/NotificationWeb.js.map +1 -0
  69. package/dist/types/PowerManagerInfo.d.ts +36 -0
  70. package/dist/types/PowerManagerInfo.js +6 -0
  71. package/dist/types/PowerManagerInfo.js.map +1 -0
  72. package/dist/types/Trigger.d.ts +108 -0
  73. package/dist/types/Trigger.js +39 -0
  74. package/dist/types/Trigger.js.map +1 -0
  75. package/dist/utils/id.d.ts +1 -0
  76. package/dist/utils/id.js +16 -0
  77. package/dist/utils/id.js.map +1 -0
  78. package/dist/utils/index.d.ts +16 -0
  79. package/dist/utils/index.js +52 -0
  80. package/dist/utils/index.js.map +1 -0
  81. package/dist/utils/validate.d.ts +15 -0
  82. package/dist/utils/validate.js +93 -0
  83. package/dist/utils/validate.js.map +1 -0
  84. package/dist/validators/iosCommunicationInfo/validateIOSCommunicationInfo.d.ts +2 -0
  85. package/dist/validators/iosCommunicationInfo/validateIOSCommunicationInfo.js +39 -0
  86. package/dist/validators/iosCommunicationInfo/validateIOSCommunicationInfo.js.map +1 -0
  87. package/dist/validators/iosCommunicationInfo/validateIOSCommunicationInfoPerson.d.ts +2 -0
  88. package/dist/validators/iosCommunicationInfo/validateIOSCommunicationInfoPerson.js +27 -0
  89. package/dist/validators/iosCommunicationInfo/validateIOSCommunicationInfoPerson.js.map +1 -0
  90. package/dist/validators/validate.d.ts +25 -0
  91. package/dist/validators/validate.js +75 -0
  92. package/dist/validators/validate.js.map +1 -0
  93. package/dist/validators/validateAndroidAction.d.ts +2 -0
  94. package/dist/validators/validateAndroidAction.js +52 -0
  95. package/dist/validators/validateAndroidAction.js.map +1 -0
  96. package/dist/validators/validateAndroidChannel.d.ts +2 -0
  97. package/dist/validators/validateAndroidChannel.js +155 -0
  98. package/dist/validators/validateAndroidChannel.js.map +1 -0
  99. package/dist/validators/validateAndroidChannelGroup.d.ts +2 -0
  100. package/dist/validators/validateAndroidChannelGroup.js +42 -0
  101. package/dist/validators/validateAndroidChannelGroup.js.map +1 -0
  102. package/dist/validators/validateAndroidFullScreenAction.d.ts +2 -0
  103. package/dist/validators/validateAndroidFullScreenAction.js +50 -0
  104. package/dist/validators/validateAndroidFullScreenAction.js.map +1 -0
  105. package/dist/validators/validateAndroidInput.d.ts +2 -0
  106. package/dist/validators/validateAndroidInput.js +54 -0
  107. package/dist/validators/validateAndroidInput.js.map +1 -0
  108. package/dist/validators/validateAndroidNotification.d.ts +2 -0
  109. package/dist/validators/validateAndroidNotification.js +529 -0
  110. package/dist/validators/validateAndroidNotification.js.map +1 -0
  111. package/dist/validators/validateAndroidPressAction.d.ts +2 -0
  112. package/dist/validators/validateAndroidPressAction.js +50 -0
  113. package/dist/validators/validateAndroidPressAction.js.map +1 -0
  114. package/dist/validators/validateAndroidStyle.d.ts +22 -0
  115. package/dist/validators/validateAndroidStyle.js +231 -0
  116. package/dist/validators/validateAndroidStyle.js.map +1 -0
  117. package/dist/validators/validateIOSAttachment.d.ts +6 -0
  118. package/dist/validators/validateIOSAttachment.js +102 -0
  119. package/dist/validators/validateIOSAttachment.js.map +1 -0
  120. package/dist/validators/validateIOSCategory.d.ts +2 -0
  121. package/dist/validators/validateIOSCategory.js +124 -0
  122. package/dist/validators/validateIOSCategory.js.map +1 -0
  123. package/dist/validators/validateIOSCategoryAction.d.ts +2 -0
  124. package/dist/validators/validateIOSCategoryAction.js +59 -0
  125. package/dist/validators/validateIOSCategoryAction.js.map +1 -0
  126. package/dist/validators/validateIOSInput.d.ts +2 -0
  127. package/dist/validators/validateIOSInput.js +32 -0
  128. package/dist/validators/validateIOSInput.js.map +1 -0
  129. package/dist/validators/validateIOSNotification.d.ts +2 -0
  130. package/dist/validators/validateIOSNotification.js +211 -0
  131. package/dist/validators/validateIOSNotification.js.map +1 -0
  132. package/dist/validators/validateIOSPermissions.d.ts +2 -0
  133. package/dist/validators/validateIOSPermissions.js +62 -0
  134. package/dist/validators/validateIOSPermissions.js.map +1 -0
  135. package/dist/validators/validateNotification.d.ts +11 -0
  136. package/dist/validators/validateNotification.js +129 -0
  137. package/dist/validators/validateNotification.js.map +1 -0
  138. package/dist/validators/validateTrigger.d.ts +2 -0
  139. package/dist/validators/validateTrigger.js +104 -0
  140. package/dist/validators/validateTrigger.js.map +1 -0
  141. package/dist/version.d.ts +1 -0
  142. package/dist/version.js.map +1 -0
  143. package/ios/NotifeeCore/Info.plist +22 -0
  144. package/ios/NotifeeCore/NotifeeCore+NSNotificationCenter.h +28 -0
  145. package/ios/NotifeeCore/NotifeeCore+NSNotificationCenter.m +72 -0
  146. package/ios/NotifeeCore/NotifeeCore+NSURLSession.h +25 -0
  147. package/ios/NotifeeCore/NotifeeCore+NSURLSession.m +55 -0
  148. package/ios/NotifeeCore/NotifeeCore+UNUserNotificationCenter.h +37 -0
  149. package/ios/NotifeeCore/NotifeeCore+UNUserNotificationCenter.m +242 -0
  150. package/ios/NotifeeCore/NotifeeCore.h +118 -0
  151. package/ios/NotifeeCore/NotifeeCore.m +784 -0
  152. package/ios/NotifeeCore/NotifeeCoreDelegateHolder.h +34 -0
  153. package/ios/NotifeeCore/NotifeeCoreDelegateHolder.m +70 -0
  154. package/ios/NotifeeCore/NotifeeCoreDownloadDelegate.h +39 -0
  155. package/ios/NotifeeCore/NotifeeCoreDownloadDelegate.m +68 -0
  156. package/ios/NotifeeCore/NotifeeCoreExtensionHelper.h +38 -0
  157. package/ios/NotifeeCore/NotifeeCoreExtensionHelper.m +224 -0
  158. package/ios/NotifeeCore/NotifeeCoreUtil.h +82 -0
  159. package/ios/NotifeeCore/NotifeeCoreUtil.m +793 -0
  160. package/ios/RNNotifee/NotifeeApiModule.h +25 -0
  161. package/ios/RNNotifee/NotifeeApiModule.m +371 -0
  162. package/ios/RNNotifee/NotifeeExtensionHelper.h +37 -0
  163. package/ios/RNNotifee/NotifeeExtensionHelper.m +37 -0
  164. package/ios/RNNotifee.xcodeproj/project.pbxproj +318 -0
  165. package/jest-mock.js +158 -0
  166. package/package.json +59 -0
  167. package/plugin/build/index.d.ts +3 -0
  168. package/plugin/build/index.js +12 -0
  169. package/plugin/build/index.js.map +1 -0
  170. package/plugin/build/withNotifeeProjectGradlePlugin.d.ts +5 -0
  171. package/plugin/build/withNotifeeProjectGradlePlugin.js +24 -0
  172. package/plugin/build/withNotifeeProjectGradlePlugin.js.map +1 -0
  173. package/plugin/src/index.ts +9 -0
  174. package/plugin/src/withNotifeeProjectGradlePlugin.ts +27 -0
  175. package/plugin/tsconfig.json +9 -0
  176. package/react-native.config.js +11 -0
  177. package/refresh-example.sh +71 -0
  178. package/src/NotifeeApiModule.ts +825 -0
  179. package/src/NotifeeJSEventEmitter.ts +11 -0
  180. package/src/NotifeeNativeError.ts +70 -0
  181. package/src/NotifeeNativeModule.ts +55 -0
  182. package/src/NotifeeNativeModule.web.ts +25 -0
  183. package/src/index.ts +33 -0
  184. package/src/types/Library.ts +28 -0
  185. package/src/types/Module.ts +625 -0
  186. package/src/types/Notification.ts +505 -0
  187. package/src/types/NotificationAndroid.ts +1443 -0
  188. package/src/types/NotificationIOS.ts +681 -0
  189. package/src/types/NotificationWeb.ts +5 -0
  190. package/src/types/PowerManagerInfo.ts +43 -0
  191. package/src/types/Trigger.ts +118 -0
  192. package/src/utils/id.ts +13 -0
  193. package/src/utils/index.ts +47 -0
  194. package/src/utils/validate.ts +92 -0
  195. package/src/validators/iosCommunicationInfo/validateIOSCommunicationInfo.ts +45 -0
  196. package/src/validators/iosCommunicationInfo/validateIOSCommunicationInfoPerson.ts +33 -0
  197. package/src/validators/validate.ts +85 -0
  198. package/src/validators/validateAndroidAction.ts +54 -0
  199. package/src/validators/validateAndroidChannel.ts +188 -0
  200. package/src/validators/validateAndroidChannelGroup.ts +49 -0
  201. package/src/validators/validateAndroidFullScreenAction.ts +65 -0
  202. package/src/validators/validateAndroidInput.ts +67 -0
  203. package/src/validators/validateAndroidNotification.ts +704 -0
  204. package/src/validators/validateAndroidPressAction.ts +65 -0
  205. package/src/validators/validateAndroidStyle.ts +315 -0
  206. package/src/validators/validateIOSAttachment.ts +136 -0
  207. package/src/validators/validateIOSCategory.ts +150 -0
  208. package/src/validators/validateIOSCategoryAction.ts +65 -0
  209. package/src/validators/validateIOSInput.ts +38 -0
  210. package/src/validators/validateIOSNotification.ts +296 -0
  211. package/src/validators/validateIOSPermissions.ts +78 -0
  212. package/src/validators/validateNotification.ts +156 -0
  213. package/src/validators/validateTrigger.ts +134 -0
  214. package/src/version.ts +2 -0
  215. package/tsconfig.json +23 -0
@@ -0,0 +1,11 @@
1
+ /*
2
+ * Copyright (c) 2016-present Invertase Limited
3
+ */
4
+
5
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
6
+ // @ts-ignore
7
+ import EventEmitter from 'react-native/Libraries/vendor/emitter/EventEmitter';
8
+ import { EventEmitter as EventEmitterInterface } from 'react-native';
9
+
10
+ const emitter: EventEmitterInterface = new EventEmitter();
11
+ export default emitter;
@@ -0,0 +1,70 @@
1
+ /*
2
+ * Copyright (c) 2016-present Invertase Limited
3
+ */
4
+
5
+ import { NativeError } from './types/Library';
6
+
7
+ export default class NotifeeNativeError extends Error implements NativeError {
8
+ public readonly code: string;
9
+ public readonly nativeErrorCode: string;
10
+ public readonly nativeErrorMessage: string;
11
+ private readonly jsStack: string;
12
+
13
+ // TODO native error type
14
+ // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
15
+ constructor(nativeError: any, jsStack = '') {
16
+ super();
17
+ const { userInfo } = nativeError;
18
+
19
+ this.code = `${userInfo.code || 'unknown'}`;
20
+ Object.defineProperty(this, 'code', {
21
+ enumerable: false,
22
+ value: `${userInfo.code || 'unknown'}`,
23
+ });
24
+
25
+ this.jsStack = jsStack;
26
+ Object.defineProperty(this, 'jsStack', {
27
+ enumerable: false,
28
+ value: jsStack,
29
+ });
30
+
31
+ Object.defineProperty(this, 'message', {
32
+ enumerable: false,
33
+ value: `[${this.code}] ${userInfo.message || nativeError.message}`,
34
+ });
35
+
36
+ Object.defineProperty(this, 'userInfo', {
37
+ enumerable: false,
38
+ value: userInfo,
39
+ });
40
+
41
+ this.nativeErrorCode = userInfo.nativeErrorCode || null;
42
+ Object.defineProperty(this, 'nativeErrorCode', {
43
+ enumerable: false,
44
+ value: userInfo.nativeErrorCode || null,
45
+ });
46
+
47
+ this.nativeErrorMessage = userInfo.nativeErrorMessage || null;
48
+ Object.defineProperty(this, 'nativeErrorMessage', {
49
+ enumerable: false,
50
+ value: userInfo.nativeErrorMessage || null,
51
+ });
52
+
53
+ this.stack = this.getStackWithMessage(`NativeError: ${this.message}`);
54
+ }
55
+
56
+ // todo errorEvent type
57
+ // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
58
+ static fromEvent(errorEvent: any, stack?: string): NotifeeNativeError {
59
+ return new NotifeeNativeError({ userInfo: errorEvent }, stack || new Error().stack);
60
+ }
61
+
62
+ /**
63
+ * Build a stack trace that includes JS stack prior to calling the native method.
64
+ *
65
+ * @returns {string}
66
+ */
67
+ getStackWithMessage(message: string): string {
68
+ return [message, ...this.jsStack.split('\n').slice(2, 13)].join('\n');
69
+ }
70
+ }
@@ -0,0 +1,55 @@
1
+ /*
2
+ * Copyright (c) 2016-present Invertase Limited
3
+ */
4
+
5
+ import NotifeeJSEventEmitter from './NotifeeJSEventEmitter';
6
+ import {
7
+ EventEmitter,
8
+ EventSubscriptionVendor,
9
+ NativeEventEmitter,
10
+ NativeModules,
11
+ NativeModulesStatic,
12
+ } from 'react-native';
13
+
14
+ export interface NativeModuleConfig {
15
+ version: string;
16
+ nativeModuleName: string;
17
+ nativeEvents: string[];
18
+ }
19
+
20
+ export default class NotifeeNativeModule {
21
+ private readonly _moduleConfig: NativeModuleConfig;
22
+ private _nativeModule: NativeModulesStatic | null;
23
+ private _nativeEmitter: NativeEventEmitter;
24
+
25
+ public constructor(config: NativeModuleConfig) {
26
+ this._nativeModule = null;
27
+ this._moduleConfig = Object.assign({}, config);
28
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
29
+ // @ts-ignore - change here needs resolution https://github.com/DefinitelyTyped/DefinitelyTyped/pull/49560/files
30
+ this._nativeEmitter = new NativeEventEmitter(this.native as EventSubscriptionVendor);
31
+ for (let i = 0; i < config.nativeEvents.length; i++) {
32
+ const eventName = config.nativeEvents[i];
33
+ this._nativeEmitter.addListener(eventName, (payload: any) => {
34
+ this.emitter.emit(eventName, payload);
35
+ });
36
+ }
37
+ }
38
+
39
+ public get emitter(): EventEmitter {
40
+ return NotifeeJSEventEmitter;
41
+ }
42
+
43
+ public get native(): NativeModulesStatic {
44
+ if (this._nativeModule) {
45
+ return this._nativeModule;
46
+ }
47
+
48
+ this._nativeModule = NativeModules[this._moduleConfig.nativeModuleName];
49
+ if (this._nativeModule == null) {
50
+ throw new Error('Notifee native module not found.');
51
+ }
52
+
53
+ return this._nativeModule;
54
+ }
55
+ }
@@ -0,0 +1,25 @@
1
+ import { EventEmitter, NativeEventEmitter, NativeModulesStatic } from 'react-native';
2
+
3
+ export interface NativeModuleConfig {
4
+ version: string;
5
+ nativeModuleName: string;
6
+ nativeEvents: string[];
7
+ }
8
+
9
+ export default class NotifeeNativeModule {
10
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
11
+ // @ts-ignore unused value
12
+ private readonly _moduleConfig: NativeModuleConfig;
13
+
14
+ public constructor(config: NativeModuleConfig) {
15
+ this._moduleConfig = Object.assign({}, config);
16
+ }
17
+
18
+ public get emitter(): EventEmitter {
19
+ return new NativeEventEmitter();
20
+ }
21
+
22
+ public get native(): NativeModulesStatic {
23
+ return {};
24
+ }
25
+ }
package/src/index.ts ADDED
@@ -0,0 +1,33 @@
1
+ /*
2
+ * Copyright (c) 2016-present Invertase Limited
3
+ */
4
+
5
+ import NotifeeApiModule from './NotifeeApiModule';
6
+ import { ModuleStatics, ModuleWithStatics } from './types/Module';
7
+ import { version as SDK_VERSION } from './version';
8
+ import {
9
+ isIOS,
10
+ kReactNativeNotifeeNotificationBackgroundEvent,
11
+ kReactNativeNotifeeNotificationEvent,
12
+ } from './utils';
13
+
14
+ const apiModule = new NotifeeApiModule({
15
+ version: SDK_VERSION,
16
+ nativeModuleName: 'NotifeeApiModule',
17
+ nativeEvents: isIOS
18
+ ? [kReactNativeNotifeeNotificationEvent, kReactNativeNotifeeNotificationBackgroundEvent]
19
+ : [kReactNativeNotifeeNotificationEvent],
20
+ });
21
+
22
+ const statics: ModuleStatics = {
23
+ SDK_VERSION,
24
+ };
25
+
26
+ const defaultExports: ModuleWithStatics = Object.assign(apiModule, statics);
27
+ export default defaultExports;
28
+
29
+ export * from './types/Library';
30
+ export * from './types/Notification';
31
+ export * from './types/Trigger';
32
+ export * from './types/NotificationIOS';
33
+ export * from './types/NotificationAndroid';
@@ -0,0 +1,28 @@
1
+ /*
2
+ * Copyright (c) 2016-present Invertase Limited
3
+ */
4
+
5
+ /**
6
+ * An Error that has occurred in native Android or iOS code converted into a JavaScript Error.
7
+ */
8
+ export interface NativeError extends Error {
9
+ /**
10
+ * Error code, e.g. `invalid-parameter`
11
+ */
12
+ readonly code: string;
13
+
14
+ /**
15
+ * Error message
16
+ */
17
+ readonly message: string;
18
+
19
+ /**
20
+ * The native returned error code, different per platform
21
+ */
22
+ readonly nativeErrorCode: string | number;
23
+
24
+ /**
25
+ * The native returned error message, different per platform
26
+ */
27
+ readonly nativeErrorMessage: string;
28
+ }