@trycourier/courier-react-native 1.0.9 → 2.0.0-beta1

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 (89) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +16 -412
  3. package/android/build.gradle +48 -83
  4. package/android/src/main/AndroidManifest.xml +0 -1
  5. package/android/src/main/AndroidManifestNew.xml +2 -0
  6. package/android/src/main/java/com/courierreactnative/CourierReactNativeActivity.kt +10 -10
  7. package/android/src/main/java/com/courierreactnative/CourierReactNativeModule.kt +146 -137
  8. package/android/src/main/java/com/courierreactnative/CourierReactNativePackage.kt +1 -3
  9. package/android/src/main/java/com/courierreactnative/CourierReactNativeViewManager.kt +43 -0
  10. package/courier-react-native.podspec +12 -4
  11. package/ios/CourierReactNative-Bridging-Header.h +0 -1
  12. package/ios/CourierReactNative.xcodeproj/project.pbxproj +4 -4
  13. package/ios/CourierReactNative.xcodeproj/project.xcworkspace/contents.xcworkspacedata +4 -0
  14. package/ios/CourierReactNativeModule.m +53 -0
  15. package/ios/{CourierReactNative.swift → CourierReactNativeModule.swift} +178 -45
  16. package/ios/CourierReactNativeViewManager.m +15 -0
  17. package/ios/CourierReactNativeViewManager.swift +348 -0
  18. package/lib/commonjs/index.js +86 -210
  19. package/lib/commonjs/index.js.map +1 -1
  20. package/lib/commonjs/models/CourierInboxListener.js +26 -0
  21. package/lib/commonjs/models/CourierInboxListener.js.map +1 -0
  22. package/lib/commonjs/models/CourierInboxTheme.js +2 -0
  23. package/lib/commonjs/models/CourierInboxTheme.js.map +1 -0
  24. package/lib/commonjs/models/InboxAction.js +2 -0
  25. package/lib/commonjs/models/InboxAction.js.map +1 -0
  26. package/lib/commonjs/models/InboxMessage.js +6 -0
  27. package/lib/commonjs/models/InboxMessage.js.map +1 -0
  28. package/lib/commonjs/views/CourierInboxView.js +53 -0
  29. package/lib/commonjs/views/CourierInboxView.js.map +1 -0
  30. package/lib/module/index.js +80 -209
  31. package/lib/module/index.js.map +1 -1
  32. package/lib/module/models/CourierInboxListener.js +18 -0
  33. package/lib/module/models/CourierInboxListener.js.map +1 -0
  34. package/lib/module/models/CourierInboxTheme.js +2 -0
  35. package/lib/module/models/CourierInboxTheme.js.map +1 -0
  36. package/lib/module/models/InboxAction.js +2 -0
  37. package/lib/module/models/InboxAction.js.map +1 -0
  38. package/lib/module/models/InboxMessage.js +2 -0
  39. package/lib/module/models/InboxMessage.js.map +1 -0
  40. package/lib/module/views/CourierInboxView.js +45 -0
  41. package/lib/module/views/CourierInboxView.js.map +1 -0
  42. package/lib/typescript/index.d.ts +46 -92
  43. package/lib/typescript/index.d.ts.map +1 -0
  44. package/lib/typescript/models/CourierInboxListener.d.ts +9 -0
  45. package/lib/typescript/models/CourierInboxListener.d.ts.map +1 -0
  46. package/lib/typescript/models/CourierInboxTheme.d.ts +34 -0
  47. package/lib/typescript/models/CourierInboxTheme.d.ts.map +1 -0
  48. package/lib/typescript/models/InboxAction.d.ts +8 -0
  49. package/lib/typescript/models/InboxAction.d.ts.map +1 -0
  50. package/lib/typescript/models/InboxMessage.d.ts +18 -0
  51. package/lib/typescript/models/InboxMessage.d.ts.map +1 -0
  52. package/lib/typescript/views/CourierInboxView.d.ts +16 -0
  53. package/lib/typescript/views/CourierInboxView.d.ts.map +1 -0
  54. package/package.json +61 -44
  55. package/src/index.tsx +213 -0
  56. package/src/models/CourierInboxListener.tsx +25 -0
  57. package/src/models/CourierInboxTheme.tsx +30 -0
  58. package/src/models/InboxAction.tsx +5 -0
  59. package/src/models/InboxMessage.tsx +16 -0
  60. package/src/views/CourierInboxView.tsx +85 -0
  61. package/android/.gradle/7.1/dependencies-accessors/dependencies-accessors.lock +0 -0
  62. package/android/.gradle/7.1/dependencies-accessors/gc.properties +0 -0
  63. package/android/.gradle/7.1/executionHistory/executionHistory.lock +0 -0
  64. package/android/.gradle/7.1/fileChanges/last-build.bin +0 -0
  65. package/android/.gradle/7.1/fileHashes/fileHashes.bin +0 -0
  66. package/android/.gradle/7.1/fileHashes/fileHashes.lock +0 -0
  67. package/android/.gradle/7.1/gc.properties +0 -0
  68. package/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
  69. package/android/.gradle/buildOutputCleanup/cache.properties +0 -2
  70. package/android/.gradle/buildOutputCleanup/outputFiles.bin +0 -0
  71. package/android/.gradle/checksums/checksums.lock +0 -0
  72. package/android/.gradle/checksums/md5-checksums.bin +0 -0
  73. package/android/.gradle/checksums/sha1-checksums.bin +0 -0
  74. package/android/.gradle/vcs-1/gc.properties +0 -0
  75. package/android/.idea/compiler.xml +0 -6
  76. package/android/.idea/gradle.xml +0 -17
  77. package/android/.idea/jarRepositories.xml +0 -35
  78. package/android/.idea/misc.xml +0 -10
  79. package/android/.idea/vcs.xml +0 -6
  80. package/android/gradle/wrapper/gradle-wrapper.jar +0 -0
  81. package/android/gradle/wrapper/gradle-wrapper.properties +0 -5
  82. package/android/gradlew +0 -185
  83. package/android/gradlew.bat +0 -89
  84. package/android/local.properties +0 -8
  85. package/android/src/main/java/com/courierreactnative/NotificationPermissionStatus.kt +0 -6
  86. package/ios/CourierReactNative.m +0 -52
  87. package/ios/CourierReactNativeDelegate.h +0 -20
  88. package/ios/CourierReactNativeDelegate.m +0 -125
  89. package/src/index.ts +0 -337
