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.
Files changed (41) hide show
  1. package/android/src/main/java/com/marketapsdk/MarketapSdkModule.kt +60 -3
  2. package/ios/MarketapSdk.m +9 -0
  3. package/ios/MarketapSdk.swift +46 -5
  4. package/lib/commonjs/MarketapWebBridge.js +82 -0
  5. package/lib/commonjs/MarketapWebBridge.js.map +1 -0
  6. package/lib/commonjs/NativeMarketapSdk.js.map +1 -1
  7. package/lib/commonjs/index.js +97 -31
  8. package/lib/commonjs/index.js.map +1 -1
  9. package/lib/commonjs/types.js +5 -5
  10. package/lib/commonjs/version.js +9 -0
  11. package/lib/commonjs/version.js.map +1 -0
  12. package/lib/module/MarketapWebBridge.js +76 -0
  13. package/lib/module/MarketapWebBridge.js.map +1 -0
  14. package/lib/module/NativeMarketapSdk.js.map +1 -1
  15. package/lib/module/index.js +87 -30
  16. package/lib/module/index.js.map +1 -1
  17. package/lib/module/types.js.map +0 -1
  18. package/lib/module/version.js +3 -0
  19. package/lib/module/version.js.map +1 -0
  20. package/lib/typescript/MarketapWebBridge.d.ts +13 -0
  21. package/lib/typescript/MarketapWebBridge.d.ts.map +1 -0
  22. package/lib/typescript/{src/NativeMarketapSdk.d.ts → NativeMarketapSdk.d.ts} +1 -0
  23. package/lib/typescript/NativeMarketapSdk.d.ts.map +1 -0
  24. package/lib/typescript/{src/index.d.ts → index.d.ts} +11 -2
  25. package/lib/typescript/index.d.ts.map +1 -0
  26. package/lib/typescript/{src/types.d.ts → types.d.ts} +1 -0
  27. package/lib/typescript/types.d.ts.map +1 -0
  28. package/lib/typescript/version.d.ts +2 -0
  29. package/lib/typescript/version.d.ts.map +1 -0
  30. package/package.json +19 -11
  31. package/lib/typescript/MarketapSDKExample/App.d.ts +0 -4
  32. package/lib/typescript/MarketapSDKExample/App.d.ts.map +0 -1
  33. package/lib/typescript/src/NativeMarketapSdk.d.ts.map +0 -1
  34. package/lib/typescript/src/index.d.ts.map +0 -1
  35. package/lib/typescript/src/types.d.ts.map +0 -1
  36. package/src/NativeMarketapSdk.js +0 -2
  37. package/src/NativeMarketapSdk.ts +0 -43
  38. package/src/index.js +0 -105
  39. package/src/index.tsx +0 -172
  40. package/src/types.js +0 -5
  41. 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
- sendEvent(CLICK_EVENT, convertClickEventToMap(event))
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
@@ -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
- self.sendEvent(withName: "MarketapClickEvent", body: [
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.js"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAAmD,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GACpCC,gCAAmB,CAACC,YAAY,CAAC,aAAa,CAAC","ignoreList":[]}
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":[]}
@@ -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
- eventEmitter.addListener('MarketapClickEvent', event => {
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
- await MarketapSdk.initialize(projectId);
51
- this.isInitialized = true;
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.checkInitialized();
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.checkInitialized();
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.checkInitialized();
63
- return MarketapSdk.logout(eventProperties);
130
+ return this.executeAfterInit(() => MarketapSdk.logout(eventProperties));
64
131
  }
65
132
  async track(eventName, eventProperties) {
66
- this.checkInitialized();
67
- return MarketapSdk.track(eventName, eventProperties);
133
+ return this.executeAfterInit(() => MarketapSdk.track(eventName, eventProperties));
68
134
  }
69
135
  async trackPurchase(revenue, eventProperties) {
70
- this.checkInitialized();
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.checkInitialized();
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.checkInitialized();
79
- return MarketapSdk.trackPageView(eventProperties);
142
+ return this.executeAfterInit(() => MarketapSdk.trackPageView(eventProperties));
80
143
  }
81
144
  async identify(userId, userProperties) {
82
- this.checkInitialized();
83
- return MarketapSdk.identify(userId, userProperties);
145
+ return this.executeAfterInit(() => MarketapSdk.identify(userId, userProperties));
84
146
  }
85
147
  async resetIdentity() {
86
- this.checkInitialized();
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
- this.checkInitialized();
98
- if (_reactNative.Platform.OS === 'android') {
99
- console.warn('setPushToken is not needed on Android - MarketapFirebaseMessagingService handles push notifications automatically');
100
- return Promise.resolve();
101
- }
102
- return MarketapSdk.setPushToken(token);
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
- checkInitialized() {
105
- if (!this.isInitialized) {
106
- throw new Error('MarketapSDK must be initialized before calling this method');
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","default","MarketapSdkModule","NativeModules","MarketapSdk","Error","OS","Proxy","eventEmitter","NativeEventEmitter","MarketapSDK","isInitialized","constructor","setupEventListeners","addListener","event","clickHandler","initialize","projectId","signup","params","checkInitialized","userId","userProperties","eventProperties","persistUser","login","logout","track","eventName","trackPurchase","revenue","trackRevenue","trackPageView","identify","resetIdentity","setClickHandler","handler","requestAuthorizationForPushNotifications","setPushToken","token","console","warn","Promise","resolve","Marketap","_default"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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","ignoreList":[]}
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":[]}
@@ -4,9 +4,9 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.MarketapCampaignType = void 0;
7
- var MarketapCampaignType;
8
- (function (MarketapCampaignType) {
9
- MarketapCampaignType.PUSH = 'push';
10
- MarketapCampaignType.IN_APP_MESSAGE = 'inAppMessage';
11
- })(MarketapCampaignType || (exports.MarketapCampaignType = MarketapCampaignType = {}));
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;AAyClD,eAAeA,mBAAmB,CAACC,YAAY,CAAO,aAAa,CAAC","ignoreList":[]}
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":[]}