@1selfworld/adchain-sdk-react-native 1.0.5 → 1.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/module/index.js +29 -14
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/index.tsx +37 -14
package/lib/module/index.js
CHANGED
|
@@ -2,18 +2,23 @@
|
|
|
2
2
|
|
|
3
3
|
import { NativeModules, Platform, NativeEventEmitter } from 'react-native';
|
|
4
4
|
|
|
5
|
-
// Expo
|
|
6
|
-
//
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
5
|
+
// ===== Expo 환경 감지 =====
|
|
6
|
+
// ExpoConstants 네이티브 모듈 존재 여부로 Expo 환경 판단
|
|
7
|
+
// 이 방법은 Metro 번들러의 정적 분석을 트리거하지 않으며,
|
|
8
|
+
// 런타임에 안전하게 환경을 감지할 수 있습니다.
|
|
9
|
+
const hasExpoNative = (() => {
|
|
10
|
+
try {
|
|
11
|
+
return !!NativeModules.ExpoConstants;
|
|
12
|
+
} catch {
|
|
13
|
+
return false;
|
|
14
|
+
}
|
|
15
|
+
})();
|
|
16
|
+
|
|
17
|
+
// ===== Expo Constants 동적 로딩 =====
|
|
18
|
+
// Metro 번들러의 정적 분석을 우회하기 위해 top-level require()를 제거하고
|
|
19
|
+
// autoInitialize() 함수 내부에서 동적 import()를 사용합니다.
|
|
20
|
+
// 이 방법으로 Expo 환경이 아닌 순수 React Native에서는 expo-constants가
|
|
21
|
+
// 번들에 포함되지 않으며, 런타임 에러도 발생하지 않습니다.
|
|
17
22
|
|
|
18
23
|
// Export Offerwall View Component
|
|
19
24
|
export { AdchainOfferwallView } from "./AdchainOfferwallView.js";
|
|
@@ -48,8 +53,18 @@ class AdchainSDK {
|
|
|
48
53
|
// Expo용 자동 초기화 (app.json 설정 사용) - 플랫폼별 credentials 지원
|
|
49
54
|
async autoInitialize() {
|
|
50
55
|
try {
|
|
51
|
-
|
|
52
|
-
|
|
56
|
+
// Expo 네이티브 모듈 확인
|
|
57
|
+
if (!hasExpoNative) {
|
|
58
|
+
throw new Error('AdChain: autoInitialize() is only available in Expo projects.\n\n' + `Environment check:\n` + `- Platform: ${Platform.OS}\n` + `- Expo native module: ✗ Not found\n\n` + 'For pure React Native projects, please use initialize() method with your credentials.');
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
// 동적 import로 expo-constants 로드 (Metro 정적 분석 우회)
|
|
62
|
+
let Constants = null;
|
|
63
|
+
try {
|
|
64
|
+
const ExpoConstantsModule = await import('expo-constants');
|
|
65
|
+
Constants = ExpoConstantsModule.default;
|
|
66
|
+
} catch (e) {
|
|
67
|
+
throw new Error('AdChain: Failed to load expo-constants module.\n\n' + `Error: ${e}\n\n` + 'Please ensure expo-constants is installed:\n' + 'npm install expo-constants');
|
|
53
68
|
}
|
|
54
69
|
const expoConfig = Constants.expoConfig;
|
|
55
70
|
if (!expoConfig) {
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["NativeModules","Platform","NativeEventEmitter","
|
|
1
|
+
{"version":3,"names":["NativeModules","Platform","NativeEventEmitter","hasExpoNative","ExpoConstants","AdchainOfferwallView","LINKING_ERROR","select","ios","default","AdchainSdk","Proxy","get","Error","adchainEventEmitter","AdchainSDK","initialize","config","options","environment","timeout","appKey","appSecret","autoInitialize","OS","Constants","ExpoConstantsModule","e","expoConfig","adchainAndroidAppKey","adchainAndroidAppSecret","adchainIosAppKey","adchainIosAppSecret","adchainEnvironment","adchainTimeout","extra","isIOS","console","log","error","login","user","userInfo","gender","birthYear","customProperties","userId","logout","isLoggedIn","getCurrentUser","loadQuizList","unitId","clickQuiz","quizId","loadMissionList","clickMission","missionId","claimReward","openOfferwall","placementId","openOfferwallWithUrl","url","openExternalBrowser","openAdjoeOfferwall","isInitialized","getUserId","getIFA","getBannerInfo","addQuizCompletedListener","callback","addListener","addMissionCompletedListener","addMissionProgressedListener","addMissionRefreshedListener","sdk"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA,SAASA,aAAa,EAAEC,QAAQ,EAAEC,kBAAkB,QAAQ,cAAc;;AAE1E;AACA;AACA;AACA;AACA,MAAMC,aAAa,GAAG,CAAC,MAAM;EAC3B,IAAI;IACF,OAAO,CAAC,CAACH,aAAa,CAACI,aAAa;EACtC,CAAC,CAAC,MAAM;IACN,OAAO,KAAK;EACd;AACF,CAAC,EAAE,CAAC;;AAEJ;AACA;AACA;AACA;AACA;;AAEA;AACA,SAASC,oBAAoB,QAAQ,2BAAwB;AAG7D,MAAMC,aAAa,GACjB,sEAAsE,GACtEL,QAAQ,CAACM,MAAM,CAAC;EAAEC,GAAG,EAAE,gCAAgC;EAAEC,OAAO,EAAE;AAAG,CAAC,CAAC,GACvE,sDAAsD,GACtD,+BAA+B;AAEjC,MAAMC,UAAU,GAAGV,aAAa,CAACU,UAAU,GACvCV,aAAa,CAACU,UAAU,GACxB,IAAIC,KAAK,CACP,CAAC,CAAC,EACF;EACEC,GAAGA,CAAA,EAAG;IACJ,MAAM,IAAIC,KAAK,CAACP,aAAa,CAAC;EAChC;AACF,CACF,CAAC;;AAEL;AACA,MAAMQ,mBAAmB,GAAG,IAAIZ,kBAAkB,CAACQ,UAAU,CAAC;;AAE9D;;AA0DA;;AAEA,MAAMK,UAAU,CAAC;EACf;EACA,MAAMC,UAAUA,CAACC,MAAqB,EAA4B;IAChE;IACA,MAAMC,OAAO,GAAG;MACdC,WAAW,EAAEF,MAAM,CAACE,WAAW;MAC/BC,OAAO,EAAEH,MAAM,CAACG;IAClB,CAAC;IAED,OAAOV,UAAU,CAACM,UAAU,CAACC,MAAM,CAACI,MAAM,EAAEJ,MAAM,CAACK,SAAS,EAAEJ,OAAO,CAAC;EACxE;;EAEA;EACA,MAAMK,cAAcA,CAAA,EAA6B;IAC/C,IAAI;MACF;MACA,IAAI,CAACpB,aAAa,EAAE;QAClB,MAAM,IAAIU,KAAK,CACb,mEAAmE,GACjE,sBAAsB,GACtB,eAAeZ,QAAQ,CAACuB,EAAE,IAAI,GAC9B,uCAAuC,GACvC,uFACJ,CAAC;MACH;;MAEA;MACA,IAAIC,SAAc,GAAG,IAAI;MACzB,IAAI;QACF,MAAMC,mBAAmB,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC;QAC1DD,SAAS,GAAGC,mBAAmB,CAACjB,OAAO;MACzC,CAAC,CAAC,OAAOkB,CAAC,EAAE;QACV,MAAM,IAAId,KAAK,CACb,oDAAoD,GAClD,UAAUc,CAAC,MAAM,GACjB,8CAA8C,GAC9C,4BACJ,CAAC;MACH;MAEA,MAAMC,UAAU,GAAGH,SAAS,CAACG,UAAU;MAEvC,IAAI,CAACA,UAAU,EAAE;QACf,MAAM,IAAIf,KAAK,CACb,kCAAkC,GAChC,qEAAqE,GACrE,sDACJ,CAAC;MACH;MAEA,MAAM;QACJgB,oBAAoB;QACpBC,uBAAuB;QACvBC,gBAAgB;QAChBC,mBAAmB;QACnBC,kBAAkB;QAClBC;MACF,CAAC,GAAGN,UAAU,CAACO,KAAK,IAAI,CAAC,CAAC;;MAE1B;MACA,MAAMC,KAAK,GAAGnC,QAAQ,CAACuB,EAAE,KAAK,KAAK;MACnC,MAAMH,MAAM,GAAGe,KAAK,GAAGL,gBAAgB,GAAGF,oBAAoB;MAC9D,MAAMP,SAAS,GAAGc,KAAK,GAAGJ,mBAAmB,GAAGF,uBAAuB;MAEvE,IAAI,CAACT,MAAM,IAAI,CAACC,SAAS,EAAE;QACzB,MAAM,IAAIT,KAAK,CACb,oBAAoBZ,QAAQ,CAACuB,EAAE,8BAA8B,GAC3D,gDAAgD,GAChD,KAAK,GACL,eAAe,GACf,oBAAoB,GACpB,iCAAiC,GACjC,wBAAwB,GACxB,+CAA+C,GAC/C,4CAA4C,GAC5C,cAAc,GACd,oBAAoB,GACpB,2CAA2C,GAC3C,4CAA4C,GAC5C,aAAa,GACb,YAAY,GACZ,SAAS,GACT,OAAO,GACP,GACJ,CAAC;MACH;MAEAa,OAAO,CAACC,GAAG,CACT,oCAAoCrC,QAAQ,CAACuB,EAAE,iBACjD,CAAC;MAED,OAAO,MAAM,IAAI,CAACR,UAAU,CAAC;QAC3BK,MAAM;QACNC,SAAS;QACTH,WAAW,EAAEc,kBAAkB,IAAI,YAAY;QAC/Cb,OAAO,EAAEc;MACX,CAAC,CAAC;IACJ,CAAC,CAAC,OAAOK,KAAK,EAAE;MACdF,OAAO,CAACE,KAAK,CAAC,kCAAkC,EAAEA,KAAK,CAAC;MACxD,MAAMA,KAAK;IACb;EACF;;EAEA;EACA,MAAMC,KAAKA,CAACC,IAAiB,EAA4B;IACvD;IACA,MAAMC,QAAQ,GAAG;MACfC,MAAM,EAAEF,IAAI,CAACE,MAAM;MACnBC,SAAS,EAAEH,IAAI,CAACG,SAAS;MACzBC,gBAAgB,EAAEJ,IAAI,CAACI;IACzB,CAAC;IAED,OAAOnC,UAAU,CAAC8B,KAAK,CAACC,IAAI,CAACK,MAAM,EAAEJ,QAAQ,CAAC;EAChD;EAEA,MAAMK,MAAMA,CAAA,EAA6B;IACvC,OAAOrC,UAAU,CAACqC,MAAM,CAAC,CAAC;EAC5B;EAEA,MAAMC,UAAUA,CAAA,EAAqB;IACnC,OAAOtC,UAAU,CAACsC,UAAU,CAAC,CAAC;EAChC;EAEA,MAAMC,cAAcA,CAAA,EAAgC;IAClD,OAAOvC,UAAU,CAACuC,cAAc,CAAC,CAAC;EACpC;;EAEA;EACA,MAAMC,YAAYA,CAACC,MAAc,EAAyB;IACxD,OAAOzC,UAAU,CAACwC,YAAY,CAACC,MAAM,CAAC;EACxC;EAEA,MAAMC,SAASA,CAACD,MAAc,EAAEE,MAAc,EAA4B;IACxE,OAAO3C,UAAU,CAAC0C,SAAS,CAACD,MAAM,EAAEE,MAAM,CAAC;EAC7C;;EAEA;EACA,MAAMC,eAAeA,CAACH,MAAc,EAAgC;IAClE,OAAOzC,UAAU,CAAC4C,eAAe,CAACH,MAAM,CAAC;EAC3C;EAEA,MAAMI,YAAYA,CAChBJ,MAAc,EACdK,SAAiB,EACS;IAC1B,OAAO9C,UAAU,CAAC6C,YAAY,CAACJ,MAAM,EAAEK,SAAS,CAAC;EACnD;EAEA,MAAMC,WAAWA,CAACN,MAAc,EAA4B;IAC1D,OAAOzC,UAAU,CAAC+C,WAAW,CAACN,MAAM,CAAC;EACvC;;EAEA;EACA,MAAMO,aAAaA,CAACC,WAAoB,EAA4B;IAClE;IACA,OAAOjD,UAAU,CAACgD,aAAa,CAACC,WAAW,IAAI,EAAE,CAAC;EACpD;EAEA,MAAMC,oBAAoBA,CACxBC,GAAW,EACXF,WAAoB,EACM;IAC1B;IACA,OAAOjD,UAAU,CAACkD,oBAAoB,CAACC,GAAG,EAAEF,WAAW,IAAI,EAAE,CAAC;EAChE;EAEA,MAAMG,mBAAmBA,CACvBD,GAAW,EACXF,WAAoB,EACM;IAC1B;IACA,OAAOjD,UAAU,CAACoD,mBAAmB,CAACD,GAAG,EAAEF,WAAW,IAAI,EAAE,CAAC;EAC/D;EAEA,MAAMI,kBAAkBA,CAACJ,WAAoB,EAA4B;IACvE;IACA,OAAOjD,UAAU,CAACqD,kBAAkB,CAACJ,WAAW,IAAI,EAAE,CAAC;EACzD;;EAEA;EACA,MAAMK,aAAaA,CAAA,EAAqB;IACtC,OAAOtD,UAAU,CAACsD,aAAa,CAAC,CAAC;EACnC;EAEA,MAAMC,SAASA,CAAA,EAAoB;IACjC,OAAOvD,UAAU,CAACuD,SAAS,CAAC,CAAC;EAC/B;EAEA,MAAMC,MAAMA,CAAA,EAAoB;IAC9B,OAAOxD,UAAU,CAACwD,MAAM,CAAC,CAAC;EAC5B;;EAEA;EACA,MAAMC,aAAaA,CAACR,WAAmB,EAAgB;IACrD,OAAOjD,UAAU,CAACyD,aAAa,CAACR,WAAW,CAAC;EAC9C;AACF;;AAEA;;AAEA,OAAO,SAASS,wBAAwBA,CACtCC,QAA6D,EAC7D;EACA,OAAOvD,mBAAmB,CAACwD,WAAW,CAAC,iBAAiB,EAAED,QAAe,CAAC;AAC5E;AAEA,OAAO,SAASE,2BAA2BA,CACzCF,QAAgE,EAChE;EACA,OAAOvD,mBAAmB,CAACwD,WAAW,CAAC,oBAAoB,EAAED,QAAe,CAAC;AAC/E;AAEA,OAAO,SAASG,4BAA4BA,CAC1CH,QAAgE,EAChE;EACA,OAAOvD,mBAAmB,CAACwD,WAAW,CACpC,qBAAqB,EACrBD,QACF,CAAC;AACH;AAEA,OAAO,SAASI,2BAA2BA,CACzCJ,QAA6C,EAC7C;EACA,OAAOvD,mBAAmB,CAACwD,WAAW,CAAC,oBAAoB,EAAED,QAAe,CAAC;AAC/E;;AAEA;;AAEA,MAAMK,GAAG,GAAG,IAAI3D,UAAU,CAAC,CAAC;AAC5B,eAAe2D,GAAG","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/index.tsx
CHANGED
|
@@ -1,17 +1,22 @@
|
|
|
1
1
|
import { NativeModules, Platform, NativeEventEmitter } from 'react-native';
|
|
2
2
|
|
|
3
|
-
// Expo
|
|
4
|
-
//
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
3
|
+
// ===== Expo 환경 감지 =====
|
|
4
|
+
// ExpoConstants 네이티브 모듈 존재 여부로 Expo 환경 판단
|
|
5
|
+
// 이 방법은 Metro 번들러의 정적 분석을 트리거하지 않으며,
|
|
6
|
+
// 런타임에 안전하게 환경을 감지할 수 있습니다.
|
|
7
|
+
const hasExpoNative = (() => {
|
|
8
|
+
try {
|
|
9
|
+
return !!NativeModules.ExpoConstants;
|
|
10
|
+
} catch {
|
|
11
|
+
return false;
|
|
12
|
+
}
|
|
13
|
+
})();
|
|
14
|
+
|
|
15
|
+
// ===== Expo Constants 동적 로딩 =====
|
|
16
|
+
// Metro 번들러의 정적 분석을 우회하기 위해 top-level require()를 제거하고
|
|
17
|
+
// autoInitialize() 함수 내부에서 동적 import()를 사용합니다.
|
|
18
|
+
// 이 방법으로 Expo 환경이 아닌 순수 React Native에서는 expo-constants가
|
|
19
|
+
// 번들에 포함되지 않으며, 런타임 에러도 발생하지 않습니다.
|
|
15
20
|
|
|
16
21
|
// Export Offerwall View Component
|
|
17
22
|
export { AdchainOfferwallView } from './AdchainOfferwallView';
|
|
@@ -112,13 +117,31 @@ class AdchainSDK {
|
|
|
112
117
|
// Expo용 자동 초기화 (app.json 설정 사용) - 플랫폼별 credentials 지원
|
|
113
118
|
async autoInitialize(): Promise<SuccessResponse> {
|
|
114
119
|
try {
|
|
115
|
-
|
|
120
|
+
// Expo 네이티브 모듈 확인
|
|
121
|
+
if (!hasExpoNative) {
|
|
116
122
|
throw new Error(
|
|
117
|
-
'AdChain: autoInitialize() is only available in Expo projects
|
|
123
|
+
'AdChain: autoInitialize() is only available in Expo projects.\n\n' +
|
|
124
|
+
`Environment check:\n` +
|
|
125
|
+
`- Platform: ${Platform.OS}\n` +
|
|
126
|
+
`- Expo native module: ✗ Not found\n\n` +
|
|
118
127
|
'For pure React Native projects, please use initialize() method with your credentials.'
|
|
119
128
|
);
|
|
120
129
|
}
|
|
121
130
|
|
|
131
|
+
// 동적 import로 expo-constants 로드 (Metro 정적 분석 우회)
|
|
132
|
+
let Constants: any = null;
|
|
133
|
+
try {
|
|
134
|
+
const ExpoConstantsModule = await import('expo-constants');
|
|
135
|
+
Constants = ExpoConstantsModule.default;
|
|
136
|
+
} catch (e) {
|
|
137
|
+
throw new Error(
|
|
138
|
+
'AdChain: Failed to load expo-constants module.\n\n' +
|
|
139
|
+
`Error: ${e}\n\n` +
|
|
140
|
+
'Please ensure expo-constants is installed:\n' +
|
|
141
|
+
'npm install expo-constants'
|
|
142
|
+
);
|
|
143
|
+
}
|
|
144
|
+
|
|
122
145
|
const expoConfig = Constants.expoConfig;
|
|
123
146
|
|
|
124
147
|
if (!expoConfig) {
|