@@ -3,52 +3,49 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.default = exports.CourierProvider = void 0;
7
-
6
+ Object.defineProperty(exports, "CourierInboxView", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _CourierInboxView.CourierInboxView;
10
+ }
11
+ });
12
+ exports.default = void 0;
8
13
  var _reactNative = require("react-native");
9
-
10
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
11
-
12
- const LINKING_ERROR = `The package '@trycourier/courier-react-native' doesn't seem to be linked. Make sure: \n\n${_reactNative.Platform.select({
14
+ var _CourierInboxListener = require("./models/CourierInboxListener");
15
+ var _CourierInboxView = require("./views/CourierInboxView");
16
+ const LINKING_ERROR = `The package '@trycourier/courier-react-native' doesn't seem to be linked. Make sure: \n\n` + _reactNative.Platform.select({
13
17
  ios: "- You have run 'pod install'\n",
14
18
  default: ''
15
- })}- You rebuilt the app after installing the package\n` + `- You are not using Expo managed workflow\n`;
16
- const CourierReactNativeModules = _reactNative.NativeModules.CourierReactNative ? _reactNative.NativeModules.CourierReactNative : new Proxy({}, {
19
+ }) + '- You rebuilt the app after installing the package\n' + '- You are not using Expo Go\n';
20
+ const CourierReactNativeModules = _reactNative.NativeModules.CourierReactNativeModule ? _reactNative.NativeModules.CourierReactNativeModule : new Proxy({}, {
17
21
  get() {
18
22
  throw new Error(LINKING_ERROR);
19
23
  }
20
-
21
24
  });
22
- const CourierEventEmitter = new _reactNative.NativeEventEmitter(_reactNative.NativeModules.CourierReactNative);
23
- let CourierProvider;
24
- exports.CourierProvider = CourierProvider;
25
-
26
- (function (CourierProvider) {
27
- CourierProvider["FCM"] = "firebase-fcm";
28
- CourierProvider["APNS"] = "apn";
29
- })(CourierProvider || (exports.CourierProvider = CourierProvider = {}));
30
-
25
+ const CourierEventEmitter = new _reactNative.NativeEventEmitter(_reactNative.NativeModules.CourierReactNativeModule);
31
26
  class Courier {
27
+ _isDebugging = false;
32
28
  constructor() {
33
- _defineProperty(this, "PUSH_NOTIFICATION_CLICKED", 'pushNotificationClicked');
34
-
35
- _defineProperty(this, "PUSH_NOTIFICATION_DELIVERED", 'pushNotificationDelivered');
36
-
37
- _defineProperty(this, "_isDebugging", false);
38
-
39
- _defineProperty(this, "debugListener", void 0);
40
-
41
29
  // Sets the initial SDK values
42
30
  // Defaults to React Native level debugging
43
31
  // and will show all foreground notification styles in iOS
44
32
  this.setDefaults();
45
33
  }
46
34
 
35
+ // Returns the public shared instance
36
+ static get shared() {
37
+ if (!this._sharedInstance) {
38
+ this._sharedInstance = new Courier();
39
+ }
40
+ return this._sharedInstance;
41
+ }
47
42
  async setDefaults() {
48
43
  try {
49
- await Promise.all([this.setIsDebugging(__DEV__), this.iOSForegroundPresentationOptions({
50
- options: ['sound', 'badge', 'list', 'banner']
51
- })]);
44
+ await Promise.all([this.setIsDebugging(__DEV__)
45
+ // this.iOSForegroundPresentationOptions({
46
+ // options: ['sound', 'badge', 'list', 'banner'],
47
+ // }),
48
+ ]);
52
49
  } catch (error) {
53
50
  console.log(error);
54
51
  }
@@ -61,33 +58,31 @@ class Courier {
61
58
  */
62
59
  async setIsDebugging(isDebugging) {
63
60
  var _this$debugListener;
64
-
65
61
  // Remove the existing listener if needed
66
- (_this$debugListener = this.debugListener) === null || _this$debugListener === void 0 ? void 0 : _this$debugListener.remove(); // Set a new listener
67
- // listener needs to be registered first to catch the event
62
+ (_this$debugListener = this.debugListener) === null || _this$debugListener === void 0 ? void 0 : _this$debugListener.remove();
68
63
 
64
+ // Set a new listener
65
+ // listener needs to be registered first to catch the event
69
66
  if (isDebugging) {
70
67
  this.debugListener = CourierEventEmitter.addListener('courierDebugEvent', event => {
71
68
  console.log('\x1b[36m%s\x1b[0m', 'COURIER', event);
72
69
  });
73
70
  }
74
-
75
71
  this._isDebugging = await CourierReactNativeModules.setDebugMode(isDebugging);
76
72
  return this._isDebugging;
77
73
  }
78
-
79
74
  get isDebugging() {
80
75
  return this._isDebugging;
81
76
  }
77
+
82
78
  /**
83
79
  * Returns the current user id stored in local native storage
84
80
  * @example const userId = await Courier.userId
85
81
  */
86
-
87
-
88
82
  get userId() {
89
83
  return CourierReactNativeModules.getUserId();
90
84
  }
85
+
91
86
  /**
92
87
  * Signs user in and persists signin in between sessions
93
88
  * using native level storage apis
@@ -96,6 +91,7 @@ class Courier {
96
91
  * ```
