@cloudbase/app
Version:
cloudbase javascript sdk core
118 lines • 14 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);
};
var __rest = (this && this.__rest) || function (s, e) {
var t = {};
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
t[p] = s[p];
if (s != null && typeof Object.getOwnPropertySymbols === "function")
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
t[p[i]] = s[p[i]];
}
return t;
};
import { StorageType, } from '@cloudbase/adapter-interface';
import { NodeRequest } from './request';
import { nodeTool } from './tool';
import { getSecretInfo } from './context';
import { parseQueryString } from './utils';
var _WS = null;
function getWS() {
if (!_WS) {
try {
_WS = require('ws');
}
catch (e) {
console.error('缺少依赖 ws,请执行以下命令安装:\n\n'
+ ' npm install ws\n\n'
+ '该依赖用于 Node 环境下的 WebSocket 连接。');
}
}
return _WS;
}
export { NodeRequest } from './request';
export { parseQueryString, createWebStreamFromNodeReadableStream } from './utils';
function isMatch() {
return typeof process !== 'undefined' && process.versions != null && process.versions.node != null;
}
var storage = (function () {
var db = new Map();
return {
mode: 'sync',
setItem: function (key, value) {
db.set(key, value);
},
getItem: function (key) {
return db.get(key);
},
removeItem: function (key) {
db.delete(key);
},
clear: function () {
db.clear();
},
};
})();
function genAdapter(options) {
var adapter = {
nodeTool: nodeTool,
getSecretInfo: getSecretInfo,
root: { globalThis: {} },
reqClass: NodeRequest,
wsClass: getWS(),
sessionStorage: storage,
localStorage: storage,
primaryStorage: StorageType.session,
captchaOptions: {
openURIWithCallback: function (_url) {
var EventBus = options.EventBus;
var queryObj = {};
var url = _url;
var matched = _url.match(/^(data:.*?)(\?[^#\s]*)?$/);
if (matched) {
url = matched[1];
var search = matched[2];
if (search) {
queryObj = parseQueryString(search);
}
}
var token = queryObj.token, restQueryObj = __rest(queryObj, ["token"]);
if (/^data:/.test(url) && !token) {
return Promise.reject({
error: 'invalid_argument',
error_description: "invalie captcha data: ".concat(_url),
});
}
if (!token) {
return Promise.reject({
error: 'unimplemented',
error_description: 'need to impl captcha data',
});
}
return new Promise(function (resolve) {
EventBus.$emit('CAPTCHA_DATA_CHANGE', __assign(__assign({}, restQueryObj), { token: token, url: url }));
EventBus.$once('RESOLVE_CAPTCHA_DATA', function (res) {
resolve(res);
});
});
},
},
};
return adapter;
}
var adapter = {
genAdapter: genAdapter,
isMatch: isMatch,
runtime: 'node-adapter',
};
export default adapter;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGlicy9hZGFwdGVyLW5vZGUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVBLE9BQU8sRUFHTCxXQUFXLEdBRVosTUFBTSw4QkFBOEIsQ0FBQTtBQUVyQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sV0FBVyxDQUFBO0FBQ3ZDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxRQUFRLENBQUE7QUFDakMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQUN6QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxTQUFTLENBQUE7QUFJMUMsSUFBSSxHQUFHLEdBQVEsSUFBSSxDQUFBO0FBQ25CLFNBQVMsS0FBSztJQUNaLElBQUksQ0FBQyxHQUFHLEVBQUU7UUFDUixJQUFJO1lBRUYsR0FBRyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQTtTQUNwQjtRQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ1YsT0FBTyxDQUFDLEtBQUssQ0FBQyx3QkFBd0I7a0JBQ2xDLHNCQUFzQjtrQkFDdEIsK0JBQStCLENBQUUsQ0FBQTtTQUN0QztLQUNGO0lBQ0QsT0FBTyxHQUFHLENBQUE7QUFDWixDQUFDO0FBR0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQUN2QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUscUNBQXFDLEVBQUUsTUFBTSxTQUFTLENBQUE7QUFjakYsU0FBUyxPQUFPO0lBRWQsT0FBTyxPQUFPLE9BQU8sS0FBSyxXQUFXLElBQUksT0FBTyxDQUFDLFFBQVEsSUFBSSxJQUFJLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFBO0FBQ3BHLENBQUM7QUFNRCxJQUFNLE9BQU8sR0FBcUIsQ0FBQztJQUNqQyxJQUFNLEVBQUUsR0FBRyxJQUFJLEdBQUcs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bGludC1kaXNhYmxlIHByZWZlci1kZXN0cnVjdHVyaW5nICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb24gKi9cbmltcG9ydCB7XG4gIFNES0FkYXB0ZXJJbnRlcmZhY2UsXG4gIFN0b3JhZ2VJbnRlcmZhY2UsXG4gIFN0b3JhZ2VUeXBlLFxuICBXZWJTb2NrZXRDb250cnVjdG9yIGFzIFdlYlNvY2tldENvbnN0cnVjdG9yLFxufSBmcm9tICdAY2xvdWRiYXNlL2FkYXB0ZXItaW50ZXJmYWNlJ1xuXG5pbXBvcnQgeyBOb2RlUmVxdWVzdCB9IGZyb20gJy4vcmVxdWVzdCdcbmltcG9ydCB7IG5vZGVUb29sIH0gZnJvbSAnLi90b29sJ1xuaW1wb3J0IHsgZ2V0U2VjcmV0SW5mbyB9IGZyb20gJy4vY29udGV4dCdcbmltcG9ydCB7IHBhcnNlUXVlcnlTdHJpbmcgfSBmcm9tICcuL3V0aWxzJ1xuaW1wb3J0IHsgSUNsb3VkYmFzZUNvbmZpZyB9IGZyb20gJ0BjbG91ZGJhc2UvdHlwZXMnXG5cbi8vIHdzIOW7tui/n+WKoOi9ve+8jOmBv+WFjemdniBOb2RlIOeOr+Wig+aJk+WMheaXtuW8leWFpVxubGV0IF9XUzogYW55ID0gbnVsbFxuZnVuY3Rpb24gZ2V0V1MoKSB7XG4gIGlmICghX1dTKSB7XG4gICAgdHJ5IHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdmFyLXJlcXVpcmVzLCBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tcmVxdWlyZS1pbXBvcnRzXG4gICAgICBfV1MgPSByZXF1aXJlKCd3cycpXG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgY29uc29sZS5lcnJvcign57y65bCR5L6d6LWWIHdz77yM6K+35omn6KGM5Lul5LiL5ZG95Luk5a6J6KOF77yaXFxuXFxuJ1xuICAgICAgICArICcgIG5wbSBpbnN0YWxsIHdzXFxuXFxuJ1xuICAgICAgICArICfor6Xkvp3otZbnlKjkuo4gTm9kZSDnjq/looPkuIvnmoQgV2ViU29ja2V0IOi/nuaOpeOAgicsKVxuICAgIH1cbiAgfVxuICByZXR1cm4gX1dTXG59XG5cbi8vIFJlLWV4cG9ydCBmb3IgZXh0ZXJuYWwgY29uc3VtZXJzXG5leHBvcnQgeyBOb2RlUmVxdWVzdCB9IGZyb20gJy4vcmVxdWVzdCdcbmV4cG9ydCB7IHBhcnNlUXVlcnlTdHJpbmcsIGNyZWF0ZVdlYlN0cmVhbUZyb21Ob2RlUmVhZGFibGVTdHJlYW0gfSBmcm9tICcuL3V0aWxzJ1xuZXhwb3J0IHR5cGUge1xuICBJQ3JlYXRlVGlja2V0T3B0cyxcbiAgSUdldFVzZXJJbmZvUmVzdWx0LFxuICBJR2V0RW5kVXNlckluZm9SZXN1bHQsXG4gIElVc2VySW5mb1F1ZXJ5LFxuICBJQ29udGV4dFBhcmFtLFxuICBJQ29tcGxldGVDbG91ZGJhc2VDb250ZXh0LFxufSBmcm9tICcuL3R5cGVzJ1xuXG4vKipcbiAqIOeOr+Wig+WMuemFjeajgOa1i++8muWIpOaWreW9k+WJjei/kOihjOeOr+Wig+aYr+WQpuS4uiBOb2RlLmpzXG4gKiBTREsg6YCa6L+H5q2k5pa55rOV5Yaz5a6a5piv5ZCm5L2/55So5b2T5YmNIGFkYXB0ZXJcbiAqL1xuZnVuY3Rpb24gaXNNYXRjaCgpOiBib29sZWFuIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVxZXFlcVxuICByZXR1cm4gdHlwZW9mIHByb2Nlc3MgIT09ICd1bmRlZmluZWQnICYmIHByb2Nlc3MudmVyc2lvbnMgIT0gbnVsbCAmJiBwcm9jZXNzLnZlcnNpb25zLm5vZGUgIT0gbnVsbFxufVxuXG4vKipcbiAqIOWfuuS6jiBNYXAg55qE5YaF5a2Y5a2Y5YKo5a6e546wXG4gKiBOb2RlLmpzIOeOr+Wig+S4i+aXoOa1j+iniOWZqCBTdG9yYWdlIEFQSe+8jOS9v+eUqOWGheWtmCBNYXAg5qih5oufXG4gKi9cbmNvbnN0IHN0b3JhZ2U6IFN0b3JhZ2VJbnRlcmZhY2UgPSAoKCkgPT4ge1xuICBjb25zdCBkYiA9IG5ldyBNYXAoKVxuICByZXR1cm4ge1xuICAgIG1vZGU6ICdzeW5jJyxcbiAgICBzZXRJdGVtKGtleSwgdmFsdWUpIHtcbiAgICAgIGRiLnNldChrZXksIHZhbHVlKVxuICAgIH0sXG4gICAgZ2V0SXRlbShrZXkpIHtcbiAgICAgIHJldHVybiBkYi5nZXQoa2V5KVxuICAgIH0sXG4gICAgcmVtb3ZlSXRlbShrZXkpIHtcbiAgICAgIGRiLmRlbGV0ZShrZXkpXG4gICAgfSxcbiAgICBjbGVhcigpIHtcbiAgICAgIGRiLmNsZWFyKClcbiAgICB9LFxuICB9XG59KSgpXG5cbi8qKlxuICog55Sf5oiQIE5vZGUuanMg546v5aKD55qEIFNESyBBZGFwdGVyXG4gKiDnu4Too4Xor7fmsYLnsbvjgIHlrZjlgqjjgIFXZWJTb2NrZXTjgIHorqTor4HnrYnog73liptcbiAqXG4gKiBAcGFyYW0gb3B0aW9ucyAtIOmFjee9rumhue+8jOWMheWQqyBFdmVudEJ1c++8iOeUqOS6jumqjOivgeeggeWbnuiwg++8iVxuICogQHJldHVybnMgU0RLIEFkYXB0ZXIg5a6e5L6LXG4gKi9cbmZ1bmN0aW9uIGdlbkFkYXB0ZXIob3B0aW9uczogYW55KSB7XG4gIGNvbnN0IGFkYXB0ZXI6IFNES0FkYXB0ZXJJbnRlcmZhY2UgJiB7XG4gICAgZ2V0U2VjcmV0SW5mbzogKGNvbmZpZz86IElDbG91ZGJhc2VDb25maWcpID0+IHtcbiAgICAgIGVudjogc3RyaW5nXG4gICAgICBzZWNyZXRJZDogc3RyaW5nXG4gICAgICBzZWNyZXRLZXk6IHN0cmluZ1xuICAgICAgc2Vzc2lvblRva2VuOiBzdHJpbmdcbiAgICAgIGFjY2Vzc0tleTogc3RyaW5nXG4gICAgICBzZWNyZXRUeXBlOiBzdHJpbmdcbiAgICB9XG4gICAgbm9kZVRvb2w6IChhcHA6IGFueSwgY29uZmlnOiBJQ2xvdWRiYXNlQ29uZmlnKSA9PiB2b2lkXG4gIH0gPSB7XG4gICAgbm9kZVRvb2wsXG4gICAgZ2V0U2VjcmV0SW5mbyxcbiAgICByb290OiB7IGdsb2JhbFRoaXM6IHt9IH0sXG4gICAgcmVxQ2xhc3M6IE5vZGVSZXF1ZXN0LFxuICAgIHdzQ2xhc3M6IGdldFdTKCkgYXMgV2ViU29ja2V0Q29uc3RydWN0b3IsXG4gICAgc2Vzc2lvblN0b3JhZ2U6IHN0b3JhZ2UsXG4gICAgbG9jYWxTdG9yYWdlOiBzdG9yYWdlLFxuICAgIHByaW1hcnlTdG9yYWdlOiBTdG9yYWdlVHlwZS5zZXNzaW9uLFxuICAgIGNhcHRjaGFPcHRpb25zOiB7XG4gICAgICAvKipcbiAgICAgICAqIOmqjOivgeeggeWkhOeQhuWbnuiwg1xuICAgICAgICog6Kej5p6QIGRhdGE6IFVSSSDkuK3nmoTpqozor4HnoIHlj4LmlbDvvIzpgJrov4cgRXZlbnRCdXMg6YCa55+l5Lia5Yqh5bGCXG4gICAgICAgKiDnrYnlvoXkuJrliqHlsYLov5Tlm57pqozor4Hnu5PmnpzlkI4gcmVzb2x2ZVxuICAgICAgICovXG4gICAgICBvcGVuVVJJV2l0aENhbGxiYWNrOiAoX3VybDogc3RyaW5nKSA9PiB7XG4gICAgICAgIGNvbnN0IHsgRXZlbnRCdXMgfSA9IG9wdGlvbnNcbiAgICAgICAgbGV0IHF1ZXJ5T2JqOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBzdHJpbmdbXT4gPSB7fVxuICAgICAgICBsZXQgdXJsID0gX3VybFxuXG4gICAgICAgIC8vIOS7jiBkYXRhOiBVUkkg5Lit5o+Q5Y+W5p+l6K+i5Y+C5pWwXG4gICAgICAgIGNvbnN0IG1hdGNoZWQgPSBfdXJsLm1hdGNoKC9eKGRhdGE6Lio/KShcXD9bXiNcXHNdKik/JC8pXG4gICAgICAgIGlmIChtYXRjaGVkKSB7XG4gICAgICAgICAgdXJsID0gbWF0Y2hlZFsxXVxuICAgICAgICAgIGNvbnN0IHNlYXJjaCA9IG1hdGNoZWRbMl1cbiAgICAgICAgICBpZiAoc2VhcmNoKSB7XG4gICAgICAgICAgICBxdWVyeU9iaiA9IHBhcnNlUXVlcnlTdHJpbmcoc2VhcmNoKVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHsgdG9rZW4sIC4uLnJlc3RRdWVyeU9iaiB9ID0gcXVlcnlPYmpcblxuICAgICAgICAvLyBkYXRhOiDljY/orq7kvYbml6AgdG9rZW7vvIzop4bkuLrml6DmlYjpqozor4HnoIHmlbDmja5cbiAgICAgICAgaWYgKC9eZGF0YTovLnRlc3QodXJsKSAmJiAhdG9rZW4pIHtcbiAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3Qoe1xuICAgICAgICAgICAgZXJyb3I6ICdpbnZhbGlkX2FyZ3VtZW50JyxcbiAgICAgICAgICAgIGVycm9yX2Rlc2NyaXB0aW9uOiBgaW52YWxpZSBjYXB0Y2hhIGRhdGE6ICR7X3VybH1gLFxuICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0b2tlbikge1xuICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdCh7XG4gICAgICAgICAgICBlcnJvcjogJ3VuaW1wbGVtZW50ZWQnLFxuICAgICAgICAgICAgZXJyb3JfZGVzY3JpcHRpb246ICduZWVkIHRvIGltcGwgY2FwdGNoYSBkYXRhJyxcbiAgICAgICAgICB9KVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgICAgICAgLy8g6YCa55+l5Lia5Yqh5bGC5bGV56S66aqM6K+B56CBXG4gICAgICAgICAgRXZlbnRCdXMuJGVtaXQoJ0NBUFRDSEFfREFUQV9DSEFOR0UnLCB7XG4gICAgICAgICAgICAuLi5yZXN0UXVlcnlPYmosXG4gICAgICAgICAgICB0b2tlbixcbiAgICAgICAgICAgIHVybCxcbiAgICAgICAgICB9KVxuXG4gICAgICAgICAgLy8g562J5b6F5Lia5Yqh5bGC6L+U5Zue6aqM6K+B57uT5p6cXG4gICAgICAgICAgRXZlbnRCdXMuJG9uY2UoJ1JFU09MVkVfQ0FQVENIQV9EQVRBJywgKHJlczogeyBjYXB0Y2hhX3Rva2VuOiBzdHJpbmc7IGV4cGlyZXNfaW46IG51bWJlciB9KSA9PiB7XG4gICAgICAgICAgICByZXNvbHZlKHJlcylcbiAgICAgICAgICB9KVxuICAgICAgICB9KVxuICAgICAgfSxcbiAgICB9LFxuICB9XG4gIHJldHVybiBhZGFwdGVyXG59XG5cbi8qKiBOb2RlLmpzIEFkYXB0ZXIg5YWl5Y+j5a+85Ye6ICovXG5jb25zdCBhZGFwdGVyID0ge1xuICBnZW5BZGFwdGVyLFxuICBpc01hdGNoLFxuICBydW50aW1lOiAnbm9kZS1hZGFwdGVyJyxcbn1cblxuZXhwb3J0IGRlZmF1bHQgYWRhcHRlclxuIl19