UNPKG

@cloudbase/app

Version:
163 lines 18.4 kB
"use strict"; 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 __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); __setModuleDefault(result, mod); return result; }; 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; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.getWxDefaultAdapter = exports.Platform = void 0; var adapter_wx_mp_1 = __importStar(require("@cloudbase/adapter-wx_mp")); var adapter_interface_1 = require("@cloudbase/adapter-interface"); exports.Platform = {}; var getWxDefaultAdapter = function () { adapter_wx_mp_1.WxRequest.prototype.upload = function (options) { var _this = this; var self = this; return new Promise(function (resolve) { var url = options.url, file = options.file, data = options.data, headers = options.headers; var fs = wx.getFileSystemManager(); var task = wx.request({ url: url, method: options.method, header: __assign({ 'content-type': ' ' }, headers), data: fs.readFileSync(file), timeout: _this._timeout, success: function (res) { var result = { statusCode: res.statusCode, data: res.data || {}, }; if (res.statusCode === 200 && (data === null || data === void 0 ? void 0 : data.success_action_status)) { result.statusCode = parseInt(data.success_action_status, 10); } resolve(result); }, fail: function (err) { resolve(err); }, complete: function (err) { if (!(err === null || err === void 0 ? void 0 : err.errMsg)) { return; } if (!self._timeout || self._restrictedMethods.indexOf('upload') === -1) { return; } var errMsg = err.errMsg; if (errMsg === 'request:fail timeout') { console.warn(self._timeoutMsg); try { task.abort(); } catch (e) { } } }, }); }); }; function isPlugin() { return (typeof App === 'undefined' && typeof getApp === 'undefined' && !wx.onAppHide && !wx.offAppHide && !wx.onAppShow && !wx.offAppShow); } adapter_wx_mp_1.default.genAdapter = function genAdapter(options) { var adapter = { root: { globalThis: {} }, reqClass: adapter_wx_mp_1.WxRequest, wsClass: adapter_wx_mp_1.WxMpWebSocket, captchaOptions: { openURIWithCallback: function (_url) { var EventBus = options.EventBus; var queryObj = {}; var url = _url; console.log('openURIWithCallback', _url); var matched = _url.match(/^(data:.*?)(\?[^#\s]*)?$/); if (matched) { url = matched[1]; console.log('openURIWithCallback url', url); var search = matched[2]; if (search) { queryObj = (0, adapter_wx_mp_1.parseQueryString)(search); } } console.log('openURIWithCallback queryObj', queryObj); 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) { console.log('wait for captcha...'); EventBus.$emit('CAPTCHA_DATA_CHANGE', __assign(__assign({}, restQueryObj), { token: token, url: url })); EventBus.$once('RESOLVE_CAPTCHA_DATA', function (res) { resolve(res); }); }); }, }, localStorage: adapter_wx_mp_1.wxMpStorage, primaryStorage: adapter_interface_1.StorageType.local, getAppSign: function () { var info = wx.getAccountInfoSync(); if (isPlugin()) { return info && info.plugin ? info.plugin.appId : ''; } return info && info.miniProgram ? info.miniProgram.appId : ''; }, }; return adapter; }; return adapter_wx_mp_1.default; }; exports.getWxDefaultAdapter = getWxDefaultAdapter; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRhcHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWJzL2FkYXB0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0Esd0VBQWtIO0FBQ2xILGtFQUFpRjtBQU1wRSxRQUFBLFFBQVEsR0FBMkIsRUFBRSxDQUFBO0FBRTNDLElBQU0sbUJBQW1CLEdBQUc7SUFDakMseUJBQVMsQ0FBQyxTQUFTLENBQUMsTUFBTSxHQUFHLFVBQVUsT0FBOEI7UUFBeEMsaUJBNkM1QjtRQTNDQyxJQUFNLElBQUksR0FBRyxJQUFJLENBQUE7UUFDakIsT0FBTyxJQUFJLE9BQU8sQ0FBQyxVQUFDLE9BQU87WUFDakIsSUFBQSxHQUFHLEdBQTBCLE9BQU8sSUFBakMsRUFBRSxJQUFJLEdBQW9CLE9BQU8sS0FBM0IsRUFBRSxJQUFJLEdBQWMsT0FBTyxLQUFyQixFQUFFLE9BQU8sR0FBSyxPQUFPLFFBQVosQ0FBWTtZQUM1QyxJQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsb0JBQW9CLEVBQUUsQ0FBQTtZQUNwQyxJQUFNLElBQUksR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDO2dCQUN0QixHQUFHLEtBQUE7Z0JBQ0gsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNO2dCQUN0QixNQUFNLGFBQ0osY0FBYyxFQUFFLEdBQUcsSUFDaEIsT0FBTyxDQUNYO2dCQUNELElBQUksRUFBRSxFQUFFLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQztnQkFDM0IsT0FBTyxFQUFFLEtBQUksQ0FBQyxRQUFRO2dCQUN0QixPQUFPLFlBQUMsR0FBMEM7b0JBQ2hELElBQU0sTUFBTSxHQUFHO3dCQUNiLFVBQVUsRUFBRSxHQUFHLENBQUMsVUFBVTt3QkFDMUIsSUFBSSxFQUFFLEdBQUcsQ0FBQyxJQUFJLElBQUksRUFBRTtxQkFDckIsQ0FBQTtvQkFDRCxJQUFJLEdBQUcsQ0FB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RixDQUFBO1FBQ0QsT0FBTyxPQUFPLENBQUE7SUFDaEIsQ0FBQyxDQUFBO0lBRUQsT0FBTyx1QkFBYyxDQUFBO0FBQ3ZCLENBQUMsQ0FBQTtBQXpIWSxRQUFBLG1CQUFtQix1QkF5SC9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSUNsb3VkYmFzZVBsYXRmb3JtSW5mbyB9IGZyb20gJ0BjbG91ZGJhc2UvdHlwZXMnXG5pbXBvcnQgYWRhcHRlckZvcld4TXAsIHsgV3hSZXF1ZXN0LCBXeE1wV2ViU29ja2V0LCB3eE1wU3RvcmFnZSwgcGFyc2VRdWVyeVN0cmluZyB9IGZyb20gJ0BjbG91ZGJhc2UvYWRhcHRlci13eF9tcCdcbmltcG9ydCB7IElVcGxvYWRSZXF1ZXN0T3B0aW9ucywgU3RvcmFnZVR5cGUgfSBmcm9tICdAY2xvdWRiYXNlL2FkYXB0ZXItaW50ZXJmYWNlJ1xuXG5kZWNsYXJlIGNvbnN0IHd4OiBhbnlcbmRlY2xhcmUgY29uc3QgQXBwOiBhbnlcbmRlY2xhcmUgY29uc3QgZ2V0QXBwOiBhbnlcblxuZXhwb3J0IGNvbnN0IFBsYXRmb3JtOiBJQ2xvdWRiYXNlUGxhdGZvcm1JbmZvID0ge31cblxuZXhwb3J0IGNvbnN0IGdldFd4RGVmYXVsdEFkYXB0ZXIgPSAoKSA9PiB7XG4gIFd4UmVxdWVzdC5wcm90b3R5cGUudXBsb2FkID0gZnVuY3Rpb24gKG9wdGlvbnM6IElVcGxvYWRSZXF1ZXN0T3B0aW9ucykge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdGhpcy1hbGlhc1xuICAgIGNvbnN0IHNlbGYgPSB0aGlzXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgICBjb25zdCB7IHVybCwgZmlsZSwgZGF0YSwgaGVhZGVycyB9ID0gb3B0aW9uc1xuICAgICAgY29uc3QgZnMgPSB3eC5nZXRGaWxlU3lzdGVtTWFuYWdlcigpIC8vIOivu+WPluaWh+S7tiDkuozov5vliLblhoXlrrlcbiAgICAgIGNvbnN0IHRhc2sgPSB3eC5yZXF1ZXN0KHtcbiAgICAgICAgdXJsLFxuICAgICAgICBtZXRob2Q6IG9wdGlvbnMubWV0aG9kLFxuICAgICAgICBoZWFkZXI6IHtcbiAgICAgICAgICAnY29udGVudC10eXBlJzogJyAnLCAvLyDlsI/nqIvluo8gY29udGVudC10eXBlIOm7mOiupOS4uiBhcHBsaWNhdGlvbi9qc29u77yMIOi/memHjOS4gOWumuimgeW8uuWItuS4uiDnqbrvvIwg5ZCm5YiZ562+5ZCN6ZSZ6K+vXG4gICAgICAgICAgLi4uaGVhZGVycyxcbiAgICAgICAgfSxcbiAgICAgICAgZGF0YTogZnMucmVhZEZpbGVTeW5jKGZpbGUpLCAvLyDlsIbkuozov5vliLbmlofku7bovazkuLrlrZfnrKbkuLLnm7TmjqXotYvlgLzliLAgcmVxdWVzdCBwYXlsb2Fk77yMIOS4jeimgeS7pSBmb3JtIOeahOaWueW8j+S8oOi+k1xuICAgICAgICB0aW1lb3V0OiB0aGlzLl90aW1lb3V0LFxuICAgICAgICBzdWNjZXNzKHJlczogeyBzdGF0dXNDb2RlOiBudW1iZXI7IGRhdGE6IHVua25vd24gfSkge1xuICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHtcbiAgICAgICAgICAgIHN0YXR1c0NvZGU6IHJlcy5zdGF0dXNDb2RlLFxuICAgICAgICAgICAgZGF0YTogcmVzLmRhdGEgfHwge30sXG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChyZXMuc3RhdHVzQ29kZSA9PT0gMjAwICYmIGRhdGE/LnN1Y2Nlc3NfYWN0aW9uX3N0YXR1cykge1xuICAgICAgICAgICAgcmVzdWx0LnN0YXR1c0NvZGUgPSBwYXJzZUludChkYXRhLnN1Y2Nlc3NfYWN0aW9uX3N0YXR1cywgMTApXG4gICAgICAgICAgfVxuICAgICAgICAgIHJlc29sdmUocmVzdWx0KVxuICAgICAgICB9LFxuICAgICAgICBmYWlsKGVycjogdW5rbm93bikge1xuICAgICAgICAgIHJlc29sdmUoZXJyKVxuICAgICAgICB9LFxuICAgICAgICBjb21wbGV0ZShlcnI6IHsgZXJyTXNnOiBzdHJpbmcgfSkge1xuICAgICAgICAgIGlmICghZXJyPy5lcnJNc2cpIHtcbiAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoIXNlbGYuX3RpbWVvdXQgfHwgc2VsZi5fcmVzdHJpY3RlZE1ldGhvZHMuaW5kZXhPZigndXBsb2FkJykgPT09IC0xKSB7XG4gICAgICAgICAgICByZXR1cm5cbiAgICAgICAgICB9XG4gICAgICAgICAgY29uc3QgeyBlcnJNc2cgfSA9IGVyclxuICAgICAgICAgIGlmIChlcnJNc2cgPT09ICdyZXF1ZXN0OmZhaWwgdGltZW91dCcpIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybihzZWxmLl90aW1lb3V0TXNnKVxuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgdGFzay5hYm9ydCgpXG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7fVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgIH0pXG4gICAgfSlcbiAgfVxuXG4gIGZ1bmN0aW9uIGlzUGx1Z2luKCkge1xuICAgIHJldHVybiAoXG4gICAgICB0eXBlb2YgQXBwID09PSAndW5kZWZpbmVkJ1xuICAgICAgJiYgdHlwZW9mIGdldEFwcCA9PT0gJ3VuZGVmaW5lZCdcbiAgICAgICYmICF3eC5vbkFwcEhpZGVcbiAgICAgICYmICF3eC5vZmZBcHBIaWRlXG4gICAgICAmJiAhd3gub25BcHBTaG93XG4gICAgICAmJiAhd3gub2ZmQXBwU2hvd1xuICAgIClcbiAgfVxuICBhZGFwdGVyRm9yV3hNcC5nZW5BZGFwdGVyID0gZnVuY3Rpb24gZ2VuQWRhcHRlcihvcHRpb25zKSB7XG4gICAgY29uc3QgYWRhcHRlciA9IHtcbiAgICAgIHJvb3Q6IHsgZ2xvYmFsVGhpczoge30gfSxcbiAgICAgIHJlcUNsYXNzOiBXeFJlcXVlc3QsXG4gICAgICB3c0NsYXNzOiBXeE1wV2ViU29ja2V0LFxuICAgICAgY2FwdGNoYU9wdGlvbnM6IHtcbiAgICAgICAgb3BlblVSSVdpdGhDYWxsYmFjazogKF91cmw6IHN0cmluZykgPT4ge1xuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAgICAgICBjb25zdCB7IEV2ZW50QnVzIH0gPSBvcHRpb25zXG4gICAgICAgICAgbGV0IHF1ZXJ5T2JqOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge31cbiAgICAgICAgICBsZXQgdXJsID0gX3VybFxuICAgICAgICAgIGNvbnNvbGUubG9nKCdvcGVuVVJJV2l0aENhbGxiYWNrJywgX3VybClcbiAgICAgICAgICBjb25zdCBtYXRjaGVkID0gX3VybC5tYXRjaCgvXihkYXRhOi4qPykoXFw/W14jXFxzXSopPyQvKVxuICAgICAgICAgIGlmIChtYXRjaGVkKSB7XG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcHJlZmVyLWRlc3RydWN0dXJpbmdcbiAgICAgICAgICAgIHVybCA9IG1hdGNoZWRbMV1cbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdvcGVuVVJJV2l0aENhbGxiYWNrIHVybCcsIHVybClcbiAgICAgICAgICAgIGNvbnN0IHNlYXJjaCA9IG1hdGNoZWRbMl1cbiAgICAgICAgICAgIGlmIChzZWFyY2gpIHtcbiAgICAgICAgICAgICAgcXVlcnlPYmogPSBwYXJzZVF1ZXJ5U3RyaW5nKHNlYXJjaClcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgY29uc29sZS5sb2coJ29wZW5VUklXaXRoQ2FsbGJhY2sgcXVlcnlPYmonLCBxdWVyeU9iailcbiAgICAgICAgICBjb25zdCB7IHRva2VuLCAuLi5yZXN0UXVlcnlPYmogfSA9IHF1ZXJ5T2JqXG4gICAgICAgICAgaWYgKC9eZGF0YTovLnRlc3QodXJsKSAmJiAhdG9rZW4pIHtcbiAgICAgICAgICAgIC8vIOWmguaenOaYryBkYXRhOiDlvIDlpLTnmoQgVVJMIOS4lOayoeaciSB0b2tlbu+8jOWImeebtOaOpei/lOWbnlxuICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KHtcbiAgICAgICAgICAgICAgZXJyb3I6ICdpbnZhbGlkX2FyZ3VtZW50JyxcbiAgICAgICAgICAgICAgZXJyb3JfZGVzY3JpcHRpb246IGBpbnZhbGllIGNhcHRjaGEgZGF0YTogJHtfdXJsfWAsXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoIXRva2VuKSB7XG4gICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3Qoe1xuICAgICAgICAgICAgICBlcnJvcjogJ3VuaW1wbGVtZW50ZWQnLFxuICAgICAgICAgICAgICBlcnJvcl9kZXNjcmlwdGlvbjogJ25lZWQgdG8gaW1wbCBjYXB0Y2hhIGRhdGEnLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZygnd2FpdCBmb3IgY2FwdGNoYS4uLicpXG4gICAgICAgICAgICBFdmVudEJ1cy4kZW1pdCgnQ0FQVENIQV9EQVRBX0NIQU5HRScsIHsgLi4ucmVzdFF1ZXJ5T2JqLCB0b2tlbiwgdXJsIH0pXG5cbiAgICAgICAgICAgIC8vIOebkeWQrOS6i+S7tuaAu+e6v++8jOetieW+hemqjOivgeeggeaVsOaNruWPmOWMllxuICAgICAgICAgICAgRXZlbnRCdXMuJG9uY2UoJ1JFU09MVkVfQ0FQVENIQV9EQVRBJywgKHJlczogeyBjYXB0Y2hhX3Rva2VuOiBzdHJpbmc7IGV4cGlyZXNfaW46IG51bWJlciB9KSA9PiB7XG4gICAgICAgICAgICAgIHJlc29sdmUocmVzKVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICB9KVxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIGxvY2FsU3RvcmFnZTogd3hNcFN0b3JhZ2UsXG4gICAgICBwcmltYXJ5U3RvcmFnZTogU3RvcmFnZVR5cGUubG9jYWwsXG4gICAgICBnZXRBcHBTaWduKCkge1xuICAgICAgICBjb25zdCBpbmZvID0gd3guZ2V0QWNjb3VudEluZm9TeW5jKClcbiAgICAgICAgaWYgKGlzUGx1Z2luKCkpIHtcbiAgICAgICAgICAvLyDmj5Lku7bnjq/looPov5Tlm57mj5Lku7ZhcHBpZFxuICAgICAgICAgIHJldHVybiBpbmZvICYmIGluZm8ucGx1Z2luID8gaW5mby5wbHVnaW4uYXBwSWQgOiAnJ1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBpbmZvICYmIGluZm8ubWluaVByb2dyYW0gPyBpbmZvLm1pbmlQcm9ncmFtLmFwcElkIDogJydcbiAgICAgIH0sXG4gICAgfVxuICAgIHJldHVybiBhZGFwdGVyXG4gIH1cblxuICByZXR1cm4gYWRhcHRlckZvcld4TXBcbn1cbiJdfQ==