@hayanmind/monetai-react-native 1.0.0-beta.0 → 1.0.0-beta.2

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 (43) hide show
  1. package/android/src/main/java/com/hayanmind/monetaireactnative/MonetaiReactNativeModule.kt +19 -0
  2. package/ios/MonetaiReactNative.mm +6 -4
  3. package/ios/MonetaiReactNative.swift +15 -3
  4. package/lib/commonjs/ApiRequest.js +42 -52
  5. package/lib/commonjs/ApiRequest.js.map +1 -1
  6. package/lib/commonjs/MonetaiSDK.js +28 -45
  7. package/lib/commonjs/MonetaiSDK.js.map +1 -1
  8. package/lib/commonjs/constants.js +14 -0
  9. package/lib/commonjs/constants.js.map +1 -0
  10. package/lib/commonjs/lib.js +2 -2
  11. package/lib/module/ApiRequest.js +36 -47
  12. package/lib/module/ApiRequest.js.map +1 -1
  13. package/lib/module/MonetaiSDK.js +29 -46
  14. package/lib/module/MonetaiSDK.js.map +1 -1
  15. package/lib/module/constants.js +10 -0
  16. package/lib/module/constants.js.map +1 -0
  17. package/lib/module/lib.js +2 -2
  18. package/lib/typescript/commonjs/src/ApiRequest.d.ts +17 -35
  19. package/lib/typescript/commonjs/src/ApiRequest.d.ts.map +1 -1
  20. package/lib/typescript/commonjs/src/MonetaiSDK.d.ts +5 -14
  21. package/lib/typescript/commonjs/src/MonetaiSDK.d.ts.map +1 -1
  22. package/lib/typescript/commonjs/src/constants.d.ts +8 -0
  23. package/lib/typescript/commonjs/src/constants.d.ts.map +1 -0
  24. package/lib/typescript/commonjs/src/index.d.ts +1 -1
  25. package/lib/typescript/commonjs/src/index.d.ts.map +1 -1
  26. package/lib/typescript/commonjs/src/types.d.ts +10 -3
  27. package/lib/typescript/commonjs/src/types.d.ts.map +1 -1
  28. package/lib/typescript/module/src/ApiRequest.d.ts +17 -35
  29. package/lib/typescript/module/src/ApiRequest.d.ts.map +1 -1
  30. package/lib/typescript/module/src/MonetaiSDK.d.ts +5 -14
  31. package/lib/typescript/module/src/MonetaiSDK.d.ts.map +1 -1
  32. package/lib/typescript/module/src/constants.d.ts +8 -0
  33. package/lib/typescript/module/src/constants.d.ts.map +1 -0
  34. package/lib/typescript/module/src/index.d.ts +1 -1
  35. package/lib/typescript/module/src/index.d.ts.map +1 -1
  36. package/lib/typescript/module/src/types.d.ts +10 -3
  37. package/lib/typescript/module/src/types.d.ts.map +1 -1
  38. package/package.json +1 -1
  39. package/src/ApiRequest.ts +43 -93
  40. package/src/MonetaiSDK.ts +50 -70
  41. package/src/constants.ts +7 -0
  42. package/src/index.tsx +2 -3
  43. package/src/types.ts +11 -3
@@ -412,6 +412,25 @@ class MonetaiReactNativeModule(reactContext: ReactApplicationContext) :
412
412
  }
413
413
  }
414
414
 
415
+ @ReactMethod
416
+ fun getAppVersion(promise: Promise) {
417
+ try {
418
+ val packageInfo = reactApplicationContext.packageManager
419
+ .getPackageInfo(reactApplicationContext.packageName, 0)
420
+ val versionName = packageInfo.versionName
421
+ Log.d(TAG, "getAppVersion: ${versionName ?: "null"}")
422
+ promise.resolve(versionName)
423
+ } catch (e: Exception) {
424
+ Log.e(TAG, "getAppVersion 실패: ${e.message}")
425
+ promise.resolve(null)
426
+ }
427
+ }
428
+
429
+ @ReactMethod
430
+ fun getBundleId(promise: Promise) {
431
+ promise.resolve(reactApplicationContext.packageName)
432
+ }
433
+
415
434
  companion object {
416
435
  const val NAME = "MonetaiReactNative"
417
436
  }
@@ -2,10 +2,6 @@
2
2
 
3
3
  @interface RCT_EXTERN_MODULE(MonetaiReactNative, NSObject)
4
4
 
5
- RCT_EXTERN_METHOD(multiply:(float)a withB:(float)b
6
- withResolver:(RCTPromiseResolveBlock)resolve
7
- withRejecter:(RCTPromiseRejectBlock)reject)
8
-
9
5
  RCT_EXTERN_METHOD(startObserving:(BOOL)useStoreKit2
10
6
  withResolver:(RCTPromiseResolveBlock)resolve
11
7
  withRejecter:(RCTPromiseRejectBlock)reject)
