UNPKG

@circle-fin/w3s-pw-react-native-sdk

Version:

React Native SDK for Circle Programmable Wallet

206 lines (204 loc) 7.58 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.WalletSdk = void 0; var _ProgrammablewalletRnSdkModule = _interopRequireDefault(require("./ProgrammablewalletRnSdkModule")); var _reactNative = require("react-native"); var _package = _interopRequireDefault(require("../package.json")); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } // Copyright (c) 2024, Circle Internet Financial, LTD. All rights reserved. // // SPDX-License-Identifier: Apache-2.0 // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. const { ReactNativeEventEmitter } = _reactNative.NativeModules; if (!_ProgrammablewalletRnSdkModule.default) { throw new Error(`NativeModule: ProgrammablewalletRnSdkModule is null.`); } const emitter = _reactNative.Platform.OS === 'ios' ? new _reactNative.NativeEventEmitter(ReactNativeEventEmitter) : _reactNative.DeviceEventEmitter; const EVENT_NAME_ON_EVENT = 'CirclePwOnEvent'; const EVENT_NAME_ON_SUCCESS = 'CirclePwOnSuccess'; const EVENT_NAME_ON_ERROR = 'CirclePwOnError'; const USER_AGENT_RN = 'Circle-Programmable-Wallet-SDK-RN'; const WalletSdk = exports.WalletSdk = (() => { const constants = _ProgrammablewalletRnSdkModule.default.getConstants(); const defaultUserAgentRn = USER_AGENT_RN + '/' + _package.default.version; return { sdkVersion: { native: constants.sdkVersion, rn: _package.default.version }, deviceId: _reactNative.Platform.OS === 'ios' ? constants.deviceId : _ProgrammablewalletRnSdkModule.default.getDeviceId() ?? constants.deviceId, init(configuration) { const promise = _ProgrammablewalletRnSdkModule.default.initSdk(configuration); _ProgrammablewalletRnSdkModule.default.setCustomUserAgent(defaultUserAgentRn); return promise; }, setSecurityQuestions(securityQuestions) { _ProgrammablewalletRnSdkModule.default.setSecurityQuestions(securityQuestions); }, addListener(listener) { emitter.addListener(EVENT_NAME_ON_EVENT, listener); }, removeAllListeners() { emitter.removeAllListeners(EVENT_NAME_ON_EVENT); }, getDeviceId() { return _reactNative.Platform.OS === 'ios' ? constants.deviceId : _ProgrammablewalletRnSdkModule.default.getDeviceId() ?? constants.deviceId; }, execute(userToken, encryptionKey, challengeIds, successCallback, errorCallback) { emitter.addListener(EVENT_NAME_ON_SUCCESS, successCallback); emitter.addListener(EVENT_NAME_ON_ERROR, errorCallback); _ProgrammablewalletRnSdkModule.default.execute(userToken, encryptionKey, challengeIds).then(successResult => { successCallback(successResult); }).catch(e => { errorCallback(e); }).finally(() => { emitter.removeAllListeners(EVENT_NAME_ON_SUCCESS); emitter.removeAllListeners(EVENT_NAME_ON_ERROR); }); }, setBiometricsPin(userToken, encryptionKey, successCallback, errorCallback) { emitter.addListener(EVENT_NAME_ON_SUCCESS, successCallback); emitter.addListener(EVENT_NAME_ON_ERROR, errorCallback); _ProgrammablewalletRnSdkModule.default.setBiometricsPin(userToken, encryptionKey).then(successResult => { successCallback(successResult); }).catch(e => { errorCallback(e); }).finally(() => { emitter.removeAllListeners(EVENT_NAME_ON_SUCCESS); emitter.removeAllListeners(EVENT_NAME_ON_ERROR); }); }, performLogin(provider, deviceToken, deviceEncryptionKey, successCallback, errorCallback) { _ProgrammablewalletRnSdkModule.default.performLogin(provider, deviceToken, deviceEncryptionKey).then(result => { successCallback(result); }).catch(e => { errorCallback(e); }); }, verifyOTP(otpToken, deviceToken, deviceEncryptionKey, successCallback, errorCallback) { emitter.addListener(EVENT_NAME_ON_ERROR, errorCallback); _ProgrammablewalletRnSdkModule.default.verifyOTP(otpToken, deviceToken, deviceEncryptionKey).then(result => { successCallback(result); }).catch(e => { errorCallback(e); }).finally(() => { emitter.removeAllListeners(EVENT_NAME_ON_ERROR); }); }, performLogout(provider, completeCallback, errorCallback) { _ProgrammablewalletRnSdkModule.default.performLogout(provider).then(() => { completeCallback(); }).catch(e => { errorCallback(e); }); }, setDismissOnCallbackMap(map) { try { _ProgrammablewalletRnSdkModule.default.setDismissOnCallbackMap(Object.fromEntries(map)); } catch (e) { console.error(e); } }, moveTaskToFront() { _ProgrammablewalletRnSdkModule.default.moveTaskToFront(); }, moveRnTaskToFront() { _ProgrammablewalletRnSdkModule.default.moveRnTaskToFront(); }, setTextConfigsMap(map) { try { _ProgrammablewalletRnSdkModule.default.setTextConfigsMap(Object.fromEntries(map)); } catch (e) { console.error(e); } }, setIconTextConfigsMap(rawMap) { try { const map = {}; for (const [key, configs] of rawMap) { const newConfigs = []; for (const config of configs) { const url = getImageUrl(config.image); newConfigs.push({ image: url, textConfig: config.textConfig }); } // @ts-ignore map[key] = newConfigs; } _ProgrammablewalletRnSdkModule.default.setIconTextConfigsMap(map); } catch (e) { console.error(e); } }, setTextConfigMap(map) { try { _ProgrammablewalletRnSdkModule.default.setTextConfigMap(Object.fromEntries(map)); } catch (e) { console.error(e); } }, setImageMap(rawMap) { try { const map = {}; for (const [key, value] of rawMap) { // @ts-ignore const url = getImageUrl(value); if (url == null) { continue; } // @ts-ignore map[key] = url; } _ProgrammablewalletRnSdkModule.default.setImageMap(map); } catch (e) { console.error(e); } }, setDateFormat(format) { _ProgrammablewalletRnSdkModule.default.setDateFormat(format); }, setDebugging(debugging) { _ProgrammablewalletRnSdkModule.default.setDebugging(debugging); }, setCustomUserAgent(userAgent) { _ProgrammablewalletRnSdkModule.default.setCustomUserAgent(defaultUserAgentRn + ' | ' + userAgent); }, setErrorStringMap(map) { try { _ProgrammablewalletRnSdkModule.default.setErrorStringMap(Object.fromEntries(map)); } catch (e) { console.error(e); } } }; })(); function getImageUrl(source) { if (!source) { return null; } // @ts-ignore const resolved = _reactNative.Image.resolveAssetSource(source); if (!resolved || !resolved.uri) { return null; } // @ts-ignore return resolved.uri; } //# sourceMappingURL=WalletSdk.js.map