react-native-marketap-sdk 0.1.0-beta.9 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/android/build.gradle +1 -1
  2. package/android/src/main/AndroidManifest.xml +1 -10
  3. package/android/src/main/java/com/marketapsdk/MarketapSdkModule.kt +318 -78
  4. package/android/src/main/java/com/marketapsdk/ReactNativeBridgeRegistry.kt +110 -0
  5. package/ios/MarketapSdk.m +37 -23
  6. package/ios/MarketapSdk.swift +254 -162
  7. package/lib/commonjs/MarketapWebBridge.js +211 -16
  8. package/lib/commonjs/MarketapWebBridge.js.map +1 -1
  9. package/lib/commonjs/core/MarketapCore.js +247 -0
  10. package/lib/commonjs/core/MarketapCore.js.map +1 -0
  11. package/lib/commonjs/index.js +20 -165
  12. package/lib/commonjs/index.js.map +1 -1
  13. package/lib/commonjs/internal/marketapCore.js +9 -0
  14. package/lib/commonjs/internal/marketapCore.js.map +1 -0
  15. package/lib/commonjs/internal/marketapPlugin.js +46 -0
  16. package/lib/commonjs/internal/marketapPlugin.js.map +1 -0
  17. package/lib/commonjs/version.js +1 -1
  18. package/lib/commonjs/version.js.map +1 -1
  19. package/lib/module/MarketapWebBridge.js +210 -16
  20. package/lib/module/MarketapWebBridge.js.map +1 -1
  21. package/lib/module/core/MarketapCore.js +240 -0
  22. package/lib/module/core/MarketapCore.js.map +1 -0
  23. package/lib/module/index.js +20 -164
  24. package/lib/module/index.js.map +1 -1
  25. package/lib/module/internal/marketapCore.js +3 -0
  26. package/lib/module/internal/marketapCore.js.map +1 -0
  27. package/lib/module/internal/marketapPlugin.js +41 -0
  28. package/lib/module/internal/marketapPlugin.js.map +1 -0
  29. package/lib/module/version.js +1 -1
  30. package/lib/module/version.js.map +1 -1
  31. package/lib/typescript/MarketapWebBridge.d.ts +33 -6
  32. package/lib/typescript/MarketapWebBridge.d.ts.map +1 -1
  33. package/lib/typescript/core/MarketapCore.d.ts +57 -0
  34. package/lib/typescript/core/MarketapCore.d.ts.map +1 -0
  35. package/lib/typescript/index.d.ts +2 -41
  36. package/lib/typescript/index.d.ts.map +1 -1
  37. package/lib/typescript/internal/marketapCore.d.ts +3 -0
  38. package/lib/typescript/internal/marketapCore.d.ts.map +1 -0
  39. package/lib/typescript/internal/marketapPlugin.d.ts +12 -0
  40. package/lib/typescript/internal/marketapPlugin.d.ts.map +1 -0
  41. package/lib/typescript/types.d.ts +1 -2
  42. package/lib/typescript/types.d.ts.map +1 -1
  43. package/lib/typescript/version.d.ts +1 -1
  44. package/lib/typescript/version.d.ts.map +1 -1
  45. package/package.json +1 -1
  46. package/react-native-marketap-sdk.podspec +1 -1
@@ -13,7 +13,8 @@ Object.defineProperty(exports, "MarketapWebBridge", {
13
13
  }
14
14
  });
15
15
  exports.default = void 0;
16
- var _reactNative = require("react-native");
16
+ var _MarketapWebBridge = _interopRequireDefault(require("./MarketapWebBridge"));
17
+ var _marketapCore = require("./internal/marketapCore");
17
18
  var _types = require("./types");
18
19
  Object.keys(_types).forEach(function (key) {
19
20
  if (key === "default" || key === "__esModule") return;
@@ -26,171 +27,25 @@ Object.keys(_types).forEach(function (key) {
26
27
  }
27
28
  });
28
29
  });
