notifly-sdk 3.1.2 → 3.2.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.
- package/android/build.gradle +6 -6
- package/android/gradle.properties +5 -5
- package/android/src/main/AndroidManifest.xml +1 -1
- package/android/src/main/java/{com/notiflysdk → tech/notifly/rn}/NotiflySdkModule.kt +52 -14
- package/android/src/main/java/{com/notiflysdk → tech/notifly/rn}/NotiflySdkPackage.kt +1 -1
- package/android/src/main/java/tech/notifly/rn/NotiflySdkUtils.kt +79 -0
- package/android/src/newarch/NotiflySdkSpec.kt +1 -1
- package/android/src/oldarch/NotiflySdkSpec.kt +2 -2
- package/ios/NotiflySdk.m +1 -5
- package/ios/NotiflySdk.swift +3 -8
- package/lib/commonjs/{NativeNotiflySdk.js → NativeNotiflyReactNativeSdk.js} +2 -2
- package/lib/commonjs/NativeNotiflyReactNativeSdk.js.map +1 -0
- package/lib/commonjs/constants.js +12 -0
- package/lib/commonjs/constants.js.map +1 -0
- package/lib/commonjs/events/EventReceiver.js +60 -0
- package/lib/commonjs/events/EventReceiver.js.map +1 -0
- package/lib/commonjs/index.js +29 -45
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/types/index.js +17 -0
- package/lib/commonjs/types/index.js.map +1 -0
- package/lib/commonjs/types/notification.js +14 -0
- package/lib/commonjs/types/notification.js.map +1 -0
- package/lib/module/NativeNotiflyReactNativeSdk.js +3 -0
- package/lib/module/NativeNotiflyReactNativeSdk.js.map +1 -0
- package/lib/module/constants.js +5 -0
- package/lib/module/constants.js.map +1 -0
- package/lib/module/events/EventReceiver.js +53 -0
- package/lib/module/events/EventReceiver.js.map +1 -0
- package/lib/module/index.js +27 -41
- package/lib/module/index.js.map +1 -1
- package/lib/module/types/index.js +2 -0
- package/lib/module/types/index.js.map +1 -0
- package/lib/module/types/notification.js +7 -0
- package/lib/module/types/notification.js.map +1 -0
- package/lib/typescript/{NativeNotiflySdk.d.ts → NativeNotiflyReactNativeSdk.d.ts} +5 -8
- package/lib/typescript/NativeNotiflyReactNativeSdk.d.ts.map +1 -0
- package/lib/typescript/constants.d.ts +4 -0
- package/lib/typescript/constants.d.ts.map +1 -0
- package/lib/typescript/events/EventReceiver.d.ts +11 -0
- package/lib/typescript/events/EventReceiver.d.ts.map +1 -0
- package/lib/typescript/index.d.ts +6 -16
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/types/index.d.ts +13 -0
- package/lib/typescript/types/index.d.ts.map +1 -0
- package/lib/typescript/types/notification.d.ts +28 -0
- package/lib/typescript/types/notification.d.ts.map +1 -0
- package/package.json +5 -5
- package/src/{NativeNotiflySdk.ts → NativeNotiflyReactNativeSdk.ts} +5 -10
- package/src/constants.ts +3 -0
- package/src/events/EventReceiver.ts +67 -0
- package/src/index.tsx +59 -56
- package/src/types/index.ts +15 -0
- package/src/types/notification.ts +40 -0
- package/lib/commonjs/NativeNotiflySdk.js.map +0 -1
- package/lib/commonjs/types.js +0 -2
- package/lib/commonjs/types.js.map +0 -1
- package/lib/module/NativeNotiflySdk.js +0 -3
- package/lib/module/NativeNotiflySdk.js.map +0 -1
- package/lib/module/types.js +0 -2
- package/lib/module/types.js.map +0 -1
- package/lib/typescript/NativeNotiflySdk.d.ts.map +0 -1
- package/lib/typescript/types.d.ts +0 -7
- package/lib/typescript/types.d.ts.map +0 -1
- package/src/types.ts +0 -7
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { NativeEventEmitter } from 'react-native';
|
|
2
|
+
import { EventNames } from '../constants';
|
|
3
|
+
export default class EventReceiver {
|
|
4
|
+
eventListenerArrayMap = new Map();
|
|
5
|
+
constructor(nativeNotiflySdk) {
|
|
6
|
+
this.nativeNotiflySdk = nativeNotiflySdk;
|
|
7
|
+
this.notiflyEventEmitter = new NativeEventEmitter(this.nativeNotiflySdk);
|
|
8
|
+
}
|
|
9
|
+
addEventListener(eventName, handler) {
|
|
10
|
+
const existings = this.eventListenerArrayMap.get(eventName);
|
|
11
|
+
if (existings && existings.length > 0) {
|
|
12
|
+
existings.push(handler);
|
|
13
|
+
} else {
|
|
14
|
+
this.eventListenerArrayMap.set(eventName, [handler]);
|
|
15
|
+
this.notiflyEventEmitter.addListener(eventName, event => {
|
|
16
|
+
const listeners = this.eventListenerArrayMap.get(eventName);
|
|
17
|
+
if (listeners) {
|
|
18
|
+
listeners.forEach(listener => listener(this.transformEventAccordingToType(eventName, event)));
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
removeEventListener(eventName, handler) {
|
|
24
|
+
const existings = this.eventListenerArrayMap.get(eventName);
|
|
25
|
+
if (existings) {
|
|
26
|
+
const index = existings.indexOf(handler);
|
|
27
|
+
if (index !== -1) {
|
|
28
|
+
existings.splice(index, 1);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
transformEventAccordingToType(eventName, payload) {
|
|
33
|
+
if (eventName === EventNames.NOTIFICATION_CLICKED) {
|
|
34
|
+
var _payload$notification;
|
|
35
|
+
// Transform rawPayload as Object as it is stringified in native code
|
|
36
|
+
const raw = payload === null || payload === void 0 ? void 0 : (_payload$notification = payload.notification) === null || _payload$notification === void 0 ? void 0 : _payload$notification.rawPayload;
|
|
37
|
+
try {
|
|
38
|
+
return raw && typeof raw === 'string' ? {
|
|
39
|
+
...payload,
|
|
40
|
+
notification: {
|
|
41
|
+
...payload.notification,
|
|
42
|
+
rawPayload: JSON.parse(raw)
|
|
43
|
+
}
|
|
44
|
+
} : payload;
|
|
45
|
+
} catch (e) {
|
|
46
|
+
console.error('[Notifly React Native SDK] Error while parsing rawPayload. Payload will be returned as is.');
|
|
47
|
+
return payload;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
return payload;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=EventReceiver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["NativeEventEmitter","EventNames","EventReceiver","eventListenerArrayMap","Map","constructor","nativeNotiflySdk","notiflyEventEmitter","addEventListener","eventName","handler","existings","get","length","push","set","addListener","event","listeners","forEach","listener","transformEventAccordingToType","removeEventListener","index","indexOf","splice","payload","NOTIFICATION_CLICKED","_payload$notification","raw","notification","rawPayload","JSON","parse","e","console","error"],"sourceRoot":"../../../src","sources":["events/EventReceiver.ts"],"mappings":"AAAA,SAASA,kBAAkB,QAA2B,cAAc;AACpE,SAASC,UAAU,QAAQ,cAAc;AAIzC,eAAe,MAAMC,aAAa,CAAC;EAGzBC,qBAAqB,GAAsC,IAAIC,GAAG,CAAC,CAAC;EAE5EC,WAAWA,CAACC,gBAA8B,EAAE;IAC1C,IAAI,CAACA,gBAAgB,GAAGA,gBAAgB;IACxC,IAAI,CAACC,mBAAmB,GAAG,IAAIP,kBAAkB,CAAC,IAAI,CAACM,gBAAgB,CAAC;EAC1E;EAEAE,gBAAgBA,CAAIC,SAAiB,EAAEC,OAA2B,EAAE;IAClE,MAAMC,SAAS,GAAG,IAAI,CAACR,qBAAqB,CAACS,GAAG,CAACH,SAAS,CAAC;IAC3D,IAAIE,SAAS,IAAIA,SAAS,CAACE,MAAM,GAAG,CAAC,EAAE;MACrCF,SAAS,CAACG,IAAI,CAACJ,OAAO,CAAC;IACzB,CAAC,MAAM;MACL,IAAI,CAACP,qBAAqB,CAACY,GAAG,CAACN,SAAS,EAAE,CAACC,OAAO,CAAC,CAAC;MACpD,IAAI,CAACH,mBAAmB,CAACS,WAAW,CAACP,SAAS,EAAGQ,KAAK,IAAK;QACzD,MAAMC,SAAS,GAAG,IAAI,CAACf,qBAAqB,CAACS,GAAG,CAACH,SAAS,CAAC;QAC3D,IAAIS,SAAS,EAAE;UACbA,SAAS,CAACC,OAAO,CAAEC,QAAQ,IACzBA,QAAQ,CAAC,IAAI,CAACC,6BAA6B,CAACZ,SAAS,EAAEQ,KAAK,CAAC,CAC/D,CAAC;QACH;MACF,CAAC,CAAC;IACJ;EACF;EAEAK,mBAAmBA,CAAIb,SAAiB,EAAEC,OAA2B,EAAE;IACrE,MAAMC,SAAS,GAAG,IAAI,CAACR,qBAAqB,CAACS,GAAG,CAACH,SAAS,CAAC;IAC3D,IAAIE,SAAS,EAAE;MACb,MAAMY,KAAK,GAAGZ,SAAS,CAACa,OAAO,CAACd,OAAO,CAAC;MACxC,IAAIa,KAAK,KAAK,CAAC,CAAC,EAAE;QAChBZ,SAAS,CAACc,MAAM,CAACF,KAAK,EAAE,CAAC,CAAC;MAC5B;IACF;EACF;EAEQF,6BAA6BA,CAACZ,SAAiB,EAAEiB,OAAY,EAAE;IACrE,IAAIjB,SAAS,KAAKR,UAAU,CAAC0B,oBAAoB,EAAE;MAAA,IAAAC,qBAAA;MACjD;MACA,MAAMC,GAAG,GAAGH,OAAO,aAAPA,OAAO,wBAAAE,qBAAA,GAAPF,OAAO,CAAEI,YAAY,cAAAF,qBAAA,uBAArBA,qBAAA,CAAuBG,UAAU;MAC7C,IAAI;QACF,OAAOF,GAAG,IAAI,OAAOA,GAAG,KAAK,QAAQ,GACjC;UACE,GAAGH,OAAO;UACVI,YAAY,EAAE;YACZ,GAAGJ,OAAO,CAACI,YAAY;YACvBC,UAAU,EAAEC,IAAI,CAACC,KAAK,CAACJ,GAAG;UAC5B;QACF,CAAC,GACDH,OAAO;MACb,CAAC,CAAC,OAAOQ,CAAC,EAAE;QACVC,OAAO,CAACC,KAAK,CACX,4FACF,CAAC;QACD,OAAOV,OAAO;MAChB;IACF;IAEA,OAAOA,OAAO;EAChB;AACF"}
|
package/lib/module/index.js
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { NativeModules, Platform } from 'react-native';
|
|
2
|
+
import EventReceiver from './events/EventReceiver';
|
|
3
|
+
import { EventNames } from './constants';
|
|
2
4
|
const LINKING_ERROR = `The package 'notifly-sdk' doesn't seem to be linked. Make sure: \n\n` + Platform.select({
|
|
3
5
|
ios: "- You have run 'pod install'\n",
|
|
4
6
|
default: ''
|
|
@@ -6,66 +8,52 @@ const LINKING_ERROR = `The package 'notifly-sdk' doesn't seem to be linked. Make
|
|
|
6
8
|
|
|
7
9
|
// @ts-expect-error
|
|
8
10
|
const isTurboModuleEnabled = global.__turboModuleProxy != null;
|
|
9
|
-
const
|
|
10
|
-
const
|
|
11
|
+
const NotiflyReactNativeSdkModule = isTurboModuleEnabled ? require('./NativeNotiflyReactNativeSdk').default : NativeModules.NotiflyReactNativeSdk;
|
|
12
|
+
const NotiflyReactNativeSdk = NotiflyReactNativeSdkModule ? NotiflyReactNativeSdkModule : new Proxy({}, {
|
|
11
13
|
get() {
|
|
12
14
|
throw new Error(LINKING_ERROR);
|
|
13
15
|
}
|
|
14
16
|
});
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
let useCustomClickHandler = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : undefined;
|
|
20
|
-
// @deprecated useCustomClickHandler is deprecated since version 2.3.0
|
|
21
|
-
if (typeof useCustomClickHandler !== 'undefined') {
|
|
22
|
-
console.warn('Warning: useCustomClickHandler of notifly.initialize is deprecated and will be removed in the next major release.');
|
|
23
|
-
}
|
|
24
|
-
return NotiflySdk.initialize(projectId, username, password);
|
|
17
|
+
const eventReceiver = NotiflyReactNativeSdkModule && Platform.OS === 'android' ? new EventReceiver(NotiflyReactNativeSdkModule) : null;
|
|
18
|
+
let isNativeNotificationClickListenerRegistered = false;
|
|
19
|
+
export function initialize(params) {
|
|
20
|
+
return NotiflyReactNativeSdk.initialize(params.projectId, params.username, params.password);
|
|
25
21
|
}
|
|
26
22
|
export function setUserId(userId) {
|
|
27
|
-
return
|
|
23
|
+
return NotiflyReactNativeSdk.setUserId(userId);
|
|
28
24
|
}
|
|
29
25
|
export function setUserProperties(properties) {
|
|
30
|
-
return
|
|
26
|
+
return NotiflyReactNativeSdk.setUserProperties(properties);
|
|
31
27
|
}
|
|
32
28
|
export function trackEvent(eventName) {
|
|
33
29
|
let eventParams = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;
|
|
34
30
|
let segmentationEventParamKeys = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
|
|
35
|
-
return
|
|
31
|
+
return NotiflyReactNativeSdk.trackEvent(eventName, eventParams, segmentationEventParamKeys);
|
|
36
32
|
}
|
|
37
33
|
export function setLogLevel(logLevel) {
|
|
38
34
|
// only implemented on Android
|
|
39
35
|
if (Platform.OS === 'android') {
|
|
40
|
-
return
|
|
36
|
+
return NotiflyReactNativeSdk.setLogLevel(logLevel);
|
|
37
|
+
} else {
|
|
38
|
+
console.error('[Notifly React Native SDK] setLogLevel is only supported on Android.');
|
|
41
39
|
}
|
|
42
40
|
return Promise.resolve();
|
|
43
41
|
}
|
|
44
|
-
|
|
45
|
-
/**
|
|
46
|
-
* @deprecated Since version 2.3.0.
|
|
47
|
-
*/
|
|
48
|
-
export function notiflyBackgroundHandler(_remoteMessage) {
|
|
49
|
-
console.warn('Warning: notifly.notiflyBackgroundHandler(remoteMessage) is deprecated and will be removed in the next major release. You do not need to call this method anymore. remoteMessage is now handled automatically.');
|
|
50
|
-
return Promise.resolve();
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
/**
|
|
54
|
-
* @deprecated Since version 2.3.0.
|
|
55
|
-
*/
|
|
56
|
-
export function setNotiflyBackgroundMessageHandler() {
|
|
57
|
-
console.warn('Warning: notifly.setNotiflyBackgroundMessageHandler() is deprecated and will be removed in the next major release. You do not need to call this method anymore. remoteMessage is now handled automatically.');
|
|
58
|
-
return Promise.resolve();
|
|
59
|
-
}
|
|
60
42
|
export function disableInAppMessage() {
|
|
61
|
-
return
|
|
43
|
+
return NotiflyReactNativeSdk.disableInAppMessage();
|
|
62
44
|
}
|
|
63
|
-
export function
|
|
64
|
-
if (
|
|
65
|
-
|
|
66
|
-
|
|
45
|
+
export function addNotificationClickListener(listener) {
|
|
46
|
+
if (eventReceiver) {
|
|
47
|
+
// only implemented on Android
|
|
48
|
+
eventReceiver.addEventListener(EventNames.NOTIFICATION_CLICKED, listener);
|
|
49
|
+
if (!isNativeNotificationClickListenerRegistered) {
|
|
50
|
+
NotiflyReactNativeSdk.addNotificationClickListener();
|
|
51
|
+
isNativeNotificationClickListenerRegistered = true;
|
|
52
|
+
}
|
|
53
|
+
} else {
|
|
54
|
+
console.error('[Notifly React Native SDK] addNotificationClickListener is only supported on Android.');
|
|
67
55
|
}
|
|
68
|
-
return
|
|
56
|
+
return Promise.resolve();
|
|
69
57
|
}
|
|
70
58
|
const notifly = {
|
|
71
59
|
initialize,
|
|
@@ -73,10 +61,8 @@ const notifly = {
|
|
|
73
61
|
setUserProperties,
|
|
74
62
|
trackEvent,
|
|
75
63
|
setLogLevel,
|
|
76
|
-
notiflyBackgroundHandler,
|
|
77
|
-
setNotiflyBackgroundMessageHandler,
|
|
78
64
|
disableInAppMessage,
|
|
79
|
-
|
|
65
|
+
addNotificationClickListener
|
|
80
66
|
};
|
|
81
67
|
export default notifly;
|
|
82
68
|
//# sourceMappingURL=index.js.map
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["NativeModules","Platform","LINKING_ERROR","select","ios","default","isTurboModuleEnabled","global","__turboModuleProxy","
|
|
1
|
+
{"version":3,"names":["NativeModules","Platform","EventReceiver","EventNames","LINKING_ERROR","select","ios","default","isTurboModuleEnabled","global","__turboModuleProxy","NotiflyReactNativeSdkModule","require","NotiflyReactNativeSdk","Proxy","get","Error","eventReceiver","OS","isNativeNotificationClickListenerRegistered","initialize","params","projectId","username","password","setUserId","userId","setUserProperties","properties","trackEvent","eventName","eventParams","arguments","length","undefined","segmentationEventParamKeys","setLogLevel","logLevel","console","error","Promise","resolve","disableInAppMessage","addNotificationClickListener","listener","addEventListener","NOTIFICATION_CLICKED","notifly"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../src","sources":["types/index.ts"],"mappings":"AAAA,cAAc,gBAAgB"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export let OSNotificationImportance = /*#__PURE__*/function (OSNotificationImportance) {
|
|
2
|
+
OSNotificationImportance[OSNotificationImportance["LOW"] = 0] = "LOW";
|
|
3
|
+
OSNotificationImportance[OSNotificationImportance["NORMAL"] = 1] = "NORMAL";
|
|
4
|
+
OSNotificationImportance[OSNotificationImportance["HIGH"] = 2] = "HIGH";
|
|
5
|
+
return OSNotificationImportance;
|
|
6
|
+
}({});
|
|
7
|
+
//# sourceMappingURL=notification.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["OSNotificationImportance"],"sourceRoot":"../../../src","sources":["types/notification.ts"],"mappings":"AAIA,WAAYA,wBAAwB,0BAAxBA,wBAAwB;EAAxBA,wBAAwB,CAAxBA,wBAAwB;EAAxBA,wBAAwB,CAAxBA,wBAAwB;EAAxBA,wBAAwB,CAAxBA,wBAAwB;EAAA,OAAxBA,wBAAwB;AAAA"}
|
|
@@ -1,17 +1,14 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type TurboModule } from 'react-native';
|
|
2
2
|
import { type UserProperties, type EventProperties } from './types';
|
|
3
3
|
export interface Spec extends TurboModule {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
setUserId(userId: string | undefined): Promise<void>;
|
|
4
|
+
initialize(projectId: string, username: string, password: string): Promise<void>;
|
|
5
|
+
setUserId(userId: string | null | undefined): Promise<void>;
|
|
7
6
|
setUserProperties(userProperties: UserProperties): Promise<void>;
|
|
8
7
|
trackEvent(eventName: string, eventParams: EventProperties | null | undefined, segmentationEventParamKeys: string[] | undefined | null): Promise<void>;
|
|
9
8
|
setLogLevel(logLevel: number): Promise<void>;
|
|
10
|
-
notiflyBackgroundHandler(_remoteMessage: any): Promise<void>;
|
|
11
|
-
setNotificationOpenedHandler(): Promise<void>;
|
|
12
9
|
disableInAppMessage(): Promise<void>;
|
|
13
|
-
|
|
10
|
+
addNotificationClickListener(): Promise<void>;
|
|
14
11
|
}
|
|
15
12
|
declare const _default: Spec;
|
|
16
13
|
export default _default;
|
|
17
|
-
//# sourceMappingURL=
|
|
14
|
+
//# sourceMappingURL=NativeNotiflyReactNativeSdk.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NativeNotiflyReactNativeSdk.d.ts","sourceRoot":"","sources":["../../src/NativeNotiflyReactNativeSdk.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAuB,MAAM,cAAc,CAAC;AACrE,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,eAAe,EAAE,MAAM,SAAS,CAAC;AAEpE,MAAM,WAAW,IAAK,SAAQ,WAAW;IACvC,UAAU,CACR,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC,CAAC;IACjB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5D,iBAAiB,CAAC,cAAc,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjE,UAAU,CACR,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,eAAe,GAAG,IAAI,GAAG,SAAS,EAC/C,0BAA0B,EAAE,MAAM,EAAE,GAAG,SAAS,GAAG,IAAI,GACtD,OAAO,CAAC,IAAI,CAAC,CAAC;IACjB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7C,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,4BAA4B,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/C;;AAED,wBAA+E"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,oBAAY,UAAU;IACpB,oBAAoB,gCAAgC;CACrD"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { type NativeModule } from 'react-native';
|
|
2
|
+
export default class EventReceiver {
|
|
3
|
+
private nativeNotiflySdk;
|
|
4
|
+
private notiflyEventEmitter;
|
|
5
|
+
private eventListenerArrayMap;
|
|
6
|
+
constructor(nativeNotiflySdk: NativeModule);
|
|
7
|
+
addEventListener<T>(eventName: string, handler: (event: T) => void): void;
|
|
8
|
+
removeEventListener<T>(eventName: string, handler: (event: T) => void): void;
|
|
9
|
+
private transformEventAccordingToType;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=EventReceiver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EventReceiver.d.ts","sourceRoot":"","sources":["../../../src/events/EventReceiver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;AAKrE,MAAM,CAAC,OAAO,OAAO,aAAa;IAChC,OAAO,CAAC,gBAAgB,CAAe;IACvC,OAAO,CAAC,mBAAmB,CAAqB;IAChD,OAAO,CAAC,qBAAqB,CAAgD;gBAEjE,gBAAgB,EAAE,YAAY;IAK1C,gBAAgB,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI;IAiBlE,mBAAmB,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI;IAUrE,OAAO,CAAC,6BAA6B;CAwBtC"}
|
|
@@ -1,30 +1,20 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export
|
|
3
|
-
export declare function initialize(
|
|
4
|
-
export declare function setUserId(userId: string | undefined): Promise<void>;
|
|
1
|
+
import type { InitializeParams, EventProperties, UserProperties, NotificationClickListener } from './types';
|
|
2
|
+
export type * from './types';
|
|
3
|
+
export declare function initialize(params: InitializeParams): Promise<void>;
|
|
4
|
+
export declare function setUserId(userId: string | null | undefined): Promise<void>;
|
|
5
5
|
export declare function setUserProperties(properties: UserProperties): Promise<void>;
|
|
6
6
|
export declare function trackEvent(eventName: string, eventParams?: EventProperties | null | undefined, segmentationEventParamKeys?: string[] | undefined | null): Promise<void>;
|
|
7
7
|
export declare function setLogLevel(logLevel: number): Promise<void>;
|
|
8
|
-
/**
|
|
9
|
-
* @deprecated Since version 2.3.0.
|
|
10
|
-
*/
|
|
11
|
-
export declare function notiflyBackgroundHandler(_remoteMessage: any): Promise<void>;
|
|
12
|
-
/**
|
|
13
|
-
* @deprecated Since version 2.3.0.
|
|
14
|
-
*/
|
|
15
|
-
export declare function setNotiflyBackgroundMessageHandler(): Promise<void>;
|
|
16
8
|
export declare function disableInAppMessage(): Promise<void>;
|
|
17
|
-
export declare function
|
|
9
|
+
export declare function addNotificationClickListener(listener: NotificationClickListener): Promise<void>;
|
|
18
10
|
declare const notifly: {
|
|
19
11
|
initialize: typeof initialize;
|
|
20
12
|
setUserId: typeof setUserId;
|
|
21
13
|
setUserProperties: typeof setUserProperties;
|
|
22
14
|
trackEvent: typeof trackEvent;
|
|
23
15
|
setLogLevel: typeof setLogLevel;
|
|
24
|
-
notiflyBackgroundHandler: typeof notiflyBackgroundHandler;
|
|
25
|
-
setNotiflyBackgroundMessageHandler: typeof setNotiflyBackgroundMessageHandler;
|
|
26
16
|
disableInAppMessage: typeof disableInAppMessage;
|
|
27
|
-
|
|
17
|
+
addNotificationClickListener: typeof addNotificationClickListener;
|
|
28
18
|
};
|
|
29
19
|
export default notifly;
|
|
30
20
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.tsx"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,yBAAyB,EAE1B,MAAM,SAAS,CAAC;AAIjB,mBAAmB,SAAS,CAAC;AAiC7B,wBAAgB,UAAU,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAMlE;AAED,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAE1E;AAED,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAE3E;AAED,wBAAgB,UAAU,CACxB,SAAS,EAAE,MAAM,EACjB,WAAW,GAAE,eAAe,GAAG,IAAI,GAAG,SAAqB,EAC3D,0BAA0B,GAAE,MAAM,EAAE,GAAG,SAAS,GAAG,IAAW,GAC7D,OAAO,CAAC,IAAI,CAAC,CAMf;AAED,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAU3D;AAED,wBAAgB,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC,CAEnD;AAED,wBAAgB,4BAA4B,CAC1C,QAAQ,EAAE,yBAAyB,GAClC,OAAO,CAAC,IAAI,CAAC,CAmBf;AAED,QAAA,MAAM,OAAO;;;;;;;;CAQZ,CAAC;AAEF,eAAe,OAAO,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export * from './notification';
|
|
2
|
+
export interface InitializeParams {
|
|
3
|
+
projectId: string;
|
|
4
|
+
username: string;
|
|
5
|
+
password: string;
|
|
6
|
+
}
|
|
7
|
+
export interface UserProperties {
|
|
8
|
+
[key: string]: any;
|
|
9
|
+
}
|
|
10
|
+
export interface EventProperties {
|
|
11
|
+
[key: string]: any;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAE/B,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export type NotificationClickListener = (event: OSNotificationClickEvent) => void;
|
|
2
|
+
export declare enum OSNotificationImportance {
|
|
3
|
+
LOW = 0,
|
|
4
|
+
NORMAL = 1,
|
|
5
|
+
HIGH = 2
|
|
6
|
+
}
|
|
7
|
+
export interface OSNotificationClickEvent {
|
|
8
|
+
notification: OSNotification;
|
|
9
|
+
}
|
|
10
|
+
export interface OSNotification {
|
|
11
|
+
notiflyMessageId?: string;
|
|
12
|
+
androidNotificationId?: number;
|
|
13
|
+
campaignId?: string;
|
|
14
|
+
title?: string;
|
|
15
|
+
body?: string;
|
|
16
|
+
importance?: OSNotificationImportance;
|
|
17
|
+
url?: string;
|
|
18
|
+
imageUrl?: string;
|
|
19
|
+
sentTime?: number;
|
|
20
|
+
ttl?: number;
|
|
21
|
+
customData?: {
|
|
22
|
+
[key: string]: any;
|
|
23
|
+
};
|
|
24
|
+
rawPayload?: {
|
|
25
|
+
[key: string]: any;
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=notification.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"notification.d.ts","sourceRoot":"","sources":["../../../src/types/notification.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,yBAAyB,GAAG,CACtC,KAAK,EAAE,wBAAwB,KAC5B,IAAI,CAAC;AAEV,oBAAY,wBAAwB;IAClC,GAAG,IAAI;IACP,MAAM,IAAI;IACV,IAAI,IAAI;CACT;AAED,MAAM,WAAW,wBAAwB;IACvC,YAAY,EAAE,cAAc,CAAC;CAC9B;AAED,MAAM,WAAW,cAAc;IAE7B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAE/B,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,UAAU,CAAC,EAAE,wBAAwB,CAAC;IAEtC,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb,UAAU,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAC;IAEpC,UAAU,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAC;CACrC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "notifly-sdk",
|
|
3
|
-
"version": "3.
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "3.2.0",
|
|
4
|
+
"description": "Notifly SDK for React Native",
|
|
5
5
|
"main": "lib/commonjs/index",
|
|
6
6
|
"module": "lib/module/index",
|
|
7
7
|
"types": "lib/typescript/index.d.ts",
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
"android"
|
|
43
43
|
],
|
|
44
44
|
"repository": "https://github.com/team-michael/notifly-react-native-sdk",
|
|
45
|
-
"author": "
|
|
45
|
+
"author": "Grey Box Inc.",
|
|
46
46
|
"license": "MIT",
|
|
47
47
|
"bugs": {
|
|
48
48
|
"url": "https://github.com/team-michael/notifly-react-native-sdk/issues"
|
|
@@ -71,7 +71,7 @@
|
|
|
71
71
|
"react-native": "0.71.8",
|
|
72
72
|
"react-native-builder-bob": "^0.20.4",
|
|
73
73
|
"release-it": "^15.0.0",
|
|
74
|
-
"typescript": "^5.
|
|
74
|
+
"typescript": "^5.4.2"
|
|
75
75
|
},
|
|
76
76
|
"resolutions": {
|
|
77
77
|
"@types/react": "17.0.21"
|
|
@@ -157,7 +157,7 @@
|
|
|
157
157
|
]
|
|
158
158
|
},
|
|
159
159
|
"codegenConfig": {
|
|
160
|
-
"name": "
|
|
160
|
+
"name": "RNNotiflyReactNativeSdkSpec",
|
|
161
161
|
"type": "modules",
|
|
162
162
|
"jsSrcsDir": "src"
|
|
163
163
|
}
|
|
@@ -1,16 +1,13 @@
|
|
|
1
|
-
import type
|
|
2
|
-
import { TurboModuleRegistry } from 'react-native';
|
|
1
|
+
import { type TurboModule, TurboModuleRegistry } from 'react-native';
|
|
3
2
|
import { type UserProperties, type EventProperties } from './types';
|
|
4
3
|
|
|
5
4
|
export interface Spec extends TurboModule {
|
|
6
|
-
multiply(a: number, b: number): Promise<number>;
|
|
7
5
|
initialize(
|
|
8
6
|
projectId: string,
|
|
9
7
|
username: string,
|
|
10
|
-
password: string
|
|
11
|
-
useCustomClickHandler: boolean | undefined
|
|
8
|
+
password: string
|
|
12
9
|
): Promise<void>;
|
|
13
|
-
setUserId(userId: string | undefined): Promise<void>;
|
|
10
|
+
setUserId(userId: string | null | undefined): Promise<void>;
|
|
14
11
|
setUserProperties(userProperties: UserProperties): Promise<void>;
|
|
15
12
|
trackEvent(
|
|
16
13
|
eventName: string,
|
|
@@ -18,10 +15,8 @@ export interface Spec extends TurboModule {
|
|
|
18
15
|
segmentationEventParamKeys: string[] | undefined | null
|
|
19
16
|
): Promise<void>;
|
|
20
17
|
setLogLevel(logLevel: number): Promise<void>;
|
|
21
|
-
notiflyBackgroundHandler(_remoteMessage: any): Promise<void>;
|
|
22
|
-
setNotificationOpenedHandler(): Promise<void>;
|
|
23
18
|
disableInAppMessage(): Promise<void>;
|
|
24
|
-
|
|
19
|
+
addNotificationClickListener(): Promise<void>;
|
|
25
20
|
}
|
|
26
21
|
|
|
27
|
-
export default TurboModuleRegistry.getEnforcing<Spec>('
|
|
22
|
+
export default TurboModuleRegistry.getEnforcing<Spec>('NotiflyReactNativeSdk');
|
package/src/constants.ts
ADDED
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { NativeEventEmitter, type NativeModule } from 'react-native';
|
|
2
|
+
import { EventNames } from '../constants';
|
|
3
|
+
|
|
4
|
+
type EventListener = (event: any) => void;
|
|
5
|
+
|
|
6
|
+
export default class EventReceiver {
|
|
7
|
+
private nativeNotiflySdk: NativeModule;
|
|
8
|
+
private notiflyEventEmitter: NativeEventEmitter;
|
|
9
|
+
private eventListenerArrayMap: Map<string, Array<EventListener>> = new Map();
|
|
10
|
+
|
|
11
|
+
constructor(nativeNotiflySdk: NativeModule) {
|
|
12
|
+
this.nativeNotiflySdk = nativeNotiflySdk;
|
|
13
|
+
this.notiflyEventEmitter = new NativeEventEmitter(this.nativeNotiflySdk);
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
addEventListener<T>(eventName: string, handler: (event: T) => void) {
|
|
17
|
+
const existings = this.eventListenerArrayMap.get(eventName);
|
|
18
|
+
if (existings && existings.length > 0) {
|
|
19
|
+
existings.push(handler);
|
|
20
|
+
} else {
|
|
21
|
+
this.eventListenerArrayMap.set(eventName, [handler]);
|
|
22
|
+
this.notiflyEventEmitter.addListener(eventName, (event) => {
|
|
23
|
+
const listeners = this.eventListenerArrayMap.get(eventName);
|
|
24
|
+
if (listeners) {
|
|
25
|
+
listeners.forEach((listener) =>
|
|
26
|
+
listener(this.transformEventAccordingToType(eventName, event))
|
|
27
|
+
);
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
removeEventListener<T>(eventName: string, handler: (event: T) => void) {
|
|
34
|
+
const existings = this.eventListenerArrayMap.get(eventName);
|
|
35
|
+
if (existings) {
|
|
36
|
+
const index = existings.indexOf(handler);
|
|
37
|
+
if (index !== -1) {
|
|
38
|
+
existings.splice(index, 1);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
private transformEventAccordingToType(eventName: string, payload: any) {
|
|
44
|
+
if (eventName === EventNames.NOTIFICATION_CLICKED) {
|
|
45
|
+
// Transform rawPayload as Object as it is stringified in native code
|
|
46
|
+
const raw = payload?.notification?.rawPayload;
|
|
47
|
+
try {
|
|
48
|
+
return raw && typeof raw === 'string'
|
|
49
|
+
? {
|
|
50
|
+
...payload,
|
|
51
|
+
notification: {
|
|
52
|
+
...payload.notification,
|
|
53
|
+
rawPayload: JSON.parse(raw),
|
|
54
|
+
},
|
|
55
|
+
}
|
|
56
|
+
: payload;
|
|
57
|
+
} catch (e) {
|
|
58
|
+
console.error(
|
|
59
|
+
'[Notifly React Native SDK] Error while parsing rawPayload. Payload will be returned as is.'
|
|
60
|
+
);
|
|
61
|
+
return payload;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
return payload;
|
|
66
|
+
}
|
|
67
|
+
}
|