react-native-marketap-sdk 0.1.0-beta.2 → 0.1.0-beta.3
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/src/main/java/com/marketapsdk/MarketapSdkModule.kt +60 -3
- package/ios/MarketapSdk.m +9 -0
- package/ios/MarketapSdk.swift +46 -5
- package/lib/commonjs/MarketapWebBridge.js +82 -0
- package/lib/commonjs/MarketapWebBridge.js.map +1 -0
- package/lib/commonjs/NativeMarketapSdk.js.map +1 -1
- package/lib/commonjs/index.js +97 -31
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/types.js +5 -5
- package/lib/commonjs/version.js +9 -0
- package/lib/commonjs/version.js.map +1 -0
- package/lib/module/MarketapWebBridge.js +76 -0
- package/lib/module/MarketapWebBridge.js.map +1 -0
- package/lib/module/NativeMarketapSdk.js.map +1 -1
- package/lib/module/index.js +87 -30
- package/lib/module/index.js.map +1 -1
- package/lib/module/types.js.map +0 -1
- package/lib/module/version.js +3 -0
- package/lib/module/version.js.map +1 -0
- package/lib/typescript/MarketapWebBridge.d.ts +13 -0
- package/lib/typescript/MarketapWebBridge.d.ts.map +1 -0
- package/lib/typescript/{src/NativeMarketapSdk.d.ts → NativeMarketapSdk.d.ts} +1 -0
- package/lib/typescript/NativeMarketapSdk.d.ts.map +1 -0
- package/lib/typescript/{src/index.d.ts → index.d.ts} +11 -2
- package/lib/typescript/index.d.ts.map +1 -0
- package/lib/typescript/{src/types.d.ts → types.d.ts} +1 -0
- package/lib/typescript/types.d.ts.map +1 -0
- package/lib/typescript/version.d.ts +2 -0
- package/lib/typescript/version.d.ts.map +1 -0
- package/package.json +19 -11
- package/lib/typescript/MarketapSDKExample/App.d.ts +0 -4
- package/lib/typescript/MarketapSDKExample/App.d.ts.map +0 -1
- package/lib/typescript/src/NativeMarketapSdk.d.ts.map +0 -1
- package/lib/typescript/src/index.d.ts.map +0 -1
- package/lib/typescript/src/types.d.ts.map +0 -1
- package/src/NativeMarketapSdk.js +0 -2
- package/src/NativeMarketapSdk.ts +0 -43
- package/src/index.js +0 -105
- package/src/index.tsx +0 -172
- package/src/types.js +0 -5
- package/src/types.ts +0 -47
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
package com.marketapsdk
|
|
2
2
|
|
|
3
|
+
import android.app.ActivityManager
|
|
3
4
|
import android.app.Application
|
|
5
|
+
import android.content.Context
|
|
4
6
|
import com.facebook.react.bridge.Promise
|
|
5
7
|
import com.facebook.react.bridge.ReactApplicationContext
|
|
6
8
|
import com.facebook.react.bridge.ReactContextBaseJavaModule
|
|
@@ -20,9 +22,13 @@ class MarketapSdkModule(reactContext: ReactApplicationContext) :
|
|
|
20
22
|
companion object {
|
|
21
23
|
const val NAME = "MarketapSdk"
|
|
22
24
|
private const val CLICK_EVENT = "MarketapClickEvent"
|
|
25
|
+
|
|
26
|
+
private var pendingClickEvent: WritableMap? = null
|
|
23
27
|
}
|
|
24
28
|
|
|
25
29
|
private var hasListeners = false
|
|
30
|
+
private var isInitialized = false
|
|
31
|
+
private var initializedProjectId: String? = null
|
|
26
32
|
|
|
27
33
|
override fun getName(): String {
|
|
28
34
|
return NAME
|
|
@@ -31,15 +37,38 @@ class MarketapSdkModule(reactContext: ReactApplicationContext) :
|
|
|
31
37
|
@ReactMethod
|
|
32
38
|
fun initialize(projectId: String, promise: Promise) {
|
|
33
39
|
try {
|
|
40
|
+
if (!isMainProcess()) {
|
|
41
|
+
promise.resolve(null)
|
|
42
|
+
return
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
if (isInitialized) {
|
|
46
|
+
if (initializedProjectId == projectId) {
|
|
47
|
+
promise.resolve(null)
|
|
48
|
+
return
|
|
49
|
+
} else {
|
|
50
|
+
android.util.Log.w(NAME, "Already initialized with projectId '$initializedProjectId'. Ignoring re-initialization with '$projectId'.")
|
|
51
|
+
promise.resolve(null)
|
|
52
|
+
return
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
|
|
34
56
|
// Initialize MarketapSDK with projectId
|
|
35
57
|
val application = reactApplicationContext.applicationContext as Application
|
|
36
58
|
CurrentActivityHolder.applyToApplication(application)
|
|
37
59
|
Marketap.initialize(application, projectId)
|
|
60
|
+
isInitialized = true
|
|
61
|
+
initializedProjectId = projectId
|
|
38
62
|
promise.resolve(null)
|
|
39
63
|
} catch (e: Exception) {
|
|
40
64
|
promise.reject("INITIALIZATION_ERROR", e.message, e)
|
|
41
65
|
}
|
|
42
66
|
}
|
|
67
|
+
|
|
68
|
+
private fun isMainProcess(): Boolean {
|
|
69
|
+
val am = reactApplicationContext.getSystemService(Context.ACTIVITY_SERVICE) as ActivityManager
|
|
70
|
+
return am.runningAppProcesses?.find { it.pid == android.os.Process.myPid() }?.processName == reactApplicationContext.packageName
|
|
71
|
+
}
|
|
43
72
|
|
|
44
73
|
@ReactMethod
|
|
45
74
|
fun signup(
|
|
@@ -159,10 +188,22 @@ class MarketapSdkModule(reactContext: ReactApplicationContext) :
|
|
|
159
188
|
@ReactMethod
|
|
160
189
|
fun setClickHandler(promise: Promise) {
|
|
161
190
|
try {
|
|
162
|
-
// Set up click handler to emit events to React Native
|
|
163
191
|
Marketap.setClickHandler { event ->
|
|
164
|
-
|
|
192
|
+
val clickData = convertClickEventToMap(event)
|
|
193
|
+
|
|
194
|
+
if (hasListeners) {
|
|
195
|
+
sendEvent(CLICK_EVENT, clickData)
|
|
196
|
+
pendingClickEvent = null
|
|
197
|
+
} else {
|
|
198
|
+
pendingClickEvent = clickData
|
|
199
|
+
}
|
|
165
200
|
}
|
|
201
|
+
|
|
202
|
+
pendingClickEvent?.let { pendingEvent ->
|
|
203
|
+
sendEvent(CLICK_EVENT, pendingEvent)
|
|
204
|
+
pendingClickEvent = null
|
|
205
|
+
}
|
|
206
|
+
|
|
166
207
|
promise.resolve(null)
|
|
167
208
|
} catch (e: Exception) {
|
|
168
209
|
promise.reject("SET_CLICK_HANDLER_ERROR", e.message, e)
|
|
@@ -192,6 +233,21 @@ class MarketapSdkModule(reactContext: ReactApplicationContext) :
|
|
|
192
233
|
promise.reject("PUSH_TOKEN_ERROR", e.message, e)
|
|
193
234
|
}
|
|
194
235
|
}
|
|
236
|
+
|
|
237
|
+
@ReactMethod
|
|
238
|
+
fun getInitialNotification(promise: Promise) {
|
|
239
|
+
try {
|
|
240
|
+
val pendingEvent = pendingClickEvent
|
|
241
|
+
if (pendingEvent != null) {
|
|
242
|
+
pendingClickEvent = null
|
|
243
|
+
promise.resolve(pendingEvent)
|
|
244
|
+
} else {
|
|
245
|
+
promise.resolve(null)
|
|
246
|
+
}
|
|
247
|
+
} catch (e: Exception) {
|
|
248
|
+
promise.reject("GET_INITIAL_NOTIFICATION_ERROR", e.message, e)
|
|
249
|
+
}
|
|
250
|
+
}
|
|
195
251
|
|
|
196
252
|
@ReactMethod
|
|
197
253
|
fun addListener(eventName: String) {
|
|
@@ -235,4 +291,5 @@ class MarketapSdkModule(reactContext: ReactApplicationContext) :
|
|
|
235
291
|
override fun onHostDestroy() {
|
|
236
292
|
// Handle app destroy
|
|
237
293
|
}
|
|
238
|
-
}
|
|
294
|
+
}
|
|
295
|
+
|
package/ios/MarketapSdk.m
CHANGED
|
@@ -1,7 +1,13 @@
|
|
|
1
1
|
#import <React/RCTBridgeModule.h>
|
|
2
|
+
#import <React/RCTEventEmitter.h>
|
|
2
3
|
|
|
3
4
|
@interface RCT_EXTERN_MODULE(MarketapSdk, RCTEventEmitter)
|
|
4
5
|
|
|
6
|
+
+ (BOOL)requiresMainQueueSetup
|
|
7
|
+
{
|
|
8
|
+
return YES;
|
|
9
|
+
}
|
|
10
|
+
|
|
5
11
|
RCT_EXTERN_METHOD(initialize:(NSString *)projectId
|
|
6
12
|
withResolver:(RCTPromiseResolveBlock)resolve
|
|
7
13
|
withRejecter:(RCTPromiseRejectBlock)reject)
|
|
@@ -61,4 +67,7 @@ RCT_EXTERN_METHOD(setPushToken:(NSString *)token
|
|
|
61
67
|
withResolver:(RCTPromiseResolveBlock)resolve
|
|
62
68
|
withRejecter:(RCTPromiseRejectBlock)reject)
|
|
63
69
|
|
|
70
|
+
RCT_EXTERN_METHOD(getInitialNotification:(RCTPromiseResolveBlock)resolve
|
|
71
|
+
withRejecter:(RCTPromiseRejectBlock)reject)
|
|
72
|
+
|
|
64
73
|
@end
|
package/ios/MarketapSdk.swift
CHANGED
|
@@ -23,6 +23,10 @@ extension Data {
|
|
|
23
23
|
@objc(MarketapSdk)
|
|
24
24
|
class MarketapSdk: RCTEventEmitter {
|
|
25
25
|
private var hasListeners = false
|
|
26
|
+
private var isInitialized = false
|
|
27
|
+
private var initializedProjectId: String?
|
|
28
|
+
|
|
29
|
+
private static var pendingClickEvent: [String: Any]? = nil
|
|
26
30
|
|
|
27
31
|
override init() {
|
|
28
32
|
super.init()
|
|
@@ -48,8 +52,21 @@ class MarketapSdk: RCTEventEmitter {
|
|
|
48
52
|
@objc
|
|
49
53
|
func initialize(_ projectId: String, withResolver resolve: @escaping RCTPromiseResolveBlock, withRejecter reject: @escaping RCTPromiseRejectBlock) {
|
|
50
54
|
do {
|
|
55
|
+
if isInitialized {
|
|
56
|
+
if initializedProjectId == projectId {
|
|
57
|
+
resolve(nil)
|
|
58
|
+
return
|
|
59
|
+
} else {
|
|
60
|
+
print("[MarketapSDK] Already initialized with projectId '\(initializedProjectId ?? "unknown")'. Ignoring re-initialization with '\(projectId)'.")
|
|
61
|
+
resolve(nil)
|
|
62
|
+
return
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
|
|
51
66
|
// Initialize MarketapSDK
|
|
52
67
|
Marketap.initialize(projectId: projectId)
|
|
68
|
+
isInitialized = true
|
|
69
|
+
initializedProjectId = projectId
|
|
53
70
|
resolve(nil)
|
|
54
71
|
} catch {
|
|
55
72
|
reject("INITIALIZATION_ERROR", error.localizedDescription, error)
|
|
@@ -158,10 +175,7 @@ class MarketapSdk: RCTEventEmitter {
|
|
|
158
175
|
@objc
|
|
159
176
|
func setClickHandler(_ resolve: @escaping RCTPromiseResolveBlock, withRejecter reject: @escaping RCTPromiseRejectBlock) {
|
|
160
177
|
do {
|
|
161
|
-
// Set up click handler
|
|
162
178
|
Marketap.setClickHandler { [weak self] event in
|
|
163
|
-
guard let self = self, self.hasListeners else { return }
|
|
164
|
-
|
|
165
179
|
let campaignType: String = {
|
|
166
180
|
switch event.campaignType {
|
|
167
181
|
case .push: return "push"
|
|
@@ -170,12 +184,25 @@ class MarketapSdk: RCTEventEmitter {
|
|
|
170
184
|
}
|
|
171
185
|
}()
|
|
172
186
|
|
|
173
|
-
|
|
187
|
+
let clickData: [String: Any] = [
|
|
174
188
|
"campaignType": campaignType,
|
|
175
189
|
"campaignId": event.campaignId,
|
|
176
190
|
"url": event.url ?? NSNull()
|
|
177
|
-
]
|
|
191
|
+
]
|
|
192
|
+
|
|
193
|
+
if let self = self, self.hasListeners {
|
|
194
|
+
self.sendEvent(withName: "MarketapClickEvent", body: clickData)
|
|
195
|
+
Self.pendingClickEvent = nil
|
|
196
|
+
} else {
|
|
197
|
+
Self.pendingClickEvent = clickData
|
|
198
|
+
}
|
|
178
199
|
}
|
|
200
|
+
|
|
201
|
+
if let pendingEvent = Self.pendingClickEvent {
|
|
202
|
+
self.sendEvent(withName: "MarketapClickEvent", body: pendingEvent)
|
|
203
|
+
Self.pendingClickEvent = nil
|
|
204
|
+
}
|
|
205
|
+
|
|
179
206
|
resolve(nil)
|
|
180
207
|
} catch {
|
|
181
208
|
reject("SET_CLICK_HANDLER_ERROR", error.localizedDescription, error)
|
|
@@ -205,4 +232,18 @@ class MarketapSdk: RCTEventEmitter {
|
|
|
205
232
|
reject("PUSH_TOKEN_ERROR", error.localizedDescription, error)
|
|
206
233
|
}
|
|
207
234
|
}
|
|
235
|
+
|
|
236
|
+
@objc
|
|
237
|
+
func getInitialNotification(_ resolve: @escaping RCTPromiseResolveBlock, withRejecter reject: @escaping RCTPromiseRejectBlock) {
|
|
238
|
+
do {
|
|
239
|
+
if let pendingEvent = Self.pendingClickEvent {
|
|
240
|
+
Self.pendingClickEvent = nil
|
|
241
|
+
resolve(pendingEvent)
|
|
242
|
+
} else {
|
|
243
|
+
resolve(NSNull())
|
|
244
|
+
}
|
|
245
|
+
} catch {
|
|
246
|
+
reject("GET_INITIAL_NOTIFICATION_ERROR", error.localizedDescription, error)
|
|
247
|
+
}
|
|
248
|
+
}
|
|
208
249
|
}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _reactNative = require("react-native");
|
|
8
|
+
var _version = require("./version");
|
|
9
|
+
class MarketapWebBridgeClass {
|
|
10
|
+
injectJavaScriptFunction = null;
|
|
11
|
+
setInjectJavaScriptFunction(fn) {
|
|
12
|
+
this.injectJavaScriptFunction = fn;
|
|
13
|
+
}
|
|
14
|
+
getInjectJavaScriptFunction() {
|
|
15
|
+
if (!this.injectJavaScriptFunction) {
|
|
16
|
+
throw new Error('[MarketapWebBridge] injectJavaScriptFunction is not set. ' + 'Call MarketapWebBridge.setInjectJavaScriptFunction() before using the bridge.');
|
|
17
|
+
}
|
|
18
|
+
return this.injectJavaScriptFunction;
|
|
19
|
+
}
|
|
20
|
+
handleMessage(message) {
|
|
21
|
+
let data;
|
|
22
|
+
try {
|
|
23
|
+
data = JSON.parse(message);
|
|
24
|
+
} catch (error) {
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
const type = data?.type;
|
|
28
|
+
if (!type) {
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
const params = data.params || {};
|
|
32
|
+
const Marketap = require('./index').default;
|
|
33
|
+
console.log(`[MarketapWebBridgeClass] ${type}: ${JSON.stringify(params)}`);
|
|
34
|
+
switch (type) {
|
|
35
|
+
case 'track':
|
|
36
|
+
this.handleTrack(Marketap, params);
|
|
37
|
+
break;
|
|
38
|
+
case 'identify':
|
|
39
|
+
this.handleIdentify(Marketap, params);
|
|
40
|
+
break;
|
|
41
|
+
case 'resetIdentity':
|
|
42
|
+
Marketap.resetIdentity();
|
|
43
|
+
break;
|
|
44
|
+
case 'marketapBridgeCheck':
|
|
45
|
+
this.handleBridgeCheck();
|
|
46
|
+
break;
|
|
47
|
+
default:
|
|
48
|
+
console.warn(`[MarketapWebBridge] Unknown event type: '${String(type)}'`);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
handleTrack(Marketap, params) {
|
|
52
|
+
const eventName = params.eventName;
|
|
53
|
+
const eventProperties = params.eventProperties;
|
|
54
|
+
if (eventName) {
|
|
55
|
+
Marketap.track(eventName, eventProperties);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
handleIdentify(Marketap, params) {
|
|
59
|
+
const userId = params.userId;
|
|
60
|
+
const userProperties = params.userProperties;
|
|
61
|
+
if (userId) {
|
|
62
|
+
Marketap.identify(userId, userProperties);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
handleBridgeCheck() {
|
|
66
|
+
const injectJavaScriptFunction = this.getInjectJavaScriptFunction();
|
|
67
|
+
const script = `
|
|
68
|
+
window.postMessage({
|
|
69
|
+
type: 'marketapBridgeAck',
|
|
70
|
+
metadata: {
|
|
71
|
+
sdk_type: 'react_native',
|
|
72
|
+
sdk_version: '${_version.SDK_VERSION}',
|
|
73
|
+
platform: '${_reactNative.Platform.OS}'
|
|
74
|
+
}
|
|
75
|
+
}, '*');
|
|
76
|
+
`;
|
|
77
|
+
injectJavaScriptFunction(script);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
const MarketapWebBridge = new MarketapWebBridgeClass();
|
|
81
|
+
var _default = exports.default = MarketapWebBridge;
|
|
82
|
+
//# sourceMappingURL=MarketapWebBridge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_version","MarketapWebBridgeClass","injectJavaScriptFunction","setInjectJavaScriptFunction","fn","getInjectJavaScriptFunction","Error","handleMessage","message","data","JSON","parse","error","type","params","Marketap","default","console","log","stringify","handleTrack","handleIdentify","resetIdentity","handleBridgeCheck","warn","String","eventName","eventProperties","track","userId","userProperties","identify","script","SDK_VERSION","Platform","OS","MarketapWebBridge","_default","exports"],"sourceRoot":"../../src","sources":["MarketapWebBridge.ts"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AAeA,MAAME,sBAAsB,CAAC;EACnBC,wBAAwB,GAAoC,IAAI;EAExEC,2BAA2BA,CAACC,EAA4B,EAAQ;IAC9D,IAAI,CAACF,wBAAwB,GAAGE,EAAE;EACpC;EAEQC,2BAA2BA,CAAA,EAA6B;IAC9D,IAAI,CAAC,IAAI,CAACH,wBAAwB,EAAE;MAClC,MAAM,IAAII,KAAK,CACb,2DAA2D,GACzD,+EACJ,CAAC;IACH;IACA,OAAO,IAAI,CAACJ,wBAAwB;EACtC;EAEAK,aAAaA,CAACC,OAAe,EAAQ;IACnC,IAAIC,IAA8B;IAElC,IAAI;MACFA,IAAI,GAAGC,IAAI,CAACC,KAAK,CAACH,OAAO,CAAC;IAC5B,CAAC,CAAC,OAAOI,KAAK,EAAE;MACd;IACF;IAEA,MAAMC,IAAI,GAAGJ,IAAI,EAAEI,IAA8C;IAEjE,IAAI,CAACA,IAAI,EAAE;MACT;IACF;IAEA,MAAMC,MAAM,GAAGL,IAAI,CAACK,MAAM,IAAI,CAAC,CAAC;IAEhC,MAAMC,QAAQ,GAAGhB,OAAO,CAAC,SAAS,CAAC,CAACiB,OAAO;IAC3CC,OAAO,CAACC,GAAG,CAAC,4BAA4BL,IAAI,KAAKH,IAAI,CAACS,SAAS,CAACL,MAAM,CAAC,EAAE,CAAC;IAC1E,QAAQD,IAAI;MACV,KAAK,OAAO;QACV,IAAI,CAACO,WAAW,CAACL,QAAQ,EAAED,MAAM,CAAC;QAClC;MAEF,KAAK,UAAU;QACb,IAAI,CAACO,cAAc,CAACN,QAAQ,EAAED,MAAM,CAAC;QACrC;MAEF,KAAK,eAAe;QAClBC,QAAQ,CAACO,aAAa,CAAC,CAAC;QACxB;MAEF,KAAK,qBAAqB;QACxB,IAAI,CAACC,iBAAiB,CAAC,CAAC;QACxB;MAEF;QACEN,OAAO,CAACO,IAAI,CACV,4CAA4CC,MAAM,CAACZ,IAAI,CAAC,GAC1D,CAAC;IACL;EACF;EAEQO,WAAWA,CAACL,QAAa,EAAED,MAA2B,EAAQ;IACpE,MAAMY,SAAS,GAAGZ,MAAM,CAACY,SAA+B;IACxD,MAAMC,eAAe,GAAGb,MAAM,CAACa,eAElB;IAEb,IAAID,SAAS,EAAE;MACbX,QAAQ,CAACa,KAAK,CAACF,SAAS,EAAEC,eAAe,CAAC;IAC5C;EACF;EAEQN,cAAcA,CAACN,QAAa,EAAED,MAA2B,EAAQ;IACvE,MAAMe,MAAM,GAAGf,MAAM,CAACe,MAA4B;IAClD,MAAMC,cAAc,GAAGhB,MAAM,CAACgB,cAEjB;IAEb,IAAID,MAAM,EAAE;MACVd,QAAQ,CAACgB,QAAQ,CAACF,MAAM,EAAEC,cAAc,CAAC;IAC3C;EACF;EAEQP,iBAAiBA,CAAA,EAAS;IAChC,MAAMrB,wBAAwB,GAAG,IAAI,CAACG,2BAA2B,CAAC,CAAC;IAEnE,MAAM2B,MAAM,GAAG;AACnB;AACA;AACA;AACA;AACA,0BAA0BC,oBAAW;AACrC,uBAAuBC,qBAAQ,CAACC,EAAE;AAClC;AACA;AACA,KAAK;IAEDjC,wBAAwB,CAAC8B,MAAM,CAAC;EAClC;AACF;AAEA,MAAMI,iBAAiB,GAAG,IAAInC,sBAAsB,CAAC,CAAC;AAAC,IAAAoC,QAAA,GAAAC,OAAA,CAAAtB,OAAA,GAExCoB,iBAAiB","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","_default","exports","default","TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../src","sources":["NativeMarketapSdk.
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_default","exports","default","TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../src","sources":["NativeMarketapSdk.ts"],"mappings":";;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AAAmD,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GA0CpCC,gCAAmB,CAACC,YAAY,CAAO,aAAa,CAAC","ignoreList":[]}
|
package/lib/commonjs/index.js
CHANGED
|
@@ -3,7 +3,15 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
var _exportNames = {
|
|
6
|
+
var _exportNames = {
|
|
7
|
+
MarketapWebBridge: true
|
|
8
|
+
};
|
|
9
|
+
Object.defineProperty(exports, "MarketapWebBridge", {
|
|
10
|
+
enumerable: true,
|
|
11
|
+
get: function () {
|
|
12
|
+
return _MarketapWebBridge.default;
|
|
13
|
+
}
|
|
14
|
+
});
|
|
7
15
|
exports.default = void 0;
|
|
8
16
|
var _reactNative = require("react-native");
|
|
9
17
|
var _types = require("./types");
|
|
@@ -18,6 +26,8 @@ Object.keys(_types).forEach(function (key) {
|
|
|
18
26
|
}
|
|
19
27
|
});
|
|
20
28
|
});
|
|
29
|
+
var _MarketapWebBridge = _interopRequireDefault(require("./MarketapWebBridge"));
|
|
30
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
21
31
|
const LINKING_ERROR = `The package 'react-native-marketap-sdk' doesn't seem to be linked. Make sure: \n\n` + _reactNative.Platform.select({
|
|
22
32
|
ios: "- You have run 'cd ios && pod install'\n",
|
|
23
33
|
default: ''
|
|
@@ -36,55 +46,106 @@ const MarketapSdk = MarketapSdkModule ? MarketapSdkModule : new Proxy({}, {
|
|
|
36
46
|
const eventEmitter = new _reactNative.NativeEventEmitter(MarketapSdk);
|
|
37
47
|
class MarketapSDK {
|
|
38
48
|
isInitialized = false;
|
|
49
|
+
hasSetupListeners = false;
|
|
50
|
+
pendingCalls = [];
|
|
51
|
+
initializationPromise = null;
|
|
52
|
+
initializedProjectId = null;
|
|
39
53
|
constructor() {
|
|
40
54
|
this.setupEventListeners();
|
|
41
55
|
}
|
|
42
56
|
setupEventListeners() {
|
|
43
|
-
|
|
57
|
+
if (this.hasSetupListeners) {
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
this.hasSetupListeners = true;
|
|
61
|
+
this.eventListenerSubscription = eventEmitter.addListener('MarketapClickEvent', event => {
|
|
44
62
|
if (this.clickHandler) {
|
|
45
63
|
this.clickHandler(event);
|
|
46
64
|
}
|
|
47
65
|
});
|
|
48
66
|
}
|
|
67
|
+
cleanup() {
|
|
68
|
+
if (this.eventListenerSubscription) {
|
|
69
|
+
this.eventListenerSubscription.remove();
|
|
70
|
+
this.eventListenerSubscription = null;
|
|
71
|
+
}
|
|
72
|
+
this.hasSetupListeners = false;
|
|
73
|
+
this.pendingCalls = [];
|
|
74
|
+
}
|
|
49
75
|
async initialize(projectId) {
|
|
50
|
-
|
|
51
|
-
|
|
76
|
+
if (this.initializationPromise) {
|
|
77
|
+
if (this.initializedProjectId === projectId) {
|
|
78
|
+
return this.initializationPromise;
|
|
79
|
+
} else {
|
|
80
|
+
console.warn(`MarketapSDK already initialized with projectId '${this.initializedProjectId}'. ` + `Ignoring re-initialization with '${projectId}'.`);
|
|
81
|
+
return this.initializationPromise;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
this.initializedProjectId = projectId;
|
|
85
|
+
this.initializationPromise = this.performInitialization(projectId);
|
|
86
|
+
return this.initializationPromise;
|
|
87
|
+
}
|
|
88
|
+
async performInitialization(projectId) {
|
|
89
|
+
try {
|
|
90
|
+
await MarketapSdk.initialize(projectId);
|
|
91
|
+
this.isInitialized = true;
|
|
92
|
+
const callsToExecute = [...this.pendingCalls];
|
|
93
|
+
this.pendingCalls = [];
|
|
94
|
+
for (const call of callsToExecute) {
|
|
95
|
+
try {
|
|
96
|
+
await call();
|
|
97
|
+
} catch (error) {
|
|
98
|
+
console.error('Failed to execute pending SDK call:', error);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
} catch (error) {
|
|
102
|
+
this.initializationPromise = null;
|
|
103
|
+
this.initializedProjectId = null;
|
|
104
|
+
this.isInitialized = false;
|
|
105
|
+
throw error;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
async executeAfterInit(fn) {
|
|
109
|
+
if (this.isInitialized) {
|
|
110
|
+
return fn();
|
|
111
|
+
}
|
|
112
|
+
return new Promise((resolve, reject) => {
|
|
113
|
+
this.pendingCalls.push(async () => {
|
|
114
|
+
try {
|
|
115
|
+
const result = await fn();
|
|
116
|
+
resolve(result);
|
|
117
|
+
} catch (error) {
|
|
118
|
+
reject(error);
|
|
119
|
+
}
|
|
120
|
+
});
|
|
121
|
+
});
|
|
52
122
|
}
|
|
53
123
|
async signup(params) {
|
|
54
|
-
this.
|
|
55
|
-
return MarketapSdk.signup(params.userId, params.userProperties, params.eventProperties, params.persistUser);
|
|
124
|
+
return this.executeAfterInit(() => MarketapSdk.signup(params.userId, params.userProperties, params.eventProperties, params.persistUser));
|
|
56
125
|
}
|
|
57
126
|
async login(params) {
|
|
58
|
-
this.
|
|
59
|
-
return MarketapSdk.login(params.userId, params.userProperties, params.eventProperties);
|
|
127
|
+
return this.executeAfterInit(() => MarketapSdk.login(params.userId, params.userProperties, params.eventProperties));
|
|
60
128
|
}
|
|
61
129
|
async logout(eventProperties) {
|
|
62
|
-
this.
|
|
63
|
-
return MarketapSdk.logout(eventProperties);
|
|
130
|
+
return this.executeAfterInit(() => MarketapSdk.logout(eventProperties));
|
|
64
131
|
}
|
|
65
132
|
async track(eventName, eventProperties) {
|
|
66
|
-
this.
|
|
67
|
-
return MarketapSdk.track(eventName, eventProperties);
|
|
133
|
+
return this.executeAfterInit(() => MarketapSdk.track(eventName, eventProperties));
|
|
68
134
|
}
|
|
69
135
|
async trackPurchase(revenue, eventProperties) {
|
|
70
|
-
this.
|
|
71
|
-
return MarketapSdk.trackPurchase(revenue, eventProperties);
|
|
136
|
+
return this.executeAfterInit(() => MarketapSdk.trackPurchase(revenue, eventProperties));
|
|
72
137
|
}
|
|
73
138
|
async trackRevenue(eventName, revenue, eventProperties) {
|
|
74
|
-
this.
|
|
75
|
-
return MarketapSdk.trackRevenue(eventName, revenue, eventProperties);
|
|
139
|
+
return this.executeAfterInit(() => MarketapSdk.trackRevenue(eventName, revenue, eventProperties));
|
|
76
140
|
}
|
|
77
141
|
async trackPageView(eventProperties) {
|
|
78
|
-
this.
|
|
79
|
-
return MarketapSdk.trackPageView(eventProperties);
|
|
142
|
+
return this.executeAfterInit(() => MarketapSdk.trackPageView(eventProperties));
|
|
80
143
|
}
|
|
81
144
|
async identify(userId, userProperties) {
|
|
82
|
-
this.
|
|
83
|
-
return MarketapSdk.identify(userId, userProperties);
|
|
145
|
+
return this.executeAfterInit(() => MarketapSdk.identify(userId, userProperties));
|
|
84
146
|
}
|
|
85
147
|
async resetIdentity() {
|
|
86
|
-
this.
|
|
87
|
-
return MarketapSdk.resetIdentity();
|
|
148
|
+
return this.executeAfterInit(() => MarketapSdk.resetIdentity());
|
|
88
149
|
}
|
|
89
150
|
async setClickHandler(handler) {
|
|
90
151
|
this.clickHandler = handler;
|
|
@@ -94,16 +155,21 @@ class MarketapSDK {
|
|
|
94
155
|
return MarketapSdk.requestAuthorizationForPushNotifications();
|
|
95
156
|
}
|
|
96
157
|
async setPushToken(token) {
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
158
|
+
// Fix Blocker: checkInitialized() 전면 제거 - 안전한 executeAfterInit 사용
|
|
159
|
+
return this.executeAfterInit(async () => {
|
|
160
|
+
if (_reactNative.Platform.OS === 'android') {
|
|
161
|
+
console.warn('setPushToken is not needed on Android - MarketapFirebaseMessagingService handles push notifications automatically');
|
|
162
|
+
return;
|
|
163
|
+
}
|
|
164
|
+
return MarketapSdk.setPushToken(token);
|
|
165
|
+
});
|
|
103
166
|
}
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
167
|
+
async getInitialNotification() {
|
|
168
|
+
try {
|
|
169
|
+
return await MarketapSdk.getInitialNotification();
|
|
170
|
+
} catch (error) {
|
|
171
|
+
console.error('Failed to get initial notification:', error);
|
|
172
|
+
return null;
|
|
107
173
|
}
|
|
108
174
|
}
|
|
109
175
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","_types","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","LINKING_ERROR","Platform","select","ios","
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_types","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_MarketapWebBridge","_interopRequireDefault","e","__esModule","default","LINKING_ERROR","Platform","select","ios","MarketapSdkModule","NativeModules","MarketapSdk","Error","OS","Proxy","eventEmitter","NativeEventEmitter","MarketapSDK","isInitialized","hasSetupListeners","pendingCalls","initializationPromise","initializedProjectId","constructor","setupEventListeners","eventListenerSubscription","addListener","event","clickHandler","cleanup","remove","initialize","projectId","console","warn","performInitialization","callsToExecute","error","executeAfterInit","fn","Promise","resolve","reject","push","result","signup","params","userId","userProperties","eventProperties","persistUser","login","logout","track","eventName","trackPurchase","revenue","trackRevenue","trackPageView","identify","resetIdentity","setClickHandler","handler","requestAuthorizationForPushNotifications","setPushToken","token","getInitialNotification","Marketap","_default"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AA2PA,IAAAC,MAAA,GAAAD,OAAA;AAAAE,MAAA,CAAAC,IAAA,CAAAF,MAAA,EAAAG,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAJ,MAAA,CAAAI,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAZ,MAAA,CAAAI,GAAA;IAAA;EAAA;AAAA;AACA,IAAAS,kBAAA,GAAAC,sBAAA,CAAAf,OAAA;AAAmE,SAAAe,uBAAAC,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AArPnE,MAAMG,aAAa,GACjB,oFAAoF,GACpFC,qBAAQ,CAACC,MAAM,CAAC;EACdC,GAAG,EAAE,0CAA0C;EAC/CJ,OAAO,EAAE;AACX,CAAC,CAAC,GACF,sDAAsD,GACtD,+BAA+B;;AAEjC;AACA,MAAMK,iBAAiB,GAAGC,0BAAa,CAACC,WAAW;AAEnD,IAAI,CAACF,iBAAiB,EAAE;EACtB,MAAM,IAAIG,KAAK,CACb,oEAAoE,GAClE,qDAAqDN,qBAAQ,CAACO,EAAE,EACpE,CAAC;AACH;AAEA,MAAMF,WAAW,GAAGF,iBAAiB,GACjCA,iBAAiB,GACjB,IAAIK,KAAK,CACP,CAAC,CAAC,EACF;EACEf,GAAGA,CAAA,EAAG;IACJ,MAAM,IAAIa,KAAK,CAACP,aAAa,CAAC;EAChC;AACF,CACF,CAAC;AAEL,MAAMU,YAAY,GAAG,IAAIC,+BAAkB,CAACL,WAAW,CAAC;AAExD,MAAMM,WAAW,CAAiC;EAExCC,aAAa,GAAG,KAAK;EACrBC,iBAAiB,GAAG,KAAK;EACzBC,YAAY,GAA+B,EAAE;EAC7CC,qBAAqB,GAAyB,IAAI;EAClDC,oBAAoB,GAAkB,IAAI;EAGlDC,WAAWA,CAAA,EAAG;IACZ,IAAI,CAACC,mBAAmB,CAAC,CAAC;EAC5B;EAEQA,mBAAmBA,CAAA,EAAS;IAClC,IAAI,IAAI,CAACL,iBAAiB,EAAE;MAC1B;IACF;IACA,IAAI,CAACA,iBAAiB,GAAG,IAAI;IAE7B,IAAI,CAACM,yBAAyB,GAAGV,YAAY,CAACW,WAAW,CACvD,oBAAoB,EACnBC,KAAyB,IAAK;MAC7B,IAAI,IAAI,CAACC,YAAY,EAAE;QACrB,IAAI,CAACA,YAAY,CAACD,KAAK,CAAC;MAC1B;IACF,CACF,CAAC;EACH;EAEOE,OAAOA,CAAA,EAAS;IACrB,IAAI,IAAI,CAACJ,yBAAyB,EAAE;MAClC,IAAI,CAACA,yBAAyB,CAACK,MAAM,CAAC,CAAC;MACvC,IAAI,CAACL,yBAAyB,GAAG,IAAI;IACvC;IACA,IAAI,CAACN,iBAAiB,GAAG,KAAK;IAC9B,IAAI,CAACC,YAAY,GAAG,EAAE;EACxB;EAEA,MAAMW,UAAUA,CAACC,SAAiB,EAAiB;IACjD,IAAI,IAAI,CAACX,qBAAqB,EAAE;MAC9B,IAAI,IAAI,CAACC,oBAAoB,KAAKU,SAAS,EAAE;QAC3C,OAAO,IAAI,CAACX,qBAAqB;MACnC,CAAC,MAAM;QACLY,OAAO,CAACC,IAAI,CACV,mDAAmD,IAAI,CAACZ,oBAAoB,KAAK,GAC/E,oCAAoCU,SAAS,IACjD,CAAC;QACD,OAAO,IAAI,CAACX,qBAAqB;MACnC;IACF;IAEA,IAAI,CAACC,oBAAoB,GAAGU,SAAS;IACrC,IAAI,CAACX,qBAAqB,GAAG,IAAI,CAACc,qBAAqB,CAACH,SAAS,CAAC;IAClE,OAAO,IAAI,CAACX,qBAAqB;EACnC;EAEA,MAAcc,qBAAqBA,CAACH,SAAiB,EAAiB;IACpE,IAAI;MACF,MAAMrB,WAAW,CAACoB,UAAU,CAACC,SAAS,CAAC;MACvC,IAAI,CAACd,aAAa,GAAG,IAAI;MAEzB,MAAMkB,cAAc,GAAG,CAAC,GAAG,IAAI,CAAChB,YAAY,CAAC;MAC7C,IAAI,CAACA,YAAY,GAAG,EAAE;MAEtB,KAAK,MAAM1B,IAAI,IAAI0C,cAAc,EAAE;QACjC,IAAI;UACF,MAAM1C,IAAI,CAAC,CAAC;QACd,CAAC,CAAC,OAAO2C,KAAK,EAAE;UACdJ,OAAO,CAACI,KAAK,CAAC,qCAAqC,EAAEA,KAAK,CAAC;QAC7D;MACF;IACF,CAAC,CAAC,OAAOA,KAAK,EAAE;MACd,IAAI,CAAChB,qBAAqB,GAAG,IAAI;MACjC,IAAI,CAACC,oBAAoB,GAAG,IAAI;MAChC,IAAI,CAACJ,aAAa,GAAG,KAAK;MAC1B,MAAMmB,KAAK;IACb;EACF;EAEA,MAAcC,gBAAgBA,CAAIC,EAAoB,EAAc;IAClE,IAAI,IAAI,CAACrB,aAAa,EAAE;MACtB,OAAOqB,EAAE,CAAC,CAAC;IACb;IAEA,OAAO,IAAIC,OAAO,CAAI,CAACC,OAAO,EAAEC,MAAM,KAAK;MACzC,IAAI,CAACtB,YAAY,CAACuB,IAAI,CAAC,YAAY;QACjC,IAAI;UACF,MAAMC,MAAM,GAAG,MAAML,EAAE,CAAC,CAAC;UACzBE,OAAO,CAACG,MAAM,CAAC;QACjB,CAAC,CAAC,OAAOP,KAAK,EAAE;UACdK,MAAM,CAACL,KAAK,CAAC;QACf;MACF,CAAC,CAAC;IACJ,CAAC,CAAC;EACJ;EAEA,MAAMQ,MAAMA,CAACC,MAKZ,EAAiB;IAChB,OAAO,IAAI,CAACR,gBAAgB,CAAC,MAC3B3B,WAAW,CAACkC,MAAM,CAChBC,MAAM,CAACC,MAAM,EACbD,MAAM,CAACE,cAAc,EACrBF,MAAM,CAACG,eAAe,EACtBH,MAAM,CAACI,WACT,CACF,CAAC;EACH;EAEA,MAAMC,KAAKA,CAACL,MAIX,EAAiB;IAChB,OAAO,IAAI,CAACR,gBAAgB,CAAC,MAC3B3B,WAAW,CAACwC,KAAK,CACfL,MAAM,CAACC,MAAM,EACbD,MAAM,CAACE,cAAc,EACrBF,MAAM,CAACG,eACT,CACF,CAAC;EACH;EAEA,MAAMG,MAAMA,CAACH,eAAqC,EAAiB;IACjE,OAAO,IAAI,CAACX,gBAAgB,CAAC,MAAM3B,WAAW,CAACyC,MAAM,CAACH,eAAe,CAAC,CAAC;EACzE;EAEA,MAAMI,KAAKA,CACTC,SAAiB,EACjBL,eAAqC,EACtB;IACf,OAAO,IAAI,CAACX,gBAAgB,CAAC,MAC3B3B,WAAW,CAAC0C,KAAK,CAACC,SAAS,EAAEL,eAAe,CAC9C,CAAC;EACH;EAEA,MAAMM,aAAaA,CACjBC,OAAe,EACfP,eAAqC,EACtB;IACf,OAAO,IAAI,CAACX,gBAAgB,CAAC,MAC3B3B,WAAW,CAAC4C,aAAa,CAACC,OAAO,EAAEP,eAAe,CACpD,CAAC;EACH;EAEA,MAAMQ,YAAYA,CAChBH,SAAiB,EACjBE,OAAe,EACfP,eAAqC,EACtB;IACf,OAAO,IAAI,CAACX,gBAAgB,CAAC,MAC3B3B,WAAW,CAAC8C,YAAY,CAACH,SAAS,EAAEE,OAAO,EAAEP,eAAe,CAC9D,CAAC;EACH;EAEA,MAAMS,aAAaA,CAACT,eAAqC,EAAiB;IACxE,OAAO,IAAI,CAACX,gBAAgB,CAAC,MAC3B3B,WAAW,CAAC+C,aAAa,CAACT,eAAe,CAC3C,CAAC;EACH;EAEA,MAAMU,QAAQA,CACZZ,MAAc,EACdC,cAAoC,EACrB;IACf,OAAO,IAAI,CAACV,gBAAgB,CAAC,MAC3B3B,WAAW,CAACgD,QAAQ,CAACZ,MAAM,EAAEC,cAAc,CAC7C,CAAC;EACH;EAEA,MAAMY,aAAaA,CAAA,EAAkB;IACnC,OAAO,IAAI,CAACtB,gBAAgB,CAAC,MAAM3B,WAAW,CAACiD,aAAa,CAAC,CAAC,CAAC;EACjE;EAEA,MAAMC,eAAeA,CAACC,OAA6B,EAAiB;IAClE,IAAI,CAAClC,YAAY,GAAGkC,OAAO;IAC3B,OAAOnD,WAAW,CAACkD,eAAe,CAAC,CAAC;EACtC;EAEA,MAAME,wCAAwCA,CAAA,EAAkB;IAC9D,OAAOpD,WAAW,CAACoD,wCAAwC,CAAC,CAAC;EAC/D;EAEA,MAAMC,YAAYA,CAACC,KAAa,EAAiB;IAC/C;IACA,OAAO,IAAI,CAAC3B,gBAAgB,CAAC,YAAY;MACvC,IAAIhC,qBAAQ,CAACO,EAAE,KAAK,SAAS,EAAE;QAC7BoB,OAAO,CAACC,IAAI,CACV,mHACF,CAAC;QACD;MACF;MACA,OAAOvB,WAAW,CAACqD,YAAY,CAACC,KAAK,CAAC;IACxC,CAAC,CAAC;EACJ;EAEA,MAAMC,sBAAsBA,CAAA,EAAuC;IACjE,IAAI;MACF,OAAO,MAAMvD,WAAW,CAACuD,sBAAsB,CAAC,CAAC;IACnD,CAAC,CAAC,OAAO7B,KAAK,EAAE;MACdJ,OAAO,CAACI,KAAK,CAAC,qCAAqC,EAAEA,KAAK,CAAC;MAC3D,OAAO,IAAI;IACb;EACF;AACF;AAEA,MAAM8B,QAAQ,GAAG,IAAIlD,WAAW,CAAC,CAAC;AAAC,IAAAmD,QAAA,GAAAxE,OAAA,CAAAQ,OAAA,GAEpB+D,QAAQ","ignoreList":[]}
|
package/lib/commonjs/types.js
CHANGED
|
@@ -4,9 +4,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.MarketapCampaignType = void 0;
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
MarketapCampaignType
|
|
10
|
-
MarketapCampaignType
|
|
11
|
-
}
|
|
7
|
+
let MarketapCampaignType = exports.MarketapCampaignType = /*#__PURE__*/function (MarketapCampaignType) {
|
|
8
|
+
MarketapCampaignType["PUSH"] = "push";
|
|
9
|
+
MarketapCampaignType["IN_APP_MESSAGE"] = "inAppMessage";
|
|
10
|
+
return MarketapCampaignType;
|
|
11
|
+
}({});
|
|
12
12
|
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.SDK_VERSION = void 0;
|
|
7
|
+
// This file is auto-generated by scripts/generate-version.js
|
|
8
|
+
const SDK_VERSION = exports.SDK_VERSION = '0.1.0-beta.3';
|
|
9
|
+
//# sourceMappingURL=version.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["SDK_VERSION","exports"],"sourceRoot":"../../src","sources":["version.ts"],"mappings":";;;;;;AAAA;AACO,MAAMA,WAAW,GAAAC,OAAA,CAAAD,WAAA,GAAG,cAAc","ignoreList":[]}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { Platform } from 'react-native';
|
|
2
|
+
import { SDK_VERSION } from './version';
|
|
3
|
+
class MarketapWebBridgeClass {
|
|
4
|
+
injectJavaScriptFunction = null;
|
|
5
|
+
setInjectJavaScriptFunction(fn) {
|
|
6
|
+
this.injectJavaScriptFunction = fn;
|
|
7
|
+
}
|
|
8
|
+
getInjectJavaScriptFunction() {
|
|
9
|
+
if (!this.injectJavaScriptFunction) {
|
|
10
|
+
throw new Error('[MarketapWebBridge] injectJavaScriptFunction is not set. ' + 'Call MarketapWebBridge.setInjectJavaScriptFunction() before using the bridge.');
|
|
11
|
+
}
|
|
12
|
+
return this.injectJavaScriptFunction;
|
|
13
|
+
}
|
|
14
|
+
handleMessage(message) {
|
|
15
|
+
let data;
|
|
16
|
+
try {
|
|
17
|
+
data = JSON.parse(message);
|
|
18
|
+
} catch (error) {
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
const type = data?.type;
|
|
22
|
+
if (!type) {
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
const params = data.params || {};
|
|
26
|
+
const Marketap = require('./index').default;
|
|
27
|
+
console.log(`[MarketapWebBridgeClass] ${type}: ${JSON.stringify(params)}`);
|
|
28
|
+
switch (type) {
|
|
29
|
+
case 'track':
|
|
30
|
+
this.handleTrack(Marketap, params);
|
|
31
|
+
break;
|
|
32
|
+
case 'identify':
|
|
33
|
+
this.handleIdentify(Marketap, params);
|
|
34
|
+
break;
|
|
35
|
+
case 'resetIdentity':
|
|
36
|
+
Marketap.resetIdentity();
|
|
37
|
+
break;
|
|
38
|
+
case 'marketapBridgeCheck':
|
|
39
|
+
this.handleBridgeCheck();
|
|
40
|
+
break;
|
|
41
|
+
default:
|
|
42
|
+
console.warn(`[MarketapWebBridge] Unknown event type: '${String(type)}'`);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
handleTrack(Marketap, params) {
|
|
46
|
+
const eventName = params.eventName;
|
|
47
|
+
const eventProperties = params.eventProperties;
|
|
48
|
+
if (eventName) {
|
|
49
|
+
Marketap.track(eventName, eventProperties);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
handleIdentify(Marketap, params) {
|
|
53
|
+
const userId = params.userId;
|
|
54
|
+
const userProperties = params.userProperties;
|
|
55
|
+
if (userId) {
|
|
56
|
+
Marketap.identify(userId, userProperties);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
handleBridgeCheck() {
|
|
60
|
+
const injectJavaScriptFunction = this.getInjectJavaScriptFunction();
|
|
61
|
+
const script = `
|
|
62
|
+
window.postMessage({
|
|
63
|
+
type: 'marketapBridgeAck',
|
|
64
|
+
metadata: {
|
|
65
|
+
sdk_type: 'react_native',
|
|
66
|
+
sdk_version: '${SDK_VERSION}',
|
|
67
|
+
platform: '${Platform.OS}'
|
|
68
|
+
}
|
|
69
|
+
}, '*');
|
|
70
|
+
`;
|
|
71
|
+
injectJavaScriptFunction(script);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
const MarketapWebBridge = new MarketapWebBridgeClass();
|
|
75
|
+
export default MarketapWebBridge;
|
|
76
|
+
//# sourceMappingURL=MarketapWebBridge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Platform","SDK_VERSION","MarketapWebBridgeClass","injectJavaScriptFunction","setInjectJavaScriptFunction","fn","getInjectJavaScriptFunction","Error","handleMessage","message","data","JSON","parse","error","type","params","Marketap","require","default","console","log","stringify","handleTrack","handleIdentify","resetIdentity","handleBridgeCheck","warn","String","eventName","eventProperties","track","userId","userProperties","identify","script","OS","MarketapWebBridge"],"sourceRoot":"../../src","sources":["MarketapWebBridge.ts"],"mappings":"AAAA,SAASA,QAAQ,QAAQ,cAAc;AACvC,SAASC,WAAW,QAAQ,WAAW;AAevC,MAAMC,sBAAsB,CAAC;EACnBC,wBAAwB,GAAoC,IAAI;EAExEC,2BAA2BA,CAACC,EAA4B,EAAQ;IAC9D,IAAI,CAACF,wBAAwB,GAAGE,EAAE;EACpC;EAEQC,2BAA2BA,CAAA,EAA6B;IAC9D,IAAI,CAAC,IAAI,CAACH,wBAAwB,EAAE;MAClC,MAAM,IAAII,KAAK,CACb,2DAA2D,GACzD,+EACJ,CAAC;IACH;IACA,OAAO,IAAI,CAACJ,wBAAwB;EACtC;EAEAK,aAAaA,CAACC,OAAe,EAAQ;IACnC,IAAIC,IAA8B;IAElC,IAAI;MACFA,IAAI,GAAGC,IAAI,CAACC,KAAK,CAACH,OAAO,CAAC;IAC5B,CAAC,CAAC,OAAOI,KAAK,EAAE;MACd;IACF;IAEA,MAAMC,IAAI,GAAGJ,IAAI,EAAEI,IAA8C;IAEjE,IAAI,CAACA,IAAI,EAAE;MACT;IACF;IAEA,MAAMC,MAAM,GAAGL,IAAI,CAACK,MAAM,IAAI,CAAC,CAAC;IAEhC,MAAMC,QAAQ,GAAGC,OAAO,CAAC,SAAS,CAAC,CAACC,OAAO;IAC3CC,OAAO,CAACC,GAAG,CAAC,4BAA4BN,IAAI,KAAKH,IAAI,CAACU,SAAS,CAACN,MAAM,CAAC,EAAE,CAAC;IAC1E,QAAQD,IAAI;MACV,KAAK,OAAO;QACV,IAAI,CAACQ,WAAW,CAACN,QAAQ,EAAED,MAAM,CAAC;QAClC;MAEF,KAAK,UAAU;QACb,IAAI,CAACQ,cAAc,CAACP,QAAQ,EAAED,MAAM,CAAC;QACrC;MAEF,KAAK,eAAe;QAClBC,QAAQ,CAACQ,aAAa,CAAC,CAAC;QACxB;MAEF,KAAK,qBAAqB;QACxB,IAAI,CAACC,iBAAiB,CAAC,CAAC;QACxB;MAEF;QACEN,OAAO,CAACO,IAAI,CACV,4CAA4CC,MAAM,CAACb,IAAI,CAAC,GAC1D,CAAC;IACL;EACF;EAEQQ,WAAWA,CAACN,QAAa,EAAED,MAA2B,EAAQ;IACpE,MAAMa,SAAS,GAAGb,MAAM,CAACa,SAA+B;IACxD,MAAMC,eAAe,GAAGd,MAAM,CAACc,eAElB;IAEb,IAAID,SAAS,EAAE;MACbZ,QAAQ,CAACc,KAAK,CAACF,SAAS,EAAEC,eAAe,CAAC;IAC5C;EACF;EAEQN,cAAcA,CAACP,QAAa,EAAED,MAA2B,EAAQ;IACvE,MAAMgB,MAAM,GAAGhB,MAAM,CAACgB,MAA4B;IAClD,MAAMC,cAAc,GAAGjB,MAAM,CAACiB,cAEjB;IAEb,IAAID,MAAM,EAAE;MACVf,QAAQ,CAACiB,QAAQ,CAACF,MAAM,EAAEC,cAAc,CAAC;IAC3C;EACF;EAEQP,iBAAiBA,CAAA,EAAS;IAChC,MAAMtB,wBAAwB,GAAG,IAAI,CAACG,2BAA2B,CAAC,CAAC;IAEnE,MAAM4B,MAAM,GAAG;AACnB;AACA;AACA;AACA;AACA,0BAA0BjC,WAAW;AACrC,uBAAuBD,QAAQ,CAACmC,EAAE;AAClC;AACA;AACA,KAAK;IAEDhC,wBAAwB,CAAC+B,MAAM,CAAC;EAClC;AACF;AAEA,MAAME,iBAAiB,GAAG,IAAIlC,sBAAsB,CAAC,CAAC;AAEtD,eAAekC,iBAAiB","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../src","sources":["NativeMarketapSdk.ts"],"mappings":"AACA,SAASA,mBAAmB,QAAQ,cAAc;
|
|
1
|
+
{"version":3,"names":["TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../src","sources":["NativeMarketapSdk.ts"],"mappings":"AACA,SAASA,mBAAmB,QAAQ,cAAc;AA0ClD,eAAeA,mBAAmB,CAACC,YAAY,CAAO,aAAa,CAAC","ignoreList":[]}
|