@cloudbase/oauth 0.1.1-alpha.12 → 0.1.1-alpha.14
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/dist/app/index.d.ts +4 -4
- package/dist/app/openuri.d.ts +1 -1
- package/dist/app/request.d.ts +1 -1
- package/dist/auth/consts.d.ts +3 -2
- package/dist/auth/consts.js +3 -2
- package/dist/auth/index.d.ts +15 -4
- package/dist/auth/index.js +15 -4
- package/dist/auth/models.d.ts +5 -5
- package/dist/oauthclient/index.d.ts +4 -4
- package/dist/oauthclient/interface.d.ts +1 -1
- package/dist/oauthclient/oauthclient.js +1 -1
- package/dist/package.json +1 -1
- package/package.json +1 -1
- package/packages/app/dist/cjs/constants/common.d.ts +24 -0
- package/packages/app/dist/cjs/constants/common.js +68 -0
- package/packages/app/dist/cjs/index.d.ts +4 -0
- package/packages/app/dist/cjs/index.js +248 -0
- package/packages/app/dist/cjs/libs/adapter.d.ts +2 -0
- package/packages/app/dist/cjs/libs/adapter.js +5 -0
- package/packages/app/dist/cjs/libs/cache.d.ts +6 -0
- package/packages/app/dist/cjs/libs/cache.js +38 -0
- package/packages/app/dist/cjs/libs/component.d.ts +3 -0
- package/packages/app/dist/cjs/libs/component.js +126 -0
- package/packages/app/dist/cjs/libs/request.d.ts +28 -0
- package/packages/app/dist/cjs/libs/request.js +297 -0
- package/packages/app/dist/esm/constants/common.d.ts +24 -0
- package/packages/app/dist/esm/constants/common.js +57 -0
- package/packages/app/dist/esm/index.d.ts +4 -0
- package/packages/app/dist/esm/index.js +241 -0
- package/packages/app/dist/esm/libs/adapter.d.ts +2 -0
- package/packages/app/dist/esm/libs/adapter.js +2 -0
- package/packages/app/dist/esm/libs/cache.d.ts +6 -0
- package/packages/app/dist/esm/libs/cache.js +32 -0
- package/packages/app/dist/esm/libs/component.d.ts +3 -0
- package/packages/app/dist/esm/libs/component.js +121 -0
- package/packages/app/dist/esm/libs/request.d.ts +28 -0
- package/packages/app/dist/esm/libs/request.js +292 -0
- package/packages/auth/dist/cjs/index.d.ts +118 -0
- package/packages/auth/dist/cjs/index.js +1088 -0
- package/packages/auth/dist/esm/index.d.ts +118 -0
- package/packages/auth/dist/esm/index.js +1084 -0
- package/packages/cloudbase/app/dist/index.esm.js +10 -0
- package/packages/cloudbase/auth/dist/index.esm.js +4 -0
- package/packages/cloudbase/dist/index.cjs.js +31 -0
- package/packages/cloudbase/dist/index.esm.js +26 -0
- package/packages/cloudbase/functions/dist/index.esm.js +4 -0
- package/packages/cloudbase/storage/dist/index.esm.js +4 -0
- package/packages/functions/dist/cjs/index.d.ts +2 -0
- package/packages/functions/dist/cjs/index.js +165 -0
- package/packages/functions/dist/esm/index.d.ts +2 -0
- package/packages/functions/dist/esm/index.js +161 -0
- package/packages/oauth/dist/cjs/auth/apis.d.ts +5 -1
- package/packages/oauth/dist/cjs/auth/apis.js +52 -1
- package/packages/oauth/dist/cjs/auth/consts.d.ts +5 -1
- package/packages/oauth/dist/cjs/auth/consts.js +5 -1
- package/packages/oauth/dist/cjs/auth/models.d.ts +26 -0
- package/packages/oauth/dist/cjs/auth/models.js +1 -1
- package/packages/oauth/dist/esm/auth/apis.d.ts +5 -1
- package/packages/oauth/dist/esm/auth/apis.js +52 -1
- package/packages/oauth/dist/esm/auth/consts.d.ts +5 -1
- package/packages/oauth/dist/esm/auth/consts.js +5 -1
- package/packages/oauth/dist/esm/auth/models.d.ts +26 -0
- package/packages/oauth/dist/esm/auth/models.js +1 -1
- package/packages/storage/dist/cjs/index.d.ts +2 -0
- package/packages/storage/dist/cjs/index.js +426 -0
- package/packages/storage/dist/esm/index.d.ts +2 -0
- package/packages/storage/dist/esm/index.js +422 -0
- package/src/auth/consts.ts +3 -2
- package/src/auth/index.ts +26 -8
- package/src/auth/models.ts +5 -5
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
exports.getLocalCache = exports.getCacheByEnvId = exports.initCache = void 0;
|
|
15
|
+
var utilities_1 = require("@cloudbase/utilities");
|
|
16
|
+
var USER_INFO_KEY = 'user_info';
|
|
17
|
+
var CloudbaseCache = utilities_1.cache.CloudbaseCache;
|
|
18
|
+
var cacheMap = {};
|
|
19
|
+
var localCacheMap = {};
|
|
20
|
+
function initCache(config) {
|
|
21
|
+
var env = config.env, platformInfo = config.platformInfo;
|
|
22
|
+
var userInfoKey = "".concat(USER_INFO_KEY, "_").concat(env);
|
|
23
|
+
var keys = {
|
|
24
|
+
userInfoKey: userInfoKey,
|
|
25
|
+
};
|
|
26
|
+
cacheMap[env] = cacheMap[env] || (new CloudbaseCache(__assign(__assign({}, config), { keys: keys, platformInfo: platformInfo })));
|
|
27
|
+
localCacheMap[env] = localCacheMap[env] || new CloudbaseCache(__assign(__assign({}, config), { keys: keys, platformInfo: platformInfo, persistence: 'local' }));
|
|
28
|
+
}
|
|
29
|
+
exports.initCache = initCache;
|
|
30
|
+
function getCacheByEnvId(env) {
|
|
31
|
+
return cacheMap[env];
|
|
32
|
+
}
|
|
33
|
+
exports.getCacheByEnvId = getCacheByEnvId;
|
|
34
|
+
function getLocalCache(env) {
|
|
35
|
+
return localCacheMap[env];
|
|
36
|
+
}
|
|
37
|
+
exports.getLocalCache = getLocalCache;
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGlicy9jYWNoZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7OztBQUNBLGtEQUE0QztBQUc1QyxJQUFNLGFBQWEsR0FBRyxXQUFXLENBQUE7QUFFekIsSUFBQSxjQUFjLEdBQUssaUJBQUssZUFBVixDQUFVO0FBRWhDLElBQU0sUUFBUSxHQUF3QixFQUFFLENBQUE7QUFFeEMsSUFBTSxhQUFhLEdBQXdCLEVBQUUsQ0FBQTtBQUU3QyxTQUFnQixTQUFTLENBQUMsTUFBc0M7SUFDdEQsSUFBQSxHQUFHLEdBQW1CLE1BQU0sSUFBekIsRUFBRSxZQUFZLEdBQUssTUFBTSxhQUFYLENBQVc7SUFFcEMsSUFBTSxXQUFXLEdBQUcsVUFBRyxhQUFhLGNBQUksR0FBRyxDQUFFLENBQUE7SUFFN0MsSUFBTSxJQUFJLEdBQUc7UUFDWCxXQUFXLGFBQUE7S0FDWixDQUFBO0lBRUQsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksY0FBYyx1QkFDL0MsTUFBTSxLQUNULElBQUksTUFBQSxFQUNKLFlBQVksY0FBQSxJQUNaLENBQUMsQ0FBQTtJQUNILGFBQWEsQ0FBQyxHQUFHLENBQUMsR0FBRyxhQUFhLENBQUMsR0FBRyxDQUFDLElBQUksSUFBSSxjQUFjLHVCQUN4RCxNQUFNLEtBQ1QsSUFBSSxNQUFBLEVBQ0osWUFBWSxjQUFBLEVBQ1osV0FBVyxFQUFFLE9BQU8sSUFDcEIsQ0FBQTtBQUNKLENBQUM7QUFwQkQsOEJBb0JDO0FBRUQsU0FBZ0IsZUFBZSxDQUFDLEdBQVc7SUFDekMsT0FBTyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUE7QUFDdEIsQ0FBQztBQUZELDBDQUVDO0FBRUQsU0FBZ0IsYUFBYSxDQUFDLEdBQVc7SUFDdkMsT0FBTyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUE7QUFDM0IsQ0FBQztBQUZELHNDQUVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgS1YgfSBmcm9tICdAY2xvdWRiYXNlL3R5cGVzJ1xuaW1wb3J0IHsgY2FjaGUgfSBmcm9tICdAY2xvdWRiYXNlL3V0aWxpdGllcydcbmltcG9ydCB7IElDbG91ZGJhc2VDYWNoZSwgSUNhY2hlQ29uZmlnIH0gZnJvbSAnQGNsb3VkYmFzZS90eXBlcy9jYWNoZSdcblxuY29uc3QgVVNFUl9JTkZPX0tFWSA9ICd1c2VyX2luZm8nXG5cbmNvbnN0IHsgQ2xvdWRiYXNlQ2FjaGUgfSA9IGNhY2hlXG5cbmNvbnN0IGNhY2hlTWFwOiBLVjxJQ2xvdWRiYXNlQ2FjaGU+ID0ge31cbi8vIOacrOWcsOWtmOWCqFxuY29uc3QgbG9jYWxDYWNoZU1hcDogS1Y8SUNsb3VkYmFzZUNhY2hlPiA9IHt9XG5cbmV4cG9ydCBmdW5jdGlvbiBpbml0Q2FjaGUoY29uZmlnOiBJQ2FjaGVDb25maWcgJiB7IGVudjogc3RyaW5nIH0pIHtcbiAgY29uc3QgeyBlbnYsIHBsYXRmb3JtSW5mbyB9ID0gY29uZmlnXG5cbiAgY29uc3QgdXNlckluZm9LZXkgPSBgJHtVU0VSX0lORk9fS0VZfV8ke2Vudn1gXG5cbiAgY29uc3Qga2V5cyA9IHtcbiAgICB1c2VySW5mb0tleSxcbiAgfVxuICAvLyDoi6XmjIflrpplbnblt7LlrZjlnKhjYWNoZeWImeWwneivleabtOaWsHBlcnNpc3RlbmNlXG4gIGNhY2hlTWFwW2Vudl0gPSBjYWNoZU1hcFtlbnZdIHx8IChuZXcgQ2xvdWRiYXNlQ2FjaGUoe1xuICAgIC4uLmNvbmZpZyxcbiAgICBrZXlzLFxuICAgIHBsYXRmb3JtSW5mbyxcbiAgfSkpXG4gIGxvY2FsQ2FjaGVNYXBbZW52XSA9IGxvY2FsQ2FjaGVNYXBbZW52XSB8fCBuZXcgQ2xvdWRiYXNlQ2FjaGUoe1xuICAgIC4uLmNvbmZpZyxcbiAgICBrZXlzLFxuICAgIHBsYXRmb3JtSW5mbyxcbiAgICBwZXJzaXN0ZW5jZTogJ2xvY2FsJyxcbiAgfSlcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldENhY2hlQnlFbnZJZChlbnY6IHN0cmluZyk6IElDbG91ZGJhc2VDYWNoZSB7XG4gIHJldHVybiBjYWNoZU1hcFtlbnZdXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRMb2NhbENhY2hlKGVudjogc3RyaW5nKTogSUNsb3VkYmFzZUNhY2hlIHtcbiAgcmV0dXJuIGxvY2FsQ2FjaGVNYXBbZW52XVxufVxuIl19
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
3
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
4
|
+
if (ar || !(i in from)) {
|
|
5
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
6
|
+
ar[i] = from[i];
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.registerHook = exports.registerComponent = void 0;
|
|
13
|
+
var utilities_1 = require("@cloudbase/utilities");
|
|
14
|
+
var ERRORS = utilities_1.constants.ERRORS;
|
|
15
|
+
var components = {};
|
|
16
|
+
function registerComponent(app, component) {
|
|
17
|
+
var name = component.name, namespace = component.namespace, entity = component.entity, injectEvents = component.injectEvents, _a = component.IIFE, IIFE = _a === void 0 ? false : _a;
|
|
18
|
+
if (components[name] || (namespace && app[namespace])) {
|
|
19
|
+
throw new Error(JSON.stringify({
|
|
20
|
+
code: ERRORS.INVALID_OPERATION,
|
|
21
|
+
msg: "Duplicate component ".concat(name),
|
|
22
|
+
}));
|
|
23
|
+
}
|
|
24
|
+
if (IIFE) {
|
|
25
|
+
if (!entity || typeof entity !== 'function') {
|
|
26
|
+
throw new Error(JSON.stringify({
|
|
27
|
+
code: ERRORS.INVALID_PARAMS,
|
|
28
|
+
msg: 'IIFE component\'s entity must be a function',
|
|
29
|
+
}));
|
|
30
|
+
}
|
|
31
|
+
entity.call(app);
|
|
32
|
+
}
|
|
33
|
+
components[name] = component;
|
|
34
|
+
if (namespace) {
|
|
35
|
+
app.prototype[namespace] = entity;
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
deepExtend(app.prototype, entity);
|
|
39
|
+
}
|
|
40
|
+
if (injectEvents) {
|
|
41
|
+
var bus = injectEvents.bus, events = injectEvents.events;
|
|
42
|
+
if (!bus || !events || events.length === 0) {
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
var originCallback_1 = app.prototype.fire || function () { };
|
|
46
|
+
if (!app.prototype.events) {
|
|
47
|
+
app.prototype.events = {};
|
|
48
|
+
}
|
|
49
|
+
var originEvents = app.prototype.events || {};
|
|
50
|
+
if (originEvents[name]) {
|
|
51
|
+
app.prototype.events[name].events = __spreadArray(__spreadArray([], app.prototype.events[name].events, true), events, true);
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
app.prototype.events[name] = { bus: bus, events: events };
|
|
55
|
+
}
|
|
56
|
+
app.prototype.fire = function (eventName, data) {
|
|
57
|
+
originCallback_1(eventName, data);
|
|
58
|
+
var eventNames = Object.keys(this.events);
|
|
59
|
+
for (var _i = 0, eventNames_1 = eventNames; _i < eventNames_1.length; _i++) {
|
|
60
|
+
var name_1 = eventNames_1[_i];
|
|
61
|
+
var _a = this.events[name_1], bus_1 = _a.bus, eventList = _a.events;
|
|
62
|
+
if (eventList.includes(eventName)) {
|
|
63
|
+
bus_1.fire(eventName, data);
|
|
64
|
+
break;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
exports.registerComponent = registerComponent;
|
|
71
|
+
function deepExtend(target, source) {
|
|
72
|
+
if (!(source instanceof Object)) {
|
|
73
|
+
return source;
|
|
74
|
+
}
|
|
75
|
+
switch (source.constructor) {
|
|
76
|
+
case Date: {
|
|
77
|
+
var dateValue = source;
|
|
78
|
+
return new Date(dateValue.getTime());
|
|
79
|
+
}
|
|
80
|
+
case Object:
|
|
81
|
+
if (target === undefined) {
|
|
82
|
+
target = {};
|
|
83
|
+
}
|
|
84
|
+
break;
|
|
85
|
+
case Array:
|
|
86
|
+
target = [];
|
|
87
|
+
break;
|
|
88
|
+
default:
|
|
89
|
+
return source;
|
|
90
|
+
}
|
|
91
|
+
var sourceKeys = Object.keys(source);
|
|
92
|
+
for (var _i = 0, sourceKeys_1 = sourceKeys; _i < sourceKeys_1.length; _i++) {
|
|
93
|
+
var key = sourceKeys_1[_i];
|
|
94
|
+
if (!Object.prototype.hasOwnProperty.call(source, key)) {
|
|
95
|
+
continue;
|
|
96
|
+
}
|
|
97
|
+
target[key] = deepExtend(target[key], source[key]);
|
|
98
|
+
}
|
|
99
|
+
return target;
|
|
100
|
+
}
|
|
101
|
+
function registerHook(app, hook) {
|
|
102
|
+
var entity = hook.entity, target = hook.target;
|
|
103
|
+
if (Object.prototype.hasOwnProperty.call(app, target)) {
|
|
104
|
+
throw new Error(JSON.stringify({
|
|
105
|
+
code: ERRORS.INVALID_OPERATION,
|
|
106
|
+
msg: "target:".concat(target, " is not exist"),
|
|
107
|
+
}));
|
|
108
|
+
}
|
|
109
|
+
var originMethod = app.prototype[target];
|
|
110
|
+
if (typeof originMethod !== 'function') {
|
|
111
|
+
throw new Error(JSON.stringify({
|
|
112
|
+
code: ERRORS.INVALID_OPERATION,
|
|
113
|
+
msg: "target:".concat(target, " is not a function which is the only type supports hook"),
|
|
114
|
+
}));
|
|
115
|
+
}
|
|
116
|
+
app.prototype[target] = function () {
|
|
117
|
+
var args = [];
|
|
118
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
119
|
+
args[_i] = arguments[_i];
|
|
120
|
+
}
|
|
121
|
+
entity.call.apply(entity, __spreadArray([this], args, false));
|
|
122
|
+
return originMethod.call.apply(originMethod, __spreadArray([this], args, false));
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
exports.registerHook = registerHook;
|
|
126
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYnMvY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUVBLGtEQUFnRDtBQUV4QyxJQUFBLE1BQU0sR0FBSyxxQkFBUyxPQUFkLENBQWM7QUFFNUIsSUFBTSxVQUFVLEdBQTRCLEVBQUUsQ0FBQTtBQUU5QyxTQUFnQixpQkFBaUIsQ0FBQyxHQUFRLEVBQUUsU0FBOEI7SUFDaEUsSUFBQSxJQUFJLEdBQW9ELFNBQVMsS0FBN0QsRUFBRSxTQUFTLEdBQXlDLFNBQVMsVUFBbEQsRUFBRSxNQUFNLEdBQWlDLFNBQVMsT0FBMUMsRUFBRSxZQUFZLEdBQW1CLFNBQVMsYUFBNUIsRUFBRSxLQUFpQixTQUFTLEtBQWQsRUFBWixJQUFJLG1CQUFHLEtBQUssS0FBQSxDQUFjO0lBRXpFLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxJQUFJLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFO1FBQ3JELE1BQU0sSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztZQUM3QixJQUFJLEVBQUUsTUFBTSxDQUFDLGlCQUFpQjtZQUM5QixHQUFHLEVBQUUsOEJBQXVCLElBQUksQ0FBRTtTQUNuQyxDQUFDLENBQUMsQ0FBQTtLQUNKO0lBRUQsSUFBSSxJQUFJLEVBQUU7UUFDUixJQUFJLENBQUMsTUFBTSxJQUFJLE9BQU8sTUFBTSxLQUFLLFVBQVUsRUFBRTtZQUMzQyxNQUFNLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7Z0JBQzdCLElBQUksRUFBRSxNQUFNLENBQUMsY0FBYztnQkFDM0IsR0FBRyxFQUFFLDZDQUE2QzthQUNuRCxDQUFDLENBQUMsQ0FBQTtTQUNKO1FBQ0QsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTtLQUNqQjtJQUVELFVBQVUsQ0FBQyxJQUFJ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WSxFQUFaLHFCQUFZLEVBQVosSUFBWTtZQUFaLHlCQUFZOztRQUM1QyxNQUFNLENBQUMsSUFBSSxPQUFYLE1BQU0saUJBQU0sSUFBSSxHQUFLLElBQUksVUFBQztRQUMxQixPQUFPLFlBQVksQ0FBQyxJQUFJLE9BQWpCLFlBQVksaUJBQU0sSUFBSSxHQUFLLElBQUksVUFBQztJQUN6QyxDQUFDLENBQUE7QUFDSCxDQUFDO0FBbkJELG9DQW1CQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEtWIH0gZnJvbSAnQGNsb3VkYmFzZS90eXBlcydcbmltcG9ydCB7IElDbG91ZGJhc2VDb21wb25lbnQsIElDbG91ZGJhc2VIb29rIH0gZnJvbSAnQGNsb3VkYmFzZS90eXBlcy9jb21wb25lbnQnXG5pbXBvcnQgeyBjb25zdGFudHMgfSBmcm9tICdAY2xvdWRiYXNlL3V0aWxpdGllcydcblxuY29uc3QgeyBFUlJPUlMgfSA9IGNvbnN0YW50c1xuXG5jb25zdCBjb21wb25lbnRzOiBLVjxJQ2xvdWRiYXNlQ29tcG9uZW50PiA9IHt9XG5cbmV4cG9ydCBmdW5jdGlvbiByZWdpc3RlckNvbXBvbmVudChhcHA6IGFueSwgY29tcG9uZW50OiBJQ2xvdWRiYXNlQ29tcG9uZW50KSB7XG4gIGNvbnN0IHsgbmFtZSwgbmFtZXNwYWNlLCBlbnRpdHksIGluamVjdEV2ZW50cywgSUlGRSA9IGZhbHNlIH0gPSBjb21wb25lbnRcbiAgLy8g5LiN5YWB6K646YeN5aSN5rOo5YaM5oiW5ZG95ZCN56m66Ze06YeN5ZCNXG4gIGlmIChjb21wb25lbnRzW25hbWVdIHx8IChuYW1lc3BhY2UgJiYgYXBwW25hbWVzcGFjZV0pKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKEpTT04uc3RyaW5naWZ5KHtcbiAgICAgIGNvZGU6IEVSUk9SUy5JTlZBTElEX09QRVJBVElPTixcbiAgICAgIG1zZzogYER1cGxpY2F0ZSBjb21wb25lbnQgJHtuYW1lfWAsXG4gICAgfSkpXG4gIH1cbiAgLy8gSUlGReexu+Wei+eahOe7hOS7tuS7pWFwcOS4unNjb3Bl5omn6KGMZW50aXR55Ye95pWw77yM5LiN5oyC6L295YiwYXBwLnByb3RvdHlwZeS4ilxuICBpZiAoSUlGRSkge1xuICAgIGlmICghZW50aXR5IHx8IHR5cGVvZiBlbnRpdHkgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgIGNvZGU6IEVSUk9SUy5JTlZBTElEX1BBUkFNUyxcbiAgICAgICAgbXNnOiAnSUlGRSBjb21wb25lbnRcXCdzIGVudGl0eSBtdXN0IGJlIGEgZnVuY3Rpb24nLFxuICAgICAgfSkpXG4gICAgfVxuICAgIGVudGl0eS5jYWxsKGFwcClcbiAgfVxuXG4gIGNvbXBvbmVudHNbbmFtZV0gPSBjb21wb25lbnRcblxuICBpZiAobmFtZXNwYWNlKSB7XG4gICAgKGFwcCBhcyBhbnkpLnByb3RvdHlwZVtuYW1lc3BhY2VdID0gZW50aXR5XG4gIH0gZWxzZSB7XG4gICAgZGVlcEV4dGVuZCgoYXBwIGFzIGFueSkucHJvdG90eXBlLCBlbnRpdHkpXG4gIH1cbiAgaWYgKGluamVjdEV2ZW50cykge1xuICAgIGNvbnN0IHsgYnVzLCBldmVudHMgfSA9IGluamVjdEV2ZW50c1xuICAgIGlmICghYnVzIHx8ICFldmVudHMgfHwgZXZlbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIGNvbnN0IG9yaWdpbkNhbGxiYWNrID0gKGFwcCBhcyBhbnkpLnByb3RvdHlwZS5maXJlIHx8IGZ1bmN0aW9uICgpIHt9XG4gICAgaWYgKCEoYXBwIGFzIGFueSkucHJvdG90eXBlLmV2ZW50cykge1xuICAgICAgKGFwcCBhcyBhbnkpLnByb3RvdHlwZS5ldmVudHMgPSB7fVxuICAgIH1cbiAgICBjb25zdCBvcmlnaW5FdmVudHM6IEtWPGFueT4gPSAoYXBwIGFzIGFueSkucHJvdG90eXBlLmV2ZW50cyB8fCB7fVxuICAgIGlmIChvcmlnaW5FdmVudHNbbmFtZV0pIHtcbiAgICAgIChhcHAgYXMgYW55KS5wcm90b3R5cGUuZXZlbnRzW25hbWVdLmV2ZW50cyA9IFsuLi4oYXBwIGFzIGFueSkucHJvdG90eXBlLmV2ZW50c1tuYW1lXS5ldmVudHMsIC4uLmV2ZW50c11cbiAgICB9IGVsc2Uge1xuICAgICAgKGFwcCBhcyBhbnkpLnByb3RvdHlwZS5ldmVudHNbbmFtZV0gPSB7IGJ1cywgZXZlbnRzIH1cbiAgICB9XG4gICAgKGFwcCBhcyBhbnkpLnByb3RvdHlwZS5maXJlID0gZnVuY3Rpb24gKGV2ZW50TmFtZTogc3RyaW5nLCBkYXRhPzogYW55KSB7XG4gICAgICBvcmlnaW5DYWxsYmFjayhldmVudE5hbWUsIGRhdGEpXG4gICAgICBjb25zdCBldmVudE5hbWVzID0gT2JqZWN0LmtleXModGhpcy5ldmVudHMpXG4gICAgICBmb3IgKGNvbnN0IG5hbWUgb2YgZXZlbnROYW1lcykge1xuICAgICAgICBjb25zdCB7IGJ1cywgZXZlbnRzOiBldmVudExpc3QgfSA9IHRoaXMuZXZlbnRzW25hbWVdXG4gICAgICAgIGlmIChldmVudExpc3QuaW5jbHVkZXMoZXZlbnROYW1lKSkge1xuICAgICAgICAgIGJ1cy5maXJlKGV2ZW50TmFtZSwgZGF0YSlcbiAgICAgICAgICBicmVha1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGRlZXBFeHRlbmQodGFyZ2V0OiBhbnksIHNvdXJjZTogYW55KTogS1Y8YW55PiB7XG4gIGlmICghKHNvdXJjZSBpbnN0YW5jZW9mIE9iamVjdCkpIHtcbiAgICByZXR1cm4gc291cmNlXG4gIH1cblxuICBzd2l0Y2ggKHNvdXJjZS5jb25zdHJ1Y3Rvcikge1xuICAgIGNhc2UgRGF0ZToge1xuICAgICAgY29uc3QgZGF0ZVZhbHVlID0gc291cmNlIGFzIERhdGVcbiAgICAgIHJldHVybiBuZXcgRGF0ZShkYXRlVmFsdWUuZ2V0VGltZSgpKVxuICAgIH1cbiAgICBjYXNlIE9iamVjdDpcbiAgICAgIGlmICh0YXJnZXQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICB0YXJnZXQgPSB7fVxuICAgICAgfVxuICAgICAgYnJlYWtcbiAgICBjYXNlIEFycmF5OlxuICAgICAgdGFyZ2V0ID0gW11cbiAgICAgIGJyZWFrXG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBzb3VyY2VcbiAgfVxuICBjb25zdCBzb3VyY2VLZXlzID0gT2JqZWN0LmtleXMoc291cmNlKVxuICBmb3IgKGNvbnN0IGtleSBvZiBzb3VyY2VLZXlzKSB7XG4gICAgaWYgKCFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7XG4gICAgICBjb250aW51ZVxuICAgIH1cbiAgICB0YXJnZXRba2V5XSA9IGRlZXBFeHRlbmQodGFyZ2V0W2tleV0sIHNvdXJjZVtrZXldKVxuICB9XG5cbiAgcmV0dXJuIHRhcmdldFxufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVnaXN0ZXJIb29rKGFwcDogYW55LCBob29rOiBJQ2xvdWRiYXNlSG9vaykge1xuICBjb25zdCB7IGVudGl0eSwgdGFyZ2V0IH0gPSBob29rXG4gIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYXBwLCB0YXJnZXQpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKEpTT04uc3RyaW5naWZ5KHtcbiAgICAgIGNvZGU6IEVSUk9SUy5JTlZBTElEX09QRVJBVElPTixcbiAgICAgIG1zZzogYHRhcmdldDoke3RhcmdldH0gaXMgbm90IGV4aXN0YCxcbiAgICB9KSlcbiAgfVxuICBjb25zdCBvcmlnaW5NZXRob2QgPSBhcHAucHJvdG90eXBlW3RhcmdldF1cbiAgaWYgKHR5cGVvZiBvcmlnaW5NZXRob2QgIT09ICdmdW5jdGlvbicpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgY29kZTogRVJST1JTLklOVkFMSURfT1BFUkFUSU9OLFxuICAgICAgbXNnOiBgdGFyZ2V0OiR7dGFyZ2V0fSBpcyBub3QgYSBmdW5jdGlvbiB3aGljaCBpcyB0aGUgb25seSB0eXBlIHN1cHBvcnRzIGhvb2tgLFxuICAgIH0pKVxuICB9XG4gIGFwcC5wcm90b3R5cGVbdGFyZ2V0XSA9IGZ1bmN0aW9uICguLi5hcmdzOiBhbnkpIHtcbiAgICBlbnRpdHkuY2FsbCh0aGlzLCAuLi5hcmdzKVxuICAgIHJldHVybiBvcmlnaW5NZXRob2QuY2FsbCh0aGlzLCAuLi5hcmdzKVxuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { IRequestOptions, ResponseObject, IUploadRequestOptions } from '@cloudbase/adapter-interface';
|
|
2
|
+
import { KV } from '@cloudbase/types';
|
|
3
|
+
import { IGetAccessTokenResult, ICloudbaseRequestConfig } from '@cloudbase/types/request';
|
|
4
|
+
export interface ICloudbaseRequest {
|
|
5
|
+
post: (options: IRequestOptions) => Promise<ResponseObject>;
|
|
6
|
+
upload: (options: IUploadRequestOptions) => Promise<ResponseObject>;
|
|
7
|
+
download: (options: IRequestOptions) => Promise<ResponseObject>;
|
|
8
|
+
request: (action: string, params: KV<any>, options?: KV<any>) => Promise<ResponseObject>;
|
|
9
|
+
send: (action: string, data: KV<any>) => Promise<any>;
|
|
10
|
+
}
|
|
11
|
+
export declare class CloudbaseRequest implements ICloudbaseRequest {
|
|
12
|
+
config: ICloudbaseRequestConfig;
|
|
13
|
+
private reqClass;
|
|
14
|
+
private throwWhenRequestFail;
|
|
15
|
+
private localCache;
|
|
16
|
+
constructor(config: ICloudbaseRequestConfig & {
|
|
17
|
+
throw?: boolean;
|
|
18
|
+
});
|
|
19
|
+
post(options: IRequestOptions): Promise<ResponseObject>;
|
|
20
|
+
upload(options: IUploadRequestOptions): Promise<ResponseObject>;
|
|
21
|
+
download(options: IRequestOptions): Promise<ResponseObject>;
|
|
22
|
+
getBaseEndPoint(): string;
|
|
23
|
+
getOauthAccessTokenV2(oauthClient: any): Promise<IGetAccessTokenResult>;
|
|
24
|
+
request(action: string, params: KV<any>, options?: KV<any>): Promise<ResponseObject>;
|
|
25
|
+
send(action: string, data?: KV<any>): Promise<any>;
|
|
26
|
+
}
|
|
27
|
+
export declare function initRequest(config: ICloudbaseRequestConfig): void;
|
|
28
|
+
export declare function getRequestByEnvId(env: string): CloudbaseRequest;
|
|
@@ -0,0 +1,297 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
14
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
15
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
16
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
17
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
18
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
19
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
20
|
+
});
|
|
21
|
+
};
|
|
22
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
23
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
24
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
25
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
26
|
+
function step(op) {
|
|
27
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
28
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
29
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
30
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
31
|
+
switch (op[0]) {
|
|
32
|
+
case 0: case 1: t = op; break;
|
|
33
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
34
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
35
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
36
|
+
default:
|
|
37
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
38
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
39
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
40
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
41
|
+
if (t[2]) _.ops.pop();
|
|
42
|
+
_.trys.pop(); continue;
|
|
43
|
+
}
|
|
44
|
+
op = body.call(thisArg, _);
|
|
45
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
46
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
50
|
+
exports.getRequestByEnvId = exports.initRequest = exports.CloudbaseRequest = void 0;
|
|
51
|
+
var common_1 = require("../constants/common");
|
|
52
|
+
var utilities_1 = require("@cloudbase/utilities");
|
|
53
|
+
var cache_1 = require("./cache");
|
|
54
|
+
var adapter_1 = require("./adapter");
|
|
55
|
+
var ERRORS = utilities_1.constants.ERRORS;
|
|
56
|
+
var genSeqId = utilities_1.utils.genSeqId, isFormData = utilities_1.utils.isFormData, formatUrl = utilities_1.utils.formatUrl;
|
|
57
|
+
var ACTIONS_WITHOUT_ACCESSTOKEN = [
|
|
58
|
+
'auth.getJwt',
|
|
59
|
+
'auth.logout',
|
|
60
|
+
'auth.signInWithTicket',
|
|
61
|
+
'auth.signInAnonymously',
|
|
62
|
+
'auth.signIn',
|
|
63
|
+
'auth.fetchAccessTokenWithRefreshToken',
|
|
64
|
+
'auth.signUpWithEmailAndPassword',
|
|
65
|
+
'auth.activateEndUserMail',
|
|
66
|
+
'auth.sendPasswordResetEmail',
|
|
67
|
+
'auth.resetPasswordWithToken',
|
|
68
|
+
'auth.isUsernameRegistered',
|
|
69
|
+
];
|
|
70
|
+
function bindHooks(instance, name, hooks) {
|
|
71
|
+
var originMethod = instance[name];
|
|
72
|
+
instance[name] = function (options) {
|
|
73
|
+
var data = {};
|
|
74
|
+
var headers = {};
|
|
75
|
+
hooks.forEach(function (hook) {
|
|
76
|
+
var _a = hook.call(instance, options), appendedData = _a.data, appendedHeaders = _a.headers;
|
|
77
|
+
Object.assign(data, appendedData);
|
|
78
|
+
Object.assign(headers, appendedHeaders);
|
|
79
|
+
});
|
|
80
|
+
var originData = options.data;
|
|
81
|
+
originData && (function () {
|
|
82
|
+
if (isFormData(originData)) {
|
|
83
|
+
Object.keys(data).forEach(function (key) {
|
|
84
|
+
originData.append(key, data[key]);
|
|
85
|
+
});
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
options.data = __assign(__assign({}, originData), data);
|
|
89
|
+
})();
|
|
90
|
+
options.headers = __assign(__assign({}, (options.headers || {})), headers);
|
|
91
|
+
return originMethod.call(instance, options);
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
function beforeEach() {
|
|
95
|
+
var seqId = genSeqId();
|
|
96
|
+
return {
|
|
97
|
+
data: {
|
|
98
|
+
seqId: seqId,
|
|
99
|
+
},
|
|
100
|
+
headers: {
|
|
101
|
+
'X-SDK-Version': "@cloudbase/js-sdk/".concat((0, common_1.getSdkVersion)()),
|
|
102
|
+
'x-seqid': seqId,
|
|
103
|
+
},
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
var CloudbaseRequest = (function () {
|
|
107
|
+
function CloudbaseRequest(config) {
|
|
108
|
+
this.throwWhenRequestFail = false;
|
|
109
|
+
this.config = config;
|
|
110
|
+
var reqConfig = {
|
|
111
|
+
timeout: this.config.timeout,
|
|
112
|
+
timeoutMsg: "[@cloudbase/js-sdk] \u8BF7\u6C42\u5728".concat(this.config.timeout / 1000, "s\u5185\u672A\u5B8C\u6210\uFF0C\u5DF2\u4E2D\u65AD"),
|
|
113
|
+
restrictedMethods: ['post', 'put'],
|
|
114
|
+
};
|
|
115
|
+
this.reqClass = new adapter_1.Platform.adapter.reqClass(reqConfig);
|
|
116
|
+
this.throwWhenRequestFail = config.throw || false;
|
|
117
|
+
this.localCache = (0, cache_1.getLocalCache)(this.config.env);
|
|
118
|
+
bindHooks(this.reqClass, 'post', [beforeEach]);
|
|
119
|
+
bindHooks(this.reqClass, 'upload', [beforeEach]);
|
|
120
|
+
bindHooks(this.reqClass, 'download', [beforeEach]);
|
|
121
|
+
}
|
|
122
|
+
CloudbaseRequest.prototype.post = function (options) {
|
|
123
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
124
|
+
var res;
|
|
125
|
+
return __generator(this, function (_a) {
|
|
126
|
+
switch (_a.label) {
|
|
127
|
+
case 0: return [4, this.reqClass.post(options)];
|
|
128
|
+
case 1:
|
|
129
|
+
res = _a.sent();
|
|
130
|
+
return [2, res];
|
|
131
|
+
}
|
|
132
|
+
});
|
|
133
|
+
});
|
|
134
|
+
};
|
|
135
|
+
CloudbaseRequest.prototype.upload = function (options) {
|
|
136
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
137
|
+
var res;
|
|
138
|
+
return __generator(this, function (_a) {
|
|
139
|
+
switch (_a.label) {
|
|
140
|
+
case 0: return [4, this.reqClass.upload(options)];
|
|
141
|
+
case 1:
|
|
142
|
+
res = _a.sent();
|
|
143
|
+
return [2, res];
|
|
144
|
+
}
|
|
145
|
+
});
|
|
146
|
+
});
|
|
147
|
+
};
|
|
148
|
+
CloudbaseRequest.prototype.download = function (options) {
|
|
149
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
150
|
+
var res;
|
|
151
|
+
return __generator(this, function (_a) {
|
|
152
|
+
switch (_a.label) {
|
|
153
|
+
case 0: return [4, this.reqClass.download(options)];
|
|
154
|
+
case 1:
|
|
155
|
+
res = _a.sent();
|
|
156
|
+
return [2, res];
|
|
157
|
+
}
|
|
158
|
+
});
|
|
159
|
+
});
|
|
160
|
+
};
|
|
161
|
+
CloudbaseRequest.prototype.getBaseEndPoint = function () {
|
|
162
|
+
return (0, common_1.getBaseEndPoint)();
|
|
163
|
+
};
|
|
164
|
+
CloudbaseRequest.prototype.getOauthAccessTokenV2 = function (oauthClient) {
|
|
165
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
166
|
+
var validAccessToken, credentials;
|
|
167
|
+
return __generator(this, function (_a) {
|
|
168
|
+
switch (_a.label) {
|
|
169
|
+
case 0: return [4, oauthClient.getAccessToken()];
|
|
170
|
+
case 1:
|
|
171
|
+
validAccessToken = _a.sent();
|
|
172
|
+
return [4, oauthClient.getCredentials()];
|
|
173
|
+
case 2:
|
|
174
|
+
credentials = _a.sent();
|
|
175
|
+
return [2, {
|
|
176
|
+
accessToken: validAccessToken,
|
|
177
|
+
accessTokenExpire: new Date(credentials.expires_at).getTime(),
|
|
178
|
+
}];
|
|
179
|
+
}
|
|
180
|
+
});
|
|
181
|
+
});
|
|
182
|
+
};
|
|
183
|
+
CloudbaseRequest.prototype.request = function (action, params, options) {
|
|
184
|
+
var _a;
|
|
185
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
186
|
+
var tcbTraceKey, contentType, tmpObj, app, oauthInstance, oauthClient, _b, payload, opts, traceHeader, parse, inQuery, search, formatQuery, _c, BASE_URL, PROTOCOL, newUrl, res, resTraceHeader;
|
|
187
|
+
return __generator(this, function (_d) {
|
|
188
|
+
switch (_d.label) {
|
|
189
|
+
case 0:
|
|
190
|
+
tcbTraceKey = "x-tcb-trace_".concat(this.config.env);
|
|
191
|
+
contentType = 'application/x-www-form-urlencoded';
|
|
192
|
+
tmpObj = __assign({ action: action, dataVersion: common_1.DATA_VERSION, env: this.config.env }, params);
|
|
193
|
+
if (!(ACTIONS_WITHOUT_ACCESSTOKEN.indexOf(action) === -1)) return [3, 2];
|
|
194
|
+
app = this.config._fromApp;
|
|
195
|
+
if (!app.oauthInstance) {
|
|
196
|
+
throw new Error('you can\'t request without auth');
|
|
197
|
+
}
|
|
198
|
+
oauthInstance = app.oauthInstance;
|
|
199
|
+
oauthClient = oauthInstance.oauth2client;
|
|
200
|
+
_b = tmpObj;
|
|
201
|
+
return [4, this.getOauthAccessTokenV2(oauthClient)];
|
|
202
|
+
case 1:
|
|
203
|
+
_b.access_token = (_d.sent()).accessToken;
|
|
204
|
+
_d.label = 2;
|
|
205
|
+
case 2:
|
|
206
|
+
if (action === 'storage.uploadFile') {
|
|
207
|
+
payload = new FormData();
|
|
208
|
+
Object.keys(payload).forEach(function (key) {
|
|
209
|
+
if (Object.prototype.hasOwnProperty.call(payload, key) && payload[key] !== undefined) {
|
|
210
|
+
payload.append(key, tmpObj[key]);
|
|
211
|
+
}
|
|
212
|
+
});
|
|
213
|
+
contentType = 'multipart/form-data';
|
|
214
|
+
}
|
|
215
|
+
else {
|
|
216
|
+
contentType = 'application/json;charset=UTF-8';
|
|
217
|
+
payload = {};
|
|
218
|
+
Object.keys(tmpObj).forEach(function (key) {
|
|
219
|
+
if (tmpObj[key] !== undefined) {
|
|
220
|
+
payload[key] = tmpObj[key];
|
|
221
|
+
}
|
|
222
|
+
});
|
|
223
|
+
}
|
|
224
|
+
opts = {
|
|
225
|
+
headers: {
|
|
226
|
+
'content-type': contentType,
|
|
227
|
+
},
|
|
228
|
+
};
|
|
229
|
+
if (options === null || options === void 0 ? void 0 : options.onUploadProgress) {
|
|
230
|
+
opts.onUploadProgress = options.onUploadProgress;
|
|
231
|
+
}
|
|
232
|
+
if (this.config.region) {
|
|
233
|
+
opts.headers['X-TCB-Region'] = this.config.region;
|
|
234
|
+
}
|
|
235
|
+
traceHeader = this.localCache.getStore(tcbTraceKey);
|
|
236
|
+
if (traceHeader) {
|
|
237
|
+
opts.headers['X-TCB-Trace'] = traceHeader;
|
|
238
|
+
}
|
|
239
|
+
parse = params.parse, inQuery = params.inQuery, search = params.search;
|
|
240
|
+
formatQuery = {
|
|
241
|
+
env: this.config.env,
|
|
242
|
+
};
|
|
243
|
+
parse && (formatQuery.parse = true);
|
|
244
|
+
inQuery && (formatQuery = __assign(__assign({}, inQuery), formatQuery));
|
|
245
|
+
_c = (0, common_1.getEndPoint)(), BASE_URL = _c.BASE_URL, PROTOCOL = _c.PROTOCOL;
|
|
246
|
+
newUrl = formatUrl(PROTOCOL, BASE_URL, formatQuery);
|
|
247
|
+
if (search) {
|
|
248
|
+
newUrl += search;
|
|
249
|
+
}
|
|
250
|
+
return [4, this.post(__assign({ url: newUrl, data: payload }, opts))];
|
|
251
|
+
case 3:
|
|
252
|
+
res = _d.sent();
|
|
253
|
+
resTraceHeader = (_a = res.header) === null || _a === void 0 ? void 0 : _a['x-tcb-trace'];
|
|
254
|
+
if (resTraceHeader) {
|
|
255
|
+
this.localCache.setStore(tcbTraceKey, resTraceHeader);
|
|
256
|
+
}
|
|
257
|
+
if ((Number(res.status) !== 200 && Number(res.statusCode) !== 200) || !res.data) {
|
|
258
|
+
throw new Error('network request error');
|
|
259
|
+
}
|
|
260
|
+
return [2, res];
|
|
261
|
+
}
|
|
262
|
+
});
|
|
263
|
+
});
|
|
264
|
+
};
|
|
265
|
+
CloudbaseRequest.prototype.send = function (action, data) {
|
|
266
|
+
if (data === void 0) { data = {}; }
|
|
267
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
268
|
+
var response;
|
|
269
|
+
return __generator(this, function (_a) {
|
|
270
|
+
switch (_a.label) {
|
|
271
|
+
case 0: return [4, this.request(action, data, { onUploadProgress: data.onUploadProgress })];
|
|
272
|
+
case 1:
|
|
273
|
+
response = _a.sent();
|
|
274
|
+
if (response.data.code && this.throwWhenRequestFail) {
|
|
275
|
+
throw new Error(JSON.stringify({
|
|
276
|
+
code: ERRORS.OPERATION_FAIL,
|
|
277
|
+
msg: "[".concat(response.data.code, "] ").concat(response.data.message),
|
|
278
|
+
}));
|
|
279
|
+
}
|
|
280
|
+
return [2, response.data];
|
|
281
|
+
}
|
|
282
|
+
});
|
|
283
|
+
});
|
|
284
|
+
};
|
|
285
|
+
return CloudbaseRequest;
|
|
286
|
+
}());
|
|
287
|
+
exports.CloudbaseRequest = CloudbaseRequest;
|
|
288
|
+
var requestMap = {};
|
|
289
|
+
function initRequest(config) {
|
|
290
|
+
requestMap[config.env] = new CloudbaseRequest(__assign(__assign({}, config), { throw: true }));
|
|
291
|
+
}
|
|
292
|
+
exports.initRequest = initRequest;
|
|
293
|
+
function getRequestByEnvId(env) {
|
|
294
|
+
return requestMap[env];
|
|
295
|
+
}
|
|
296
|
+
exports.getRequestByEnvId = getRequestByEnvId;
|
|
297
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWJzL3JlcXVlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSw4Q0FLNEI7QUFRNUIsa0RBQXVEO0FBSXZELGlDQUF1QztBQUN2QyxxQ0FBb0M7QUFDNUIsSUFBQSxNQUFNLEdBQUsscUJBQVMsT0FBZCxDQUFjO0FBQ3BCLElBQUEsUUFBUSxHQUE0QixpQkFBSyxTQUFqQyxFQUFFLFVBQVUsR0FBZ0IsaUJBQUssV0FBckIsRUFBRSxTQUFTLEdBQUssaUJBQUssVUFBVixDQUFVO0FBR2pELElBQU0sMkJBQTJCLEdBQUc7SUFDbEMsYUFBYTtJQUNiLGFBQWE7SUFDYix1QkFBdUI7SUFDdkIsd0JBQXdCO0lBQ3hCLGFBQWE7SUFDYix1Q0FBdUM7SUFDdkMsaUNBQWlDO0lBQ2pDLDBCQUEwQjtJQUMxQiw2QkFBNkI7SUFDN0IsNkJBQTZCO0lBQzdCLDJCQUEyQjtDQUM1QixDQUFBO0FBRUQsU0FBUyxTQUFTLENBQUMsUUFBNkIsRUFBRSxJQUFZLEVBQUUsS0FBMkI7SUFDekYsSUFBTSxZQUFZLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQ25DLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxVQUFVLE9BQXdCO1FBQ2pELElBQU0sSUFBSSxHQUFHLEVBQUUsQ0FBQTtRQUNmLElBQU0sT0FBTyxHQUFHLEVBQUUsQ0FBQTtRQUNsQixLQUFLLENBQUMsT0FBTyxDQUFDLFVBQUMsSUFBSTtZQUNYLElBQUEsS0FBbUQsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLEVBQXZFLFlBQVksVUFBQSxFQUFXLGVBQWUsYUFBaUMsQ0FBQTtZQUNyRixNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxZQUFZLENBQUMsQ0FBQTtZQUNqQyxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxlQUFlLENBQUMsQ0FBQTtRQUN6QyxDQUFDLENBQUMsQ0FBQTtRQUNGLElBQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUE7UUFDL0IsVUFBVSxJQUFJLENBQUM7WUFDYixJQUFJLFVBQVUsQ0FBQyxVQUFVLENBQUMsRUFBRTtnQkFDMUIsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBQyxHQUFHO29CQUMzQixVQUF1QixDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUE7Z0JBQ2pELENBQUMsQ0FBQyxDQUFBO2dCQUNGLE9BQU07YUFDUDtZQUNELE9BQU8sQ0FBQyxJQUFJLHlCQUNQLFVBQVUsR0FDVixJQUFJLENBQ1IsQ0FBQTtRQUNILENBQUMsQ0FBQyxFQUFFLENBQUE7UUFDSixPQUFPLENBQUMsT0FBTyx5QkFDVixDQUFDLE9BQU8sQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDLEdBQ3ZCLE9BQU8sQ0FDWCxDQUFBO1FBQ0QsT0FBUSxZQUF5QixDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUE7SUFDM0QsQ0FBQyxDQUFBO0FBQ0gsQ0FBQztBQUNELFNBQVMsVUFBVTtJQUNqQixJQUFNLEtBQUssR0FBRyxRQUFRLEVBQUUsQ0FBQTtJQUN4QixPQUFPO1FBQ0wsSUFBSSxFQUFFO1lBQ0osS0FBSyxPQUFBO1NBQ047UUFDRCxPQUFPLEVBQUU7WUFDUCxlQUFlLEVBQUUsNEJBQXFCLElBQUEsc0JBQWEsR0FBRSxDQUFFO1lBQ3ZELFNBQVMsRUFBRSxLQUFLO1NBQ2pCO0tBQ0YsQ0FBQTtBQUNILENBQUM7QUFZRDtJQVdFLDBCQUFZLE1BQXFEO1FBUHpELHlCQUFvQixHQUFHLEtBQUssQ0FBQTtRQVFsQyxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQTtRQUNwQixJQUFNLFNBQVMsR0FBbUI7WUFDaEMsT0FBTyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTztZQUM1QixVQUFVLEVBQUUsZ0RBQTBCLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLElBQUksc0RBQVc7WUFDM0UsaUJBQWlCLEVBQUUsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDO1NBQ25DLENBQUE7UUFDRCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksa0JBQVEsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFBO1FBQ3hELElBQUksQ0FBQyxvQkFBb0IsR0FBRyxNQUFNLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQTtRQUNqRCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUEscUJBQWEsRUFBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFBO1FBQ2hELFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUE7UUFDOUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQTtRQUNoRCxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxVQUFVLEVBQUUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFBO0lBQ3BELENBQUM7SUFFWSwrQkFBSSxHQUFqQixVQUFrQixPQUF3Qjs7Ozs7NEJBQzVCLFdBQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUE7O3dCQUF2QyxHQUFHLEdBQUcsU0FBaUM7d0JBQzdDLFdBQU8sR0FBRyxFQUFBOzs7O0tBQ1g7SUFDWSxpQ0FBTSxHQUFuQixVQUFvQixPQUE4Qjs7Ozs7NEJBQ3BDLFdBQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUE7O3dCQUF6QyxHQUFHLEdBQUcsU0FBbUM7d0JBQy9DLFdBQU8sR0FBRyxFQUFBOzs7O0tBQ1g7SUFDWSxtQ0FBUSxHQUFyQixVQUFzQixPQUF3Qjs7Ozs7NEJBQ2hDLFdBQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUE7O3dCQUEzQyxHQUFHLEdBQUcsU0FBcUM7d0JBQ2pELFdBQU8sR0FBRyxFQUFBOzs7O0tBQ1g7SUFFTSwwQ0FBZSxHQUF0QjtRQUNFLE9BQU8sSUFBQSx3QkFBZSxHQUFFLENBQUE7SUFDMUIsQ0FBQztJQUVZLGdEQUFxQixHQUFsQyxVQUFtQyxXQUFnQjs7Ozs7NEJBQ3hCLFdBQU0sV0FBVyxDQUFDLGNBQWMsRUFBRSxFQUFBOzt3QkFBckQsZ0JBQWdCLEdBQUcsU0FBa0M7d0JBQ3ZDLFdBQU0sV0FBVyxDQUFDLGNBQWMsRUFBRSxFQUFBOzt3QkFBaEQsV0FBVyxHQUFHLFNBQWtDO3dCQUN0RCxXQUFPO2dDQUNMLFdBQVcsRUFBRSxnQkFBZ0I7Z0NBQzdCLGlCQUFpQixFQUFFLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxPQUFPLEVBQUU7NkJBQzlELEVBQUE7Ozs7S0FDRjtJQUlZLGtDQUFPLEdBQXBCLFVBQXFCLE1BQWMsRUFBRSxNQUFlLEVBQUUsT0FBaUI7Ozs7Ozs7d0JBQy9ELFdBQVcsR0FBRyxzQkFBZSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBRSxDQUFBO3dCQUNoRCxXQUFXLEdBQUcsbUNBQW1DLENBQUE7d0JBQy9DLE1BQU0sY0FDVixNQUFNLFFBQUEsRUFDTixXQUFXLEVBQUUscUJBQVksRUFDekIsR0FBRyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxJQUNqQixNQUFNLENBQ1YsQ0FBQTs2QkFFRyxDQUFBLDJCQUEyQixDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQSxFQUFsRCxjQUFrRDt3QkFDOUMsR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFBO3dCQUVoQyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRTs0QkFDdEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFBO3lCQUNuRDt3QkFFTyxhQUFhLEdBQUssR0FBRyxjQUFSLENBQVE7d0JBQ3ZCLFdBQVcsR0FBRyxhQUFhLENBQUMsWUFBWSxDQUFBO3dCQUM5QyxLQUFBLE1BQU0sQ0FBQTt3QkFBaUIsV0FBTSxJQUFJLENBQUMscUJBQXFCLENBQUMsV0FBVyxDQUFDLEVBQUE7O3dCQUFwRSxHQUFPLFlBQVksR0FBRyxDQUFDLFNBQTZDLENBQUMsQ0FBQyxXQUFXLENBQUE7Ozt3QkFLbkYsSUFBSSxNQUFNLEtBQUssb0JBQW9CLEVBQUU7NEJBQ25DLE9BQU8sR0FBRyxJQUFJLFFBQVEsRUFBRSxDQUFBOzRCQUN4QixNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFDLEdBQUc7Z0NBQy9CLElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssU0FBUyxFQUFFO29DQUNwRixPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQTtpQ0FDakM7NEJBQ0gsQ0FBQyxDQUFDLENBQUE7NEJBQ0YsV0FBVyxHQUFHLHFCQUFxQixDQUFBO3lCQUNwQzs2QkFBTTs0QkFDTCxXQUFXLEdBQUcsZ0NBQWdDLENBQUE7NEJBQzlDLE9BQU8sR0FBRyxFQUFFLENBQUE7NEJBQ1osTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBQyxHQUFHO2dDQUM5QixJQUFJLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxTQUFTLEVBQUU7b0NBQzdCLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUE7aUNBQzNCOzRCQUNILENBQUMsQ0FBQyxDQUFBO3lCQUNIO3dCQUNLLElBQUksR0FBUTs0QkFDaEIsT0FBTyxFQUFFO2dDQUNQLGNBQWMsRUFBRSxXQUFXOzZCQUM1Qjt5QkFDRixDQUFBO3dCQUNELElBQUksT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLGdCQUFnQixFQUFFOzRCQUM3QixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsT0FBTyxDQUFDLGdCQUFnQixDQUFBO3lCQUNqRDt3QkFFRCxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFOzRCQUN0QixJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFBO3lCQUNsRDt3QkFFSyxXQUFXLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUE7d0JBQ3pELElBQUksV0FBVyxFQUFFOzRCQUNmLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLEdBQUcsV0FBVyxDQUFBO3lCQUMxQzt3QkFLTyxLQUFLLEdBQXNCLE1BQU0sTUFBNUIsRUFBRSxPQUFPLEdBQWEsTUFBTSxRQUFuQixFQUFFLE1BQU0sR0FBSyxNQUFNLE9BQVgsQ0FBVzt3QkFDckMsV0FBVyxHQUF3Qjs0QkFDckMsR0FBRyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRzt5QkFDckIsQ0FBQTt3QkFFRCxLQUFLLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxDQUFBO3dCQUNuQyxPQUFPLElBQUksQ0FBQyxXQUFXLHlCQUNsQixPQUFPLEdBQ1AsV0FBVyxDQUNmLENBQUMsQ0FBQTt3QkFDSSxLQUF5QixJQUFBLG9CQUFXLEdBQUUsRUFBcEMsUUFBUSxjQUFBLEVBQUUsUUFBUSxjQUFBLENBQWtCO3dCQUV4QyxNQUFNLEdBQUcsU0FBUyxDQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUUsV0FBVyxDQUFDLENBQUE7d0JBRXZELElBQUksTUFBTSxFQUFFOzRCQUNWLE1BQU0sSUFBSSxNQUFNLENBQUE7eUJBQ2pCO3dCQUUyQixXQUFNLElBQUksQ0FBQyxJQUFJLFlBQ3pDLEdBQUcsRUFBRSxNQUFNLEVBQ1gsSUFBSSxFQUFFLE9BQU8sSUFDVixJQUFJLEVBQ1AsRUFBQTs7d0JBSkksR0FBRyxHQUFtQixTQUkxQjt3QkFHSSxjQUFjLEdBQUcsTUFBQSxHQUFHLENBQUMsTUFBTSwwQ0FBRyxhQUFhLENBQUMsQ0FBQTt3QkFDbEQsSUFBSSxjQUFjLEVBQUU7NEJBQ2xCLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxjQUFjLENBQUMsQ0FBQTt5QkFDdEQ7d0JBRUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssR0FBRyxJQUFJLE1BQU0sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEtBQUssR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFOzRCQUMvRSxNQUFNLElBQUksS0FBSyxDQUFDLHVCQUF1QixDQUFDLENBQUE7eUJBQ3pDO3dCQUVELFdBQU8sR0FBRyxFQUFBOzs7O0tBQ1g7SUFFWSwrQkFBSSxHQUFqQixVQUFrQixNQUFjLEVBQUUsSUFBa0I7UUFBbEIscUJBQUEsRUFBQSxTQUFrQjs7Ozs7NEJBQ2pDLFdBQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUMsRUFBQTs7d0JBQXhGLFFBQVEsR0FBRyxTQUE2RTt3QkFFOUYsSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsb0JBQW9CLEVBQUU7NEJBQ25ELE1BQU0sSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztnQ0FDN0IsSUFBSSxFQUFFLE1BQU0sQ0FBQyxjQUFjO2dDQUMzQixHQUFHLEVBQUUsV0FBSSxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksZUFBSyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBRTs2QkFDeEQsQ0FBQyxDQUFDLENBQUE7eUJBQ0o7d0JBRUQsV0FBTyxRQUFRLENBQUMsSUFBSSxFQUFBOzs7O0tBQ3JCO0lBQ0gsdUJBQUM7QUFBRCxDQUFDLEFBcktELElBcUtDO0FBcktZLDRDQUFnQjtBQXVLN0IsSUFBTSxVQUFVLEdBQXlCLEVBQUUsQ0FBQTtBQUUzQyxTQUFnQixXQUFXLENBQUMsTUFBK0I7SUFDekQsVUFBVSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLGdCQUFnQix1QkFDeEMsTUFBTSxLQUNULEtBQUssRUFBRSxJQUFJLElBQ1gsQ0FBQTtBQUNKLENBQUM7QUFMRCxrQ0FLQztBQUVELFNBQWdCLGlCQUFpQixDQUFDLEdBQVc7SUFDM0MsT0FBTyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUE7QUFDeEIsQ0FBQztBQUZELDhDQUVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgREFUQV9WRVJTSU9OLFxuICBnZXRTZGtWZXJzaW9uLFxuICBnZXRFbmRQb2ludCxcbiAgZ2V0QmFzZUVuZFBvaW50LFxufSBmcm9tICcuLi9jb25zdGFudHMvY29tbW9uJ1xuaW1wb3J0IHtcbiAgSVJlcXVlc3RPcHRpb25zLFxuICBTREtSZXF1ZXN0SW50ZXJmYWNlLFxuICBSZXNwb25zZU9iamVjdCxcbiAgSVVwbG9hZFJlcXVlc3RPcHRpb25zLFxuICBJUmVxdWVzdENvbmZpZyxcbn0gZnJvbSAnQGNsb3VkYmFzZS9hZGFwdGVyLWludGVyZmFjZSdcbmltcG9ydCB7IHV0aWxzLCBjb25zdGFudHMgfSBmcm9tICdAY2xvdWRiYXNlL3V0aWxpdGllcydcbmltcG9ydCB7IEtWIH0gZnJvbSAnQGNsb3VkYmFzZS90eXBlcydcbmltcG9ydCB7IElHZXRBY2Nlc3NUb2tlblJlc3VsdCwgSUNsb3VkYmFzZVJlcXVlc3RDb25maWcsIElBcHBlbmRlZFJlcXVlc3RJbmZvLCBJUmVxdWVzdEJlZm9yZUhvb2sgfSBmcm9tICdAY2xvdWRiYXNlL3R5cGVzL3JlcXVlc3QnXG5pbXBvcnQgeyBJQ2xvdWRiYXNlQ2FjaGUgfSBmcm9tICdAY2xvdWRiYXNlL3R5cGVzL2NhY2hlJ1xuaW1wb3J0IHsgZ2V0TG9jYWxDYWNoZSB9IGZyb20gJy4vY2FjaGUnXG5pbXBvcnQgeyBQbGF0Zm9ybSB9IGZyb20gJy4vYWRhcHRlcidcbmNvbnN0IHsgRVJST1JTIH0gPSBjb25zdGFudHNcbmNvbnN0IHsgZ2VuU2VxSWQsIGlzRm9ybURhdGEsIGZvcm1hdFVybCB9ID0gdXRpbHNcblxuLy8g5LiL6Z2i5Yeg56eNIGFjdGlvbiDkuI3pnIDopoEgYWNjZXNzIHRva2VuXG5jb25zdCBBQ1RJT05TX1dJVEhPVVRfQUNDRVNTVE9LRU4gPSBbXG4gICdhdXRoLmdldEp3dCcsXG4gICdhdXRoLmxvZ291dCcsXG4gICdhdXRoLnNpZ25JbldpdGhUaWNrZXQnLFxuICAnYXV0aC5zaWduSW5Bbm9ueW1vdXNseScsXG4gICdhdXRoLnNpZ25JbicsXG4gICdhdXRoLmZldGNoQWNjZXNzVG9rZW5XaXRoUmVmcmVzaFRva2VuJyxcbiAgJ2F1dGguc2lnblVwV2l0aEVtYWlsQW5kUGFzc3dvcmQnLFxuICAnYXV0aC5hY3RpdmF0ZUVuZFVzZXJNYWlsJyxcbiAgJ2F1dGguc2VuZFBhc3N3b3JkUmVzZXRFbWFpbCcsXG4gICdhdXRoLnJlc2V0UGFzc3dvcmRXaXRoVG9rZW4nLFxuICAnYXV0aC5pc1VzZXJuYW1lUmVnaXN0ZXJlZCcsXG5dXG5cbmZ1bmN0aW9uIGJpbmRIb29rcyhpbnN0YW5jZTogU0RLUmVxdWVzdEludGVyZmFjZSwgbmFtZTogc3RyaW5nLCBob29rczogSVJlcXVlc3RCZWZvcmVIb29rW10pIHtcbiAgY29uc3Qgb3JpZ2luTWV0aG9kID0gaW5zdGFuY2VbbmFtZV1cbiAgaW5zdGFuY2VbbmFtZV0gPSBmdW5jdGlvbiAob3B0aW9uczogSVJlcXVlc3RPcHRpb25zKSB7XG4gICAgY29uc3QgZGF0YSA9IHt9XG4gICAgY29uc3QgaGVhZGVycyA9IHt9XG4gICAgaG9va3MuZm9yRWFjaCgoaG9vaykgPT4ge1xuICAgICAgY29uc3QgeyBkYXRhOiBhcHBlbmRlZERhdGEsIGhlYWRlcnM6IGFwcGVuZGVkSGVhZGVycyB9ID0gaG9vay5jYWxsKGluc3RhbmNlLCBvcHRpb25zKVxuICAgICAgT2JqZWN0LmFzc2lnbihkYXRhLCBhcHBlbmRlZERhdGEpXG4gICAgICBPYmplY3QuYXNzaWduKGhlYWRlcnMsIGFwcGVuZGVkSGVhZGVycylcbiAgICB9KVxuICAgIGNvbnN0IG9yaWdpbkRhdGEgPSBvcHRpb25zLmRhdGFcbiAgICBvcmlnaW5EYXRhICYmICgoKSA9PiB7XG4gICAgICBpZiAoaXNGb3JtRGF0YShvcmlnaW5EYXRhKSkge1xuICAgICAgICBPYmplY3Qua2V5cyhkYXRhKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgICAgICAob3JpZ2luRGF0YSBhcyBGb3JtRGF0YSkuYXBwZW5kKGtleSwgZGF0YVtrZXldKVxuICAgICAgICB9KVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICAgIG9wdGlvbnMuZGF0YSA9IHtcbiAgICAgICAgLi4ub3JpZ2luRGF0YSxcbiAgICAgICAgLi4uZGF0YSxcbiAgICAgIH1cbiAgICB9KSgpXG4gICAgb3B0aW9ucy5oZWFkZXJzID0ge1xuICAgICAgLi4uKG9wdGlvbnMuaGVhZGVycyB8fCB7fSksXG4gICAgICAuLi5oZWFkZXJzLFxuICAgIH1cbiAgICByZXR1cm4gKG9yaWdpbk1ldGhvZCBhcyBGdW5jdGlvbikuY2FsbChpbnN0YW5jZSwgb3B0aW9ucylcbiAgfVxufVxuZnVuY3Rpb24gYmVmb3JlRWFjaCgpOiBJQXBwZW5kZWRSZXF1ZXN0SW5mbyB7XG4gIGNvbnN0IHNlcUlkID0gZ2VuU2VxSWQoKVxuICByZXR1cm4ge1xuICAgIGRhdGE6IHtcbiAgICAgIHNlcUlkLFxuICAgIH0sXG4gICAgaGVhZGVyczoge1xuICAgICAgJ1gtU0RLLVZlcnNpb24nOiBgQGNsb3VkYmFzZS9qcy1zZGsvJHtnZXRTZGtWZXJzaW9uKCl9YCxcbiAgICAgICd4LXNlcWlkJzogc2VxSWQsXG4gICAgfSxcbiAgfVxufVxuZXhwb3J0IGludGVyZmFjZSBJQ2xvdWRiYXNlUmVxdWVzdCB7XG4gIHBvc3Q6IChvcHRpb25zOiBJUmVxdWVzdE9wdGlvbnMpID0+IFByb21pc2U8UmVzcG9uc2VPYmplY3Q+O1xuICB1cGxvYWQ6IChvcHRpb25zOiBJVXBsb2FkUmVxdWVzdE9wdGlvbnMpID0+IFByb21pc2U8UmVzcG9uc2VPYmplY3Q+O1xuICBkb3dubG9hZDogKG9wdGlvbnM6IElSZXF1ZXN0T3B0aW9ucykgPT4gUHJvbWlzZTxSZXNwb25zZU9iamVjdD47XG4gIHJlcXVlc3Q6IChhY3Rpb246IHN0cmluZywgcGFyYW1zOiBLVjxhbnk+LCBvcHRpb25zPzogS1Y8YW55PikgPT4gUHJvbWlzZTxSZXNwb25zZU9iamVjdD47XG4gIHNlbmQ6IChhY3Rpb246IHN0cmluZywgZGF0YTogS1Y8YW55PikgPT4gUHJvbWlzZTxhbnk+O1xufVxuXG4vKipcbiAqIEBjbGFzcyBDbG91ZGJhc2VSZXF1ZXN0XG4gKi9cbmV4cG9ydCBjbGFzcyBDbG91ZGJhc2VSZXF1ZXN0IGltcGxlbWVudHMgSUNsb3VkYmFzZVJlcXVlc3Qge1xuICBjb25maWc6IElDbG91ZGJhc2VSZXF1ZXN0Q29uZmlnXG4gIHByaXZhdGUgcmVxQ2xhc3M6IFNES1JlcXVlc3RJbnRlcmZhY2VcbiAgLy8g6K+35rGC5aSx6LSl5piv5ZCm5oqb5Ye6RXJyb3JcbiAgcHJpdmF0ZSB0aHJvd1doZW5SZXF1ZXN0RmFpbCA9IGZhbHNlXG4gIC8vIOaMgeS5heWMluacrOWcsOWtmOWCqFxuICBwcml2YXRlIGxvY2FsQ2FjaGU6IElDbG91ZGJhc2VDYWNoZVxuICAvKipcbiAgICog5Yid5aeL5YyWXG4gICAqIEBwYXJhbSBjb25maWdcbiAgICovXG4gIGNvbnN0cnVjdG9yKGNvbmZpZzogSUNsb3VkYmFzZVJlcXVlc3RDb25maWcgJiB7IHRocm93PzogYm9vbGVhbiB9KSB7XG4gICAgdGhpcy5jb25maWcgPSBjb25maWdcbiAgICBjb25zdCByZXFDb25maWc6IElSZXF1ZXN0Q29uZmlnID0ge1xuICAgICAgdGltZW91dDogdGhpcy5jb25maWcudGltZW91dCxcbiAgICAgIHRpbWVvdXRNc2c6IGBbQGNsb3VkYmFzZS9qcy1zZGtdIOivt+axguWcqCR7dGhpcy5jb25maWcudGltZW91dCAvIDEwMDB9c+WGheacquWujOaIkO+8jOW3suS4reaWrWAsXG4gICAgICByZXN0cmljdGVkTWV0aG9kczogWydwb3N0JywgJ3B1dCddLFxuICAgIH1cbiAgICB0aGlzLnJlcUNsYXNzID0gbmV3IFBsYXRmb3JtLmFkYXB0ZXIucmVxQ2xhc3MocmVxQ29uZmlnKVxuICAgIHRoaXMudGhyb3dXaGVuUmVxdWVzdEZhaWwgPSBjb25maWcudGhyb3cgfHwgZmFsc2VcbiAgICB0aGlzLmxvY2FsQ2FjaGUgPSBnZXRMb2NhbENhY2hlKHRoaXMuY29uZmlnLmVudilcbiAgICBiaW5kSG9va3ModGhpcy5yZXFDbGFzcywgJ3Bvc3QnLCBbYmVmb3JlRWFjaF0pXG4gICAgYmluZEhvb2tzKHRoaXMucmVxQ2xhc3MsICd1cGxvYWQnLCBbYmVmb3JlRWFjaF0pXG4gICAgYmluZEhvb2tzKHRoaXMucmVxQ2xhc3MsICdkb3dubG9hZCcsIFtiZWZvcmVFYWNoXSlcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBwb3N0KG9wdGlvbnM6IElSZXF1ZXN0T3B0aW9ucyk6IFByb21pc2U8UmVzcG9uc2VPYmplY3Q+IHtcbiAgICBjb25zdCByZXMgPSBhd2FpdCB0aGlzLnJlcUNsYXNzLnBvc3Qob3B0aW9ucylcbiAgICByZXR1cm4gcmVzXG4gIH1cbiAgcHVibGljIGFzeW5jIHVwbG9hZChvcHRpb25zOiBJVXBsb2FkUmVxdWVzdE9wdGlvbnMpOiBQcm9taXNlPFJlc3BvbnNlT2JqZWN0PiB7XG4gICAgY29uc3QgcmVzID0gYXdhaXQgdGhpcy5yZXFDbGFzcy51cGxvYWQob3B0aW9ucylcbiAgICByZXR1cm4gcmVzXG4gIH1cbiAgcHVibGljIGFzeW5jIGRvd25sb2FkKG9wdGlvbnM6IElSZXF1ZXN0T3B0aW9ucyk6IFByb21pc2U8UmVzcG9uc2VPYmplY3Q+IHtcbiAgICBjb25zdCByZXMgPSBhd2FpdCB0aGlzLnJlcUNsYXNzLmRvd25sb2FkKG9wdGlvbnMpXG4gICAgcmV0dXJuIHJlc1xuICB9XG5cbiAgcHVibGljIGdldEJhc2VFbmRQb2ludCgpIHtcbiAgICByZXR1cm4gZ2V0QmFzZUVuZFBvaW50KClcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnZXRPYXV0aEFjY2Vzc1Rva2VuVjIob2F1dGhDbGllbnQ6IGFueSk6IFByb21pc2U8SUdldEFjY2Vzc1Rva2VuUmVzdWx0PiB7XG4gICAgY29uc3QgdmFsaWRBY2Nlc3NUb2tlbiA9IGF3YWl0IG9hdXRoQ2xpZW50LmdldEFjY2Vzc1Rva2VuKClcbiAgICBjb25zdCBjcmVkZW50aWFscyA9IGF3YWl0IG9hdXRoQ2xpZW50LmdldENyZWRlbnRpYWxzKClcbiAgICByZXR1cm4ge1xuICAgICAgYWNjZXNzVG9rZW46IHZhbGlkQWNjZXNzVG9rZW4sXG4gICAgICBhY2Nlc3NUb2tlbkV4cGlyZTogbmV3IERhdGUoY3JlZGVudGlhbHMuZXhwaXJlc19hdCkuZ2V0VGltZSgpLFxuICAgIH1cbiAgfVxuXG5cbiAgLyogZXNsaW50LWRpc2FibGUgY29tcGxleGl0eSAqL1xuICBwdWJsaWMgYXN5bmMgcmVxdWVzdChhY3Rpb246IHN0cmluZywgcGFyYW1zOiBLVjxhbnk+LCBvcHRpb25zPzogS1Y8YW55Pik6IFByb21pc2U8UmVzcG9uc2VPYmplY3Q+IHtcbiAgICBjb25zdCB0Y2JUcmFjZUtleSA9IGB4LXRjYi10cmFjZV8ke3RoaXMuY29uZmlnLmVudn1gXG4gICAgbGV0IGNvbnRlbnRUeXBlID0gJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCdcbiAgICBjb25zdCB0bXBPYmo6IEtWPGFueT4gPSB7XG4gICAgICBhY3Rpb24sXG4gICAgICBkYXRhVmVyc2lvbjogREFUQV9WRVJTSU9OLFxuICAgICAgZW52OiB0aGlzLmNvbmZpZy5lbnYsXG4gICAgICAuLi5wYXJhbXMsXG4gICAgfVxuXG4gICAgaWYgKEFDVElPTlNfV0lUSE9VVF9BQ0NFU1NUT0tFTi5pbmRleE9mKGFjdGlvbikgPT09IC0xKSB7XG4gICAgICBjb25zdCBhcHAgPSB0aGlzLmNvbmZpZy5fZnJvbUFwcFxuXG4gICAgICBpZiAoIWFwcC5vYXV0aEluc3RhbmNlKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcigneW91IGNhblxcJ3QgcmVxdWVzdCB3aXRob3V0IGF1dGgnKVxuICAgICAgfVxuXG4gICAgICBjb25zdCB7IG9hdXRoSW5zdGFuY2UgfSA9IGFwcFxuICAgICAgY29uc3Qgb2F1dGhDbGllbnQgPSBvYXV0aEluc3RhbmNlLm9hdXRoMmNsaWVudFxuICAgICAgdG1wT2JqLmFjY2Vzc190b2tlbiA9IChhd2FpdCB0aGlzLmdldE9hdXRoQWNjZXNzVG9rZW5WMihvYXV0aENsaWVudCkpLmFjY2Vzc1Rva2VuXG4gICAgfVxuXG4gICAgLy8g5ou8Ym9keeWSjGNvbnRlbnQtdHlwZVxuICAgIGxldCBwYXlsb2FkXG4gICAgaWYgKGFjdGlvbiA9PT0gJ3N0b3JhZ2UudXBsb2FkRmlsZScpIHtcbiAgICAgIHBheWxvYWQgPSBuZXcgRm9ybURhdGEoKVxuICAgICAgT2JqZWN0LmtleXMocGF5bG9hZCkuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocGF5bG9hZCwga2V5KSAmJiBwYXlsb2FkW2tleV0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHBheWxvYWQuYXBwZW5kKGtleSwgdG1wT2JqW2tleV0pXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgICBjb250ZW50VHlwZSA9ICdtdWx0aXBhcnQvZm9ybS1kYXRhJ1xuICAgIH0gZWxzZSB7XG4gICAgICBjb250ZW50VHlwZSA9ICdhcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9VVRGLTgnXG4gICAgICBwYXlsb2FkID0ge31cbiAgICAgIE9iamVjdC5rZXlzKHRtcE9iaikuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICAgIGlmICh0bXBPYmpba2V5XSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgcGF5bG9hZFtrZXldID0gdG1wT2JqW2tleV1cbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9XG4gICAgY29uc3Qgb3B0czogYW55ID0ge1xuICAgICAgaGVhZGVyczoge1xuICAgICAgICAnY29udGVudC10eXBlJzogY29udGVudFR5cGUsXG4gICAgICB9LFxuICAgIH1cbiAgICBpZiAob3B0aW9ucz8ub25VcGxvYWRQcm9ncmVzcykge1xuICAgICAgb3B0cy5vblVwbG9hZFByb2dyZXNzID0gb3B0aW9ucy5vblVwbG9hZFByb2dyZXNzXG4gICAgfVxuXG4gICAgaWYgKHRoaXMuY29uZmlnLnJlZ2lvbikge1xuICAgICAgb3B0cy5oZWFkZXJzWydYLVRDQi1SZWdpb24nXSA9IHRoaXMuY29uZmlnLnJlZ2lvblxuICAgIH1cblxuICAgIGNvbnN0IHRyYWNlSGVhZGVyID0gdGhpcy5sb2NhbENhY2hlLmdldFN0b3JlKHRjYlRyYWNlS2V5KVxuICAgIGlmICh0cmFjZUhlYWRlcikge1xuICAgICAgb3B0cy5oZWFkZXJzWydYLVRDQi1UcmFjZSddID0gdHJhY2VIZWFkZXJcbiAgICB9XG5cbiAgICAvLyDlj5Hlh7ror7fmsYJcbiAgICAvLyDmlrDnmoQgdXJsIOmcgOimgeaQuuW4piBlbnYg5Y+C5pWw6L+b6KGMIENPUlMg5qCh6aqMXG4gICAgLy8g6K+35rGC6ZO+5o6l5pSv5oyB5re75Yqg5Yqo5oCBIHF1ZXJ5IOWPguaVsO+8jOaWueS+v+eUqOaIt+iwg+ivleWumuS9jeivt+axglxuICAgIGNvbnN0IHsgcGFyc2UsIGluUXVlcnksIHNlYXJjaCB9ID0gcGFyYW1zXG4gICAgbGV0IGZvcm1hdFF1ZXJ5OiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge1xuICAgICAgZW52OiB0aGlzLmNvbmZpZy5lbnYsXG4gICAgfVxuICAgIC8vIOWwneivleino+aekOWTjeW6lOaVsOaNruS4uiBKU09OXG4gICAgcGFyc2UgJiYgKGZvcm1hdFF1ZXJ5LnBhcnNlID0gdHJ1ZSlcbiAgICBpblF1ZXJ5ICYmIChmb3JtYXRRdWVyeSA9IHtcbiAgICAgIC4uLmluUXVlcnksXG4gICAgICAuLi5mb3JtYXRRdWVyeSxcbiAgICB9KVxuICAgIGNvbnN0IHsgQkFTRV9VUkwsIFBST1RPQ09MIH0gPSBnZXRFbmRQb2ludCgpXG4gICAgLy8g55Sf5oiQ6K+35rGCIHVybFxuICAgIGxldCBuZXdVcmwgPSBmb3JtYXRVcmwoUFJPVE9DT0wsIEJBU0VfVVJMLCBmb3JtYXRRdWVyeSlcblxuICAgIGlmIChzZWFyY2gpIHtcbiAgICAgIG5ld1VybCArPSBzZWFyY2hcbiAgICB9XG5cbiAgICBjb25zdCByZXM6IFJlc3BvbnNlT2JqZWN0ID0gYXdhaXQgdGhpcy5wb3N0KHtcbiAgICAgIHVybDogbmV3VXJsLFxuICAgICAgZGF0YTogcGF5bG9hZCxcbiAgICAgIC4uLm9wdHMsXG4gICAgfSlcblxuICAgIC8vIOS/neWtmCB0cmFjZSBoZWFkZXJcbiAgICBjb25zdCByZXNUcmFjZUhlYWRlciA9IHJlcy5oZWFkZXI/LlsneC10Y2ItdHJhY2UnXVxuICAgIGlmIChyZXNUcmFjZUhlYWRlcikge1xuICAgICAgdGhpcy5sb2NhbENhY2hlLnNldFN0b3JlKHRjYlRyYWNlS2V5LCByZXNUcmFjZUhlYWRlcilcbiAgICB9XG5cbiAgICBpZiAoKE51bWJlcihyZXMuc3RhdHVzKSAhPT0gMjAwICYmIE51bWJlcihyZXMuc3RhdHVzQ29kZSkgIT09IDIwMCkgfHwgIXJlcy5kYXRhKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ25ldHdvcmsgcmVxdWVzdCBlcnJvcicpXG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHNlbmQoYWN0aW9uOiBzdHJpbmcsIGRhdGE6IEtWPGFueT4gPSB7fSk6IFByb21pc2U8YW55PiB7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLnJlcXVlc3QoYWN0aW9uLCBkYXRhLCB7IG9uVXBsb2FkUHJvZ3Jlc3M6IGRhdGEub25VcGxvYWRQcm9ncmVzcyB9KVxuXG4gICAgaWYgKHJlc3BvbnNlLmRhdGEuY29kZSAmJiB0aGlzLnRocm93V2hlblJlcXVlc3RGYWlsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICBjb2RlOiBFUlJPUlMuT1BFUkFUSU9OX0ZBSUwsXG4gICAgICAgIG1zZzogYFske3Jlc3BvbnNlLmRhdGEuY29kZX1dICR7cmVzcG9uc2UuZGF0YS5tZXNzYWdlfWAsXG4gICAgICB9KSlcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzcG9uc2UuZGF0YVxuICB9XG59XG5cbmNvbnN0IHJlcXVlc3RNYXA6IEtWPENsb3VkYmFzZVJlcXVlc3Q+ID0ge31cblxuZXhwb3J0IGZ1bmN0aW9uIGluaXRSZXF1ZXN0KGNvbmZpZzogSUNsb3VkYmFzZVJlcXVlc3RDb25maWcpIHtcbiAgcmVxdWVzdE1hcFtjb25maWcuZW52XSA9IG5ldyBDbG91ZGJhc2VSZXF1ZXN0KHtcbiAgICAuLi5jb25maWcsXG4gICAgdGhyb3c6IHRydWUsXG4gIH0pXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRSZXF1ZXN0QnlFbnZJZChlbnY6IHN0cmluZyk6IENsb3VkYmFzZVJlcXVlc3Qge1xuICByZXR1cm4gcmVxdWVzdE1hcFtlbnZdXG59XG4iXX0=
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export declare function setSdkVersion(version: string): void;
|
|
2
|
+
export declare function getSdkVersion(): string;
|
|
3
|
+
export declare function setSdkName(name: string): void;
|
|
4
|
+
export declare function getSdkName(): string;
|
|
5
|
+
export declare const DATA_VERSION = "2020-01-10";
|
|
6
|
+
export declare function setEndPoint(url: string, protocol?: 'http' | 'https'): void;
|
|
7
|
+
export declare function setRegionLevelEndpoint(env: string, region: string, protocol?: 'http' | 'https'): void;
|
|
8
|
+
export declare function getEndPoint(): {
|
|
9
|
+
BASE_URL: string;
|
|
10
|
+
PROTOCOL: string;
|
|
11
|
+
};
|
|
12
|
+
export declare function getBaseEndPoint(): string;
|
|
13
|
+
export declare enum LOGINTYPE {
|
|
14
|
+
NULL = "NULL",
|
|
15
|
+
ANONYMOUS = "ANONYMOUS",
|
|
16
|
+
WECHAT = "WECHAT",
|
|
17
|
+
WECHAT_PUBLIC = "WECHAT-PUBLIC",
|
|
18
|
+
WECHAT_OPEN = "WECHAT-OPEN",
|
|
19
|
+
CUSTOM = "CUSTOM",
|
|
20
|
+
EMAIL = "EMAIL",
|
|
21
|
+
USERNAME = "USERNAME",
|
|
22
|
+
PHONE = "PHONE"
|
|
23
|
+
}
|
|
24
|
+
export declare const OAUTH2_LOGINTYPE_PREFIX = "OAUTH2";
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { constants } from '@cloudbase/utilities';
|
|
2
|
+
var setUtilitiesSdkName = constants.setSdkName, setUtilitiesProtocol = constants.setProtocol;
|
|
3
|
+
var sdkVersion = '';
|
|
4
|
+
var sdkName = '@cloudbase/js-sdk';
|
|
5
|
+
export function setSdkVersion(version) {
|
|
6
|
+
sdkVersion = version;
|
|
7
|
+
}
|
|
8
|
+
export function getSdkVersion() {
|
|
9
|
+
return sdkVersion;
|
|
10
|
+
}
|
|
11
|
+
export function setSdkName(name) {
|
|
12
|
+
sdkName = name;
|
|
13
|
+
setUtilitiesSdkName(name);
|
|
14
|
+
}
|
|
15
|
+
export function getSdkName() {
|
|
16
|
+
return sdkName;
|
|
17
|
+
}
|
|
18
|
+
export var DATA_VERSION = '2020-01-10';
|
|
19
|
+
var PROTOCOL = 'https:';
|
|
20
|
+
var BASE_URL = typeof process !== 'undefined' && process.env.NODE_ENV === 'e2e' && process.env.END_POINT === 'pre'
|
|
21
|
+
? '//tcb-pre.tencentcloudapi.com/web'
|
|
22
|
+
: '//tcb-api.tencentcloudapi.com/web';
|
|
23
|
+
export function setEndPoint(url, protocol) {
|
|
24
|
+
BASE_URL = url;
|
|
25
|
+
if (protocol) {
|
|
26
|
+
PROTOCOL = protocol;
|
|
27
|
+
setUtilitiesProtocol(protocol);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
export function setRegionLevelEndpoint(env, region, protocol) {
|
|
31
|
+
var endpoiont = region
|
|
32
|
+
? "//".concat(env, ".").concat(region, ".tcb-api.tencentcloudapi.com/web")
|
|
33
|
+
: "//".concat(env, ".ap-shanghai.tcb-api.tencentcloudapi.com/web");
|
|
34
|
+
setEndPoint(endpoiont, protocol);
|
|
35
|
+
}
|
|
36
|
+
export function getEndPoint() {
|
|
37
|
+
return { BASE_URL: BASE_URL, PROTOCOL: PROTOCOL };
|
|
38
|
+
}
|
|
39
|
+
export function getBaseEndPoint() {
|
|
40
|
+
var _a = getEndPoint(), PROTOCOL = _a.PROTOCOL, BASE_URL = _a.BASE_URL;
|
|
41
|
+
var webEndpoint = "".concat(PROTOCOL).concat(BASE_URL);
|
|
42
|
+
return webEndpoint.match(/(http(s)?:)?\/\/([^/?#]*)/)[0];
|
|
43
|
+
}
|
|
44
|
+
export var LOGINTYPE;
|
|
45
|
+
(function (LOGINTYPE) {
|
|
46
|
+
LOGINTYPE["NULL"] = "NULL";
|
|
47
|
+
LOGINTYPE["ANONYMOUS"] = "ANONYMOUS";
|
|
48
|
+
LOGINTYPE["WECHAT"] = "WECHAT";
|
|
49
|
+
LOGINTYPE["WECHAT_PUBLIC"] = "WECHAT-PUBLIC";
|
|
50
|
+
LOGINTYPE["WECHAT_OPEN"] = "WECHAT-OPEN";
|
|
51
|
+
LOGINTYPE["CUSTOM"] = "CUSTOM";
|
|
52
|
+
LOGINTYPE["EMAIL"] = "EMAIL";
|
|
53
|
+
LOGINTYPE["USERNAME"] = "USERNAME";
|
|
54
|
+
LOGINTYPE["PHONE"] = "PHONE";
|
|
55
|
+
})(LOGINTYPE || (LOGINTYPE = {}));
|
|
56
|
+
export var OAUTH2_LOGINTYPE_PREFIX = 'OAUTH2';
|
|
57
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbnN0YW50cy9jb21tb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBR3hDLElBQVksbUJBQW1CLEdBQXdDLFNBQVMsV0FBakQsRUFBZSxvQkFBb0IsR0FBSyxTQUFTLFlBQWQsQ0FBYztBQUl4RixJQUFJLFVBQVUsR0FBRyxFQUFFLENBQUE7QUFDbkIsSUFBSSxPQUFPLEdBQUcsbUJBQW1CLENBQUE7QUFFakMsTUFBTSxVQUFVLGFBQWEsQ0FBQyxPQUFlO0lBQzNDLFVBQVUsR0FBRyxPQUFPLENBQUE7QUFDdEIsQ0FBQztBQUNELE1BQU0sVUFBVSxhQUFhO0lBQzNCLE9BQU8sVUFBVSxDQUFBO0FBQ25CLENBQUM7QUFDRCxNQUFNLFVBQVUsVUFBVSxDQUFDLElBQVk7SUFDckMsT0FBTyxHQUFHLElBQUksQ0FBQTtJQUNkLG1CQUFtQixDQUFDLElBQUksQ0FBQyxDQUFBO0FBQzNCLENBQUM7QUFDRCxNQUFNLFVBQVUsVUFBVTtJQUN4QixPQUFPLE9BQU8sQ0FBQTtBQUNoQixDQUFDO0FBQ0QsTUFBTSxDQUFDLElBQU0sWUFBWSxHQUFHLFlBQVksQ0FBQTtBQUV4QyxJQUFJLFFBQVEsR0FBRyxRQUFRLENBQUE7QUFFdkIsSUFBSSxRQUFRLEdBQUcsT0FBTyxPQUFPLEtBQUssV0FBVyxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxLQUFLLEtBQUssSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLFNBQVMsS0FBSyxLQUFLO0lBQ2hILENBQUMsQ0FBQyxtQ0FBbUM7SUFDckMsQ0FBQyxDQUFDLG1DQUFtQyxDQUFBO0FBQ3ZDLE1BQU0sVUFBVSxXQUFXLENBQUMsR0FBVyxFQUFFLFFBQTJCO0lBQ2xFLFFBQVEsR0FBRyxHQUFHLENBQUE7SUFDZCxJQUFJLFFBQVEsRUFBRTtRQUNaLFFBQVEsR0FBRyxRQUFRLENBQUE7UUFDbkIsb0JBQW9CLENBQUMsUUFBUSxDQUFDLENBQUE7S0FDL0I7QUFDSCxDQUFDO0FBQ0QsTUFBTSxVQUFVLHNCQUFzQixDQUFDLEdBQVcsRUFBRSxNQUFjLEVBQUUsUUFBMkI7SUFDN0YsSUFBTSxTQUFTLEdBQUcsTUFBTTtRQUN0QixDQUFDLENBQUMsWUFBSyxHQUFHLGNBQUksTUFBTSxxQ0FBa0M7UUFDdEQsQ0FBQyxDQUFDLFlBQUssR0FBRyxpREFBOEMsQ0FBQTtJQUMxRCxXQUFXLENBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxDQUFBO0FBQ2xDLENBQUM7QUFDRCxNQUFNLFVBQVUsV0FBVztJQUN6QixPQUFPLEVBQUUsUUFBUSxVQUFBLEVBQUUsUUFBUSxVQUFBLEVBQUUsQ0FBQTtBQUMvQixDQUFDO0FBR0QsTUFBTSxVQUFVLGVBQWU7SUFDdkIsSUFBQSxLQUF5QixXQUFXLEVBQUUsRUFBcEMsUUFBUSxjQUFBLEVBQUUsUUFBUSxjQUFrQixDQUFBO0lBQzVDLElBQU0sV0FBVyxHQUFHLFVBQUcsUUFBUSxTQUFHLFFBQVEsQ0FBRSxDQUFBO0lBRTVDLE9BQU8sV0FBVyxDQUFDLEtBQUssQ0FBQywyQkFBMkIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO0FBRTFELENBQUM7QUFFRCxNQUFNLENBQU4sSUFBWSxTQVVYO0FBVkQsV0FBWSxTQUFTO0lBQ25CLDBCQUFhLENBQUE7SUFDYixvQ0FBdUIsQ0FBQTtJQUN2Qiw4QkFBaUIsQ0FBQTtJQUNqQiw0Q0FBK0IsQ0FBQTtJQUMvQix3Q0FBMkIsQ0FBQTtJQUMzQiw4QkFBaUIsQ0FBQTtJQUNqQiw0QkFBZSxDQUFBO0lBQ2Ysa0NBQXFCLENBQUE7SUFDckIsNEJBQWUsQ0FBQTtBQUNqQixDQUFDLEVBVlcsU0FBUyxLQUFULFNBQVMsUUFVcEI7QUFFRCxNQUFNLENBQUMsSUFBTSx1QkFBdUIsR0FBRyxRQUFRLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb25zdGFudHMgfSBmcm9tICdAY2xvdWRiYXNlL3V0aWxpdGllcydcblxuLy8gQHRzLWlnbm9yZVxuY29uc3QgeyBzZXRTZGtOYW1lOiBzZXRVdGlsaXRpZXNTZGtOYW1lLCBzZXRQcm90b2NvbDogc2V0VXRpbGl0aWVzUHJvdG9jb2wgfSA9IGNvbnN0YW50c1xuLyoqXG4gKiBTREtcbiAqL1xubGV0IHNka1ZlcnNpb24gPSAnJ1xubGV0IHNka05hbWUgPSAnQGNsb3VkYmFzZS9qcy1zZGsnXG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRTZGtWZXJzaW9uKHZlcnNpb246IHN0cmluZykge1xuICBzZGtWZXJzaW9uID0gdmVyc2lvblxufVxuZXhwb3J0IGZ1bmN0aW9uIGdldFNka1ZlcnNpb24oKSB7XG4gIHJldHVybiBzZGtWZXJzaW9uXG59XG5leHBvcnQgZnVuY3Rpb24gc2V0U2RrTmFtZShuYW1lOiBzdHJpbmcpIHtcbiAgc2RrTmFtZSA9IG5hbWVcbiAgc2V0VXRpbGl0aWVzU2RrTmFtZShuYW1lKVxufVxuZXhwb3J0IGZ1bmN0aW9uIGdldFNka05hbWUoKSB7XG4gIHJldHVybiBzZGtOYW1lXG59XG5leHBvcnQgY29uc3QgREFUQV9WRVJTSU9OID0gJzIwMjAtMDEtMTAnXG5cbmxldCBQUk9UT0NPTCA9ICdodHRwczonXG5cbmxldCBCQVNFX1VSTCA9IHR5cGVvZiBwcm9jZXNzICE9PSAndW5kZWZpbmVkJyAmJiBwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2UyZScgJiYgcHJvY2Vzcy5lbnYuRU5EX1BPSU5UID09PSAncHJlJ1xuICA/ICcvL3RjYi1wcmUudGVuY2VudGNsb3VkYXBpLmNvbS93ZWInXG4gIDogJy8vdGNiLWFwaS50ZW5jZW50Y2xvdWRhcGkuY29tL3dlYidcbmV4cG9ydCBmdW5jdGlvbiBzZXRFbmRQb2ludCh1cmw6IHN0cmluZywgcHJvdG9jb2w/OiAnaHR0cCcgfCAnaHR0cHMnKSB7XG4gIEJBU0VfVVJMID0gdXJsXG4gIGlmIChwcm90b2NvbCkge1xuICAgIFBST1RPQ09MID0gcHJvdG9jb2xcbiAgICBzZXRVdGlsaXRpZXNQcm90b2NvbChwcm90b2NvbClcbiAgfVxufVxuZXhwb3J0IGZ1bmN0aW9uIHNldFJlZ2lvbkxldmVsRW5kcG9pbnQoZW52OiBzdHJpbmcsIHJlZ2lvbjogc3RyaW5nLCBwcm90b2NvbD86ICdodHRwJyB8ICdodHRwcycpIHtcbiAgY29uc3QgZW5kcG9pb250ID0gcmVnaW9uXG4gICAgPyBgLy8ke2Vudn0uJHtyZWdpb259LnRjYi1hcGkudGVuY2VudGNsb3VkYXBpLmNvbS93ZWJgXG4gICAgOiBgLy8ke2Vudn0uYXAtc2hhbmdoYWkudGNiLWFwaS50ZW5jZW50Y2xvdWRhcGkuY29tL3dlYmBcbiAgc2V0RW5kUG9pbnQoZW5kcG9pb250LCBwcm90b2NvbClcbn1cbmV4cG9ydCBmdW5jdGlvbiBnZXRFbmRQb2ludCgpIHtcbiAgcmV0dXJuIHsgQkFTRV9VUkwsIFBST1RPQ09MIH1cbn1cblxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0QmFzZUVuZFBvaW50KCkge1xuICBjb25zdCB7IFBST1RPQ09MLCBCQVNFX1VSTCB9ID0gZ2V0RW5kUG9pbnQoKVxuICBjb25zdCB3ZWJFbmRwb2ludCA9IGAke1BST1RPQ09MfSR7QkFTRV9VUkx9YFxuICAvLyBAdG9kbyDkuLTml7blhbzlrrnlsI/nqIvluo9cbiAgcmV0dXJuIHdlYkVuZHBvaW50Lm1hdGNoKC8oaHR0cChzKT86KT9cXC9cXC8oW14vPyNdKikvKVswXVxuICAvLyByZXR1cm4gYCR7bmV3IFVSTCh3ZWJFbmRwb2ludCkub3JpZ2lufWBcbn1cblxuZXhwb3J0IGVudW0gTE9HSU5UWVBFIHtcbiAgTlVMTCA9ICdOVUxMJyxcbiAgQU5PTllNT1VTID0gJ0FOT05ZTU9VUycsXG4gIFdFQ0hBVCA9ICdXRUNIQVQnLFxuICBXRUNIQVRfUFVCTElDID0gJ1dFQ0hBVC1QVUJMSUMnLFxuICBXRUNIQVRfT1BFTiA9ICdXRUNIQVQtT1BFTicsXG4gIENVU1RPTSA9ICdDVVNUT00nLFxuICBFTUFJTCA9ICdFTUFJTCcsXG4gIFVTRVJOQU1FID0gJ1VTRVJOQU1FJyxcbiAgUEhPTkUgPSAnUEhPTkUnXG59XG5cbmV4cG9ydCBjb25zdCBPQVVUSDJfTE9HSU5UWVBFX1BSRUZJWCA9ICdPQVVUSDInXG4iXX0=
|