97
92
  *await Courier.signIn({
98
93
  accessToken: YOUR_COURIER_GENERATED_JWT,
94
+ clientKey: YOUR_CLIENT_KEY,
99
95
  userId: YOUR_USER_ID,
100
96
  })
101
97
  * ```
@@ -103,202 +99,82 @@ class Courier {
103
99
  * that is requested from your backend
104
100
  * https://www.courier.com/docs/reference/auth/issue-token/
105
101
  */
106
-
107
-
108
- signIn(_ref) {
109
- let {
110
- accessToken,
111
- userId
112
- } = _ref;
113
- return CourierReactNativeModules.signIn(userId, accessToken);
102
+ signIn(props) {
103
+ return CourierReactNativeModules.signIn(props.accessToken, props.clientKey ?? null, props.userId);
114
104
  }
115
- /**
116
- * Logs user out of native level user storage.
117
- * This will clear the userId, accessToken, and apns / fcm tokens and
118
- * delete the matching devices apns / fcm tokens for the user in Courier token management
119
- * @example await Courier.signOut()
120
- */
121
105
 
122
-
123
- signOut() {
124
- return CourierReactNativeModules.signOut();
125
- }
126
106
  /**
127
- * Sets the current Apple Push Notification Service (APNS) token
128
- * using Courier token management apis
129
- * @example const apnsToken = await Courier.apnsToken
107
+ * TODO
108
+ * @param props
109
+ * @returns
130
110
  */
131
-
132
-
133
- get apnsToken() {
134
- if (_reactNative.Platform.OS !== 'ios') return Promise.resolve(undefined);
135
- return CourierReactNativeModules.getApnsToken();
111
+ readMessage(props) {
112
+ return CourierReactNativeModules.readMessage(props.messageId);
136
113
  }
137
- /**
138
- * Sets the current Firebase Cloud Messaging (FCM) token
139
- * using Courier token management apis
140
- * @example const fcmToken = await Courier.fcmToken
141
- */
142
-
143
114
 
144
- get fcmToken() {
145
- return CourierReactNativeModules.getFcmToken();
146
- }
147
115
  /**
148
- * Sets the current Firebase Cloud Messaging (FCM) token
149
- * using Courier token management apis
150
- * @example await setFcmToken('asdf...asdf')
116
+ * TODO
117
+ * @param props
118
+ * @returns
151
119
  */
152
-
153
-
154
- setFcmToken(token) {
155
- return CourierReactNativeModules.setFcmToken(token);
120
+ unreadMessage(props) {
121
+ return CourierReactNativeModules.unreadMessage(props.messageId);
156
122
  }
157
- /**
158
- * Hits the Courier /send endpoint and sends a test push notification
159
- * @example
160
- * ```
161
- *const messageId = await sendPush({
162
- authKey: YOUR_AUTH_KEY_THAT_SHOULD_NOT_STAY_IN_YOUR_PRODUCTION_APP,
163
- userId: USER_ID,
164
- title: 'This is a title',
165
- body: 'This is a body',
166
- providers: [CourierProvider.APNS, CourierProvider.FCM],
167
- });
168
- * ```
169
- * @returns promise
170
- */
171
-
172
123
 
173
- sendPush(_ref2) {
174
- let {
175
- authKey,
176
- userId,
177
- title,
178
- body,
179
- providers
180
- } = _ref2;
181
- return CourierReactNativeModules.sendPush(authKey, userId, title, body, providers);
182
- }
183
124
  /**
184
- * Gets notification permission status at a system level.
185
- * @example const permissionStatus = await Courier.getNotificationPermissionStatus()
125
+ * TODO
126
+ * @param props
127
+ * @returns
186
128
  */
187
-
188
-
189
- get notificationPermissionStatus() {
190
- return CourierReactNativeModules.getNotificationPermissionStatus();
129
+ readAllInboxMessages() {
130
+ return CourierReactNativeModules.readAllInboxMessages();
191
131
  }
192
- /**
193
- * Requests notification permission status at a system level.
194
- * Returns the string associated with the permission status.
195
- * Will return the current status and will not present a popup
196
- * if the user has already been asked for permission.
197
- * @example const permissionStatus = await Courier.requestNotificationPermission()
198
- */
199
-
200
132
 
201
- requestNotificationPermission() {
202
- return CourierReactNativeModules.requestNotificationPermission();
203
- }
204
133
  /**
205
- * Sets the push notification presentation style when the app is in the foreground
206
- * This does not affect how the notification is shown when the app is killed or in the background states
207
- *
208
- * Defaults to sound, badge, list and/or banner.
209
- *
210
- * @example iOSForegroundPresentationOptions({options: ['sound']});
134
+ * TODO
135
+ * @param props
136
+ * @returns
211
137
  */
212
-
213
-
214
- iOSForegroundPresentationOptions(_ref3) {
215
- let {
216
- options
217
- } = _ref3;
218
- // Only works on iOS
219
- if (_reactNative.Platform.OS !== 'ios') return Promise.resolve();
220
- const normalizedParams = Array.from(new Set(options));
221
- return CourierReactNativeModules.iOSForegroundPresentationOptions({
222
- options: normalizedParams
223
- });
224
- }
225
- /**
226
- * @example
227
- *```
228
- const unsubPushListeners = () => {
229
- return Courier.registerPushNotificationListeners<YOUR_NOTIFICATION_TYPE>({
230
- onPushNotificationClicked: (push) => {
231
- ...
232
- },
233
- onPushNotificationDelivered: (push) => {
234
- ...
235
- },
236
- })
237
- }
238
- // To unsubscribe the listeners
239
- unsubPushListeners()
240
- *```
241
- * @returns function that can be used to unsubscribe from registered listeners
242
- */
243
-
244
-
245
- registerPushNotificationListeners(_ref4) {
246
- let {
247
- onPushNotificationClicked,
248
- onPushNotificationDelivered
249
- } = _ref4;
250
- let notificationClickedListener;
251
- let notificationDeliveredListener; // Android
252
-
253
- if (_reactNative.Platform.OS === 'android') {
254
- notificationClickedListener = _reactNative.DeviceEventEmitter.addListener(this.PUSH_NOTIFICATION_CLICKED, event => {
255
- try {
256
- onPushNotificationClicked(JSON.parse(event));
257
- } catch (error) {
258
- console.log(error);
259
- }
260
- });
261
- notificationDeliveredListener = _reactNative.DeviceEventEmitter.addListener(this.PUSH_NOTIFICATION_DELIVERED, event => {
262
- try {
263
- onPushNotificationDelivered(JSON.parse(event));
264
- } catch (error) {
265
- console.log(error);
266
- }
138
+ addInboxListener(props) {
139
+ // Create the initial listeners
140
+ const inboxListener = new _CourierInboxListener.CourierInboxListener();
141
+ if (props.onInitialLoad) {
142
+ inboxListener.onInitialLoad = CourierEventEmitter.addListener('inboxInitialLoad', () => {
143
+ props.onInitialLoad();
267
144
  });
268
- } // iOS
269
-
270
-
271
- if (_reactNative.Platform.OS === 'ios') {
272
- notificationClickedListener = CourierEventEmitter.addListener(this.PUSH_NOTIFICATION_CLICKED, event => {
273
- try {
274
- onPushNotificationClicked(JSON.parse(event));
275
- } catch (error) {
276
- console.log(error);
277
- }
145
+ }
146
+ if (props.onError) {
147
+ inboxListener.onError = CourierEventEmitter.addListener('inboxError', event => {
148
+ props.onError(event);
278
149
  });
279
- notificationDeliveredListener = CourierEventEmitter.addListener(this.PUSH_NOTIFICATION_DELIVERED, event => {
280
- try {
281
- onPushNotificationDelivered(JSON.parse(event));
282
- } catch (error) {
283
- console.log(error);
284
- }
150
+ }
151
+ if (props.onMessagesChanged) {
152
+ inboxListener.onMessagesChanged = CourierEventEmitter.addListener('inboxMessagesChanged', event => {
153
+ props.onMessagesChanged(event.messages, event.unreadMessageCount, event.totalMessageCount, event.canPaginate);
285
154
  });
286
- } // When listener is registered
287
- // Attempt to fetch the last message that was clicked
288
- // This is needed for when the app is killed and the
289
- // user launched the app by clicking on a notifications
290
-
155
+ }
156
+ inboxListener.listenerId = CourierReactNativeModules.addInboxListener(null);
157
+ return inboxListener;
158
+ }
291
159
 
292
- CourierReactNativeModules.registerPushNotificationClickedOnKilledState();
293
- return () => {
294
- notificationClickedListener.remove();
295
- notificationDeliveredListener.remove();
296
- };
160
+ /**
161
+ * TODO
162
+ * @param props
163
+ * @returns
164
+ */
165
+ removeInboxListener(props) {
166
+ return CourierReactNativeModules.removeInboxListener(props.listenerId);
297
167
  }
298
168
 
169
+ /**
170
+ * TODO
171
+ * @param props
172
+ * @returns
173
+ */
174
+ async refreshInbox() {
175
+ return CourierReactNativeModules.refreshInbox();
176
+ }
299
177
  }
300
-
301
- var _default = new Courier();
302
-
178
+ var _default = Courier;
303
179
  exports.default = _default;
304
180
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["LINKING_ERROR","Platform","select","ios","default","CourierReactNativeModules","NativeModules","CourierReactNative","Proxy","get","Error","CourierEventEmitter","NativeEventEmitter","CourierProvider","Courier","constructor","setDefaults","Promise","all","setIsDebugging","__DEV__","iOSForegroundPresentationOptions","options","error","console","log","isDebugging","debugListener","remove","addListener","event","_isDebugging","setDebugMode","userId","getUserId","signIn","accessToken","signOut","apnsToken","OS","resolve","undefined","getApnsToken","fcmToken","getFcmToken","setFcmToken","token","sendPush","authKey","title","body","providers","notificationPermissionStatus","getNotificationPermissionStatus","requestNotificationPermission","normalizedParams","Array","from","Set","registerPushNotificationListeners","onPushNotificationClicked","onPushNotificationDelivered","notificationClickedListener","notificationDeliveredListener","DeviceEventEmitter","PUSH_NOTIFICATION_CLICKED","JSON","parse","PUSH_NOTIFICATION_DELIVERED","registerPushNotificationClickedOnKilledState"],"sources":["index.ts"],"sourcesContent":["/* eslint no-underscore-dangle: 0 */\n/* eslint class-methods-use-this: 0 */\nimport {\n NativeModules,\n Platform,\n DeviceEventEmitter,\n NativeEventEmitter,\n EmitterSubscription,\n} from 'react-native';\n\nconst LINKING_ERROR =\n `The package '@trycourier/courier-react-native' doesn't seem to be linked. Make sure: \\n\\n${Platform.select(\n { ios: \"- You have run 'pod install'\\n\", default: '' }\n )}- You rebuilt the app after installing the package\\n` +\n `- You are not using Expo managed workflow\\n`;\n\nconst CourierReactNativeModules = NativeModules.CourierReactNative\n ? NativeModules.CourierReactNative\n : new Proxy(\n {},\n {\n get() {\n throw new Error(LINKING_ERROR);\n },\n }\n );\n\nconst CourierEventEmitter = new NativeEventEmitter(\n NativeModules.CourierReactNative\n);\n\nexport enum CourierProvider {\n FCM = 'firebase-fcm',\n APNS = 'apn',\n}\n\nclass Courier {\n readonly PUSH_NOTIFICATION_CLICKED = 'pushNotificationClicked';\n\n readonly PUSH_NOTIFICATION_DELIVERED = 'pushNotificationDelivered';\n\n public constructor() {\n // Sets the initial SDK values\n // Defaults to React Native level debugging\n // and will show all foreground notification styles in iOS\n this.setDefaults();\n }\n\n private async setDefaults() {\n try {\n await Promise.all([\n this.setIsDebugging(__DEV__),\n this.iOSForegroundPresentationOptions({\n options: ['sound', 'badge', 'list', 'banner'],\n }),\n ]);\n } catch (error) {\n console.log(error);\n }\n }\n\n private _isDebugging = false;\n\n private debugListener: EmitterSubscription | undefined;\n\n /**\n * Tells native Courier SDKs to show or hide logs.\n * Defaults to the React __DEV__ mode\n * @example Courier.setIsDebugging(true)\n */\n public async setIsDebugging(isDebugging: boolean): Promise<boolean> {\n // Remove the existing listener if needed\n this.debugListener?.remove();\n\n // Set a new listener\n // listener needs to be registered first to catch the event\n if (isDebugging) {\n this.debugListener = CourierEventEmitter.addListener(\n 'courierDebugEvent',\n (event) => {\n console.log('\\x1b[36m%s\\x1b[0m', 'COURIER', event);\n }\n );\n }\n\n this._isDebugging = await CourierReactNativeModules.setDebugMode(\n isDebugging\n );\n\n return this._isDebugging;\n }\n\n get isDebugging(): boolean {\n return this._isDebugging;\n }\n\n /**\n * Returns the current user id stored in local native storage\n * @example const userId = await Courier.userId\n */\n get userId(): Promise<string | undefined> {\n return CourierReactNativeModules.getUserId();\n }\n\n /**\n * Signs user in and persists signin in between sessions\n * using native level storage apis\n * \n * @example\n * ```\n *await Courier.signIn({\n accessToken: YOUR_COURIER_GENERATED_JWT,\n userId: YOUR_USER_ID,\n })\n * ```\n * Your access token should be generated using this endpoint\n * that is requested from your backend\n * https://www.courier.com/docs/reference/auth/issue-token/\n */\n public signIn({\n accessToken,\n userId,\n }: {\n accessToken: string;\n userId: string;\n }): Promise<void> {\n return CourierReactNativeModules.signIn(userId, accessToken);\n }\n\n /**\n * Logs user out of native level user storage.\n * This will clear the userId, accessToken, and apns / fcm tokens and\n * delete the matching devices apns / fcm tokens for the user in Courier token management\n * @example await Courier.signOut()\n */\n public signOut(): Promise<void> {\n return CourierReactNativeModules.signOut();\n }\n\n /**\n * Sets the current Apple Push Notification Service (APNS) token\n * using Courier token management apis\n * @example const apnsToken = await Courier.apnsToken\n */\n get apnsToken(): Promise<string | undefined> {\n if (Platform.OS !== 'ios') return Promise.resolve(undefined);\n return CourierReactNativeModules.getApnsToken();\n }\n\n /**\n * Sets the current Firebase Cloud Messaging (FCM) token\n * using Courier token management apis\n * @example const fcmToken = await Courier.fcmToken\n */\n get fcmToken(): Promise<string | undefined> {\n return CourierReactNativeModules.getFcmToken();\n }\n\n /**\n * Sets the current Firebase Cloud Messaging (FCM) token\n * using Courier token management apis\n * @example await setFcmToken('asdf...asdf')\n */\n public setFcmToken(token: string): Promise<void> {\n return CourierReactNativeModules.setFcmToken(token);\n }\n\n /**\n * Hits the Courier /send endpoint and sends a test push notification\n * @example\n * ```\n *const messageId = await sendPush({\n authKey: YOUR_AUTH_KEY_THAT_SHOULD_NOT_STAY_IN_YOUR_PRODUCTION_APP,\n userId: USER_ID,\n title: 'This is a title',\n body: 'This is a body',\n providers: [CourierProvider.APNS, CourierProvider.FCM],\n });\n * ```\n * @returns promise\n */\n public sendPush({\n authKey,\n userId,\n title,\n body,\n providers,\n }: {\n authKey: string;\n userId: string;\n title?: string;\n body?: string;\n providers: CourierProvider[];\n }): Promise<string> {\n return CourierReactNativeModules.sendPush(\n authKey,\n userId,\n title,\n body,\n providers\n );\n }\n\n /**\n * Gets notification permission status at a system level.\n * @example const permissionStatus = await Courier.getNotificationPermissionStatus()\n */\n get notificationPermissionStatus(): Promise<string> {\n return CourierReactNativeModules.getNotificationPermissionStatus();\n }\n\n /**\n * Requests notification permission status at a system level.\n * Returns the string associated with the permission status.\n * Will return the current status and will not present a popup\n * if the user has already been asked for permission.\n * @example const permissionStatus = await Courier.requestNotificationPermission()\n */\n public requestNotificationPermission(): Promise<string> {\n return CourierReactNativeModules.requestNotificationPermission();\n }\n\n /**\n * Sets the push notification presentation style when the app is in the foreground\n * This does not affect how the notification is shown when the app is killed or in the background states\n *\n * Defaults to sound, badge, list and/or banner.\n *\n * @example iOSForegroundPresentationOptions({options: ['sound']});\n */\n public iOSForegroundPresentationOptions({\n options,\n }: {\n options: ('sound' | 'badge' | 'list' | 'banner')[];\n }): Promise<void> {\n // Only works on iOS\n if (Platform.OS !== 'ios') return Promise.resolve();\n\n const normalizedParams = Array.from(new Set(options));\n return CourierReactNativeModules.iOSForegroundPresentationOptions({\n options: normalizedParams,\n });\n }\n\n /**\n * @example \n *```\n const unsubPushListeners = () => {\n return Courier.registerPushNotificationListeners<YOUR_NOTIFICATION_TYPE>({\n onPushNotificationClicked: (push) => {\n ...\n },\n onPushNotificationDelivered: (push) => {\n ...\n },\n })\n }\n\n // To unsubscribe the listeners\n unsubPushListeners()\n *```\n * @returns function that can be used to unsubscribe from registered listeners\n */\n public registerPushNotificationListeners({\n onPushNotificationClicked,\n onPushNotificationDelivered,\n }: {\n onPushNotificationClicked: (_push: any) => void;\n onPushNotificationDelivered: (_push: any) => void;\n }) {\n let notificationClickedListener: EmitterSubscription;\n let notificationDeliveredListener: EmitterSubscription;\n\n // Android\n if (Platform.OS === 'android') {\n notificationClickedListener = DeviceEventEmitter.addListener(\n this.PUSH_NOTIFICATION_CLICKED,\n (event: any) => {\n try {\n onPushNotificationClicked(JSON.parse(event));\n } catch (error) {\n console.log(error);\n }\n }\n );\n\n notificationDeliveredListener = DeviceEventEmitter.addListener(\n this.PUSH_NOTIFICATION_DELIVERED,\n (event: any) => {\n try {\n onPushNotificationDelivered(JSON.parse(event));\n } catch (error) {\n console.log(error);\n }\n }\n );\n }\n\n // iOS\n if (Platform.OS === 'ios') {\n notificationClickedListener = CourierEventEmitter.addListener(\n this.PUSH_NOTIFICATION_CLICKED,\n (event: any) => {\n try {\n onPushNotificationClicked(JSON.parse(event));\n } catch (error) {\n console.log(error);\n }\n }\n );\n\n notificationDeliveredListener = CourierEventEmitter.addListener(\n this.PUSH_NOTIFICATION_DELIVERED,\n (event: any) => {\n try {\n onPushNotificationDelivered(JSON.parse(event));\n } catch (error) {\n console.log(error);\n }\n }\n );\n }\n\n // When listener is registered\n // Attempt to fetch the last message that was clicked\n // This is needed for when the app is killed and the\n // user launched the app by clicking on a notifications\n CourierReactNativeModules.registerPushNotificationClickedOnKilledState();\n\n return () => {\n notificationClickedListener.remove();\n notificationDeliveredListener.remove();\n };\n }\n}\n\nexport default new Courier();\n"],"mappings":"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"}
1
+ {"version":3,"names":["_reactNative","require","_CourierInboxListener","_CourierInboxView","LINKING_ERROR","Platform","select","ios","default","CourierReactNativeModules","NativeModules","CourierReactNativeModule","Proxy","get","Error","CourierEventEmitter","NativeEventEmitter","Courier","_isDebugging","constructor","setDefaults","shared","_sharedInstance","Promise","all","setIsDebugging","__DEV__","error","console","log","isDebugging","_this$debugListener","debugListener","remove","addListener","event","setDebugMode","userId","getUserId","signIn","props","accessToken","clientKey","readMessage","messageId","unreadMessage","readAllInboxMessages","addInboxListener","inboxListener","CourierInboxListener","onInitialLoad","onError","onMessagesChanged","messages","unreadMessageCount","totalMessageCount","canPaginate","listenerId","removeInboxListener","refreshInbox","_default","exports"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.CourierInboxListener = void 0;
7
+ var _courierReactNative = _interopRequireDefault(require("@trycourier/courier-react-native"));
8
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
9
+ class CourierInboxListener {
10
+ remove() {
11
+ var _this$onInitialLoad, _this$onError, _this$onMessagesChang;
12
+ // Remove the native inbox listener
13
+ if (this.listenerId) {
14
+ _courierReactNative.default.shared.removeInboxListener({
15
+ listenerId: this.listenerId
16
+ });
17
+ }
18
+
19
+ // Remove the emitters
20
+ (_this$onInitialLoad = this.onInitialLoad) === null || _this$onInitialLoad === void 0 ? void 0 : _this$onInitialLoad.remove();
21
+ (_this$onError = this.onError) === null || _this$onError === void 0 ? void 0 : _this$onError.remove();
22
+ (_this$onMessagesChang = this.onMessagesChanged) === null || _this$onMessagesChang === void 0 ? void 0 : _this$onMessagesChang.remove();
23
+ }
24
+ }
25
+ exports.CourierInboxListener = CourierInboxListener;
26
+ //# sourceMappingURL=CourierInboxListener.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_courierReactNative","_interopRequireDefault","require","obj","__esModule","default","CourierInboxListener","remove","_this$onInitialLoad","_this$onError","_this$onMessagesChang","listenerId","Courier","shared","removeInboxListener","onInitialLoad","onError","onMessagesChanged","exports"],"sourceRoot":"../../../src","sources":["models/CourierInboxListener.tsx"],"mappings":";;;;;;AACA,IAAAA,mBAAA,GAAAC,sBAAA,CAAAC,OAAA;AAAuD,SAAAD,uBAAAE,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAEhD,MAAMG,oBAAoB,CAAC;EAOzBC,MAAMA,CAAA,EAAG;IAAA,IAAAC,mBAAA,EAAAC,aAAA,EAAAC,qBAAA;IAEd;IACA,IAAI,IAAI,CAACC,UAAU,EAAE;MACnBC,2BAAO,CAACC,MAAM,CAACC,mBAAmB,CAAC;QAAEH,UAAU,EAAE,IAAI,CAACA;MAAW,CAAC,CAAC;IACrE;;IAEA;IACA,CAAAH,mBAAA,OAAI,CAACO,aAAa,cAAAP,mBAAA,uBAAlBA,mBAAA,CAAoBD,MAAM,CAAC,CAAC;IAC5B,CAAAE,aAAA,OAAI,CAACO,OAAO,cAAAP,aAAA,uBAAZA,aAAA,CAAcF,MAAM,CAAC,CAAC;IACtB,CAAAG,qBAAA,OAAI,CAACO,iBAAiB,cAAAP,qBAAA,uBAAtBA,qBAAA,CAAwBH,MAAM,CAAC,CAAC;EAElC;AAEF;AAACW,OAAA,CAAAZ,oBAAA,GAAAA,oBAAA"}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=CourierInboxTheme.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../src","sources":["models/CourierInboxTheme.tsx"],"mappings":""}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=InboxAction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../src","sources":["models/InboxAction.tsx"],"mappings":""}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ //# sourceMappingURL=InboxMessage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../src","sources":["models/InboxMessage.tsx"],"mappings":""}
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.CourierInboxView = void 0;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _reactNative = require("react-native");
9
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
10
+ const ComponentName = 'CourierReactNativeView';
11
+ const LINKING_ERROR = `The package '@trycourier/courier-react-native' doesn't seem to be linked. Make sure: \n\n` + _reactNative.Platform.select({
12
+ ios: "- You have run 'pod install'\n",
13
+ default: ''
14
+ }) + '- You rebuilt the app after installing the package\n' + '- You are not using Expo Go\n';
15
+ const CourierInbox = _reactNative.UIManager.getViewManagerConfig(ComponentName) != null ? (0, _reactNative.requireNativeComponent)(ComponentName) : () => {
16
+ throw new Error(LINKING_ERROR);
17
+ };
18
+ const CourierInboxView = props => {
19
+ const onClickInboxMessageAtIndex = event => {
20
+ // Parse the native event data
21
+ if (props.onClickInboxMessageAtIndex) {
22
+ const index = event.nativeEvent["index"];
23
+ const message = event.nativeEvent["message"];
24
+ props.onClickInboxMessageAtIndex(message, index);
25
+ }
26
+ };
27
+ const onClickInboxActionForMessageAtIndex = event => {
28
+ // Parse the native event data
29
+ if (props.onClickInboxActionForMessageAtIndex) {
30
+ const index = event.nativeEvent["index"];
31
+ const action = event.nativeEvent["action"];
32
+ const message = event.nativeEvent["message"];
33
+ props.onClickInboxActionForMessageAtIndex(action, message, index);
34
+ }
35
+ };
36
+ const onScrollInbox = event => {
37
+ // Parse the native event data
38
+ if (props.onScrollInbox) {
39
+ const contentOffset = event.nativeEvent["contentOffset"];
40
+ props.onScrollInbox(contentOffset["y"], contentOffset["x"]);
41
+ }
42
+ };
43
+ return /*#__PURE__*/_react.default.createElement(CourierInbox, {
44
+ lightTheme: props.lightTheme,
45
+ darkTheme: props.darkTheme,
46
+ onClickInboxMessageAtIndex: onClickInboxMessageAtIndex,
47
+ onClickInboxActionForMessageAtIndex: onClickInboxActionForMessageAtIndex,
48
+ onScrollInbox: onScrollInbox,
49
+ style: props.style
50
+ });
51
+ };
52
+ exports.CourierInboxView = CourierInboxView;
53
+ //# sourceMappingURL=CourierInboxView.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","obj","__esModule","default","ComponentName","LINKING_ERROR","Platform","select","ios","CourierInbox","UIManager","getViewManagerConfig","requireNativeComponent","Error","CourierInboxView","props","onClickInboxMessageAtIndex","event","index","nativeEvent","message","onClickInboxActionForMessageAtIndex","action","onScrollInbox","contentOffset","createElement","lightTheme","darkTheme","style","exports"],"sourceRoot":"../../../src","sources":["views/CourierInboxView.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAAsF,SAAAD,uBAAAG,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AActF,MAAMG,aAAa,GAAG,wBAAwB;AAE9C,MAAMC,aAAa,GAChB,2FAA0F,GAC3FC,qBAAQ,CAACC,MAAM,CAAC;EAAEC,GAAG,EAAE,gCAAgC;EAAEL,OAAO,EAAE;AAAG,CAAC,CAAC,GACvE,sDAAsD,GACtD,+BAA+B;AAEjC,MAAMM,YAAY,GAChBC,sBAAS,CAACC,oBAAoB,CAACP,aAAa,CAAC,IAAI,IAAI,GACjD,IAAAQ,mCAAsB,EAAwBR,aAAa,CAAC,GAC5D,MAAM;EACJ,MAAM,IAAIS,KAAK,CAACR,aAAa,CAAC;AAChC,CAAC;AAEA,MAAMS,gBAAgB,GAAIC,KAA4B,IAAK;EAEhE,MAAMC,0BAA0B,GAAIC,KAAU,IAAK;IAEjD;IACA,IAAIF,KAAK,CAACC,0BAA0B,EAAE;MAEpC,MAAME,KAAK,GAAGD,KAAK,CAACE,WAAW,CAAC,OAAO,CAAC;MACxC,MAAMC,OAAO,GAAGH,KAAK,CAACE,WAAW,CAAC,SAAS,CAAiB;MAE5DJ,KAAK,CAACC,0BAA0B,CAACI,OAAO,EAAEF,KAAK,CAAC;IAElD;EAEF,CAAC;EAED,MAAMG,mCAAmC,GAAIJ,KAAU,IAAK;IAE1D;IACA,IAAIF,KAAK,CAACM,mCAAmC,EAAE;MAE7C,MAAMH,KAAK,GAAGD,KAAK,CAACE,WAAW,CAAC,OAAO,CAAC;MACxC,MAAMG,MAAM,GAAGL,KAAK,CAACE,WAAW,CAAC,QAAQ,CAAgB;MACzD,MAAMC,OAAO,GAAGH,KAAK,CAACE,WAAW,CAAC,SAAS,CAAiB;MAE5DJ,KAAK,CAACM,mCAAmC,CAACC,MAAM,EAAEF,OAAO,EAAEF,KAAK,CAAC;IAEnE;EAEF,CAAC;EAED,MAAMK,aAAa,GAAIN,KAAU,IAAK;IAEpC;IACA,IAAIF,KAAK,CAACQ,aAAa,EAAE;MAEvB,MAAMC,aAAa,GAAGP,KAAK,CAACE,WAAW,CAAC,eAAe,CAAC;MACxDJ,KAAK,CAACQ,aAAa,CAACC,aAAa,CAAC,GAAG,CAAC,EAAEA,aAAa,CAAC,GAAG,CAAC,CAAC;IAE7D;EAEF,CAAC;EAED,oBACE3B,MAAA,CAAAM,OAAA,CAAAsB,aAAA,CAAChB,YAAY;IACXiB,UAAU,EAAEX,KAAK,CAACW,UAAW;IAC7BC,SAAS,EAAEZ,KAAK,CAACY,SAAU;IAC3BX,0BAA0B,EAAEA,0BAA2B;IACvDK,mCAAmC,EAAEA,mCAAoC;IACzEE,aAAa,EAAEA,aAAc;IAC7BK,KAAK,EAAEb,KAAK,CAACa;EAAM,CACpB,CAAC;AAGN,CAAC;AAAAC,OAAA,CAAAf,gBAAA,GAAAA,gBAAA"}