@@ -30,6 +26,12 @@ RCT_EXTERN_METHOD(sendReceipt:(RCTPromiseResolveBlock)resolve
30
26
  RCT_EXTERN_METHOD(reset:(RCTPromiseResolveBlock)resolve
31
27
  withRejecter:(RCTPromiseRejectBlock)reject)
32
28
 
29
+ RCT_EXTERN_METHOD(getAppVersion:(RCTPromiseResolveBlock)resolve
30
+ withRejecter:(RCTPromiseRejectBlock)reject)
31
+
32
+ RCT_EXTERN_METHOD(getBundleId:(RCTPromiseResolveBlock)resolve
33
+ withRejecter:(RCTPromiseRejectBlock)reject)
34
+
33
35
  + (BOOL)requiresMainQueueSetup
34
36
  {
35
37
  return NO;
@@ -316,19 +316,31 @@ class MonetaiReactNative: NSObject {
316
316
  kSecClass as String: kSecClassGenericPassword,
317
317
  kSecAttrAccount as String: "MonetaiAppAccountToken"
318
318
  ]
319
-
319
+
320
320
  let sdkKeyQuery: [String: Any] = [
321
321
  kSecClass as String: kSecClassGenericPassword,
322
322
  kSecAttrAccount as String: "MonetaiSdkKey"
323
323
  ]
324
-
324
+
325
325
  SecItemDelete(tokenQuery as CFDictionary)
326
326
  SecItemDelete(sdkKeyQuery as CFDictionary)
327
-
327
+
328
328
  print("[Monetai][Debug] userId와 sdkKey가 초기화되었습니다")
329
329
  resolve(nil)
330
330
  }
331
331
 
332
+ @objc(getAppVersion:withRejecter:)
333
+ func getAppVersion(resolve: RCTPromiseResolveBlock, reject: RCTPromiseRejectBlock) {
334
+ let appVersion = Bundle.main.infoDictionary?["CFBundleShortVersionString"] as? String
335
+ print("[Monetai][Debug] getAppVersion: \(appVersion ?? "nil")")
336
+ resolve(appVersion)
337
+ }
338
+
339
+ @objc(getBundleId:withRejecter:)
340
+ func getBundleId(resolve: RCTPromiseResolveBlock, reject: RCTPromiseRejectBlock) {
341
+ resolve(Bundle.main.bundleIdentifier)
342
+ }
343
+
332
344
  @objc
333
345
  static func requiresMainQueueSetup() -> Bool {
334
346
  return false
@@ -3,41 +3,59 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.predict = exports.initialize = exports.getPriceDecision = exports.getAppUserDiscount = exports.createViewProductItemEvent = exports.createEvent = exports.createAppUserDiscount = void 0;
6
+ exports.setUserIdHeader = exports.setBundleIdHeader = exports.setAppVersionHeader = exports.initialize = exports.getOffer = exports.getAppUserDiscount = exports.createViewProductItemEvent = exports.createEvent = void 0;
7
7
  var _axios = _interopRequireDefault(require("axios"));
8
8
  var _lib = require("./lib.js");
9
9
  var _reactNative = require("react-native");
10
+ var _constants = require("./constants.js");
10
11
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
11
12
  const axiosInstance = _axios.default.create({
12
13
  baseURL: 'https://monetai-api-414410537412.us-central1.run.app/sdk',
13
14
  // 필요에 따라 베이스 URL 설정
14
15
  headers: {
15
- 'X-SDK-Platform': 'react_native',
16
- 'X-SDK-Version': (0, _lib.getSDKVersion)(),
17
- 'X-Device-OS': _reactNative.Platform.OS === 'ios' ? 'ios' : _reactNative.Platform.OS === 'android' ? 'android' : _reactNative.Platform.OS
16
+ [_constants.SDK_HEADERS.SDK_PLATFORM]: 'react_native',
17
+ [_constants.SDK_HEADERS.SDK_VERSION]: (0, _lib.getSDKVersion)(),
18
+ [_constants.SDK_HEADERS.DEVICE_OS]: _reactNative.Platform.OS === 'ios' ? 'ios' : _reactNative.Platform.OS === 'android' ? 'android' : _reactNative.Platform.OS
18
19
  }
19
20
  });
21
+
22
+ /**
23
+ * X-App-Version 헤더를 설정합니다.
24
+ * SDK 초기화 시점에 호출되어야 합니다.
25
+ */
26
+ const setAppVersionHeader = version => {
27
+ axiosInstance.defaults.headers.common[_constants.SDK_HEADERS.APP_VERSION] = version;
28
+ };
29
+
30
+ /**
31
+ * X-App-Bundle-Id 헤더를 설정합니다.
32
+ * SDK 초기화 시점에 호출되어야 합니다.
33
+ */
34
+ exports.setAppVersionHeader = setAppVersionHeader;
35
+ const setBundleIdHeader = bundleId => {
36
+ axiosInstance.defaults.headers.common[_constants.SDK_HEADERS.BUNDLE_ID] = bundleId;
37
+ };
38
+ exports.setBundleIdHeader = setBundleIdHeader;
39
+ const setUserIdHeader = userId => {
40
+ axiosInstance.defaults.headers.common['X-User-Id'] = userId;
41
+ };
42
+ exports.setUserIdHeader = setUserIdHeader;
20
43
  const initialize = async ({
21
44
  sdkKey,
22
45
  userId
23
46
  }) => {
24
47
  try {
48
+ // X-User-Id 헤더 설정 (user property 수집용)
49
+ setUserIdHeader(userId);
25
50
  const response = await axiosInstance.post('/sdk-integrations', {
26
51
  sdkKey,
27
52
  platform: 'react_native',
28
53
  version: (0, _lib.getSDKVersion)()
29
54
  });
30
- const abTestGroupResponse = await axiosInstance.post('/ab-test', {
31
- sdkKey,
32
- userId,
33
- platform: _reactNative.Platform.OS === 'ios' ? 'ios' : _reactNative.Platform.OS === 'android' ? 'android' : _reactNative.Platform.OS
34
- });
35
55
  return {
36
56
  organizationId: response.data.organization_id,
37
57
  platform: response.data.platform,
38
- version: response.data.version,
39
- group: abTestGroupResponse.data.group,
40
- campaign: abTestGroupResponse.data.campaign
58
+ version: response.data.version
41
59
  };
42
60
  } catch (error) {
43
61
  console.error('Failed to initialize integration:', error.message);
@@ -81,6 +99,7 @@ const createViewProductItemEvent = async ({
81
99
  price: params.price,
82
100
  regularPrice: params.regularPrice,
83
101
  currencyCode: params.currencyCode,
102
+ promotionId: params.promotionId,
84
103
  month: params.month,
85
104
  createdAt: createdAt ?? new Date(),
86
105
  platform: _reactNative.Platform.OS === 'ios' ? 'ios' : _reactNative.Platform.OS === 'android' ? 'android' : _reactNative.Platform.OS
@@ -89,43 +108,12 @@ const createViewProductItemEvent = async ({
89
108
  console.error('Failed to log view product item event:', error.message);
90
109
  }
91
110
  };
92
- exports.createViewProductItemEvent = createViewProductItemEvent;
93
- const predict = async ({
94
- userId,
95
- sdkKey
96
- }) => {
97
- try {
98
- const response = await axiosInstance.post('/predict', {
99
- sdkKey,
100
- userId
101
- });
102
- return response.data;
103
- } catch (error) {
104
- console.error('Failed to get A/B test group:', error.message);
105
- throw new Error(error.response?.data?.message || 'Failed to get A/B test group');
106
- }
107
- };
108
- exports.predict = predict;
109
- const createAppUserDiscount = async discountInfo => {
110
- try {
111
- const response = await axiosInstance.post('/app-user-discounts', {
112
- sdkKey: discountInfo.sdkKey,
113
- appUserId: discountInfo.userId,
114
- startedAt: discountInfo.startedAt,
115
- endedAt: discountInfo.endedAt
116
- });
117
- return response.data.discount;
118
- } catch (error) {
119
- console.error('Failed to set discount info:', error.message);
120
- throw new Error(error.response?.data?.message || 'Failed to set discount info');
121
- }
122
- };
123
111
 
124
112
  /**
125
113
  * sdkKey와 app_user_id에 해당하는 가장 최근 할인 정보를 조회합니다.
126
114
  * API GET /app-user-discounts/latest 엔드포인트를 호출합니다.
127
115
  */
128
- exports.createAppUserDiscount = createAppUserDiscount;
116
+ exports.createViewProductItemEvent = createViewProductItemEvent;
129
117
  const getAppUserDiscount = async ({
130
118
  sdkKey,
131
119
  userId
@@ -145,25 +133,27 @@ const getAppUserDiscount = async ({
145
133
  };
146
134
 
147
135
  /**
148
- * Thompson Sampling을 사용한 최적 가격 결정
149
- * API POST /dynamic-pricing/decision 엔드포인트를 호출합니다.
136
+ * 오퍼 조회
137
+ * API POST /offers/get-offer 엔드포인트를 호출합니다.
150
138
  */
151
139
  exports.getAppUserDiscount = getAppUserDiscount;
152
- const getPriceDecision = async ({
140
+ const getOffer = async ({
153
141
  sdkKey,
154
- userId
142
+ userId,
143
+ promotionId
155
144
  }) => {
156
145
  try {
157
- const response = await axiosInstance.post('/dynamic-pricing/decision', {
146
+ const response = await axiosInstance.post('/offers/get-offer', {
158
147
  sdkKey,
159
148
  userId,
149
+ promotionId,
160
150
  platform: _reactNative.Platform.OS === 'ios' ? 'ios' : _reactNative.Platform.OS === 'android' ? 'android' : _reactNative.Platform.OS
161
151
  });
162
152
  return response.data;
163
153
  } catch (error) {
164
- console.error('Failed to get price decision:', error.message);
165
- throw new Error(error.response?.data?.message || 'Failed to get price decision');
154
+ console.error('Failed to get offer:', error.message);
155
+ throw new Error(error.response?.data?.message || 'Failed to get offer');
166
156
  }
167
157
  };
168
- exports.getPriceDecision = getPriceDecision;
158
+ exports.getOffer = getOffer;
169
159
  //# sourceMappingURL=ApiRequest.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_axios","_interopRequireDefault","require","_lib","_reactNative","e","__esModule","default","axiosInstance","axios","create","baseURL","headers","getSDKVersion","Platform","OS","initialize","sdkKey","userId","response","post","platform","version","abTestGroupResponse","organizationId","data","organization_id","group","campaign","error","console","message","Error","exports","createEvent","eventName","params","createdAt","Date","createViewProductItemEvent","productId","price","regularPrice","currencyCode","month","predict","createAppUserDiscount","discountInfo","appUserId","startedAt","endedAt","discount","getAppUserDiscount","get","getPriceDecision"],"sourceRoot":"../../src","sources":["ApiRequest.ts"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAOA,IAAAC,IAAA,GAAAD,OAAA;AACA,IAAAE,YAAA,GAAAF,OAAA;AAAwC,SAAAD,uBAAAI,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAExC,MAAMG,aAAa,GAAGC,cAAK,CAACC,MAAM,CAAC;EACjCC,OAAO,EAAE,0DAA0D;EAAE;EACrEC,OAAO,EAAE;IACP,gBAAgB,EAAE,cAAc;IAChC,eAAe,EAAE,IAAAC,kBAAa,EAAC,CAAC;IAChC,aAAa,EACXC,qBAAQ,CAACC,EAAE,KAAK,KAAK,GACjB,KAAK,GACLD,qBAAQ,CAACC,EAAE,KAAK,SAAS,GACvB,SAAS,GACTD,qBAAQ,CAACC;EACnB;AACF,CAAC,CAAC;AAEK,MAAMC,UAAU,GAAG,MAAAA,CAAO;EAC/BC,MAAM;EACNC;AAIF,CAAC,KAAK;EACJ,IAAI;IACF,MAAMC,QAAQ,GAAG,MAAMX,aAAa,CAACY,IAAI,CAItC,mBAAmB,EAAE;MACtBH,MAAM;MACNI,QAAQ,EAAE,cAAc;MACxBC,OAAO,EAAE,IAAAT,kBAAa,EAAC;IACzB,CAAC,CAAC;IAEF,MAAMU,mBAAmB,GAAG,MAAMf,aAAa,CAACY,IAAI,CAejD,UAAU,EAAE;MACbH,MAAM;MACNC,MAAM;MACNG,QAAQ,EACNP,qBAAQ,CAACC,EAAE,KAAK,KAAK,GACjB,KAAK,GACLD,qBAAQ,CAACC,EAAE,KAAK,SAAS,GACvB,SAAS,GACTD,qBAAQ,CAACC;IACnB,CAAC,CAAC;IAEF,OAAO;MACLS,cAAc,EAAEL,QAAQ,CAACM,IAAI,CAACC,eAAe;MAC7CL,QAAQ,EAAEF,QAAQ,CAACM,IAAI,CAACJ,QAAQ;MAChCC,OAAO,EAAEH,QAAQ,CAACM,IAAI,CAACH,OAAO;MAC9BK,KAAK,EAAEJ,mBAAmB,CAACE,IAAI,CAACE,KAAK;MACrCC,QAAQ,EAAEL,mBAAmB,CAACE,IAAI,CAACG;IACrC,CAAC;EACH,CAAC,CAAC,OAAOC,KAAU,EAAE;IACnBC,OAAO,CAACD,KAAK,CAAC,mCAAmC,EAAEA,KAAK,CAACE,OAAO,CAAC;IACjE,MAAM,IAAIC,KAAK,CACbH,KAAK,CAACV,QAAQ,EAAEM,IAAI,EAAEM,OAAO,IAAI,mCACnC,CAAC;EACH;AACF,CAAC;AAACE,OAAA,CAAAjB,UAAA,GAAAA,UAAA;AAEK,MAAMkB,WAAW,GAAG,MAAAA,CAAO;EAChCjB,MAAM;EACNC,MAAM;EACNiB,SAAS;EACTC,MAAM;EACNC;AAOF,CAAC,KAAK;EACJ,IAAI;IACF,MAAM7B,aAAa,CAACY,IAAI,CAAC,SAAS,EAAE;MAClCH,MAAM;MACNC,MAAM;MACNiB,SAAS;MACTC,MAAM;MACNC,SAAS,EAAEA,SAAS,IAAI,IAAIC,IAAI,CAAC,CAAC;MAClCjB,QAAQ,EACNP,qBAAQ,CAACC,EAAE,KAAK,KAAK,GACjB,KAAK,GACLD,qBAAQ,CAACC,EAAE,KAAK,SAAS,GACvB,SAAS,GACT;IACV,CAAC,CAAC;EACJ,CAAC,CAAC,OAAOc,KAAU,EAAE;IACnBC,OAAO,CAACD,KAAK,CAAC,sBAAsB,EAAEA,KAAK,CAACE,OAAO,CAAC;IACpD,MAAM,IAAIC,KAAK,CAACH,KAAK,CAACV,QAAQ,EAAEM,IAAI,EAAEM,OAAO,IAAI,qBAAqB,CAAC;EACzE;AACF,CAAC;AAACE,OAAA,CAAAC,WAAA,GAAAA,WAAA;AAEK,MAAMK,0BAA0B,GAAG,MAAAA,CAAO;EAC/CtB,MAAM;EACNC,MAAM;EACNkB,MAAM;EACNC;AAMF,CAAC,KAAK;EACJ,IAAI;IACF,MAAM7B,aAAa,CAACY,IAAI,CAAC,2BAA2B,EAAE;MACpDH,MAAM;MACNC,MAAM;MACNsB,SAAS,EAAEJ,MAAM,CAACI,SAAS;MAC3BC,KAAK,EAAEL,MAAM,CAACK,KAAK;MACnBC,YAAY,EAAEN,MAAM,CAACM,YAAY;MACjCC,YAAY,EAAEP,MAAM,CAACO,YAAY;MACjCC,KAAK,EAAER,MAAM,CAACQ,KAAK;MACnBP,SAAS,EAAEA,SAAS,IAAI,IAAIC,IAAI,CAAC,CAAC;MAClCjB,QAAQ,EACNP,qBAAQ,CAACC,EAAE,KAAK,KAAK,GACjB,KAAK,GACLD,qBAAQ,CAACC,EAAE,KAAK,SAAS,GACvB,SAAS,GACTD,qBAAQ,CAACC;IACnB,CAAC,CAAC;EACJ,CAAC,CAAC,OAAOc,KAAU,EAAE;IACnBC,OAAO,CAACD,KAAK,CAAC,wCAAwC,EAAEA,KAAK,CAACE,OAAO,CAAC;EACxE;AACF,CAAC;AAACE,OAAA,CAAAM,0BAAA,GAAAA,0BAAA;AAEK,MAAMM,OAAO,GAAG,MAAAA,CAAO;EAC5B3B,MAAM;EACND;AAIF,CAAC,KAAK;EACJ,IAAI;IACF,MAAME,QAAQ,GAAG,MAAMX,aAAa,CAACY,IAAI,CAGtC,UAAU,EAAE;MACbH,MAAM;MACNC;IACF,CAAC,CAAC;IAEF,OAAOC,QAAQ,CAACM,IAAI;EACtB,CAAC,CAAC,OAAOI,KAAU,EAAE;IACnBC,OAAO,CAACD,KAAK,CAAC,+BAA+B,EAAEA,KAAK,CAACE,OAAO,CAAC;IAC7D,MAAM,IAAIC,KAAK,CACbH,KAAK,CAACV,QAAQ,EAAEM,IAAI,EAAEM,OAAO,IAAI,8BACnC,CAAC;EACH;AACF,CAAC;AAACE,OAAA,CAAAY,OAAA,GAAAA,OAAA;AAEK,MAAMC,qBAAqB,GAAG,MAAOC,YAK3C,IAAK;EACJ,IAAI;IACF,MAAM5B,QAAQ,GAAG,MAAMX,aAAa,CAACY,IAAI,CAEtC,qBAAqB,EAAE;MACxBH,MAAM,EAAE8B,YAAY,CAAC9B,MAAM;MAC3B+B,SAAS,EAAED,YAAY,CAAC7B,MAAM;MAC9B+B,SAAS,EAAEF,YAAY,CAACE,SAAS;MACjCC,OAAO,EAAEH,YAAY,CAACG;IACxB,CAAC,CAAC;IACF,OAAO/B,QAAQ,CAACM,IAAI,CAAC0B,QAAQ;EAC/B,CAAC,CAAC,OAAOtB,KAAU,EAAE;IACnBC,OAAO,CAACD,KAAK,CAAC,8BAA8B,EAAEA,KAAK,CAACE,OAAO,CAAC;IAC5D,MAAM,IAAIC,KAAK,CACbH,KAAK,CAACV,QAAQ,EAAEM,IAAI,EAAEM,OAAO,IAAI,6BACnC,CAAC;EACH;AACF,CAAC;;AAED;AACA;AACA;AACA;AAHAE,OAAA,CAAAa,qBAAA,GAAAA,qBAAA;AAIO,MAAMM,kBAAkB,GAAG,MAAAA,CAAO;EACvCnC,MAAM;EACNC;AAIF,CAAC,KAAK;EACJ,IAAI;IACF,MAAMC,QAAQ,GAAG,MAAMX,aAAa,CAAC6C,GAAG,CAErC,4BAA4B,EAAE;MAC/BjB,MAAM,EAAE;QAAEnB,MAAM;QAAE+B,SAAS,EAAE9B;MAAO;IACtC,CAAC,CAAC;IACF,OAAOC,QAAQ,CAACM,IAAI,CAAC0B,QAAQ;EAC/B,CAAC,CAAC,OAAOtB,KAAU,EAAE;IACnBC,OAAO,CAACD,KAAK,CAAC,8BAA8B,EAAEA,KAAK,CAACE,OAAO,CAAC;IAC5D,MAAM,IAAIC,KAAK,CACbH,KAAK,CAACV,QAAQ,EAAEM,IAAI,EAAEM,OAAO,IAAI,6BACnC,CAAC;EACH;AACF,CAAC;;AAED;AACA;AACA;AACA;AAHAE,OAAA,CAAAmB,kBAAA,GAAAA,kBAAA;AAIO,MAAME,gBAAgB,GAAG,MAAAA,CAAO;EACrCrC,MAAM;EACNC;AAIF,CAAC,KAAK;EACJ,IAAI;IACF,MAAMC,QAAQ,GAAG,MAAMX,aAAa,CAACY,IAAI,CAGtC,2BAA2B,EAAE;MAC9BH,MAAM;MACNC,MAAM;MACNG,QAAQ,EACNP,qBAAQ,CAACC,EAAE,KAAK,KAAK,GACjB,KAAK,GACLD,qBAAQ,CAACC,EAAE,KAAK,SAAS,GACvB,SAAS,GACTD,qBAAQ,CAACC;IACnB,CAAC,CAAC;IACF,OAAOI,QAAQ,CAACM,IAAI;EACtB,CAAC,CAAC,OAAOI,KAAU,EAAE;IACnBC,OAAO,CAACD,KAAK,CAAC,+BAA+B,EAAEA,KAAK,CAACE,OAAO,CAAC;IAC7D,MAAM,IAAIC,KAAK,CACbH,KAAK,CAACV,QAAQ,EAAEM,IAAI,EAAEM,OAAO,IAAI,8BACnC,CAAC;EACH;AACF,CAAC;AAACE,OAAA,CAAAqB,gBAAA,GAAAA,gBAAA","ignoreList":[]}
1
+ {"version":3,"names":["_axios","_interopRequireDefault","require","_lib","_reactNative","_constants","e","__esModule","default","axiosInstance","axios","create","baseURL","headers","SDK_HEADERS","SDK_PLATFORM","SDK_VERSION","getSDKVersion","DEVICE_OS","Platform","OS","setAppVersionHeader","version","defaults","common","APP_VERSION","exports","setBundleIdHeader","bundleId","BUNDLE_ID","setUserIdHeader","userId","initialize","sdkKey","response","post","platform","organizationId","data","organization_id","error","console","message","Error","createEvent","eventName","params","createdAt","Date","createViewProductItemEvent","productId","price","regularPrice","currencyCode","promotionId","month","getAppUserDiscount","get","appUserId","discount","getOffer"],"sourceRoot":"../../src","sources":["ApiRequest.ts"],"mappings":"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","ignoreList":[]}
@@ -6,7 +6,6 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.default = void 0;
7
7
  var _reactNative = require("react-native");
8
8
  var _mitt = _interopRequireDefault(require("mitt"));
9
- var _dayjs = _interopRequireDefault(require("dayjs"));
10
9
  var _ApiRequest = _interopRequireWildcard(require("./ApiRequest.js"));
11
10
  var ApiRequest = _ApiRequest;
12
11
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
@@ -24,7 +23,6 @@ const MonetaiReactNative = _reactNative.NativeModules.MonetaiReactNative ? _reac
24
23
  // Emitter로 사용할 이벤트 타입 정의
25
24
 
26
25
  class MonetaiSDK {
27
- exposureTimeSec = null;
28
26
  initialized = false;
29
27
 
30
28
  // SDK 초기화 전에 로깅된 이벤트들을 저장할 큐
@@ -37,9 +35,6 @@ class MonetaiSDK {
37
35
  getEmitter() {
38
36
  return this.emitter;
39
37
  }
40
- getExposureTimeSec() {
41
- return this.exposureTimeSec;
42
- }
43
38
 
44
39
  /**
45
40
  * 모넷AI SDK를 초기화합니다
@@ -67,6 +62,26 @@ class MonetaiSDK {
67
62
  // userId 설정
68
63
  await MonetaiReactNative.setUserId(userId);
69
64
 
65
+ // 앱 버전을 가져와서 API 헤더에 설정
66
+ try {
67
+ const appVersion = await MonetaiReactNative.getAppVersion();
68
+ if (appVersion) {
69
+ (0, _ApiRequest.setAppVersionHeader)(appVersion);
70
+ }
71
+ } catch (error) {
72
+ console.warn('[MonetaiSDK] Failed to get app version:', error);
73
+ }
74
+
75
+ // Bundle ID / Package Name을 가져와서 API 헤더에 설정
76
+ try {
77
+ const bundleId = await MonetaiReactNative.getBundleId();
78
+ if (bundleId) {
79
+ (0, _ApiRequest.setBundleIdHeader)(bundleId);
80
+ }
81
+ } catch (error) {
82
+ console.warn('[MonetaiSDK] Failed to get bundle id:', error);
83
+ }
84
+
70
85
  // 트랜잭션 관찰 시작
71
86
  await MonetaiReactNative.startObserving(useStoreKit2);
72
87
 
@@ -78,7 +93,6 @@ class MonetaiSDK {
78
93
  sdkKey,
79
94
  userId
80
95
  });
81
- this.exposureTimeSec = result.campaign?.exposure_time_sec ?? null;
82
96
  this.initialized = true;
83
97
 
84
98
  // SDK 초기화 후, 초기화 전에 저장된 pendingEvents를 전송
@@ -104,8 +118,7 @@ class MonetaiSDK {
104
118
  organizationId: result.organizationId,
105
119
  platform: 'react_native',
106
120
  version: result.version,
107
- userId: userId,
108
- group: result.group
121
+ userId: userId
109
122
  };
110
123
  }
111
124
  async logEvent({
@@ -165,51 +178,21 @@ class MonetaiSDK {
165
178
  });
166
179
  }
167
180
 
168
- // Non-Purchaser 예측
169
- async predict() {
170
- const sdkKey = await this.getSdkKey();
171
- const userId = await this.getUserId();
172
- if (!sdkKey || !userId || !this.exposureTimeSec) {
173
- throw new Error('MonetaiSDK is not initialized. Call initialize() first.');
174
- }
175
- const result = await ApiRequest.predict({
176
- userId,
177
- sdkKey
178
- });
179
- if (result.prediction === 'non-purchaser') {
180
- const discountInfo = await ApiRequest.getAppUserDiscount({
181
- sdkKey,
182
- userId
183
- });
184
- const hasActiveDiscount = discountInfo != null && discountInfo.app_user_id === userId && (0, _dayjs.default)(discountInfo.ended_at).isAfter((0, _dayjs.default)());
185
- if (!hasActiveDiscount) {
186
- const startedAt = (0, _dayjs.default)();
187
- const endedAt = startedAt.clone().add(this.exposureTimeSec, 'second');
188
- await (0, _ApiRequest.createAppUserDiscount)({
189
- startedAt: startedAt.toDate(),
190
- endedAt: endedAt.toDate(),
191
- userId,
192
- sdkKey
193
- });
194
- this.emitter.emit('LOAD_DISCOUNT_INFO');
195
- }
196
- }
197
- return result;
198
- }
199
-
200
181
  /**
201
- * Thompson Sampling을 사용한 최적 가격 결정
202
- * @returns productId와 할인율
182
+ * 오퍼 조회
183
+ * @param promotionId 프로모션 ID
184
+ * @returns 에이전트 매칭 결과 및 상품 목록, 없으면 null
203
185
  */
204
- async getPriceDecision() {
186
+ async getOffer(promotionId) {
205
187
  const sdkKey = await this.getSdkKey();
206
188
  const userId = await this.getUserId();
207
189
  if (!sdkKey || !userId) {
208
190
  throw new Error('MonetaiSDK is not initialized. Call initialize() first.');
209
191
  }
210
- return await ApiRequest.getPriceDecision({
192
+ return await ApiRequest.getOffer({
211
193
  sdkKey,
212
- userId
194
+ userId,
195
+ promotionId
213
196
  });
214
197
  }
215
198
  getInitialized() {
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","_mitt","_interopRequireDefault","_dayjs","_ApiRequest","_interopRequireWildcard","ApiRequest","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","LINKING_ERROR","Platform","select","ios","MonetaiReactNative","NativeModules","Proxy","Error","MonetaiSDK","exposureTimeSec","initialized","pendingEvents","emitter","mitt","getEmitter","getExposureTimeSec","initialize","sdkKey","userId","useStoreKit2","setSdkKey","setUserId","startObserving","sendReceipt","catch","err","console","error","result","campaign","exposure_time_sec","pendingPromises","map","eventName","params","createdAt","createEvent","log","Promise","all","then","emit","organizationId","platform","version","group","logEvent","getSdkKey","getUserId","push","Date","logViewProductItem","warn","createViewProductItemEvent","predict","prediction","discountInfo","getAppUserDiscount","hasActiveDiscount","app_user_id","dayjs","ended_at","isAfter","startedAt","endedAt","clone","add","createAppUserDiscount","toDate","getPriceDecision","getInitialized","reset","monetaiSDK","_default","exports"],"sourceRoot":"../../src","sources":["MonetaiSDK.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_reactNative","require","_mitt","_interopRequireDefault","_ApiRequest","_interopRequireWildcard","ApiRequest","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","LINKING_ERROR","Platform","select","ios","MonetaiReactNative","NativeModules","Proxy","Error","MonetaiSDK","initialized","pendingEvents","emitter","mitt","getEmitter","initialize","sdkKey","userId","useStoreKit2","setSdkKey","setUserId","appVersion","getAppVersion","setAppVersionHeader","error","console","warn","bundleId","getBundleId","setBundleIdHeader","startObserving","sendReceipt","catch","err","result","pendingPromises","map","eventName","params","createdAt","createEvent","log","Promise","all","then","emit","organizationId","platform","version","logEvent","getSdkKey","getUserId","push","Date","logViewProductItem","createViewProductItemEvent","getOffer","promotionId","getInitialized","reset","monetaiSDK","_default","exports"],"sourceRoot":"../../src","sources":["MonetaiSDK.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.SDK_HEADERS = void 0;
7
+ const SDK_HEADERS = exports.SDK_HEADERS = {
8
+ BUNDLE_ID: 'X-App-Bundle-Id',
9
+ DEVICE_OS: 'X-Device-OS',
10
+ SDK_PLATFORM: 'X-SDK-Platform',
11
+ SDK_VERSION: 'X-SDK-Version',
12
+ APP_VERSION: 'X-App-Version'
13
+ };
14
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["SDK_HEADERS","exports","BUNDLE_ID","DEVICE_OS","SDK_PLATFORM","SDK_VERSION","APP_VERSION"],"sourceRoot":"../../src","sources":["constants.ts"],"mappings":";;;;;;AAAO,MAAMA,WAAW,GAAAC,OAAA,CAAAD,WAAA,GAAG;EACzBE,SAAS,EAAE,iBAAiB;EAC5BC,SAAS,EAAE,aAAa;EACxBC,YAAY,EAAE,gBAAgB;EAC9BC,WAAW,EAAE,eAAe;EAC5BC,WAAW,EAAE;AACf,CAAU","ignoreList":[]}
@@ -6,8 +6,8 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.getSDKVersion = getSDKVersion;
7
7
  function getSDKVersion() {
8
8
  // __SDK_VERSION__이 정의되어 있으면 해당 값을 사용
9
- if (typeof "1.0.0-beta.0" === 'string') {
10
- return "1.0.0-beta.0";
9
+ if (typeof "1.0.0-beta.2" === 'string') {
10
+ return "1.0.0-beta.2";
11
11
  }
12
12
 
13
13
  // 그렇지 않으면, package.json을 lazy하게 불러와 version을 반환
@@ -3,36 +3,51 @@
3
3
  import axios from 'axios';
4
4
  import { getSDKVersion } from "./lib.js";
5
5
  import { Platform } from 'react-native';
6
+ import { SDK_HEADERS } from "./constants.js";
6
7
  const axiosInstance = axios.create({
7
8
  baseURL: 'https://monetai-api-414410537412.us-central1.run.app/sdk',
8
9
  // 필요에 따라 베이스 URL 설정
9
10
  headers: {
10
- 'X-SDK-Platform': 'react_native',
11
- 'X-SDK-Version': getSDKVersion(),
12
- 'X-Device-OS': Platform.OS === 'ios' ? 'ios' : Platform.OS === 'android' ? 'android' : Platform.OS
11
+ [SDK_HEADERS.SDK_PLATFORM]: 'react_native',
12
+ [SDK_HEADERS.SDK_VERSION]: getSDKVersion(),
13
+ [SDK_HEADERS.DEVICE_OS]: Platform.OS === 'ios' ? 'ios' : Platform.OS === 'android' ? 'android' : Platform.OS
13
14
  }
14
15
  });
16
+
17
+ /**
18
+ * X-App-Version 헤더를 설정합니다.
19
+ * SDK 초기화 시점에 호출되어야 합니다.
20
+ */
21
+ export const setAppVersionHeader = version => {
22
+ axiosInstance.defaults.headers.common[SDK_HEADERS.APP_VERSION] = version;
23
+ };
24
+
25
+ /**
26
+ * X-App-Bundle-Id 헤더를 설정합니다.
27
+ * SDK 초기화 시점에 호출되어야 합니다.
28
+ */
29
+ export const setBundleIdHeader = bundleId => {
30
+ axiosInstance.defaults.headers.common[SDK_HEADERS.BUNDLE_ID] = bundleId;
31
+ };
32
+ export const setUserIdHeader = userId => {
33
+ axiosInstance.defaults.headers.common['X-User-Id'] = userId;
34
+ };
15
35
  export const initialize = async ({
16
36
  sdkKey,
17
37
  userId
18
38
  }) => {
19
39
  try {
40
+ // X-User-Id 헤더 설정 (user property 수집용)
41
+ setUserIdHeader(userId);
20
42
  const response = await axiosInstance.post('/sdk-integrations', {
21
43
  sdkKey,
22
44
  platform: 'react_native',
23
45
  version: getSDKVersion()
24
46
  });
25
- const abTestGroupResponse = await axiosInstance.post('/ab-test', {
26
- sdkKey,
27
- userId,
28
- platform: Platform.OS === 'ios' ? 'ios' : Platform.OS === 'android' ? 'android' : Platform.OS
29
- });
30
47
  return {
31
48
  organizationId: response.data.organization_id,
32
49
  platform: response.data.platform,
33
- version: response.data.version,
34
- group: abTestGroupResponse.data.group,
35
- campaign: abTestGroupResponse.data.campaign
50
+ version: response.data.version
36
51
  };
37
52
  } catch (error) {
38
53
  console.error('Failed to initialize integration:', error.message);
@@ -74,6 +89,7 @@ export const createViewProductItemEvent = async ({
74
89
  price: params.price,
75
90
  regularPrice: params.regularPrice,
76
91
  currencyCode: params.currencyCode,
92
+ promotionId: params.promotionId,
77
93
  month: params.month,
78
94
  createdAt: createdAt ?? new Date(),
79
95
  platform: Platform.OS === 'ios' ? 'ios' : Platform.OS === 'android' ? 'android' : Platform.OS
@@ -82,35 +98,6 @@ export const createViewProductItemEvent = async ({
82
98
  console.error('Failed to log view product item event:', error.message);
83
99
  }
84
100
  };
85
- export const predict = async ({
86
- userId,
87
- sdkKey
88
- }) => {
89
- try {
90
- const response = await axiosInstance.post('/predict', {
91
- sdkKey,
92
- userId
93
- });
94
- return response.data;
95
- } catch (error) {
96
- console.error('Failed to get A/B test group:', error.message);
97
- throw new Error(error.response?.data?.message || 'Failed to get A/B test group');
98
- }
99
- };
100
- export const createAppUserDiscount = async discountInfo => {
101
- try {
102
- const response = await axiosInstance.post('/app-user-discounts', {
103
- sdkKey: discountInfo.sdkKey,
104
- appUserId: discountInfo.userId,
105
- startedAt: discountInfo.startedAt,
106
- endedAt: discountInfo.endedAt
107
- });
108
- return response.data.discount;
109
- } catch (error) {
110
- console.error('Failed to set discount info:', error.message);
111
- throw new Error(error.response?.data?.message || 'Failed to set discount info');
112
- }
113
- };
114
101
 
115
102
  /**
116
103
  * sdkKey와 app_user_id에 해당하는 가장 최근 할인 정보를 조회합니다.
@@ -135,23 +122,25 @@ export const getAppUserDiscount = async ({
135
122
  };
136
123
 
137
124
  /**
138
- * Thompson Sampling을 사용한 최적 가격 결정
139
- * API POST /dynamic-pricing/decision 엔드포인트를 호출합니다.
125
+ * 오퍼 조회
126
+ * API POST /offers/get-offer 엔드포인트를 호출합니다.
140
127
  */
141
- export const getPriceDecision = async ({
128
+ export const getOffer = async ({
142
129
  sdkKey,
143
- userId
130
+ userId,
131
+ promotionId
144
132
  }) => {
145
133
  try {
146
- const response = await axiosInstance.post('/dynamic-pricing/decision', {
134
+ const response = await axiosInstance.post('/offers/get-offer', {
147
135
  sdkKey,
148
136
  userId,
137
+ promotionId,
149
138
  platform: Platform.OS === 'ios' ? 'ios' : Platform.OS === 'android' ? 'android' : Platform.OS
150
139
  });
151
140
  return response.data;
152
141
  } catch (error) {
153
- console.error('Failed to get price decision:', error.message);
154
- throw new Error(error.response?.data?.message || 'Failed to get price decision');
142
+ console.error('Failed to get offer:', error.message);
143
+ throw new Error(error.response?.data?.message || 'Failed to get offer');
155
144
  }
156
145
  };
157
146
  //# sourceMappingURL=ApiRequest.js.map