@circle-fin/w3s-pw-react-native-sdk
Version:
React Native SDK for Circle Programmable Wallet
206 lines (204 loc) • 7.58 kB
JavaScript
;
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