@cloudbase/app
Version:
cloudbase javascript sdk core
106 lines • 14.5 kB
JavaScript
;
var __assign = (this && this.__assign) || function () {
__assign = Object.assign || function(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}
return t;
};
return __assign.apply(this, arguments);
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.OAUTH2_LOGINTYPE_PREFIX = exports.LOGINTYPE = exports.getBaseEndPoint = exports.setRegionLevelEndpoint = exports.setGatewayEndPointWithEnv = exports.getEndPointInfo = exports.setEndPointInfo = exports.DEFAULT_PROTOCOL = exports.DATA_VERSION = exports.getSdkName = exports.setSdkName = exports.getSdkVersion = exports.setSdkVersion = void 0;
var utilities_1 = require("@cloudbase/utilities");
var ZONE_CHINA = ['ap-shanghai', 'ap-guangzhou', 'ap-shenzhen-fsi', 'ap-shanghai-fsi', 'ap-nanjing', 'ap-beijing', 'ap-chengdu', 'ap-chongqing', 'ap-hongkong'];
var setUtilitiesSdkName = utilities_1.constants.setSdkName, setUtilitiesProtocol = utilities_1.constants.setProtocol;
var sdkVersion = '';
var sdkName = '@cloudbase/js-sdk';
function setSdkVersion(version) {
sdkVersion = version;
}
exports.setSdkVersion = setSdkVersion;
function getSdkVersion() {
return sdkVersion;
}
exports.getSdkVersion = getSdkVersion;
function setSdkName(name) {
sdkName = name;
setUtilitiesSdkName(name);
}
exports.setSdkName = setSdkName;
function getSdkName() {
return sdkName;
}
exports.getSdkName = getSdkName;
exports.DATA_VERSION = '2020-01-10';
var END_POINT_INFO_ARR = [];
var END_POINT_INFO_SEARCH_KEYS = ['env', 'endPointKey', 'region'];
exports.DEFAULT_PROTOCOL = 'https:';
function findMatchedInfo(info) {
return END_POINT_INFO_ARR.find(function (targetInfo) { return END_POINT_INFO_SEARCH_KEYS.filter(function (searchKey) { return info[searchKey] != null; }).every(function (searchKey) { return targetInfo[searchKey] === info[searchKey]; }); });
}
function setEndPointInfo(newInfo) {
var _a, _b;
if (newInfo.protocol && !/:$/.test(newInfo.protocol)) {
newInfo.protocol = "".concat(newInfo.protocol, ":");
}
var endPointInfo = findMatchedInfo(newInfo);
if (endPointInfo) {
if (newInfo.baseUrl != null) {
endPointInfo.baseUrl = newInfo.baseUrl;
}
if (newInfo.protocol != null) {
endPointInfo.protocol = newInfo.protocol;
}
}
else {
END_POINT_INFO_ARR.push(__assign(__assign({}, newInfo), { protocol: (_a = newInfo.protocol) !== null && _a !== void 0 ? _a : exports.DEFAULT_PROTOCOL }));
}
if (newInfo.endPointKey === 'CLOUD_API') {
setUtilitiesProtocol(((_b = newInfo.protocol) !== null && _b !== void 0 ? _b : exports.DEFAULT_PROTOCOL));
}
}
exports.setEndPointInfo = setEndPointInfo;
function getEndPointInfo(env, endPointKey, region) {
return findMatchedInfo({ env: env, endPointKey: endPointKey, region: region });
}
exports.getEndPointInfo = getEndPointInfo;
function setGatewayEndPointWithEnv(env, protocol, region) {
if (region === void 0) { region = 'ap-shanghai'; }
region = region || 'ap-shanghai';
var baseUrl = "//".concat(env, ".api.tcloudbasegateway.com/v1");
if (!ZONE_CHINA.includes(region)) {
baseUrl = "//".concat(env, ".api.intl.tcloudbasegateway.com/v1");
}
setEndPointInfo({ endPointKey: 'GATEWAY', env: env, baseUrl: baseUrl, protocol: protocol });
}
exports.setGatewayEndPointWithEnv = setGatewayEndPointWithEnv;
function setRegionLevelEndpoint(env, region, protocol) {
var baseUrl = "//".concat(env, ".").concat(region || 'ap-shanghai', ".tcb-api.tencentcloudapi.com/web");
setEndPointInfo({ env: env, region: region, baseUrl: baseUrl, protocol: protocol, endPointKey: 'CLOUD_API' });
}
exports.setRegionLevelEndpoint = setRegionLevelEndpoint;
function getBaseEndPoint(env, endPointKey) {
if (endPointKey === void 0) { endPointKey = 'CLOUD_API'; }
var info = getEndPointInfo(env, endPointKey || 'CLOUD_API');
var PROTOCOL = info.protocol, BASE_URL = info.baseUrl;
var webEndpoint = "".concat(PROTOCOL).concat(BASE_URL);
return webEndpoint.match(/(http(s)?:)?\/\/([^/?#]*)/)[0];
}
exports.getBaseEndPoint = getBaseEndPoint;
var LOGINTYPE;
(function (LOGINTYPE) {
LOGINTYPE["NULL"] = "NULL";
LOGINTYPE["ANONYMOUS"] = "ANONYMOUS";
LOGINTYPE["WECHAT"] = "WECHAT";
LOGINTYPE["WECHAT_PUBLIC"] = "WECHAT-PUBLIC";
LOGINTYPE["WECHAT_OPEN"] = "WECHAT-OPEN";
LOGINTYPE["CUSTOM"] = "CUSTOM";
LOGINTYPE["EMAIL"] = "EMAIL";
LOGINTYPE["USERNAME"] = "USERNAME";
LOGINTYPE["PHONE"] = "PHONE";
})(LOGINTYPE = exports.LOGINTYPE || (exports.LOGINTYPE = {}));
exports.OAUTH2_LOGINTYPE_PREFIX = 'OAUTH2';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbnN0YW50cy9jb21tb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7QUFDQSxrREFBZ0Q7QUFFaEQsSUFBTSxVQUFVLEdBQUcsQ0FBQyxhQUFhLEVBQUUsY0FBYyxFQUFFLGlCQUFpQixFQUFFLGlCQUFpQixFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxhQUFhLENBQUMsQ0FBQTtBQUd6SixJQUFZLG1CQUFtQixHQUF3QyxxQkFBUyxXQUFqRCxFQUFlLG9CQUFvQixHQUFLLHFCQUFTLFlBQWQsQ0FBYztBQUl4RixJQUFJLFVBQVUsR0FBRyxFQUFFLENBQUE7QUFDbkIsSUFBSSxPQUFPLEdBQUcsbUJBQW1CLENBQUE7QUFFakMsU0FBZ0IsYUFBYSxDQUFDLE9BQWU7SUFDM0MsVUFBVSxHQUFHLE9BQU8sQ0FBQTtBQUN0QixDQUFDO0FBRkQsc0NBRUM7QUFDRCxTQUFnQixhQUFhO0lBQzNCLE9BQU8sVUFBVSxDQUFBO0FBQ25CLENBQUM7QUFGRCxzQ0FFQztBQUNELFNBQWdCLFVBQVUsQ0FBQyxJQUFZO0lBQ3JDLE9BQU8sR0FBRyxJQUFJLENBQUE7SUFDZCxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsQ0FBQTtBQUMzQixDQUFDO0FBSEQsZ0NBR0M7QUFDRCxTQUFnQixVQUFVO0lBQ3hCLE9BQU8sT0FBTyxDQUFBO0FBQ2hCLENBQUM7QUFGRCxnQ0FFQztBQUNZLFFBQUEsWUFBWSxHQUFHLFlBQVksQ0FBQTtBQWlCeEMsSUFBTSxrQkFBa0IsR0FBd0IsRUFBRSxDQUFBO0FBR2xELElBQU0sMEJBQTBCLEdBQUcsQ0FBQyxLQUFLLEVBQUUsYUFBYSxFQUFFLFFBQVEsQ0FBQyxDQUFBO0FBRXRELFFBQUEsZ0JBQWdCLEdBQXVCLFFBQVEsQ0FBQTtBQUU1RCxTQUFTLGVBQWUsQ0FBQyxJQUFrQjtJQUV6QyxPQUFP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QUFJLFdBQVcsQ0FBQyxDQUFBO0lBRXJELElBQVUsUUFBUSxHQUF3QixJQUFJLFNBQTVCLEVBQVcsUUFBUSxHQUFLLElBQUksUUFBVCxDQUFTO0lBQ3RELElBQU0sV0FBVyxHQUFHLFVBQUcsUUFBUSxTQUFHLFFBQVEsQ0FBRSxDQUFBO0lBRTVDLE9BQU8sV0FBVyxDQUFDLEtBQUssQ0FBQywyQkFBMkIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO0FBRTFELENBQUM7QUFSRCwwQ0FRQztBQUVELElBQVksU0FVWDtBQVZELFdBQVksU0FBUztJQUNuQiwwQkFBYSxDQUFBO0lBQ2Isb0NBQXVCLENBQUE7SUFDdkIsOEJBQWlCLENBQUE7SUFDakIsNENBQStCLENBQUE7SUFDL0Isd0NBQTJCLENBQUE7SUFDM0IsOEJBQWlCLENBQUE7SUFDakIsNEJBQWUsQ0FBQTtJQUNmLGtDQUFxQixDQUFBO0lBQ3JCLDRCQUFlLENBQUE7QUFDakIsQ0FBQyxFQVZXLFNBQVMsR0FBVCxpQkFBUyxLQUFULGlCQUFTLFFBVXBCO0FBRVksUUFBQSx1QkFBdUIsR0FBRyxRQUFRLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbmRQb2ludEtleSB9IGZyb20gJ0BjbG91ZGJhc2UvdHlwZXMnXG5pbXBvcnQgeyBjb25zdGFudHMgfSBmcm9tICdAY2xvdWRiYXNlL3V0aWxpdGllcydcblxuY29uc3QgWk9ORV9DSElOQSA9IFsnYXAtc2hhbmdoYWknLCAnYXAtZ3Vhbmd6aG91JywgJ2FwLXNoZW56aGVuLWZzaScsICdhcC1zaGFuZ2hhaS1mc2knLCAnYXAtbmFuamluZycsICdhcC1iZWlqaW5nJywgJ2FwLWNoZW5nZHUnLCAnYXAtY2hvbmdxaW5nJywgJ2FwLWhvbmdrb25nJ11cblxuLy8gQHRzLWlnbm9yZVxuY29uc3QgeyBzZXRTZGtOYW1lOiBzZXRVdGlsaXRpZXNTZGtOYW1lLCBzZXRQcm90b2NvbDogc2V0VXRpbGl0aWVzUHJvdG9jb2wgfSA9IGNvbnN0YW50c1xuLyoqXG4gKiBTREtcbiAqL1xubGV0IHNka1ZlcnNpb24gPSAnJ1xubGV0IHNka05hbWUgPSAnQGNsb3VkYmFzZS9qcy1zZGsnXG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRTZGtWZXJzaW9uKHZlcnNpb246IHN0cmluZykge1xuICBzZGtWZXJzaW9uID0gdmVyc2lvblxufVxuZXhwb3J0IGZ1bmN0aW9uIGdldFNka1ZlcnNpb24oKSB7XG4gIHJldHVybiBzZGtWZXJzaW9uXG59XG5leHBvcnQgZnVuY3Rpb24gc2V0U2RrTmFtZShuYW1lOiBzdHJpbmcpIHtcbiAgc2RrTmFtZSA9IG5hbWVcbiAgc2V0VXRpbGl0aWVzU2RrTmFtZShuYW1lKVxufVxuZXhwb3J0IGZ1bmN0aW9uIGdldFNka05hbWUoKSB7XG4gIHJldHVybiBzZGtOYW1lXG59XG5leHBvcnQgY29uc3QgREFUQV9WRVJTSU9OID0gJzIwMjAtMDEtMTAnXG5cbmludGVyZmFjZSBFbmRQb2ludEluZm8ge1xuICBlbnY6IHN0cmluZ1xuICBlbmRQb2ludEtleTogRW5kUG9pbnRLZXlcbiAgcmVnaW9uPzogc3RyaW5nXG4gIGJhc2VVcmw/OiBzdHJpbmdcbiAgcHJvdG9jb2w/OiBQcm90b2NvbFxufVxuXG50eXBlIFByb3RvY29sID0gJ2h0dHAnIHwgJ2h0dHBzJyB8ICdodHRwOicgfCAnaHR0cHM6J1xuXG4vKipcbiAqICDmiYDmnIkgZW5kUG9pbnQg5L+h5oGvXG4gKiAg6YG/5YWN55u05o6l5pON5L2c6K+l5pWw57uEXG4gKiAg5L2/55SoIHNldEVuZFBvaW50SW5mb+OAgSBnZXRFbmRQb2ludEluZm9cbiAqL1xuY29uc3QgRU5EX1BPSU5UX0lORk9fQVJSOiBBcnJheTxFbmRQb2ludEluZm8+ID0gW11cblxuLyoqIOeUqOadpeafpeaJviBlbmRQb2ludCDnmoTlrZfmrrUgKi9cbmNvbnN0IEVORF9QT0lOVF9JTkZPX1NFQVJDSF9LRVlTID0gWydlbnYnLCAnZW5kUG9pbnRLZXknLCAncmVnaW9uJ11cblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfUFJPVE9DT0w6ICdodHRwOicgfCAnaHR0cHM6JyA9ICdodHRwczonXG5cbmZ1bmN0aW9uIGZpbmRNYXRjaGVkSW5mbyhpbmZvOiBFbmRQb2ludEluZm8pIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG1heC1sZW4sIGVxZXFlcVxuICByZXR1cm4gRU5EX1BPSU5UX0lORk9fQVJSLmZpbmQodGFyZ2V0SW5mbyA9PiBFTkRfUE9JTlRfSU5GT19TRUFSQ0hfS0VZUy5maWx0ZXIoc2VhcmNoS2V5ID0+IGluZm9bc2VhcmNoS2V5XSAhPSBudWxsKS5ldmVyeShzZWFyY2hLZXkgPT4gdGFyZ2V0SW5mb1tzZWFyY2hLZXldID09PSBpbmZvW3NlYXJjaEtleV0sKSwpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRFbmRQb2ludEluZm8obmV3SW5mbzogRW5kUG9pbnRJbmZvKSB7XG4gIGlmIChuZXdJbmZvLnByb3RvY29sICYmICEvOiQvLnRlc3QobmV3SW5mby5wcm90b2NvbCkpIHtcbiAgICBuZXdJbmZvLnByb3RvY29sID0gYCR7bmV3SW5mby5wcm90b2NvbH06YCBhcyBQcm90b2NvbFxuICB9XG5cbiAgY29uc3QgZW5kUG9pbnRJbmZvID0gZmluZE1hdGNoZWRJbmZvKG5ld0luZm8pXG4gIGlmIChlbmRQb2ludEluZm8pIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXFlcWVxXG4gICAgaWYgKG5ld0luZm8uYmFzZVVybCAhPSBudWxsKSB7XG4gICAgICBlbmRQb2ludEluZm8uYmFzZVVybCA9IG5ld0luZm8uYmFzZVVybFxuICAgIH1cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXFlcWVxXG4gICAgaWYgKG5ld0luZm8ucHJvdG9jb2wgIT0gbnVsbCkge1xuICAgICAgZW5kUG9pbnRJbmZvLnByb3RvY29sID0gbmV3SW5mby5wcm90b2NvbFxuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBFTkRfUE9JTlRfSU5GT19BUlIucHVzaCh7IC4uLm5ld0luZm8sIHByb3RvY29sOiBuZXdJbmZvLnByb3RvY29sID8/IERFRkFVTFRfUFJPVE9DT0wgfSlcbiAgfVxuXG4gIC8vIOS/neaMgeaXp+S7o+eggemAu+i+kVxuICBpZiAobmV3SW5mby5lbmRQb2ludEtleSA9PT0gJ0NMT1VEX0FQSScpIHtcbiAgICBzZXRVdGlsaXRpZXNQcm90b2NvbCgobmV3SW5mby5wcm90b2NvbCA/PyBERUZBVUxUX1BST1RPQ09MKSBhcyAnaHR0cDonIHwgJ2h0dHBzOicpXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEVuZFBvaW50SW5mbyhlbnY6IHN0cmluZywgZW5kUG9pbnRLZXk6IEVuZFBvaW50S2V5LCByZWdpb24/OiBzdHJpbmcpIHtcbiAgcmV0dXJuIGZpbmRNYXRjaGVkSW5mbyh7IGVudiwgZW5kUG9pbnRLZXksIHJlZ2lvbiB9KVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElTZXRFbmRQb2ludFdpdGhLZXkge1xuICBrZXk6IEVuZFBvaW50S2V5XG4gIHVybD86IHN0cmluZ1xuICBwcm90b2NvbD86ICdodHRwJyB8ICdodHRwcydcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNldEdhdGV3YXlFbmRQb2ludFdpdGhFbnYoZW52OiBzdHJpbmcsIHByb3RvY29sPzogUHJvdG9jb2wsIHJlZ2lvbiA9ICdhcC1zaGFuZ2hhaScpIHtcbiAgcmVnaW9uID0gcmVnaW9uIHx8ICdhcC1zaGFuZ2hhaSdcbiAgbGV0IGJhc2VVcmwgPSBgLy8ke2Vudn0uYXBpLnRjbG91ZGJhc2VnYXRld2F5LmNvbS92MWBcblxuICBpZiAoIVpPTkVfQ0hJTkEuaW5jbHVkZXMocmVnaW9uKSkge1xuICAgIGJhc2VVcmwgPSBgLy8ke2Vudn0uYXBpLmludGwudGNsb3VkYmFzZWdhdGV3YXkuY29tL3YxYFxuICB9XG5cbiAgc2V0RW5kUG9pbnRJbmZvKHsgZW5kUG9pbnRLZXk6ICdHQVRFV0FZJywgZW52LCBiYXNlVXJsLCBwcm90b2NvbCB9KVxufVxuZXhwb3J0IGZ1bmN0aW9uIHNldFJlZ2lvbkxldmVsRW5kcG9pbnQoZW52OiBzdHJpbmcsIHJlZ2lvbjogc3RyaW5nLCBwcm90b2NvbD86IFByb3RvY29sKSB7XG4gIGNvbnN0IGJhc2VVcmwgPSBgLy8ke2Vudn0uJHtyZWdpb24gfHwgJ2FwLXNoYW5naGFpJ30udGNiLWFwaS50ZW5jZW50Y2xvdWRhcGkuY29tL3dlYmBcbiAgc2V0RW5kUG9pbnRJbmZvKHsgZW52LCByZWdpb24sIGJhc2VVcmwsIHByb3RvY29sLCBlbmRQb2ludEtleTogJ0NMT1VEX0FQSScgfSlcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEJhc2VFbmRQb2ludChlbnY6IHN0cmluZywgZW5kUG9pbnRLZXk6IEVuZFBvaW50S2V5ID0gJ0NMT1VEX0FQSScpIHtcbiAgY29uc3QgaW5mbyA9IGdldEVuZFBvaW50SW5mbyhlbnYsIGVuZFBvaW50S2V5IHx8ICdDTE9VRF9BUEknKVxuXG4gIGNvbnN0IHsgcHJvdG9jb2w6IFBST1RPQ09MLCBiYXNlVXJsOiBCQVNFX1VSTCB9ID0gaW5mb1xuICBjb25zdCB3ZWJFbmRwb2ludCA9IGAke1BST1RPQ09MfSR7QkFTRV9VUkx9YFxuICAvLyBAdG9kbyDkuLTml7blhbzlrrnlsI/nqIvluo9cbiAgcmV0dXJuIHdlYkVuZHBvaW50Lm1hdGNoKC8oaHR0cChzKT86KT9cXC9cXC8oW14vPyNdKikvKVswXVxuICAvLyByZXR1cm4gYCR7bmV3IFVSTCh3ZWJFbmRwb2ludCkub3JpZ2lufWBcbn1cblxuZXhwb3J0IGVudW0gTE9HSU5UWVBFIHtcbiAgTlVMTCA9ICdOVUxMJyxcbiAgQU5PTllNT1VTID0gJ0FOT05ZTU9VUycsXG4gIFdFQ0hBVCA9ICdXRUNIQVQnLFxuICBXRUNIQVRfUFVCTElDID0gJ1dFQ0hBVC1QVUJMSUMnLFxuICBXRUNIQVRfT1BFTiA9ICdXRUNIQVQtT1BFTicsXG4gIENVU1RPTSA9ICdDVVNUT00nLFxuICBFTUFJTCA9ICdFTUFJTCcsXG4gIFVTRVJOQU1FID0gJ1VTRVJOQU1FJyxcbiAgUEhPTkUgPSAnUEhPTkUnLFxufVxuXG5leHBvcnQgY29uc3QgT0FVVEgyX0xPR0lOVFlQRV9QUkVGSVggPSAnT0FVVEgyJ1xuIl19