29
- var _MarketapWebBridge = _interopRequireDefault(require("./MarketapWebBridge"));
30
30
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
31
- const LINKING_ERROR = `The package 'react-native-marketap-sdk' doesn't seem to be linked. Make sure: \n\n` + _reactNative.Platform.select({
32
- ios: "- You have run 'cd ios && pod install'\n",
33
- default: ''
34
- }) + '- You rebuilt the app after installing the package\n' + '- You are not using Expo Go\n';
35
-
36
- // Force use legacy bridge for now - TurboModule implementation incomplete
37
- const MarketapSdkModule = _reactNative.NativeModules.MarketapSdk;
38
- if (!MarketapSdkModule) {
39
- throw new Error(`react-native-marketap-sdk: Native module not found (MarketapSdk). ` + `Did you run pod install (iOS) / rebuild? Platform=${_reactNative.Platform.OS}`);
40
- }
41
- const MarketapSdk = MarketapSdkModule ? MarketapSdkModule : new Proxy({}, {
42
- get() {
43
- throw new Error(LINKING_ERROR);
44
- }
31
+ _marketapCore.marketapCore.setInAppMessageListener(event => {
32
+ _MarketapWebBridge.default.sendToActiveWebBridge(event.campaign, event.messageId, event.shouldHandleUrlRouting);
45
33
  });
46
- const eventEmitter = _reactNative.Platform.OS === 'ios' ? new _reactNative.NativeEventEmitter(MarketapSdk) : _reactNative.DeviceEventEmitter;
47
- class MarketapSDK {
48
- isInitialized = false;
49
- hasSetupListeners = false;
50
- pendingCalls = [];
51
- pendingClickEvents = [];
52
- initializationPromise = null;
53
- initializedProjectId = null;
54
- constructor() {
55
- this.setupEventListeners();
56
- }
57
- setupEventListeners() {
58
- if (this.hasSetupListeners) {
59
- return;
60
- }
61
- this.hasSetupListeners = true;
62
- this.eventListenerSubscription = eventEmitter.addListener('MarketapClickEvent', event => {
63
- if (this.clickHandler) {
64
- this.clickHandler(event);
65
- } else {
66
- this.pendingClickEvents.push(event);
67
- }
68
- });
69
- }
70
- cleanup() {
71
- if (this.eventListenerSubscription) {
72
- this.eventListenerSubscription.remove();
73
- this.eventListenerSubscription = null;
74
- }
75
- this.hasSetupListeners = false;
76
- this.pendingCalls = [];
77
- this.pendingClickEvents = [];
78
- }
79
- async initialize(projectId) {
80
- if (this.initializationPromise) {
81
- if (this.initializedProjectId === projectId) {
82
- return this.initializationPromise;
83
- } else {
84
- console.warn(`MarketapSDK already initialized with projectId '${this.initializedProjectId}'. ` + `Ignoring re-initialization with '${projectId}'.`);
85
- return this.initializationPromise;
86
- }
87
- }
88
- this.initializedProjectId = projectId;
89
- this.initializationPromise = this.performInitialization(projectId);
90
- return this.initializationPromise;
91
- }
92
- async performInitialization(projectId) {
93
- try {
94
- await MarketapSdk.initialize(projectId);
95
- this.isInitialized = true;
96
- const callsToExecute = [...this.pendingCalls];
97
- this.pendingCalls = [];
98
- for (const call of callsToExecute) {
99
- try {
100
- await call();
101
- } catch (error) {
102
- console.error('Failed to execute pending SDK call:', error);
103
- }
104
- }
105
- } catch (error) {
106
- this.initializationPromise = null;
107
- this.initializedProjectId = null;
108
- this.isInitialized = false;
109
- throw error;
110
- }
111
- }
112
- async executeAfterInit(fn) {
113
- if (this.isInitialized) {
114
- return fn();
115
- }
116
- return new Promise((resolve, reject) => {
117
- this.pendingCalls.push(async () => {
118
- try {
119
- const result = await fn();
120
- resolve(result);
121
- } catch (error) {
122
- reject(error);
123
- }
124
- });
125
- });
126
- }
127
- setLogLevel(logLevel) {
128
- MarketapSdk.setLogLevel(logLevel);
129
- }
130
- async signup(params) {
131
- return this.executeAfterInit(() => MarketapSdk.signup(params.userId, params.userProperties, params.eventProperties, params.persistUser));
132
- }
133
- async login(params) {
134
- return this.executeAfterInit(() => MarketapSdk.login(params.userId, params.userProperties, params.eventProperties));
135
- }
136
- async logout(eventProperties) {
137
- return this.executeAfterInit(() => MarketapSdk.logout(eventProperties));
138
- }
139
- async track(eventName, eventProperties) {
140
- return this.executeAfterInit(() => MarketapSdk.track(eventName, eventProperties));
141
- }
142
- async trackPurchase(revenue, eventProperties) {
143
- return this.executeAfterInit(() => MarketapSdk.trackPurchase(revenue, eventProperties));
144
- }
145
- async trackRevenue(eventName, revenue, eventProperties) {
146
- return this.executeAfterInit(() => MarketapSdk.trackRevenue(eventName, revenue, eventProperties));
147
- }
148
- async trackPageView(eventProperties) {
149
- return this.executeAfterInit(() => MarketapSdk.trackPageView(eventProperties));
150
- }
151
- async identify(userId, userProperties) {
152
- return this.executeAfterInit(() => MarketapSdk.identify(userId, userProperties));
153
- }
154
- async resetIdentity() {
155
- return this.executeAfterInit(() => MarketapSdk.resetIdentity());
156
- }
157
- async setClickHandler(handler) {
158
- this.clickHandler = handler;
159
- if (this.pendingClickEvents.length > 0) {
160
- const pendingEvents = [...this.pendingClickEvents];
161
- this.pendingClickEvents = [];
162
- pendingEvents.forEach(event => {
163
- try {
164
- handler(event);
165
- } catch (error) {
166
- console.error('Failed to handle pending click event:', error);
167
- }
168
- });
169
- }
170
- return MarketapSdk.setClickHandler();
171
- }
172
- async requestAuthorizationForPushNotifications() {
173
- return MarketapSdk.requestAuthorizationForPushNotifications();
174
- }
175
- async setPushToken(token) {
176
- // Fix Blocker: checkInitialized() 전면 제거 - 안전한 executeAfterInit 사용
177
- return this.executeAfterInit(async () => {
178
- if (_reactNative.Platform.OS === 'android') {
179
- console.warn('setPushToken is not needed on Android - MarketapFirebaseMessagingService handles push notifications automatically');
180
- return;
181
- }
182
- return MarketapSdk.setPushToken(token);
183
- });
184
- }
185
- async getInitialNotification() {
186
- try {
187
- return await MarketapSdk.getInitialNotification();
188
- } catch (error) {
189
- console.error('Failed to get initial notification:', error);
190
- return null;
191
- }
192
- }
193
- }
194
- const Marketap = new MarketapSDK();
34
+ const Marketap = {
35
+ initialize: projectId => _marketapCore.marketapCore.initialize(projectId),
36
+ setLogLevel: logLevel => _marketapCore.marketapCore.setLogLevel(logLevel),
37
+ signup: params => _marketapCore.marketapCore.signup(params),
38
+ login: params => _marketapCore.marketapCore.login(params),
39
+ logout: eventProperties => _marketapCore.marketapCore.logout(eventProperties),
40
+ track: (eventName, eventProperties) => _marketapCore.marketapCore.track(eventName, eventProperties),
41
+ trackPurchase: (revenue, eventProperties) => _marketapCore.marketapCore.trackPurchase(revenue, eventProperties),
42
+ trackRevenue: (eventName, revenue, eventProperties) => _marketapCore.marketapCore.trackRevenue(eventName, revenue, eventProperties),
43
+ trackPageView: eventProperties => _marketapCore.marketapCore.trackPageView(eventProperties),
44
+ identify: (userId, userProperties) => _marketapCore.marketapCore.identify(userId, userProperties),
45
+ resetIdentity: () => _marketapCore.marketapCore.resetIdentity(),
46
+ setClickHandler: handler => _marketapCore.marketapCore.setClickHandler(handler),
47
+ requestAuthorizationForPushNotifications: () => _marketapCore.marketapCore.requestAuthorizationForPushNotifications(),
48
+ setDeviceOptIn: optIn => _marketapCore.marketapCore.setDeviceOptIn(optIn)
49
+ };
195
50
  var _default = exports.default = Marketap;
196
51
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
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","DeviceEventEmitter","MarketapSDK","isInitialized","hasSetupListeners","pendingCalls","pendingClickEvents","initializationPromise","initializedProjectId","constructor","setupEventListeners","eventListenerSubscription","addListener","event","clickHandler","push","cleanup","remove","initialize","projectId","console","warn","performInitialization","callsToExecute","error","executeAfterInit","fn","Promise","resolve","reject","result","setLogLevel","logLevel","signup","params","userId","userProperties","eventProperties","persistUser","login","logout","track","eventName","trackPurchase","revenue","trackRevenue","trackPageView","identify","resetIdentity","setClickHandler","handler","length","pendingEvents","requestAuthorizationForPushNotifications","setPushToken","token","getInitialNotification","Marketap","_default"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_MarketapWebBridge","_interopRequireDefault","require","_marketapCore","_types","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","e","__esModule","default","marketapCore","setInAppMessageListener","event","MarketapWebBridge","sendToActiveWebBridge","campaign","messageId","shouldHandleUrlRouting","Marketap","initialize","projectId","setLogLevel","logLevel","signup","params","login","logout","eventProperties","track","eventName","trackPurchase","revenue","trackRevenue","trackPageView","identify","userId","userProperties","resetIdentity","setClickHandler","handler","requestAuthorizationForPushNotifications","setDeviceOptIn","optIn","_default"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;;;;;;;;;;;;;;AACA,IAAAA,kBAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,aAAA,GAAAD,OAAA;AAgCA,IAAAE,MAAA,GAAAF,OAAA;AAAAG,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;AAAwB,SAAAP,uBAAAgB,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AA9BxBG,0BAAY,CAACC,uBAAuB,CAAEC,KAAK,IAAK;EAC9CC,0BAAiB,CAACC,qBAAqB,CACrCF,KAAK,CAACG,QAAQ,EACdH,KAAK,CAACI,SAAS,EACfJ,KAAK,CAACK,sBACR,CAAC;AACH,CAAC,CAAC;AAEF,MAAMC,QAA8B,GAAG;EACrCC,UAAU,EAAGC,SAAS,IAAKV,0BAAY,CAACS,UAAU,CAACC,SAAS,CAAC;EAC7DC,WAAW,EAAGC,QAAQ,IAAKZ,0BAAY,CAACW,WAAW,CAACC,QAAQ,CAAC;EAC7DC,MAAM,EAAGC,MAAM,IAAKd,0BAAY,CAACa,MAAM,CAACC,MAAM,CAAC;EAC/CC,KAAK,EAAGD,MAAM,IAAKd,0BAAY,CAACe,KAAK,CAACD,MAAM,CAAC;EAC7CE,MAAM,EAAGC,eAAe,IAAKjB,0BAAY,CAACgB,MAAM,CAACC,eAAe,CAAC;EACjEC,KAAK,EAAEA,CAACC,SAAS,EAAEF,eAAe,KAChCjB,0BAAY,CAACkB,KAAK,CAACC,SAAS,EAAEF,eAAe,CAAC;EAChDG,aAAa,EAAEA,CAACC,OAAO,EAAEJ,eAAe,KACtCjB,0BAAY,CAACoB,aAAa,CAACC,OAAO,EAAEJ,eAAe,CAAC;EACtDK,YAAY,EAAEA,CAACH,SAAS,EAAEE,OAAO,EAAEJ,eAAe,KAChDjB,0BAAY,CAACsB,YAAY,CAACH,SAAS,EAAEE,OAAO,EAAEJ,eAAe,CAAC;EAChEM,aAAa,EAAGN,eAAe,IAAKjB,0BAAY,CAACuB,aAAa,CAACN,eAAe,CAAC;EAC/EO,QAAQ,EAAEA,CAACC,MAAM,EAAEC,cAAc,KAAK1B,0BAAY,CAACwB,QAAQ,CAACC,MAAM,EAAEC,cAAc,CAAC;EACnFC,aAAa,EAAEA,CAAA,KAAM3B,0BAAY,CAAC2B,aAAa,CAAC,CAAC;EACjDC,eAAe,EAAGC,OAAO,IAAK7B,0BAAY,CAAC4B,eAAe,CAACC,OAAO,CAAC;EACnEC,wCAAwC,EAAEA,CAAA,KACxC9B,0BAAY,CAAC8B,wCAAwC,CAAC,CAAC;EACzDC,cAAc,EAAGC,KAAK,IAAKhC,0BAAY,CAAC+B,cAAc,CAACC,KAAK;AAC9D,CAAC;AAAC,IAAAC,QAAA,GAAAxC,OAAA,CAAAM,OAAA,GAEaS,QAAQ","ignoreList":[]}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.marketapCore = void 0;
7
+ var _MarketapCore = require("../core/MarketapCore");
8
+ const marketapCore = exports.marketapCore = new _MarketapCore.MarketapCore();
9
+ //# sourceMappingURL=marketapCore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_MarketapCore","require","marketapCore","exports","MarketapCore"],"sourceRoot":"../../../src","sources":["internal/marketapCore.ts"],"mappings":";;;;;;AAAA,IAAAA,aAAA,GAAAC,OAAA;AAEO,MAAMC,YAAY,GAAAC,OAAA,CAAAD,YAAA,GAAG,IAAIE,0BAAY,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _marketapCore = require("./marketapCore");
8
+ /// MarketapPlugin - 웹브릿지 및 내부 전용 API
9
+ class MarketapPlugin {
10
+ /// 웹브릿지에서 넘어온 이벤트임을 표시하여 트래킹
11
+ /// 네이티브 SDK가 이벤트가 웹브릿지에서 온 것임을 인지하고,
12
+ /// 인앱 메시지를 RN으로 다시 전달할 수 있도록 함
13
+ /// [handleInAppInReactNative] - true면 인앱 메시지를 RN으로 전달
14
+ trackFromWebBridge(eventName, handleInAppInReactNative, eventProperties) {
15
+ return _marketapCore.marketapCore.trackFromWebBridge(eventName, handleInAppInReactNative, eventProperties);
16
+ }
17
+
18
+ /// 유저 속성 설정 (userId 없이)
19
+ setUserProperties(userProperties) {
20
+ return _marketapCore.marketapCore.setUserProperties(userProperties);
21
+ }
22
+
23
+ /// 인앱 메시지 노출 이벤트 트래킹
24
+ trackInAppImpression(campaignId, messageId, layoutSubType) {
25
+ return _marketapCore.marketapCore.trackInAppImpression(campaignId, messageId, layoutSubType);
26
+ }
27
+
28
+ /// 인앱 메시지 클릭 이벤트 트래킹
29
+ trackInAppClick(campaignId, messageId, locationId, url, layoutSubType) {
30
+ return _marketapCore.marketapCore.trackInAppClick(campaignId, messageId, locationId, url, layoutSubType);
31
+ }
32
+
33
+ /// 캠페인 숨김 처리
34
+ hideCampaign(campaignId, hideType) {
35
+ return _marketapCore.marketapCore.hideCampaign(campaignId, hideType);
36
+ }
37
+ onWebBridgeConnected(handleInAppInReactNative) {
38
+ return _marketapCore.marketapCore.onWebBridgeConnected(handleInAppInReactNative);
39
+ }
40
+ onWebSdkInitialized() {
41
+ return _marketapCore.marketapCore.onWebSdkInitialized();
42
+ }
43
+ }
44
+ const marketapPlugin = new MarketapPlugin();
45
+ var _default = exports.default = marketapPlugin;
46
+ //# sourceMappingURL=marketapPlugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_marketapCore","require","MarketapPlugin","trackFromWebBridge","eventName","handleInAppInReactNative","eventProperties","marketapCore","setUserProperties","userProperties","trackInAppImpression","campaignId","messageId","layoutSubType","trackInAppClick","locationId","url","hideCampaign","hideType","onWebBridgeConnected","onWebSdkInitialized","marketapPlugin","_default","exports","default"],"sourceRoot":"../../../src","sources":["internal/marketapPlugin.ts"],"mappings":";;;;;;AAAA,IAAAA,aAAA,GAAAC,OAAA;AAEA;AACA,MAAMC,cAAc,CAAC;EACnB;EACA;EACA;EACA;EACAC,kBAAkBA,CAChBC,SAAiB,EACjBC,wBAAiC,EACjCC,eAAqC,EACtB;IACf,OAAOC,0BAAY,CAACJ,kBAAkB,CACpCC,SAAS,EACTC,wBAAwB,EACxBC,eACF,CAAC;EACH;;EAEA;EACAE,iBAAiBA,CAACC,cAAmC,EAAiB;IACpE,OAAOF,0BAAY,CAACC,iBAAiB,CAACC,cAAc,CAAC;EACvD;;EAEA;EACAC,oBAAoBA,CAClBC,UAAkB,EAClBC,SAAiB,EACjBC,aAAsB,EACP;IACf,OAAON,0BAAY,CAACG,oBAAoB,CACtCC,UAAU,EACVC,SAAS,EACTC,aACF,CAAC;EACH;;EAEA;EACAC,eAAeA,CACbH,UAAkB,EAClBC,SAAiB,EACjBG,UAAkB,EAClBC,GAAY,EACZH,aAAsB,EACP;IACf,OAAON,0BAAY,CAACO,eAAe,CACjCH,UAAU,EACVC,SAAS,EACTG,UAAU,EACVC,GAAG,EACHH,aACF,CAAC;EACH;;EAEA;EACAI,YAAYA,CAACN,UAAkB,EAAEO,QAAiB,EAAiB;IACjE,OAAOX,0BAAY,CAACU,YAAY,CAACN,UAAU,EAAEO,QAAQ,CAAC;EACxD;EAEAC,oBAAoBA,CAACd,wBAAiC,EAAiB;IACrE,OAAOE,0BAAY,CAACY,oBAAoB,CAACd,wBAAwB,CAAC;EACpE;EAEAe,mBAAmBA,CAAA,EAAkB;IACnC,OAAOb,0BAAY,CAACa,mBAAmB,CAAC,CAAC;EAC3C;AACF;AAEA,MAAMC,cAAc,GAAG,IAAInB,cAAc,CAAC,CAAC;AAAC,IAAAoB,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAE7BH,cAAc","ignoreList":[]}
@@ -5,5 +5,5 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.SDK_VERSION = void 0;
7
7
  // This file is auto-generated by scripts/generate-version.js
8
- const SDK_VERSION = exports.SDK_VERSION = '0.1.0-beta.9';
8
+ const SDK_VERSION = exports.SDK_VERSION = '1.1.0';
9
9
  //# sourceMappingURL=version.js.map
@@ -1 +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":[]}
1
+ {"version":3,"names":["SDK_VERSION","exports"],"sourceRoot":"../../src","sources":["version.ts"],"mappings":";;;;;;AAAA;AACO,MAAMA,WAAW,GAAAC,OAAA,CAAAD,WAAA,GAAG,OAAO","ignoreList":[]}
@@ -1,17 +1,103 @@
1
1
  import { Platform } from 'react-native';
2
2
  import { SDK_VERSION } from './version';
3
- class MarketapWebBridgeClass {
4
- injectJavaScriptFunction = null;
5
- setInjectJavaScriptFunction(fn) {
6
- this.injectJavaScriptFunction = fn;
3
+ import marketapPlugin from './internal/marketapPlugin';
4
+ import { marketapCore } from './internal/marketapCore';
5
+ class InAppCampaign {
6
+ constructor(params) {
7
+ this.id = params.id;
8
+ this.layout = params.layout;
9
+ this.html = params.html;
10
+ this.triggerEventCondition = params.triggerEventCondition;
11
+ this.priority = params.priority;
12
+ this.updatedAt = params.updatedAt;
7
13
  }
8
- getInjectJavaScriptFunction() {
9
- if (!this.injectJavaScriptFunction) {
10
- throw new Error('[MarketapWebBridge] injectJavaScriptFunction is not set. ' + 'Call MarketapWebBridge.setInjectJavaScriptFunction() before using the bridge.');
14
+ static fromJson(json) {
15
+ return new InAppCampaign({
16
+ id: String(json.id ?? ''),
17
+ layout: InAppCampaign.convertToStringDynamicMap(json.layout),
18
+ html: json.html,
19
+ triggerEventCondition: json.triggerEventCondition ? InAppCampaign.convertToStringDynamicMap(json.triggerEventCondition) : undefined,
20
+ priority: json.priority != null ? String(json.priority) : undefined,
21
+ updatedAt: json.updatedAt
22
+ });
23
+ }
24
+ toJson() {
25
+ return {
26
+ id: this.id,
27
+ layout: this.layout,
28
+ html: this.html,
29
+ triggerEventCondition: this.triggerEventCondition,
30
+ priority: this.priority,
31
+ updatedAt: this.updatedAt
32
+ };
33
+ }
34
+ static convertToStringDynamicMap(value) {
35
+ if (value && typeof value === 'object' && !Array.isArray(value)) {
36
+ const result = {};
37
+ Object.keys(value).forEach(key => {
38
+ const v = value[key];
39
+ if (Array.isArray(v)) {
40
+ result[String(key)] = InAppCampaign.convertList(v);
41
+ } else if (v && typeof v === 'object') {
42
+ result[String(key)] = InAppCampaign.convertToStringDynamicMap(v);
43
+ } else {
44
+ result[String(key)] = v;
45
+ }
46
+ });
47
+ return result;
11
48
  }
12
- return this.injectJavaScriptFunction;
49
+ return {};
50
+ }
51
+ static convertList(list) {
52
+ return list.map(item => {
53
+ if (Array.isArray(item)) {
54
+ return InAppCampaign.convertList(item);
55
+ }
56
+ if (item && typeof item === 'object') {
57
+ return InAppCampaign.convertToStringDynamicMap(item);
58
+ }
59
+ return item;
60
+ });
61
+ }
62
+ }
63
+
64
+ /**
65
+ * WebView와 네이티브 SDK를 연결하는 브릿지.
66
+ *
67
+ * 사용 예시:
68
+ * const bridge = new MarketapWebBridge(
69
+ * (script) => webViewRef.current?.injectJavaScript(script),
70
+ * true
71
+ * );
72
+ *
73
+ * // WebView 메시지 수신 시
74
+ * bridge.handleMessage(event.nativeEvent.data);
75
+ *
76
+ * // unmount 시
77
+ * bridge.dispose();
78
+ */
79
+ class MarketapWebBridge {
80
+ static activeInstance = null;
81
+ currentCampaign = null;
82
+ isDisposed = false;
83
+ handleInAppInWebView = true;
84
+ constructor(injectJavaScriptFunction, handleInAppInWebView = true) {
85
+ this.evaluateJavaScriptFunction = injectJavaScriptFunction;
86
+ this.handleInAppInWebView = handleInAppInWebView;
87
+ marketapPlugin.onWebBridgeConnected(handleInAppInWebView);
88
+ }
89
+ dispose() {
90
+ if (MarketapWebBridge.activeInstance === this) {
91
+ MarketapWebBridge.activeInstance = null;
92
+ }
93
+ this.currentCampaign = null;
94
+ this.isDisposed = true;
13
95
  }
14
96
  handleMessage(message) {
97
+ if (this.isDisposed) {
98
+ console.warn('[MarketapWebBridge] ignoring message - bridge is disposed');
99
+ return;
100
+ }
15
101
  let data;
16
102
  try {
17
103
  data = JSON.parse(message);
@@ -24,10 +110,10 @@ class MarketapWebBridgeClass {
24
110
  }
25
111
  const params = data.params || {};
26
112
  const Marketap = require('./index').default;
27
- console.log(`[MarketapWebBridgeClass] ${type}: ${JSON.stringify(params)}`);
113
+ console.log(`[MarketapWebBridge] ${type}: ${JSON.stringify(params)}`);
28
114
  switch (type) {
29
115
  case 'track':
30
- this.handleTrack(Marketap, params);
116
+ this.handleTrack(params);
31
117
  break;
32
118
  case 'identify':
33
119
  this.handleIdentify(Marketap, params);
@@ -38,17 +124,63 @@ class MarketapWebBridgeClass {
38
124
  case 'marketapBridgeCheck':
39
125
  this.handleBridgeCheck();
40
126
  break;
127
+ case 'inAppMessageImpression':
128
+ this.handleInAppImpression(params);
129
+ break;
130
+ case 'inAppMessageClick':
131
+ this.handleInAppClick(params);
132
+ break;
133
+ case 'inAppMessageHide':
134
+ this.handleInAppHide(params);
135
+ break;
136
+ case 'inAppMessageTrack':
137
+ this.handleInAppTrack(Marketap, params);
138
+ break;
139
+ case 'inAppMessageSetUserProperties':
140
+ this.handleInAppSetUserProperties(params);
141
+ break;
41
142
  default:
42
143
  console.warn(`[MarketapWebBridge] Unknown event type: '${String(type)}'`);
43
144
  }
44
145
  }
45
- handleTrack(Marketap, params) {
146
+ showInAppMessage(campaignJson, messageId, shouldHandleUrlRouting) {
147
+ if (this.isDisposed) {
148
+ console.warn('[MarketapWebBridge] ignoring message - bridge is disposed');
149
+ return;
150
+ }
151
+ try {
152
+ const campaign = InAppCampaign.fromJson(campaignJson);
153
+ this.currentCampaign = campaign;
154
+ this.sendCampaignToWeb(campaign, messageId, shouldHandleUrlRouting);
155
+ } catch (error) {
156
+ console.error('[MarketapWebBridge] failed to show in-app message', error);
157
+ }
158
+ }
159
+ sendCampaignToWeb(campaign, messageId, shouldHandleUrlRouting) {
160
+ const campaignJson = JSON.stringify(campaign.toJson());
161
+ const script = `
162
+ window.postMessage({
163
+ type: 'marketapShowInAppMessage',
164
+ campaign: ${campaignJson},
165
+ messageId: '${messageId}',
166
+ shouldHandleUrlRouting: ${shouldHandleUrlRouting}
167
+ }, '*');
168
+ `;
169
+ this.evaluateJavaScriptFunction(script);
170
+ }
171
+ handleTrack(params) {
46
172
  const eventName = params.eventName;
47
173
  const eventProperties = params.eventProperties;
48
174
  if (eventName) {
49
- Marketap.track(eventName, eventProperties);
175
+ if (this.handleInAppInWebView) {
176
+ MarketapWebBridge.setActiveInstance(this);
177
+ }
178
+ marketapPlugin.trackFromWebBridge(eventName, this.handleInAppInWebView, eventProperties);
50
179
  }
51
180
  }
181
+ static setActiveInstance(instance) {
182
+ MarketapWebBridge.activeInstance = instance;
183
+ }
52
184
  handleIdentify(Marketap, params) {
53
185
  const userId = params.userId;
54
186
  const userProperties = params.userProperties;
@@ -57,20 +189,82 @@ class MarketapWebBridgeClass {
57
189
  }
58
190
  }
59
191
  handleBridgeCheck() {
60
- const injectJavaScriptFunction = this.getInjectJavaScriptFunction();
192
+ const projectId = marketapCore.getCurrentProjectId() ?? 'undefined';
61
193
  const script = `
62
194
  window.postMessage({
63
195
  type: 'marketapBridgeAck',
64
196
  metadata: {
65
197
  sdk_type: 'react_native',
66
198
  sdk_version: '${SDK_VERSION}',
67
- platform: '${Platform.OS}'
199
+ platform: '${Platform.OS}',
200
+ project_id: '${projectId}'
68
201
  }
69
202
  }, '*');
70
203
  `;
71
- injectJavaScriptFunction(script);
204
+ this.evaluateJavaScriptFunction(script);
205
+ marketapPlugin.onWebSdkInitialized();
206
+ }
207
+ handleInAppImpression(params) {
208
+ const campaignId = params.campaignId;
209
+ const messageId = params.messageId;
210
+ if (!campaignId || !messageId) {
211
+ console.warn('[MarketapWebBridge] inAppMessageImpression missing required params');
212
+ return;
213
+ }
214
+ if (this.currentCampaign && this.currentCampaign.id === campaignId) {
215
+ marketapPlugin.trackInAppImpression(campaignId, messageId, this.currentCampaign.layout?.layoutSubType);
216
+ }
217
+ }
218
+ handleInAppClick(params) {
219
+ const campaignId = params.campaignId;
220
+ const messageId = params.messageId;
221
+ const locationId = params.locationId;
222
+ const url = params.url;
223
+ if (!campaignId || !messageId || !locationId) {
224
+ console.warn('[MarketapWebBridge] inAppMessageClick missing required params');
225
+ return;
226
+ }
227
+ if (this.currentCampaign && this.currentCampaign.id === campaignId) {
228
+ marketapPlugin.trackInAppClick(campaignId, messageId, locationId, url, this.currentCampaign.layout?.layoutSubType);
229
+ }
230
+ }
231
+ handleInAppHide(params) {
232
+ const campaignId = params.campaignId;
233
+ const hideType = params.hideType;
234
+ if (!campaignId) {
235
+ console.warn('[MarketapWebBridge] inAppMessageHide missing campaignId');
236
+ return;
237
+ }
238
+ marketapPlugin.hideCampaign(campaignId, hideType);
239
+ if (this.currentCampaign && this.currentCampaign.id === campaignId) {
240
+ this.currentCampaign = null;
241
+ }
242
+ }
243
+ handleInAppTrack(Marketap, params) {
244
+ const eventName = params.eventName;
245
+ const eventProperties = params.eventProperties;
246
+ if (!eventName) {
247
+ console.warn('[MarketapWebBridge] inAppMessageTrack missing eventName');
248
+ return;
249
+ }
250
+ Marketap.track(eventName, eventProperties);
251
+ }
252
+ handleInAppSetUserProperties(params) {
253
+ const userProperties = params.userProperties;
254
+ if (!userProperties) {
255
+ console.warn('[MarketapWebBridge] inAppMessageSetUserProperties missing userProperties');
256
+ return;
257
+ }
258
+ marketapPlugin.setUserProperties(userProperties);
259
+ }
260
+ static sendToActiveWebBridge(campaign, messageId, shouldHandleUrlRouting) {
261
+ const activeInstance = MarketapWebBridge.activeInstance;
262
+ if (activeInstance !== null) {
263
+ activeInstance.showInAppMessage(campaign, messageId, shouldHandleUrlRouting);
264
+ } else {
265
+ console.warn('[MarketapWebBridge] no active web bridge instance available');
266
+ }
72
267
  }
73
268
  }
74
- const MarketapWebBridge = new MarketapWebBridgeClass();
75
269
  export default MarketapWebBridge;
76
270
  //# sourceMappingURL=MarketapWebBridge.js.map
@@ -1 +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
+ {"version":3,"names":["Platform","SDK_VERSION","marketapPlugin","marketapCore","InAppCampaign","constructor","params","id","layout","html","triggerEventCondition","priority","updatedAt","fromJson","json","String","convertToStringDynamicMap","undefined","toJson","value","Array","isArray","result","Object","keys","forEach","key","v","convertList","list","map","item","MarketapWebBridge","activeInstance","currentCampaign","isDisposed","handleInAppInWebView","injectJavaScriptFunction","evaluateJavaScriptFunction","onWebBridgeConnected","dispose","handleMessage","message","console","warn","data","JSON","parse","error","type","Marketap","require","default","log","stringify","handleTrack","handleIdentify","resetIdentity","handleBridgeCheck","handleInAppImpression","handleInAppClick","handleInAppHide","handleInAppTrack","handleInAppSetUserProperties","showInAppMessage","campaignJson","messageId","shouldHandleUrlRouting","campaign","sendCampaignToWeb","script","eventName","eventProperties","setActiveInstance","trackFromWebBridge","instance","userId","userProperties","identify","projectId","getCurrentProjectId","OS","onWebSdkInitialized","campaignId","trackInAppImpression","layoutSubType","locationId","url","trackInAppClick","hideType","hideCampaign","track","setUserProperties","sendToActiveWebBridge"],"sourceRoot":"../../src","sources":["MarketapWebBridge.ts"],"mappings":"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","ignoreList":[]}