UNPKG

@cloudbase/app

Version:
136 lines 17.1 kB
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 adapterForWxMp, { WxRequest, WxMpWebSocket, wxMpStorage, parseQueryString } from '@cloudbase/adapter-wx_mp'; import { StorageType } from '@cloudbase/adapter-interface'; export var Platform = {}; export var getWxDefaultAdapter = function () { 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); } adapterForWxMp.genAdapter = function genAdapter(options) { var adapter = { root: { globalThis: {} }, reqClass: WxRequest, wsClass: 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 = 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: wxMpStorage, primaryStorage: 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 adapterForWxMp; }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRhcHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWJzL2FkYXB0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNBLE9BQU8sY0FBYyxFQUFFLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUNsSCxPQUFPLEVBQXlCLFdBQVcsRUFBRSxNQUFNLDhCQUE4QixDQUFBO0FBTWpGLE1BQU0sQ0FBQyxJQUFNLFFBQVEsR0FBMkIsRUFBRSxDQUFBO0FBRWxELE1BQU0sQ0FBQyxJQUFNLG1CQUFtQixHQUFHO0lBQ2pDLFNBQVMsQ0FBQyxTQUFTLENBQUMsTUFBTSxHQUFHLFVBQVUsT0FBOEI7UUFBeEMsaUJBNkM1QjtRQTNDQyxJQUFNLElBQUksR0FBRyxJQUFJLENBQUE7UUFDakIsT0FBTyxJQUFJLE9BQU8sQ0FBQyxVQUFDLE9BQU87WUFDakIsSUFBQSxHQUFHLEdBQTBCLE9BQU8sSUFBakMsRUFBRSxJQUFJLEdBQW9CLE9BQU8sS0FBM0IsRUFBRSxJQUFJLEdBQWMsT0FBTyxLQUFyQixFQUFFLE9BQU8sR0FBSyxPQUFPLFFBQVosQ0FBWTtZQUM1QyxJQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsb0JBQW9CLEVBQUUsQ0FBQTtZQUNwQyxJQUFNLElBQUksR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDO2dCQUN0QixHQUFHLEtBQUE7Z0JBQ0gsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNO2dCQUN0QixNQUFNLGFBQ0osY0FBYyxFQUFFLEdBQUcsSUFDaEIsT0FBTyxDQUNYO2dCQUNELElBQUksRUFBRSxFQUFFLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQztnQkFDM0IsT0FBTyxFQUFFLEtBQUksQ0FBQyxRQUFRO2dCQUN0QixPQUFPLFlBQUMsR0FBMEM7b0JBQ2hELElBQU0sTUFBTSxHQUFHO3dCQUNiLFVB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QyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUE7WUFDL0QsQ0FBQztTQUNGLENBQUE7UUFDRCxPQUFPLE9BQU8sQ0FBQTtJQUNoQixDQUFDLENBQUE7SUFFRCxPQUFPLGNBQWMsQ0FBQTtBQUN2QixDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJQ2xvdWRiYXNlUGxhdGZvcm1JbmZvIH0gZnJvbSAnQGNsb3VkYmFzZS90eXBlcydcbmltcG9ydCBhZGFwdGVyRm9yV3hNcCwgeyBXeFJlcXVlc3QsIFd4TXBXZWJTb2NrZXQsIHd4TXBTdG9yYWdlLCBwYXJzZVF1ZXJ5U3RyaW5nIH0gZnJvbSAnQGNsb3VkYmFzZS9hZGFwdGVyLXd4X21wJ1xuaW1wb3J0IHsgSVVwbG9hZFJlcXVlc3RPcHRpb25zLCBTdG9yYWdlVHlwZSB9IGZyb20gJ0BjbG91ZGJhc2UvYWRhcHRlci1pbnRlcmZhY2UnXG5cbmRlY2xhcmUgY29uc3Qgd3g6IGFueVxuZGVjbGFyZSBjb25zdCBBcHA6IGFueVxuZGVjbGFyZSBjb25zdCBnZXRBcHA6IGFueVxuXG5leHBvcnQgY29uc3QgUGxhdGZvcm06IElDbG91ZGJhc2VQbGF0Zm9ybUluZm8gPSB7fVxuXG5leHBvcnQgY29uc3QgZ2V0V3hEZWZhdWx0QWRhcHRlciA9ICgpID0+IHtcbiAgV3hSZXF1ZXN0LnByb3RvdHlwZS51cGxvYWQgPSBmdW5jdGlvbiAob3B0aW9uczogSVVwbG9hZFJlcXVlc3RPcHRpb25zKSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby10aGlzLWFsaWFzXG4gICAgY29uc3Qgc2VsZiA9IHRoaXNcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICAgIGNvbnN0IHsgdXJsLCBmaWxlLCBkYXRhLCBoZWFkZXJzIH0gPSBvcHRpb25zXG4gICAgICBjb25zdCBmcyA9IHd4LmdldEZpbGVTeXN0ZW1NYW5hZ2VyKCkgLy8g6K+75Y+W5paH5Lu2IOS6jOi/m+WItuWGheWuuVxuICAgICAgY29uc3QgdGFzayA9IHd4LnJlcXVlc3Qoe1xuICAgICAgICB1cmwsXG4gICAgICAgIG1ldGhvZDogb3B0aW9ucy5tZXRob2QsXG4gICAgICAgIGhlYWRlcjoge1xuICAgICAgICAgICdjb250ZW50LXR5cGUnOiAnICcsIC8vIOWwj+eoi+W6jyBjb250ZW50LXR5cGUg6buY6K6k5Li6IGFwcGxpY2F0aW9uL2pzb27vvIwg6L+Z6YeM5LiA5a6a6KaB5by65Yi25Li6IOepuu+8jCDlkKbliJnnrb7lkI3plJnor69cbiAgICAgICAgICAuLi5oZWFkZXJzLFxuICAgICAgICB9LFxuICAgICAgICBkYXRhOiBmcy5yZWFkRmlsZVN5bmMoZmlsZSksIC8vIOWwhuS6jOi/m+WItuaWh+S7tui9rOS4uuWtl+espuS4suebtOaOpei1i+WAvOWIsCByZXF1ZXN0IHBheWxvYWTvvIwg5LiN6KaB5LulIGZvcm0g55qE5pa55byP5Lyg6L6TXG4gICAgICAgIHRpbWVvdXQ6IHRoaXMuX3RpbWVvdXQsXG4gICAgICAgIHN1Y2Nlc3MocmVzOiB7IHN0YXR1c0NvZGU6IG51bWJlcjsgZGF0YTogdW5rbm93biB9KSB7XG4gICAgICAgICAgY29uc3QgcmVzdWx0ID0ge1xuICAgICAgICAgICAgc3RhdHVzQ29kZTogcmVzLnN0YXR1c0NvZGUsXG4gICAgICAgICAgICBkYXRhOiByZXMuZGF0YSB8fCB7fSxcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHJlcy5zdGF0dXNDb2RlID09PSAyMDAgJiYgZGF0YT8uc3VjY2Vzc19hY3Rpb25fc3RhdHVzKSB7XG4gICAgICAgICAgICByZXN1bHQuc3RhdHVzQ29kZSA9IHBhcnNlSW50KGRhdGEuc3VjY2Vzc19hY3Rpb25fc3RhdHVzLCAxMClcbiAgICAgICAgICB9XG4gICAgICAgICAgcmVzb2x2ZShyZXN1bHQpXG4gICAgICAgIH0sXG4gICAgICAgIGZhaWwoZXJyOiB1bmtub3duKSB7XG4gICAgICAgICAgcmVzb2x2ZShlcnIpXG4gICAgICAgIH0sXG4gICAgICAgIGNvbXBsZXRlKGVycjogeyBlcnJNc2c6IHN0cmluZyB9KSB7XG4gICAgICAgICAgaWYgKCFlcnI/LmVyck1zZykge1xuICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICghc2VsZi5fdGltZW91dCB8fCBzZWxmLl9yZXN0cmljdGVkTWV0aG9kcy5pbmRleE9mKCd1cGxvYWQnKSA9PT0gLTEpIHtcbiAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgIH1cbiAgICAgICAgICBjb25zdCB7IGVyck1zZyB9ID0gZXJyXG4gICAgICAgICAgaWYgKGVyck1zZyA9PT0gJ3JlcXVlc3Q6ZmFpbCB0aW1lb3V0Jykge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKHNlbGYuX3RpbWVvdXRNc2cpXG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICB0YXNrLmFib3J0KClcbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHt9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgfSlcbiAgICB9KVxuICB9XG5cbiAgZnVuY3Rpb24gaXNQbHVnaW4oKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIHR5cGVvZiBBcHAgPT09ICd1bmRlZmluZWQnXG4gICAgICAmJiB0eXBlb2YgZ2V0QXBwID09PSAndW5kZWZpbmVkJ1xuICAgICAgJiYgIXd4Lm9uQXBwSGlkZVxuICAgICAgJiYgIXd4Lm9mZkFwcEhpZGVcbiAgICAgICYmICF3eC5vbkFwcFNob3dcbiAgICAgICYmICF3eC5vZmZBcHBTaG93XG4gICAgKVxuICB9XG4gIGFkYXB0ZXJGb3JXeE1wLmdlbkFkYXB0ZXIgPSBmdW5jdGlvbiBnZW5BZGFwdGVyKG9wdGlvbnMpIHtcbiAgICBjb25zdCBhZGFwdGVyID0ge1xuICAgICAgcm9vdDogeyBnbG9iYWxUaGlzOiB7fSB9LFxuICAgICAgcmVxQ2xhc3M6IFd4UmVxdWVzdCxcbiAgICAgIHdzQ2xhc3M6IFd4TXBXZWJTb2NrZXQsXG4gICAgICBjYXB0Y2hhT3B0aW9uczoge1xuICAgICAgICBvcGVuVVJJV2l0aENhbGxiYWNrOiAoX3VybDogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICAgICAgIGNvbnN0IHsgRXZlbnRCdXMgfSA9IG9wdGlvbnNcbiAgICAgICAgICBsZXQgcXVlcnlPYmo6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fVxuICAgICAgICAgIGxldCB1cmwgPSBfdXJsXG4gICAgICAgICAgY29uc29sZS5sb2coJ29wZW5VUklXaXRoQ2FsbGJhY2snLCBfdXJsKVxuICAgICAgICAgIGNvbnN0IG1hdGNoZWQgPSBfdXJsLm1hdGNoKC9eKGRhdGE6Lio/KShcXD9bXiNcXHNdKik/JC8pXG4gICAgICAgICAgaWYgKG1hdGNoZWQpIHtcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBwcmVmZXItZGVzdHJ1Y3R1cmluZ1xuICAgICAgICAgICAgdXJsID0gbWF0Y2hlZFsxXVxuICAgICAgICAgICAgY29uc29sZS5sb2coJ29wZW5VUklXaXRoQ2FsbGJhY2sgdXJsJywgdXJsKVxuICAgICAgICAgICAgY29uc3Qgc2VhcmNoID0gbWF0Y2hlZFsyXVxuICAgICAgICAgICAgaWYgKHNlYXJjaCkge1xuICAgICAgICAgICAgICBxdWVyeU9iaiA9IHBhcnNlUXVlcnlTdHJpbmcoc2VhcmNoKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBjb25zb2xlLmxvZygnb3BlblVSSVdpdGhDYWxsYmFjayBxdWVyeU9iaicsIHF1ZXJ5T2JqKVxuICAgICAgICAgIGNvbnN0IHsgdG9rZW4sIC4uLnJlc3RRdWVyeU9iaiB9ID0gcXVlcnlPYmpcbiAgICAgICAgICBpZiAoL15kYXRhOi8udGVzdCh1cmwpICYmICF0b2tlbikge1xuICAgICAgICAgICAgLy8g5aaC5p6c5pivIGRhdGE6IOW8gOWktOeahCBVUkwg5LiU5rKh5pyJIHRva2Vu77yM5YiZ55u05o6l6L+U5ZueXG4gICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3Qoe1xuICAgICAgICAgICAgICBlcnJvcjogJ2ludmFsaWRfYXJndW1lbnQnLFxuICAgICAgICAgICAgICBlcnJvcl9kZXNjcmlwdGlvbjogYGludmFsaWUgY2FwdGNoYSBkYXRhOiAke191cmx9YCxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICghdG9rZW4pIHtcbiAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdCh7XG4gICAgICAgICAgICAgIGVycm9yOiAndW5pbXBsZW1lbnRlZCcsXG4gICAgICAgICAgICAgIGVycm9yX2Rlc2NyaXB0aW9uOiAnbmVlZCB0byBpbXBsIGNhcHRjaGEgZGF0YScsXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCd3YWl0IGZvciBjYXB0Y2hhLi4uJylcbiAgICAgICAgICAgIEV2ZW50QnVzLiRlbWl0KCdDQVBUQ0hBX0RBVEFfQ0hBTkdFJywgeyAuLi5yZXN0UXVlcnlPYmosIHRva2VuLCB1cmwgfSlcblxuICAgICAgICAgICAgLy8g55uR5ZCs5LqL5Lu25oC757q/77yM562J5b6F6aqM6K+B56CB5pWw5o2u5Y+Y5YyWXG4gICAgICAgICAgICBFdmVudEJ1cy4kb25jZSgnUkVTT0xWRV9DQVBUQ0hBX0RBVEEnLCAocmVzOiB7IGNhcHRjaGFfdG9rZW46IHN0cmluZzsgZXhwaXJlc19pbjogbnVtYmVyIH0pID0+IHtcbiAgICAgICAgICAgICAgcmVzb2x2ZShyZXMpXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH0pXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgbG9jYWxTdG9yYWdlOiB3eE1wU3RvcmFnZSxcbiAgICAgIHByaW1hcnlTdG9yYWdlOiBTdG9yYWdlVHlwZS5sb2NhbCxcbiAgICAgIGdldEFwcFNpZ24oKSB7XG4gICAgICAgIGNvbnN0IGluZm8gPSB3eC5nZXRBY2NvdW50SW5mb1N5bmMoKVxuICAgICAgICBpZiAoaXNQbHVnaW4oKSkge1xuICAgICAgICAgIC8vIOaPkuS7tueOr+Wig+i/lOWbnuaPkuS7tmFwcGlkXG4gICAgICAgICAgcmV0dXJuIGluZm8gJiYgaW5mby5wbHVnaW4gPyBpbmZvLnBsdWdpbi5hcHBJZCA6ICcnXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGluZm8gJiYgaW5mby5taW5pUHJvZ3JhbSA/IGluZm8ubWluaVByb2dyYW0uYXBwSWQgOiAnJ1xuICAgICAgfSxcbiAgICB9XG4gICAgcmV0dXJuIGFkYXB0ZXJcbiAgfVxuXG4gIHJldHVybiBhZGFwdGVyRm9yV3hNcFxufVxuIl19