react-native-bootpay-api 13.8.43 → 13.13.41
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/index.tsx +4 -2
- package/lib/Bootpay.js +25 -7
- package/lib/BootpayTypes.js +1 -1
- package/lib/UserInfo.js +1 -1
- package/lib/bootpayAnalytics.js +1 -1
- package/package.json +9 -8
- package/react-native.config.js +44 -51
- package/src/Bootpay.tsx +326 -470
- package/src/BootpayTypes.ts +98 -114
- package/src/UserInfo.ts +69 -63
- package/src/bootpayAnalytics.ts +151 -47
- package/src/index.tsx +3 -8
- package/src/Loader.tsx +0 -41
package/index.tsx
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
import { Bootpay } from './src/Bootpay';
|
|
2
|
-
import { Payload, Extra, Item, User } from './src/BootpayTypes';
|
|
1
|
+
// import { Bootpay } from './src/Bootpay';
|
|
2
|
+
// import { Payload, Extra, Item, User } from './src/BootpayTypes';
|
|
3
|
+
import { Bootpay } from './lib/Bootpay';
|
|
4
|
+
import { Payload, Extra, Item, User } from './lib/BootpayTypes';
|
|
3
5
|
export { Bootpay, Payload, Extra, Item, User };
|
|
4
6
|
export default Bootpay;
|
package/lib/Bootpay.js
CHANGED
|
@@ -1,12 +1,30 @@
|
|
|
1
|
-
var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.Bootpay=void 0;var _asyncToGenerator2=_interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));var _classCallCheck2=_interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));var _createClass2=_interopRequireDefault(require("@babel/runtime/helpers/createClass"));var _possibleConstructorReturn2=_interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));var _getPrototypeOf2=_interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));var _inherits2=_interopRequireDefault(require("@babel/runtime/helpers/inherits"));var _react=_interopRequireWildcard(require("react"));var _reactNative=require("react-native");var _reactNativeWebviewBootpay=_interopRequireDefault(require("react-native-webview-bootpay"));var _BootpayTypes=require("./BootpayTypes");var _lodash=require("lodash");var _UserInfo=_interopRequireDefault(require("./UserInfo"));var _jsxRuntime=require("react/jsx-runtime");var _jsxFileName="/Users/taesupyoon/bootpay/client/react-native/react-native-bootpay-api/src/Bootpay.tsx";function _getRequireWildcardCache(e){if("function"!=typeof WeakMap)return null;var r=new WeakMap(),t=new WeakMap();return(_getRequireWildcardCache=function _getRequireWildcardCache(e){return e?t:r;})(e);}function _interopRequireWildcard(e,r){if(!r&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var t=_getRequireWildcardCache(r);if(t&&t.has(e))return t.get(e);var n={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var u in e)if("default"!==u&&{}.hasOwnProperty.call(e,u)){var i=a?Object.getOwnPropertyDescriptor(e,u):null;i&&(i.get||i.set)?Object.defineProperty(n,u,i):n[u]=e[u];}return n.default=e,t&&t.set(e,n),n;}function _callSuper(t,o,e){return o=(0,_getPrototypeOf2.default)(o),(0,_possibleConstructorReturn2.default)(t,_isNativeReflectConstruct()?Reflect.construct(o,e||[],(0,_getPrototypeOf2.default)(t).constructor):o.apply(t,e));}function _isNativeReflectConstruct(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));}catch(t){}return(_isNativeReflectConstruct=function _isNativeReflectConstruct(){return!!t;})();}var Bootpay=exports.Bootpay=function(_Component){function Bootpay(props){var _this;(0,_classCallCheck2.default)(this,Bootpay);_this=_callSuper(this,Bootpay,[props]);_this.
|
|
2
|
-
setTimeout(function() { ${script} }, 30);
|
|
3
|
-
`);};_this.getAnalyticsData=(0,_asyncToGenerator2.default)(function*(){var uuid=yield _UserInfo.default.getBootpayUUID();var bootLastTime=yield _UserInfo.default.getBootpayLastTime();var elaspedTime=Date.now()-bootLastTime;return`window.Bootpay.$analytics.setAnalyticsData({uuid:'${uuid}', time:${elaspedTime}});`;});_this.confirm=function(){return"if (res.event === 'confirm') { window.BootpayRNWebView.postMessage( JSON.stringify(res) ); }";};_this.done=function(){return"else if (res.event === 'done') { window.BootpayRNWebView.postMessage( JSON.stringify(res) ); }";};_this.issued=function(){return"else if (res.event === 'issued') { window.BootpayRNWebView.postMessage( JSON.stringify(res) ); }";};_this.error=function(){return"if (res.event === 'error') { window.BootpayRNWebView.postMessage( JSON.stringify(res) ); }";};_this.cancel=function(){return"else if (res.event === 'cancel') { window.BootpayRNWebView.postMessage( JSON.stringify(res) ); }";};_this.close=function(){return"document.addEventListener('bootpayclose', function (e) { window.BootpayRNWebView.postMessage('close'); });";};_this.requestPayment=function(){var _ref3=(0,_asyncToGenerator2.default)(function*(payload,items,user,extra){_this.bootpayRequest(payload,items,user,extra,"requestPayment");});return function(_x2,_x3,_x4,_x5){return _ref3.apply(this,arguments);};}();_this.requestSubscription=function(){var _ref4=(0,_asyncToGenerator2.default)(function*(payload,items,user,extra){_this.bootpayRequest(payload,items,user,extra,"requestSubscription");});return function(_x6,_x7,_x8,_x9){return _ref4.apply(this,arguments);};}();_this.requestAuthentication=function(){var _ref5=(0,_asyncToGenerator2.default)(function*(payload,items,user,extra){_this.bootpayRequest(payload,items,user,extra,"requestAuthentication");});return function(_x10,_x11,_x12,_x13){return _ref5.apply(this,arguments);};}();_this.bootpayRequest=function(){var _ref6=(0,_asyncToGenerator2.default)(function*(payload,items,user,extra,requestMethod){payload.application_id=_reactNative.Platform.OS=='ios'?_this.props.ios_application_id:_this.props.android_application_id;payload.items=items;payload.user=user;payload.user=Object.assign(new _BootpayTypes.User(),user);payload.extra=Object.assign(new _BootpayTypes.Extra(),extra);_this.payload=payload;_this.setState({visibility:true,script:`
|
|
4
|
-
${yield _this.getMountJavascript()}
|
|
5
|
-
${_this.generateScript(payload,requestMethod)}
|
|
6
|
-
`,firstLoad:false,showCloseButton:extra.show_close_button||false,spinner:false});_UserInfo.default.updateInfo();});return function(_x14,_x15,_x16,_x17,_x18){return _ref6.apply(this,arguments);};}();_this.getMountJavascript=(0,_asyncToGenerator2.default)(function*(){return`
|
|
1
|
+
var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.Bootpay=void 0;var _asyncToGenerator2=_interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));var _classCallCheck2=_interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));var _createClass2=_interopRequireDefault(require("@babel/runtime/helpers/createClass"));var _possibleConstructorReturn2=_interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));var _getPrototypeOf2=_interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));var _inherits2=_interopRequireDefault(require("@babel/runtime/helpers/inherits"));var _react=_interopRequireWildcard(require("react"));var _reactNative=require("react-native");var _reactNativeWebviewBootpay=_interopRequireDefault(require("react-native-webview-bootpay"));var _BootpayTypes=require("./BootpayTypes");var _lodash=require("lodash");var _UserInfo=_interopRequireDefault(require("./UserInfo"));var _jsxRuntime=require("react/jsx-runtime");var _jsxFileName="/Users/taesupyoon/bootpay/client/react-native/react-native-bootpay-api/src/Bootpay.tsx";function _getRequireWildcardCache(e){if("function"!=typeof WeakMap)return null;var r=new WeakMap(),t=new WeakMap();return(_getRequireWildcardCache=function _getRequireWildcardCache(e){return e?t:r;})(e);}function _interopRequireWildcard(e,r){if(!r&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var t=_getRequireWildcardCache(r);if(t&&t.has(e))return t.get(e);var n={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var u in e)if("default"!==u&&{}.hasOwnProperty.call(e,u)){var i=a?Object.getOwnPropertyDescriptor(e,u):null;i&&(i.get||i.set)?Object.defineProperty(n,u,i):n[u]=e[u];}return n.default=e,t&&t.set(e,n),n;}function _callSuper(t,o,e){return o=(0,_getPrototypeOf2.default)(o),(0,_possibleConstructorReturn2.default)(t,_isNativeReflectConstruct()?Reflect.construct(o,e||[],(0,_getPrototypeOf2.default)(t).constructor):o.apply(t,e));}function _isNativeReflectConstruct(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));}catch(t){}return(_isNativeReflectConstruct=function _isNativeReflectConstruct(){return!!t;})();}var SDK_VERSION='13.13.4';var DEBUG_MODE=false;var Bootpay=exports.Bootpay=function(_Component){function Bootpay(props){var _this;(0,_classCallCheck2.default)(this,Bootpay);_this=_callSuper(this,Bootpay,[props]);_this.getMountJavascript=(0,_asyncToGenerator2.default)(function*(){return`
|
|
7
2
|
${_this.getSDKVersion()}
|
|
8
3
|
${_this.getEnvironmentMode()}
|
|
9
4
|
${_this.getBootpayPlatform()}
|
|
10
5
|
${_this.close()}
|
|
11
6
|
${yield _this.getAnalyticsData()}
|
|
12
|
-
`;});_this.
|
|
7
|
+
`;});_this.state={visibility:false,script:'',firstLoad:false,showCloseButton:false,isShowProgress:false};_this.dismiss=function(){_this.setState({visibility:false});};_this.showProgressBar=function(isShow){_this.setState({isShowProgress:isShow});};_this.closeDismiss=function(){if(_this.props.onClose)_this.props.onClose();_this.dismiss();};_this.callJavaScript=function(script){var _this$webView$current;(_this$webView$current=_this.webView.current)==null?void 0:_this$webView$current.injectJavaScript(`setTimeout(function() { ${script} }, 30);`);};_this.transactionConfirm=function(){var script=`
|
|
8
|
+
Bootpay.confirm()
|
|
9
|
+
.then(res => {
|
|
10
|
+
${_this.confirm()}
|
|
11
|
+
${_this.issued()}
|
|
12
|
+
${_this.done()}
|
|
13
|
+
}, res => {
|
|
14
|
+
${_this.error()}
|
|
15
|
+
${_this.cancel()}
|
|
16
|
+
});
|
|
17
|
+
`;_this.callJavaScript(script);};_this.confirm=function(){return"if (res.event === 'confirm') { window.BootpayRNWebView.postMessage( JSON.stringify(res) ); }";};_this.done=function(){return"else if (res.event === 'done') { window.BootpayRNWebView.postMessage( JSON.stringify(res) ); }";};_this.issued=function(){return"else if (res.event === 'issued') { window.BootpayRNWebView.postMessage( JSON.stringify(res) ); }";};_this.error=function(){return"if (res.event === 'error') { window.BootpayRNWebView.postMessage( JSON.stringify(res) ); }";};_this.cancel=function(){return"else if (res.event === 'cancel') { window.BootpayRNWebView.postMessage( JSON.stringify(res) ); }";};_this.close=function(){return"document.addEventListener('bootpayclose', function (e) { window.BootpayRNWebView.postMessage('close'); });";};_this.onMessage=function(){var _ref2=(0,_asyncToGenerator2.default)(function*(event){if(!event)return;try{var _this$payload;var res=JSON.parse(event.nativeEvent.data);if(res==='close'){_this.showProgressBar(false);_this.closeDismiss();return;}var data=typeof res==='string'?JSON.parse(res):res;var show_success=false;var show_error=false;if((_this$payload=_this.payload)!=null&&_this$payload.extra){var _this$payload$extra,_this$payload$extra2;show_error=!!((_this$payload$extra=_this.payload.extra)!=null&&_this$payload$extra.display_error_result);show_success=!!((_this$payload$extra2=_this.payload.extra)!=null&&_this$payload$extra2.display_success_result);}var handleEvent=function handleEvent(_eventName,callback,showResult){_this.showProgressBar(false);if(callback)callback(data);if(!showResult)_this.closeDismiss();};switch(data.event){case'cancel':handleEvent('cancel',_this.props.onCancel,false);break;case'error':handleEvent('error',_this.props.onError,show_error);break;case'issued':handleEvent('issued',_this.props.onIssued,show_success);break;case'confirm':_this.showProgressBar(true);if(_this.props.onConfirm&&_this.props.onConfirm(data)){_this.transactionConfirm();}break;case'done':handleEvent('done',_this.props.onDone,show_success);break;case'close':_this.showProgressBar(false);_this.closeDismiss();break;default:console.warn(`Unknown event type: ${data.event}`);break;}}catch(error){console.error('Error processing message:',error);}});return function(_x){return _ref2.apply(this,arguments);};}();_this.generateScript=function(payload,requestMethod){return`
|
|
18
|
+
Bootpay.${requestMethod}(${JSON.stringify(payload)})
|
|
19
|
+
.then(res => {
|
|
20
|
+
${_this.confirm()}
|
|
21
|
+
${_this.issued()}
|
|
22
|
+
${_this.done()}
|
|
23
|
+
}, res => {
|
|
24
|
+
${_this.error()}
|
|
25
|
+
${_this.cancel()}
|
|
26
|
+
});
|
|
27
|
+
`;};_this.getSDKVersion=function(){var os=_reactNative.Platform.OS;return`Bootpay.setVersion('${SDK_VERSION}', '${os}_react_native')`;};_this.getEnvironmentMode=function(){return DEBUG_MODE?"Bootpay.setEnvironmentMode('development');":'';};_this.getBootpayPlatform=function(){return _reactNative.Platform.OS==='ios'?"Bootpay.setDevice('IOS');":"Bootpay.setDevice('ANDROID');";};_this.removePaymentWindow=function(){_this.dismiss();};_this.getAnalyticsData=(0,_asyncToGenerator2.default)(function*(){var uuid=yield _UserInfo.default.getBootpayUUID();var bootpaySK=yield _UserInfo.default.getBootpaySK();var bootLastTime=yield _UserInfo.default.getBootpayLastTime();var elaspedTime=Date.now()-bootLastTime;console.log(uuid,bootpaySK,bootLastTime);return`window.Bootpay.$analytics.setAnalyticsData({uuid:'${uuid}',sk:'${bootpaySK}',time:${elaspedTime}});`;});_this.requestPayment=function(){var _ref4=(0,_asyncToGenerator2.default)(function*(payload,items,user,extra){_this.bootpayRequest(payload,items,user,extra,'requestPayment');});return function(_x2,_x3,_x4,_x5){return _ref4.apply(this,arguments);};}();_this.requestSubscription=function(){var _ref5=(0,_asyncToGenerator2.default)(function*(payload,items,user,extra){_this.bootpayRequest(payload,items,user,extra,'requestSubscription');});return function(_x6,_x7,_x8,_x9){return _ref5.apply(this,arguments);};}();_this.requestAuthentication=function(){var _ref6=(0,_asyncToGenerator2.default)(function*(payload,items,user,extra){_this.bootpayRequest(payload,items,user,extra,'requestAuthentication');});return function(_x10,_x11,_x12,_x13){return _ref6.apply(this,arguments);};}();_this.bootpayRequest=function(){var _ref7=(0,_asyncToGenerator2.default)(function*(payload,items,user,extra,requestMethod){payload.application_id=_reactNative.Platform.OS==='ios'?_this.props.ios_application_id:_this.props.android_application_id;payload.items=items;payload.user=user;payload.user=Object.assign(new _BootpayTypes.User(),user);payload.extra=Object.assign(new _BootpayTypes.Extra(),extra);_this.payload=payload;_this.setState({visibility:true,script:`
|
|
28
|
+
${yield _this.getMountJavascript()}
|
|
29
|
+
${_this.generateScript(payload,requestMethod)}
|
|
30
|
+
`,firstLoad:false,showCloseButton:extra.show_close_button||false,spinner:false});_UserInfo.default.updateInfo();});return function(_x14,_x15,_x16,_x17,_x18){return _ref7.apply(this,arguments);};}();_this.webView=_react.default.createRef();return _this;}(0,_inherits2.default)(Bootpay,_Component);return(0,_createClass2.default)(Bootpay,[{key:"componentWillUnmount",value:function(){var _componentWillUnmount=(0,_asyncToGenerator2.default)(function*(){this.setState({visibility:false,firstLoad:false,showCloseButton:false});_UserInfo.default.setBootpayLastTime(Date.now());});function componentWillUnmount(){return _componentWillUnmount.apply(this,arguments);}return componentWillUnmount;}()},{key:"componentDidMount",value:function componentDidMount(){this.closeDismiss=(0,_lodash.debounce)(this.closeDismiss,30);}},{key:"render",value:function render(){var _this2=this;return(0,_jsxRuntime.jsx)(_reactNative.Modal,{animationType:"slide",transparent:false,visible:this.state.visibility,onRequestClose:this.closeDismiss,children:(0,_jsxRuntime.jsxs)(_reactNative.SafeAreaView,{style:{flex:1},children:[this.state.showCloseButton&&(0,_jsxRuntime.jsx)(_reactNative.TouchableOpacity,{onPress:this.closeDismiss,children:(0,_jsxRuntime.jsx)(_reactNative.Image,{style:styles.overlay,source:require('../images/close.png')})}),(0,_jsxRuntime.jsx)(_reactNativeWebviewBootpay.default,{ref:this.webView,originWhitelist:['*'],source:{uri:'https://webview.bootpay.co.kr/5.1.0'},injectedJavaScript:this.state.script,javaScriptEnabled:true,javaScriptCanOpenWindowsAutomatically:true,onMessage:this.onMessage,onError:function onError(syntheticEvent){var nativeEvent=syntheticEvent.nativeEvent;if(nativeEvent.code===3){_this2.showProgressBar(false);if(_this2.props.onError)_this2.props.onError({code:nativeEvent.code,message:nativeEvent.description});_this2.closeDismiss();}}})]})});}}]);}(_react.Component);var styles=_reactNative.StyleSheet.create({overlay:{width:25,height:25,right:5,alignSelf:'flex-end'}});
|
package/lib/BootpayTypes.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.User=exports.StatItem=exports.Payload=exports.Onestore=exports.Item=exports.Extra=void 0;var _createClass2=_interopRequireDefault(require("@babel/runtime/helpers/createClass"));var _classCallCheck2=_interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));var User=exports.User=(0,_createClass2.default)(function User(){(0,_classCallCheck2.default)(this,User);});var Item=exports.Item=(0,_createClass2.default)(function Item(){(0,_classCallCheck2.default)(this,Item);});var StatItem=exports.StatItem=(0,_createClass2.default)(function StatItem(){(0,_classCallCheck2.default)(this,StatItem);});var Onestore=exports.Onestore=(0,_createClass2.default)(function Onestore(){(0,_classCallCheck2.default)(this,Onestore);this.ad_id=
|
|
1
|
+
var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.User=exports.StatItem=exports.Payload=exports.Onestore=exports.Item=exports.Extra=void 0;var _createClass2=_interopRequireDefault(require("@babel/runtime/helpers/createClass"));var _classCallCheck2=_interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));var User=exports.User=(0,_createClass2.default)(function User(){(0,_classCallCheck2.default)(this,User);});var Item=exports.Item=(0,_createClass2.default)(function Item(){(0,_classCallCheck2.default)(this,Item);});var StatItem=exports.StatItem=(0,_createClass2.default)(function StatItem(){(0,_classCallCheck2.default)(this,StatItem);});var Onestore=exports.Onestore=(0,_createClass2.default)(function Onestore(){(0,_classCallCheck2.default)(this,Onestore);this.ad_id='UNKNOWN_ADID';this.sim_operator='UNKNOWN_SIM_OPERATOR';this.installer_package_name='UNKNOWN_INSTALLER';});var Extra=exports.Extra=(0,_createClass2.default)(function Extra(){(0,_classCallCheck2.default)(this,Extra);this.delivery_day=1;this.locale='ko';this.display_cash_receipt=true;this.use_card_point=true;this.use_order_id=false;this.international_card_only=false;this.phone_carrier='';this.direct_app_card=false;this.direct_samsungpay=false;this.test_deposit=false;this.enable_error_webhook=false;this.separately_confirmed=true;this.confirmOnlyRestApi=false;this.open_type='redirect';this.use_bootpay_inapp_sdk=true;this.redirect_url='https://api.bootpay.co.kr/v2';this.display_success_result=false;this.display_error_result=true;this.disposable_cup_deposit=0;this.use_welcomepayment=0;this.first_subscription_comment='';this.confirm_grace_seconds=0;this.show_close_button=false;});var Payload=exports.Payload=(0,_createClass2.default)(function Payload(){(0,_classCallCheck2.default)(this,Payload);});
|
package/lib/UserInfo.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.default=void 0;var _asyncToGenerator2=_interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));var _classCallCheck2=_interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));var _createClass2=_interopRequireDefault(require("@babel/runtime/helpers/createClass"));var _reactNativeDeviceInfo=_interopRequireDefault(require("react-native-device-info"));var
|
|
1
|
+
var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.default=void 0;var _asyncToGenerator2=_interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));var _classCallCheck2=_interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));var _createClass2=_interopRequireDefault(require("@babel/runtime/helpers/createClass"));var _reactNativeDeviceInfo=_interopRequireDefault(require("react-native-device-info"));var Keychain=_interopRequireWildcard(require("react-native-keychain"));function _getRequireWildcardCache(e){if("function"!=typeof WeakMap)return null;var r=new WeakMap(),t=new WeakMap();return(_getRequireWildcardCache=function _getRequireWildcardCache(e){return e?t:r;})(e);}function _interopRequireWildcard(e,r){if(!r&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var t=_getRequireWildcardCache(r);if(t&&t.has(e))return t.get(e);var n={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var u in e)if("default"!==u&&{}.hasOwnProperty.call(e,u)){var i=a?Object.getOwnPropertyDescriptor(e,u):null;i&&(i.get||i.set)?Object.defineProperty(n,u,i):n[u]=e[u];}return n.default=e,t&&t.set(e,n),n;}var UserInfo=exports.default=function(){function UserInfo(){(0,_classCallCheck2.default)(this,UserInfo);}return(0,_createClass2.default)(UserInfo,null,[{key:"setBootpayInfo",value:function(){var _setBootpayInfo=(0,_asyncToGenerator2.default)(function*(key,val){try{yield Keychain.setGenericPassword(key,String(val),{service:key,accessible:Keychain.ACCESSIBLE.WHEN_UNLOCKED});return val;}catch(error){console.error(`Error setting Bootpay info for key ${key}:`,error);if(error.message.includes('null is not an object')){console.warn('Keychain configuration or capability might be missing.');}throw error;}});function setBootpayInfo(_x,_x2){return _setBootpayInfo.apply(this,arguments);}return setBootpayInfo;}()},{key:"getBootpayInfo",value:function(){var _getBootpayInfo=(0,_asyncToGenerator2.default)(function*(key,defaultVal){try{var credentials=yield Keychain.getGenericPassword({service:key});if(credentials){return credentials.password;}else{return defaultVal;}}catch(error){console.error(`Error getting Bootpay info for key ${key}:`,error);return defaultVal;}});function getBootpayInfo(_x3,_x4){return _getBootpayInfo.apply(this,arguments);}return getBootpayInfo;}()},{key:"getBootpayUUID",value:function(){var _getBootpayUUID=(0,_asyncToGenerator2.default)(function*(){var uuid=_reactNativeDeviceInfo.default.getUniqueId();yield UserInfo.setBootpayInfo('uuid',uuid);return uuid;});function getBootpayUUID(){return _getBootpayUUID.apply(this,arguments);}return getBootpayUUID;}()},{key:"getBootpaySK",value:function(){var _getBootpaySK=(0,_asyncToGenerator2.default)(function*(){return yield UserInfo.getBootpayInfo('bootpay_sk','');});function getBootpaySK(){return _getBootpaySK.apply(this,arguments);}return getBootpaySK;}()},{key:"setBootpaySK",value:function(){var _setBootpaySK=(0,_asyncToGenerator2.default)(function*(val){return yield UserInfo.setBootpayInfo('bootpay_sk',val);});function setBootpaySK(_x5){return _setBootpaySK.apply(this,arguments);}return setBootpaySK;}()},{key:"newBootpaySK",value:function(){var _newBootpaySK=(0,_asyncToGenerator2.default)(function*(uuid,time){return yield UserInfo.setBootpaySK(`${uuid}_${time}`);});function newBootpaySK(_x6,_x7){return _newBootpaySK.apply(this,arguments);}return newBootpaySK;}()},{key:"getBootpayLastTime",value:function(){var _getBootpayLastTime=(0,_asyncToGenerator2.default)(function*(){var lastTime=yield UserInfo.getBootpayInfo('bootpay_last_time','0');return parseInt(lastTime,10);});function getBootpayLastTime(){return _getBootpayLastTime.apply(this,arguments);}return getBootpayLastTime;}()},{key:"setBootpayLastTime",value:function(){var _setBootpayLastTime=(0,_asyncToGenerator2.default)(function*(val){return yield UserInfo.setBootpayInfo('bootpay_last_time',String(val));});function setBootpayLastTime(_x8){return _setBootpayLastTime.apply(this,arguments);}return setBootpayLastTime;}()},{key:"getBootpayUserId",value:function(){var _getBootpayUserId=(0,_asyncToGenerator2.default)(function*(){return yield UserInfo.getBootpayInfo('bootpay_user_id','');});function getBootpayUserId(){return _getBootpayUserId.apply(this,arguments);}return getBootpayUserId;}()},{key:"setBootpayUserId",value:function(){var _setBootpayUserId=(0,_asyncToGenerator2.default)(function*(val){return yield UserInfo.setBootpayInfo('bootpay_user_id',val);});function setBootpayUserId(_x9){return _setBootpayUserId.apply(this,arguments);}return setBootpayUserId;}()},{key:"updateInfo",value:function(){var _updateInfo=(0,_asyncToGenerator2.default)(function*(){var uuid=yield UserInfo.getBootpayUUID();var bootpaySK=yield UserInfo.getBootpaySK();var lastTime=yield UserInfo.getBootpayLastTime();var current=Date.now();if(!bootpaySK)yield UserInfo.newBootpaySK(uuid,current);var isExpired=current-lastTime>30*60*1000;if(isExpired)yield UserInfo.newBootpaySK(uuid,current);yield UserInfo.setBootpayLastTime(current);});function updateInfo(){return _updateInfo.apply(this,arguments);}return updateInfo;}()}]);}();
|
package/lib/bootpayAnalytics.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.userTrace=exports.pageTrace=void 0;var _asyncToGenerator2=_interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));var _reactNativeBase=_interopRequireDefault(require("react-native-base64"));var _reactNativeDeviceInfo=_interopRequireDefault(require("react-native-device-info"));var _reactNative=require("react-native");var getRandomKey=function getRandomKey(length){var text='';var keys='abcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ';for(var i=0;i<length;i++)text+=keys.charAt(Math.floor(Math.random()*keys.length));return text;};var getSessionKey=function(){var _ref=(0,_asyncToGenerator2.default)(function*(key,iv){var keyValue=_reactNativeBase.default.encode(key);var ivValue=_reactNativeBase.default.encode(iv);return`${keyValue}##${ivValue}`;});return function getSessionKey(_x,_x2){return _ref.apply(this,arguments);};}();var stringToHex=function stringToHex(str){var hex='';for(var i=0,l=str.length;i<l;i++){hex+=str.charCodeAt(i).toString(16);}return hex;};var userTrace=exports.userTrace=function(){var _ref2=(0,_asyncToGenerator2.default)(function*(applicationId,userId,phone,email,gender,birth,area){try{var payload={
|
|
1
|
+
var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.userTrace=exports.pageTrace=void 0;var _asyncToGenerator2=_interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));var _reactNativeBase=_interopRequireDefault(require("react-native-base64"));var _reactNativeDeviceInfo=_interopRequireDefault(require("react-native-device-info"));var _reactNative=require("react-native");var getRandomKey=function getRandomKey(length){var text='';var keys='abcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ';for(var i=0;i<length;i++)text+=keys.charAt(Math.floor(Math.random()*keys.length));return text;};var getSessionKey=function(){var _ref=(0,_asyncToGenerator2.default)(function*(key,iv){var keyValue=_reactNativeBase.default.encode(key);var ivValue=_reactNativeBase.default.encode(iv);return`${keyValue}##${ivValue}`;});return function getSessionKey(_x,_x2){return _ref.apply(this,arguments);};}();var stringToHex=function stringToHex(str){var hex='';for(var i=0,l=str.length;i<l;i++){hex+=str.charCodeAt(i).toString(16);}return hex;};var userTrace=exports.userTrace=function(){var _ref2=(0,_asyncToGenerator2.default)(function*(applicationId,userId,phone,email,gender,birth,area){try{var payload={id:userId,ver:_reactNativeDeviceInfo.default.getVersion(),application_id:applicationId,phone:phone,email:email,gender:gender,birth:birth,area:area};var key=getRandomKey(32);var iv=getRandomKey(16);try{var data=yield _reactNative.NativeModules.Aes.encrypt(JSON.stringify(payload),stringToHex(key),stringToHex(iv));var response=yield fetch('https://analytics.bootpay.co.kr/login',{method:'POST',headers:{'Accept':'application/json','Content-Type':'application/json'},body:JSON.stringify({data:data,session_key:yield getSessionKey(key,iv)})});var json=yield response.json();return json;}catch(e){console.log(e);throw e;}}catch(error){console.error(error);throw error;}});return function userTrace(_x3,_x4,_x5,_x6,_x7,_x8,_x9){return _ref2.apply(this,arguments);};}();var pageTrace=exports.pageTrace=function(){var _ref3=(0,_asyncToGenerator2.default)(function*(applicationId,url,pageType,items){try{var payload={application_id:applicationId,url:url,page_type:pageType,items:items,referer:''};var key=getRandomKey(32);var iv=getRandomKey(16);try{var data=yield _reactNative.NativeModules.Aes.encrypt(JSON.stringify(payload),stringToHex(key),stringToHex(iv));var response=yield fetch('https://analytics.bootpay.co.kr/call',{method:'POST',headers:{'Accept':'application/json','Content-Type':'application/json'},body:JSON.stringify({data:data,session_key:yield getSessionKey(key,iv)})});var json=yield response.json();return json;}catch(e){console.log(e);throw e;}}catch(error){console.error(error);throw error;}});return function pageTrace(_x10,_x11,_x12,_x13){return _ref3.apply(this,arguments);};}();
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-native-bootpay-api",
|
|
3
|
-
"version": "13.
|
|
3
|
+
"version": "13.13.41",
|
|
4
4
|
"description": "React Native를 위한 bootpay 라이브러리 입니다.",
|
|
5
5
|
"main": "index.tsx",
|
|
6
6
|
"main-internal": "src/index.tsx",
|
|
@@ -35,23 +35,24 @@
|
|
|
35
35
|
"react-native": "*"
|
|
36
36
|
},
|
|
37
37
|
"dependencies": {
|
|
38
|
-
"escape-string-regexp": "
|
|
38
|
+
"escape-string-regexp": "^4.0.0",
|
|
39
39
|
"invariant": "2.2.4",
|
|
40
|
-
"react-native-device-info": "^
|
|
41
|
-
"react-native-
|
|
40
|
+
"react-native-device-info": "^14.0.4",
|
|
41
|
+
"react-native-keychain": "^10.0.0",
|
|
42
42
|
"@types/react-native-base64": "^0.2.2",
|
|
43
|
-
"react-native-aes-crypto": "^3.
|
|
44
|
-
"react-native-webview-bootpay": "^13.
|
|
43
|
+
"react-native-aes-crypto": "^3.2.1",
|
|
44
|
+
"react-native-webview-bootpay": "^13.13.423"
|
|
45
45
|
},
|
|
46
46
|
"devDependencies": {
|
|
47
47
|
"@babel/cli": "^7.20.0",
|
|
48
48
|
"@babel/core": "^7.20.0",
|
|
49
49
|
"@babel/runtime": "^7.20.0",
|
|
50
|
+
"@callstack/react-native-visionos": "0.73.8",
|
|
50
51
|
"@react-native/babel-preset": "0.73.21",
|
|
51
52
|
"@react-native/eslint-config": "0.73.2",
|
|
52
53
|
"@react-native/metro-config": "0.73.5",
|
|
53
54
|
"@react-native/typescript-config": "0.73.1",
|
|
54
|
-
"@rnx-kit/metro-config": "1.3.
|
|
55
|
+
"@rnx-kit/metro-config": "1.3.15",
|
|
55
56
|
"@semantic-release/git": "7.0.16",
|
|
56
57
|
"@types/invariant": "^2.2.30",
|
|
57
58
|
"@types/jest": "^29.5.12",
|
|
@@ -64,7 +65,7 @@
|
|
|
64
65
|
"react": "18.2.0",
|
|
65
66
|
"react-native": "0.73.5",
|
|
66
67
|
"react-native-macos": "0.73.17",
|
|
67
|
-
"react-native-test-app": "3.2
|
|
68
|
+
"react-native-test-app": "3.7.2",
|
|
68
69
|
"react-native-windows": "0.73.8",
|
|
69
70
|
"selenium-appium": "1.0.2",
|
|
70
71
|
"selenium-webdriver": "4.0.0-alpha.7",
|
package/react-native.config.js
CHANGED
|
@@ -1,24 +1,56 @@
|
|
|
1
|
+
const project = (() => {
|
|
2
|
+
const path = require('path');
|
|
3
|
+
try {
|
|
4
|
+
const { configureProjects } = require('react-native-test-app');
|
|
5
|
+
return configureProjects({
|
|
6
|
+
android: {
|
|
7
|
+
sourceDir: path.join('example', 'android'),
|
|
8
|
+
},
|
|
9
|
+
ios: {
|
|
10
|
+
sourceDir: 'example/ios',
|
|
11
|
+
},
|
|
12
|
+
});
|
|
13
|
+
} catch (e) {
|
|
14
|
+
return undefined;
|
|
15
|
+
}
|
|
16
|
+
})();
|
|
17
|
+
|
|
18
|
+
module.exports = {
|
|
19
|
+
dependencies: {
|
|
20
|
+
// Help rn-cli find and autolink this library
|
|
21
|
+
'react-native-bootpay-api': {
|
|
22
|
+
root: __dirname,
|
|
23
|
+
},
|
|
24
|
+
},
|
|
25
|
+
...(project ? { project } : undefined),
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
|
|
1
30
|
// const project = (() => {
|
|
2
31
|
// const fs = require('fs');
|
|
3
32
|
// const path = require('path');
|
|
4
33
|
// try {
|
|
5
|
-
// const {
|
|
6
|
-
|
|
7
|
-
//
|
|
34
|
+
// const {
|
|
35
|
+
// androidManifestPath,
|
|
36
|
+
// // iosProjectPath,
|
|
37
|
+
// windowsProjectPath,
|
|
38
|
+
// } = require('react-native-test-app');
|
|
39
|
+
// return {
|
|
8
40
|
// android: {
|
|
9
41
|
// sourceDir: path.join('example', 'android'),
|
|
10
|
-
// manifestPath:
|
|
42
|
+
// manifestPath: androidManifestPath(
|
|
43
|
+
// path.join(__dirname, 'example', 'android'),
|
|
44
|
+
// ),
|
|
11
45
|
// },
|
|
12
46
|
// ios: {
|
|
13
47
|
// sourceDir: 'example/ios',
|
|
14
48
|
// },
|
|
15
|
-
//
|
|
16
|
-
//
|
|
17
|
-
//
|
|
18
|
-
//
|
|
19
|
-
//
|
|
20
|
-
// });
|
|
21
|
-
// } catch (e) {
|
|
49
|
+
// // ios: {
|
|
50
|
+
// // project: iosProjectPath('example/ios'),
|
|
51
|
+
// // },
|
|
52
|
+
// };
|
|
53
|
+
// } catch (_) {
|
|
22
54
|
// return undefined;
|
|
23
55
|
// }
|
|
24
56
|
// })();
|
|
@@ -29,45 +61,6 @@
|
|
|
29
61
|
// 'react-native-bootpay-api': {
|
|
30
62
|
// root: __dirname,
|
|
31
63
|
// },
|
|
32
|
-
// },
|
|
64
|
+
// },
|
|
33
65
|
// ...(project ? { project } : undefined),
|
|
34
66
|
// };
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
const project = (() => {
|
|
38
|
-
const fs = require('fs');
|
|
39
|
-
const path = require('path');
|
|
40
|
-
try {
|
|
41
|
-
const {
|
|
42
|
-
androidManifestPath,
|
|
43
|
-
// iosProjectPath,
|
|
44
|
-
windowsProjectPath,
|
|
45
|
-
} = require('react-native-test-app');
|
|
46
|
-
return {
|
|
47
|
-
android: {
|
|
48
|
-
sourceDir: path.join('example', 'android'),
|
|
49
|
-
manifestPath: androidManifestPath(
|
|
50
|
-
path.join(__dirname, 'example', 'android'),
|
|
51
|
-
),
|
|
52
|
-
},
|
|
53
|
-
ios: {
|
|
54
|
-
sourceDir: 'example/ios',
|
|
55
|
-
},
|
|
56
|
-
// ios: {
|
|
57
|
-
// project: iosProjectPath('example/ios'),
|
|
58
|
-
// },
|
|
59
|
-
};
|
|
60
|
-
} catch (_) {
|
|
61
|
-
return undefined;
|
|
62
|
-
}
|
|
63
|
-
})();
|
|
64
|
-
|
|
65
|
-
module.exports = {
|
|
66
|
-
dependencies: {
|
|
67
|
-
// Help rn-cli find and autolink this library
|
|
68
|
-
'react-native-bootpay-api': {
|
|
69
|
-
root: __dirname,
|
|
70
|
-
},
|
|
71
|
-
},
|
|
72
|
-
...(project ? { project } : undefined),
|
|
73
|
-
};
|