UNPKG

@wecode/wlk-jsapi

Version:

Mock libraries / JSAPIs for developing and testing WeCode apps on PC.

1,846 lines (1,616 loc) 411 kB
(function webpackUniversalModuleDefinition(root, factory) { if(typeof exports === 'object' && typeof module === 'object') module.exports = factory(); else if(typeof define === 'function' && define.amd) define("hwh5", [], factory); else if(typeof exports === 'object') exports["hwh5"] = factory(); else root["hwh5"] = factory(); })(window, function() { return /******/ (function(modules) { // webpackBootstrap /******/ // The module cache /******/ var installedModules = {}; /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ /******/ // Check if module is in cache /******/ if(installedModules[moduleId]) { /******/ return installedModules[moduleId].exports; /******/ } /******/ // Create a new module (and put it into the cache) /******/ var module = installedModules[moduleId] = { /******/ i: moduleId, /******/ l: false, /******/ exports: {} /******/ }; /******/ /******/ // Execute the module function /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); /******/ /******/ // Flag the module as loaded /******/ module.l = true; /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /******/ /******/ // expose the modules object (__webpack_modules__) /******/ __webpack_require__.m = modules; /******/ /******/ // expose the module cache /******/ __webpack_require__.c = installedModules; /******/ /******/ // define getter function for harmony exports /******/ __webpack_require__.d = function(exports, name, getter) { /******/ if(!__webpack_require__.o(exports, name)) { /******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); /******/ } /******/ }; /******/ /******/ // define __esModule on exports /******/ __webpack_require__.r = function(exports) { /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); /******/ } /******/ Object.defineProperty(exports, '__esModule', { value: true }); /******/ }; /******/ /******/ // create a fake namespace object /******/ // mode & 1: value is a module id, require it /******/ // mode & 2: merge all properties of value into the ns /******/ // mode & 4: return value when already ns object /******/ // mode & 8|1: behave like require /******/ __webpack_require__.t = function(value, mode) { /******/ if(mode & 1) value = __webpack_require__(value); /******/ if(mode & 8) return value; /******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; /******/ var ns = Object.create(null); /******/ __webpack_require__.r(ns); /******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); /******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); /******/ return ns; /******/ }; /******/ /******/ // getDefaultExport function for compatibility with non-harmony modules /******/ __webpack_require__.n = function(module) { /******/ var getter = module && module.__esModule ? /******/ function getDefault() { return module['default']; } : /******/ function getModuleExports() { return module; }; /******/ __webpack_require__.d(getter, 'a', getter); /******/ return getter; /******/ }; /******/ /******/ // Object.prototype.hasOwnProperty.call /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; /******/ /******/ // __webpack_public_path__ /******/ __webpack_require__.p = ""; /******/ /******/ /******/ // Load entry module and return exports /******/ return __webpack_require__(__webpack_require__.s = 92); /******/ }) /************************************************************************/ /******/ ([ /* 0 */ /***/ (function(module, exports) { var core = module.exports = { version: '2.5.7' }; if (typeof __e == 'number') __e = core; // eslint-disable-line no-undef /***/ }), /* 1 */ /***/ (function(module, exports) { // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 var global = module.exports = typeof window != 'undefined' && window.Math == Math ? window : typeof self != 'undefined' && self.Math == Math ? self // eslint-disable-next-line no-new-func : Function('return this')(); if (typeof __g == 'number') __g = global; // eslint-disable-line no-undef /***/ }), /* 2 */ /***/ (function(module, exports, __webpack_require__) { var store = __webpack_require__(50)('wks'); var uid = __webpack_require__(38); var Symbol = __webpack_require__(1).Symbol; var USE_SYMBOL = typeof Symbol == 'function'; var $exports = module.exports = function (name) { return store[name] || (store[name] = USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name)); }; $exports.store = store; /***/ }), /* 3 */ /***/ (function(module, exports, __webpack_require__) { var global = __webpack_require__(1); var core = __webpack_require__(0); var ctx = __webpack_require__(12); var hide = __webpack_require__(13); var has = __webpack_require__(16); var PROTOTYPE = 'prototype'; var $export = function (type, name, source) { var IS_FORCED = type & $export.F; var IS_GLOBAL = type & $export.G; var IS_STATIC = type & $export.S; var IS_PROTO = type & $export.P; var IS_BIND = type & $export.B; var IS_WRAP = type & $export.W; var exports = IS_GLOBAL ? core : core[name] || (core[name] = {}); var expProto = exports[PROTOTYPE]; var target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE]; var key, own, out; if (IS_GLOBAL) source = name; for (key in source) { // contains in native own = !IS_FORCED && target && target[key] !== undefined; if (own && has(exports, key)) continue; // export native or passed out = own ? target[key] : source[key]; // prevent global pollution for namespaces exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key] // bind timers to global for call from export context : IS_BIND && own ? ctx(out, global) // wrap global constructors for prevent change them in library : IS_WRAP && target[key] == out ? (function (C) { var F = function (a, b, c) { if (this instanceof C) { switch (arguments.length) { case 0: return new C(); case 1: return new C(a); case 2: return new C(a, b); } return new C(a, b, c); } return C.apply(this, arguments); }; F[PROTOTYPE] = C[PROTOTYPE]; return F; // make static versions for prototype methods })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out; // export proto methods to core.%CONSTRUCTOR%.methods.%NAME% if (IS_PROTO) { (exports.virtual || (exports.virtual = {}))[key] = out; // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME% if (type & $export.R && expProto && !expProto[key]) hide(expProto, key, out); } } }; // type bitmap $export.F = 1; // forced $export.G = 2; // global $export.S = 4; // static $export.P = 8; // proto $export.B = 16; // bind $export.W = 32; // wrap $export.U = 64; // safe $export.R = 128; // real proto method for `library` module.exports = $export; /***/ }), /* 4 */ /***/ (function(module, exports, __webpack_require__) { var anObject = __webpack_require__(9); var IE8_DOM_DEFINE = __webpack_require__(66); var toPrimitive = __webpack_require__(45); var dP = Object.defineProperty; exports.f = __webpack_require__(5) ? Object.defineProperty : function defineProperty(O, P, Attributes) { anObject(O); P = toPrimitive(P, true); anObject(Attributes); if (IE8_DOM_DEFINE) try { return dP(O, P, Attributes); } catch (e) { /* empty */ } if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!'); if ('value' in Attributes) O[P] = Attributes.value; return O; }; /***/ }), /* 5 */ /***/ (function(module, exports, __webpack_require__) { // Thank's IE8 for his funny defineProperty module.exports = !__webpack_require__(15)(function () { return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7; }); /***/ }), /* 6 */ /***/ (function(module, exports) { module.exports = function (it) { return typeof it === 'object' ? it !== null : typeof it === 'function'; }; /***/ }), /* 7 */ /***/ (function(module, exports, __webpack_require__) { module.exports = { "default": __webpack_require__(101), __esModule: true }; /***/ }), /* 8 */ /***/ (function(module, exports, __webpack_require__) { module.exports = { "default": __webpack_require__(122), __esModule: true }; /***/ }), /* 9 */ /***/ (function(module, exports, __webpack_require__) { var isObject = __webpack_require__(6); module.exports = function (it) { if (!isObject(it)) throw TypeError(it + ' is not an object!'); return it; }; /***/ }), /* 10 */ /***/ (function(module, exports) { var g; // This works in non-strict mode g = (function() { return this; })(); try { // This works if eval is allowed (see CSP) g = g || Function("return this")() || (1, eval)("this"); } catch (e) { // This works if the window reference is available if (typeof window === "object") g = window; } // g can still be undefined, but nothing to do about it... // We return undefined, instead of nothing here, so it's // easier to handle this case. if(!global) { ...} module.exports = g; /***/ }), /* 11 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; exports.__esModule = true; var _assign = __webpack_require__(94); var _assign2 = _interopRequireDefault(_assign); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } exports.default = _assign2.default || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; /***/ }), /* 12 */ /***/ (function(module, exports, __webpack_require__) { // optional / simple context binding var aFunction = __webpack_require__(25); module.exports = function (fn, that, length) { aFunction(fn); if (that === undefined) return fn; switch (length) { case 1: return function (a) { return fn.call(that, a); }; case 2: return function (a, b) { return fn.call(that, a, b); }; case 3: return function (a, b, c) { return fn.call(that, a, b, c); }; } return function (/* ...args */) { return fn.apply(that, arguments); }; }; /***/ }), /* 13 */ /***/ (function(module, exports, __webpack_require__) { var dP = __webpack_require__(4); var createDesc = __webpack_require__(26); module.exports = __webpack_require__(5) ? function (object, key, value) { return dP.f(object, key, createDesc(1, value)); } : function (object, key, value) { object[key] = value; return object; }; /***/ }), /* 14 */ /***/ (function(module, exports, __webpack_require__) { module.exports = { "default": __webpack_require__(119), __esModule: true }; /***/ }), /* 15 */ /***/ (function(module, exports) { module.exports = function (exec) { try { return !!exec(); } catch (e) { return true; } }; /***/ }), /* 16 */ /***/ (function(module, exports) { var hasOwnProperty = {}.hasOwnProperty; module.exports = function (it, key) { return hasOwnProperty.call(it, key); }; /***/ }), /* 17 */ /***/ (function(module, exports, __webpack_require__) { module.exports = __webpack_require__(117); /***/ }), /* 18 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; exports.__esModule = true; var _promise = __webpack_require__(7); var _promise2 = _interopRequireDefault(_promise); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } exports.default = function (fn) { return function () { var gen = fn.apply(this, arguments); return new _promise2.default(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return _promise2.default.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; }; /***/ }), /* 19 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /* WEBPACK VAR INJECTION */(function(global) { Object.defineProperty(exports, "__esModule", { value: true }); exports.hwaFun = exports.cookieToObj = exports.globalAppInfo = exports.globalUserInfo = exports.headersGetFun = exports.base64ToArrayBuffer = exports.arrayBufferToBase64 = exports.serialize = exports.performanceHwa = exports.fetchPerformance = exports.isPC = exports.isIOS = exports.emptyFun = exports.encode = exports.mappingField = exports.callBackField = exports.processData = exports.mappingParameter = exports.config = exports.cloudonlineCallBack = exports.mappingApiName = exports.hwaAction = exports.getWecodeInfo = exports.decode = undefined; var _keys = __webpack_require__(14); var _keys2 = _interopRequireDefault(_keys); var _toConsumableArray2 = __webpack_require__(83); var _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2); var _stringify = __webpack_require__(8); var _stringify2 = _interopRequireDefault(_stringify); var _regenerator = __webpack_require__(17); var _regenerator2 = _interopRequireDefault(_regenerator); var _asyncToGenerator2 = __webpack_require__(18); var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2); var _promise = __webpack_require__(7); var _promise2 = _interopRequireDefault(_promise); var _base = __webpack_require__(35); var _base2 = _interopRequireDefault(_base); var _plugin = __webpack_require__(134); var _plugin2 = _interopRequireDefault(_plugin); var _methods = __webpack_require__(41); var _methods2 = _interopRequireDefault(_methods); var _schemas = __webpack_require__(34); var _schemas2 = _interopRequireDefault(_schemas); var _eventEmitter = __webpack_require__(135); var _config = __webpack_require__(24); var _mapping = __webpack_require__(84); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var encode = function encode(data) { return data && typeof data === 'string' ? _base2.default.encode(unescape(encodeURIComponent(data))) : ''; }; var decode = function decode(data) { return data && typeof data === 'string' ? decodeURIComponent(escape(_base2.default.decode(data))) : ''; }; var emptyFun = function emptyFun() {}; var isObject = function isObject(obj) { return Object(obj) === obj; }; var config = {}; // 轻应用config结果 var fetchPerformance = {}; var globalWecodeInfo = null; var getWecodeInfo = function getWecodeInfo(cache) { return new _promise2.default(function () { var _ref = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee(resolve) { return _regenerator2.default.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: if (!(globalWecodeInfo && !cache)) { _context.next = 3; break; } resolve(globalWecodeInfo); return _context.abrupt('return'); case 3: _context.next = 5; return global.HWH5 && global.HWH5.wecodeInfo && global.HWH5.wecodeInfo({ common_internal_call: true }); case 5: globalWecodeInfo = _context.sent; resolve(globalWecodeInfo); case 7: case 'end': return _context.stop(); } } }, _callee, undefined); })); return function (_x) { return _ref.apply(this, arguments); }; }()); }; var hwaFun = function hwaFun(data) { var _str = (0, _stringify2.default)({ funcName: 'hwa', data: data }); HWH5.callMethod(_str); }; var hwaAction = function hwaAction(type, data, funcName, apiname, payload) { return new _promise2.default(function (resolve) { if (data && data.common_internal_call) { // 判断如果是common包内部调用则默认不埋码 return; } if (funcName !== 'wecodeInfo') { if (global.HWH5 && !global.HWH5.wecodeInfo) { // 如果wecodeInfo不存在埋点为线上H5 var _hwaOpt = { eventId: 'WELINK_ONLINE_JSAPI_HWA', eventLabel: 'WeLink online JSAPI HWA', extendData: (0, _stringify2.default)({ apiname: apiname, payload: payload || undefined, // 回调函数报错埋点,错误时埋入返回值 jssdk: _plugin2.default, time: new Date() - 0, appId: global.location.href, type: type }) }; hwaFun(_hwaOpt); return; } getWecodeInfo().then(function (res) { var _hwaOpt = { eventId: 'WELINK_JSAPI_HWA', eventLabel: 'WeLink JSAPI HWA', extendData: (0, _stringify2.default)({ apiname: apiname, payload: payload || undefined, // 回调函数报错埋点,错误时埋入返回值 jssdk: _plugin2.default, time: new Date() - 0, appId: res.appId, type: type }) }; hwaFun(_hwaOpt); }); } resolve(); }); }; // fetch性能埋码 var performanceHwa = function performanceHwa(apiName, url, time, status) { getWecodeInfo().then(function (res) { var _hwaOpt = { eventId: 'WELINK_JSAPI_HWA_FETCH', eventLabel: 'WeLink JSAPI HWA FETCH', extendData: (0, _stringify2.default)({ apiName: apiName, url: url, time: time, status: status, appId: res.appId }) }; hwaFun(_hwaOpt); }); }; // 处理返回数据 var processData = function processData(data, apiName) { var _data = data; if (_data.data) { _data.data = processData(_data.data, apiName); } else if (Array.isArray(_data)) { _data = _data.map(function (item) { return processData(item, apiName); }); } else { _data = mappingField(_data, _mapping.fields, apiName); } return _data; }; var callBackField = function callBackField(payload, apiName) { var _payload = {}; try { _payload = JSON.parse(payload); } catch (e) { console.log('error occured in callback Native', payload, e); } var data = decode(_payload.data); var isJSON = isObject(data); if (typeof data === 'string' && data !== 'undefined') { try { data = JSON.parse(data); isJSON = isObject(data); } catch (e) { isJSON = false; } } if (isJSON) { data = processData(data, apiName); data = encode((0, _stringify2.default)(data)); _payload.data = data; } return _payload; }; var nativeApiName = function nativeApiName(nativeName) { var result = []; var apis = [].concat((0, _toConsumableArray3.default)(_methods2.default), (0, _toConsumableArray3.default)(_schemas2.default)); apis.forEach(function (value) { if (nativeName === value.nativeName || nativeName === value.schema) { result.push(value); } }); return result; }; var mappingApiName = function mappingApiName(nativeObj, apiNameList) { var result = {}; var apis = [].concat((0, _toConsumableArray3.default)(_methods2.default), (0, _toConsumableArray3.default)(_schemas2.default)); var nativeList = (0, _keys2.default)(nativeObj); nativeList.forEach(function (nativeName) { var flag = false; apis.forEach(function (value) { if (nativeName === value.nativeName || nativeName === value.schema) { // 部分 api 由于命名规则可能一个 nativeName 对应多个 apiName,处理时只返回用户传入的apiName。 var nativeApiNameList = nativeApiName(nativeName); if (nativeApiNameList.length > 1) { if (apiNameList.indexOf(value.apiName) !== -1) result[value.apiName] = nativeObj[nativeName]; } else { result[value.apiName] = nativeObj[nativeName]; } flag = true; } }); if (!flag) { result[nativeName] = nativeObj[nativeName]; } }); return result; }; var cloudonlineCallBack = function cloudonlineCallBack(opt, payload, resolve) { var _payload = payload; if (opt.funcName === 'config') { _payload.data = JSON.parse(_payload.data); config.status = _payload.data.status; config.errorCode = _payload.data.errorCode; config.msg = _payload.data.msg; if (_payload.data.status === '1') { (0, _eventEmitter.emit)('__config_ready__'); } else { (0, _eventEmitter.emit)('__config_error__', config); } } else { _payload.data = JSON.parse(_payload.data); _payload.data.jsApiList = mappingApiName(_payload.data.jsApiList, opt.data.apiNameList); resolve(_payload.data); } }; // mapping fields var mappingField = function mappingField(data, mapping, apiName) { var _data = data; mapping.forEach(function (_ref2) { var origin = _ref2.origin, target = _ref2.target; if (data[origin] !== undefined && _data[target] === undefined) _data[target] = data[origin]; }); if (typeof _config.apisAttrInterception[apiName] === 'function') { return _config.apisAttrInterception[apiName](_data); } return _data; }; var mappingParameter = function mappingParameter(apiName, data) { var _data = data; _mapping.params.forEach(function (param) { var funcName = param.funcName, mapping = param.mapping; if (funcName === apiName) { _data = mappingField(data, mapping); } }); return _data; }; var isIOS = function isIOS() { if (!global.navigator) { return false; } var userAgent = global.navigator.userAgent || global.navigator.vendor || global.opera; if (/iPad|iPhone|iPod|Mac/.test(userAgent) && !global.MSStream) { return true; } return false; }; var isPC = function isPC() { if (!global.navigator) { return false; } var userAgent = global.navigator.userAgent || global.navigator.vendor || global.opera; if (/cloudlink welink workplace/.test(userAgent)) { return true; } return false; }; function serialize(obj) { return (0, _keys2.default)(obj).map(function (key) { return encodeURIComponent(key) + '=' + encodeURIComponent(obj[key]); }).join('&'); } var arrayBufferToBase64 = function arrayBufferToBase64(buffer) { var binary = ''; var bytes = new Uint8Array(buffer); var len = bytes.byteLength; for (var i = 0; i < len; i += 1) { binary += String.fromCharCode(bytes[i]); } return encode(binary); }; var base64ToArrayBuffer = function base64ToArrayBuffer(base64) { var binaryString = window.atob(base64); var len = binaryString.length; var bytes = new Uint8Array(len); for (var i = 0; i < len; i += 1) { bytes[i] = binaryString.charCodeAt(i); } return bytes.buffer; }; // fetchInternet,fetchVPN给返回值中的headers添加.get方法 /** * * 安卓headers 示例: * { * connection: ['keep-alive'], * set-cookie: [ * 'hwssot=9F-9B-2F-95-3B-AF-30-F5-B4-0E-B5-18-06-E2-6F-98; Path=/; Domain=.huawei.com', * 'hwssot=9F-9B-2F-95-3B-AF-30-F5-B4-0E-B5-18-06-E2-6F-98; Path=/; Domain=.huawei.com' * ] * } * * iOS headers 示例: * { * Connection: keep-alive, * Set-Cookie: [ * 'hwssot=9F-9B-2F-95-3B-AF-30-F5-B4-0E-B5-18-06-E2-6F-98', * 'Path=/', * 'Domain=.huawei.com' * ] * } * * headers.get(key)输出结果: * 1. key支持大小写 * 2. set-cookie 输出样例: * hwssotinter=xxx; Path=/; Domain=.huawei.com, hwssot=xxx; Path=/; Domain=.huawei.com * 输出字符串,多条cookie用 , 分开 * 3. 其它字段原有值为数组则输出数组,原有值为字符串则输出字符串 */ var headersGetFun = function headersGetFun(data) { var _data = data; if (_data.headers && _data.headers.get || !_data.headers) { return _data; } _data.headers.get = function (key) { if (typeof key !== 'string') { return ''; } var _key = key.toLocaleLowerCase(); var headerKeys = (0, _keys2.default)(_data.headers); var value = ''; headerKeys.forEach(function (headerKey) { if (_key === 'set-cookie') { if (isIOS() && _data.headers['Set-Cookie']) { value = _data.headers['Set-Cookie'].join(';'); } else if (_data.headers['set-cookie']) { value = _data.headers['set-cookie'].join(','); } } else if (_key === headerKey.toLocaleLowerCase()) { if (Array.isArray(_data.headers[headerKey]) && _data.headers[headerKey].length === 1) { var index = 0; value = _data.headers[headerKey][index]; } else { value = _data.headers[headerKey]; } } }); return value; }; return _data; }; // 封装一个全局对象,进入common包时就获取userInfo,供全局使用。 // 上云默认不开放getUserInfo但是可以使用,并需要保证一直可用,否则缓存,水印相关api会出问题。 function UserInfo() { var userInfo = null; this.getGlobalUserInfo = function () { if (userInfo && userInfo.corpUserId) { return _promise2.default.resolve(userInfo); } return new _promise2.default(function (resolve) { HWH5.getUserInfo({ common_internal_call: true }).then(function (data) { userInfo = data; resolve(userInfo); }); }); }; } var globalUserInfo = new UserInfo(); function AppInfo() { var appInfo = null; this.getGlobalAppInfo = function () { if (appInfo && appInfo.language) { return _promise2.default.resolve(appInfo); } return new _promise2.default(function (resolve) { HWH5.getAppInfo().then(function (data) { appInfo = data; resolve(appInfo); }); }); }; } var globalAppInfo = new AppInfo(); function cookieToObj(cookie) { var cookieArr = cookie.split(';'); var obj = {}; cookieArr.forEach(function (i) { var arr = i.split('='); var idx0 = 0; var idx1 = 1; obj[arr[idx0]] = arr[idx1]; }); return obj; } exports.decode = decode; exports.getWecodeInfo = getWecodeInfo; exports.hwaAction = hwaAction; exports.mappingApiName = mappingApiName; exports.cloudonlineCallBack = cloudonlineCallBack; exports.config = config; exports.mappingParameter = mappingParameter; exports.processData = processData; exports.callBackField = callBackField; exports.mappingField = mappingField; exports.encode = encode; exports.emptyFun = emptyFun; exports.isIOS = isIOS; exports.isPC = isPC; exports.fetchPerformance = fetchPerformance; exports.performanceHwa = performanceHwa; exports.serialize = serialize; exports.arrayBufferToBase64 = arrayBufferToBase64; exports.base64ToArrayBuffer = base64ToArrayBuffer; exports.headersGetFun = headersGetFun; exports.globalUserInfo = globalUserInfo; exports.globalAppInfo = globalAppInfo; exports.cookieToObj = cookieToObj; exports.hwaFun = hwaFun; /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(10))) /***/ }), /* 20 */ /***/ (function(module, exports, __webpack_require__) { // to indexed object, toObject with fallback for non-array-like ES3 strings var IObject = __webpack_require__(46); var defined = __webpack_require__(47); module.exports = function (it) { return IObject(defined(it)); }; /***/ }), /* 21 */ /***/ (function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(global) {var win; if (typeof window !== "undefined") { win = window; } else if (typeof global !== "undefined") { win = global; } else if (typeof self !== "undefined"){ win = self; } else { win = {}; } module.exports = win; /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(10))) /***/ }), /* 22 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var $at = __webpack_require__(102)(true); // 21.1.3.27 String.prototype[@@iterator]() __webpack_require__(54)(String, 'String', function (iterated) { this._t = String(iterated); // target this._i = 0; // next index // 21.1.5.2.1 %StringIteratorPrototype%.next() }, function () { var O = this._t; var index = this._i; var point; if (index >= O.length) return { value: undefined, done: true }; point = $at(O, index); this._i += point.length; return { value: point, done: false }; }); /***/ }), /* 23 */ /***/ (function(module, exports) { module.exports = {}; /***/ }), /* 24 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.internalData = exports.validateParameterApis = exports.types = exports.apisAttrInterception = exports.mappingApis = undefined; var _extends2 = __webpack_require__(11); var _extends3 = _interopRequireDefault(_extends2); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /** * 部分api字段基座返回不规范,返回时jsapi处理 * 配置对象 */ var mappingApis = ['selectContact', 'selectContacts', 'contactInfo', 'getContactInfo', 'selectUsers', 'userInfo', 'getUserInfo']; // 内部使用数据 var internalData = { userInfo: {}, // 提供给水印的userInfo appId: '' // 提供给线上H5使用的appId }; // 外网环境获取用户信息时,过滤掉电话字段 var userInfoFun = function userInfoFun(item) { var _item = item; // 内部使用userInfo internalData.userInfo = (0, _extends3.default)({}, item); if (false) {} return _item; }; /* istanbul ignore next */ var apisAttrInterception = { selectUsers: function selectUsers(item) { return { corpUserId: item.corpUserId, userId: item.userId, userNameCn: item.userNameCn, userNameEn: item.userNameEn, deptCode: item.deptCode, deptLevel: item.deptLevel, deptL1Code: item.deptL1Code, deptL1Name: item.deptL1Name, deptName: item.deptName, mobileNumber: true ? item.mobileNumber : undefined, userType: item.userType, pinyinName: item.pinyinName, gender: item.gender, signature: item.signature, userEmail: item.userEmail, workPlace: item.workPlace }; }, getUserInfo: userInfoFun, userInfo: userInfoFun, selectContacts: function selectContacts(item) { var _item = item; if (false) {} return _item; } }; var REQUIRED = 1; var NUMBER = 2; var STRING = 4; var OBJECT = 8; var ARRAY = 16; var NULL = 32; var BOOLEAN = 64; var UNDEFINED = 128; var types = { required: REQUIRED, number: NUMBER, string: STRING, object: OBJECT, array: ARRAY, null: NULL, boolean: BOOLEAN, undefined: UNDEFINED }; // 需要对参数类型进行校验的配置清单 var validateParameterApis = { scanCode: { needResult: REQUIRED | STRING | NUMBER }, fetch: { url: REQUIRED | STRING, method: REQUIRED | STRING, body: STRING, headers: OBJECT | STRING }, chooseImage: { flag: STRING | NUMBER, imagePickerMode: STRING, maxSelectedCount: STRING | NUMBER, showOrigin: BOOLEAN, btntxtEN: STRING, btntxtCN: STRING, titleEN: STRING, titleCN: STRING, cameraFacing: STRING | NUMBER, showShadow: STRING | NUMBER, compress: STRING | NUMBER }, uploadFile: { serverType: REQUIRED | STRING | NUMBER, filePath: REQUIRED | STRING | ARRAY, serverUrl: STRING, tokenUrl: STRING, formData: STRING, zip: BOOLEAN, docType: STRING, name: STRING, headers: STRING | OBJECT, timeout: STRING | NUMBER, progress: STRING | NUMBER }, downloadToMDM: { tokenUrl: REQUIRED | STRING, docId: REQUIRED | STRING, docVersion: STRING, filePath: REQUIRED | STRING, progress: STRING | NUMBER }, downloadFile: { url: REQUIRED | STRING, header: STRING, filePath: STRING }, openFile: { filePath: REQUIRED | STRING }, filePicker: { fileType: REQUIRED | ARRAY, imagePickerMode: STRING, maxSelectedCount: STRING | NUMBER, showOrigin: BOOLEAN, btntxtCN: STRING, btntxtEN: STRING }, removeFile: { path: REQUIRED | STRING }, encryptFile: { filePath: REQUIRED | STRING }, existInMDM: { filePath: REQUIRED | STRING }, previewImage: { index: REQUIRED | STRING | NUMBER, imageArray: REQUIRED | STRING, watermark: BOOLEAN }, getAbsolutePath: { filePath: REQUIRED | STRING }, selectedFiles: { appId: REQUIRED | STRING, packageName: REQUIRED | STRING, needCallback: REQUIRED | BOOLEAN }, getOneBoxFiles: { appId: REQUIRED | STRING, packageName: REQUIRED | STRING, ownerId: STRING, folderId: STRING, orderField: STRING, orderDirection: STRING }, uploadFileToOneBox: { appId: REQUIRED | STRING, packageName: REQUIRED | STRING, ownerId: REQUIRED | STRING, folderId: STRING, localFilePath: REQUIRED | STRING }, uploadOneBoxFileOperation: { taskId: REQUIRED | STRING, action: REQUIRED | STRING }, downloadFileFromOneBox: { appId: REQUIRED | STRING, packageName: REQUIRED | STRING, ownerId: REQUIRED | STRING, fileId: REQUIRED | STRING }, downloadOneBoxFileOperation: { taskId: REQUIRED | STRING, action: REQUIRED | STRING }, openOneBoxFile: { appId: REQUIRED | STRING, packageName: REQUIRED | STRING, ownerId: REQUIRED | STRING, fileId: REQUIRED | STRING }, saveOneBoxToMyFiles: { appId: REQUIRED | STRING, packageName: REQUIRED | STRING, ownerId: REQUIRED | STRING, fileId: REQUIRED | STRING, isFolder: REQUIRED | STRING, needCallback: REQUIRED | NUMBER }, importOneBoxFromMyFiles: { appId: REQUIRED | STRING, packageName: REQUIRED | STRING, ownerId: REQUIRED | STRING, fileId: REQUIRED | STRING, needCallback: REQUIRED | NUMBER }, deleteOneBoxFile: { appId: REQUIRED | STRING, packageName: REQUIRED | STRING, ownerId: REQUIRED | STRING, fileId: REQUIRED | STRING, isFolder: REQUIRED | STRING, needCallback: REQUIRED | NUMBER }, shareOneBoxFile: { appId: REQUIRED | STRING, packageName: REQUIRED | STRING, ownerId: REQUIRED | STRING, fileId: REQUIRED | STRING, needCallback: REQUIRED | NUMBER }, selectContacts: { needCallback: REQUIRED | BOOLEAN, isSingleSelection: BOOLEAN, minimum: NUMBER, maximum: NUMBER, mode: NUMBER, dataSourceType: NUMBER, searchKeyword: STRING, title: STRING, users: STRING, supportPortals: STRING, fixedFlag: STRING }, selectUsers: { needCallback: REQUIRED | BOOLEAN, isSingleSelection: BOOLEAN, minimum: NUMBER, maximum: NUMBER, mode: NUMBER, dataSourceType: NUMBER, searchKeyword: STRING, title: STRING, users: STRING, supportPortals: STRING, fixedFlag: STRING }, getContactInfo: { userIds: STRING, corpUserIds: STRING, userEmails: STRING }, openUserProfile: { userId: STRING, corpUserId: STRING, userEmail: STRING }, createIMGroupChat: { groupType: REQUIRED | NUMBER, groupMembers: REQUIRED | STRING }, getIMGroupList: { groupIDList: STRING }, openIMChat: { chatID: REQUIRED | STRING, chatType: REQUIRED | STRING, chatName: STRING }, selectGroupMembers: { groupId: REQUIRED | STRING, isRadio: REQUIRED | STRING, needCallback: REQUIRED | BOOLEAN }, openAudioConference: { members: REQUIRED | STRING }, audioConferenceDirectly: { userList: REQUIRED | STRING }, makePhoneCall: { dialNumber: REQUIRED | STRING, makeWay: REQUIRED | NUMBER }, sendIMTextMessage: { toId: REQUIRED | STRING, isGroup: REQUIRED | STRING, content: REQUIRED | STRING }, getLocation: { type: NUMBER }, sendIMCard: { receiver: REQUIRED | STRING, receiveType: REQUIRED | STRING, cardType: REQUIRED | STRING, receiveName: STRING, title: REQUIRED | STRING, from: REQUIRED | STRING, subTitle: REQUIRED | STRING, iconURL: REQUIRED | STRING, sourceUrl: REQUIRED | STRING, iOpenURI: STRING, aOpenURI: STRING, handlerH5UriIOS: STRING, handlerH5UriAndroid: STRING, isPCDisplay: REQUIRED | NUMBER | STRING, fileID: STRING, ownerID: STRING, format: STRING, fileSize: NUMBER, isGotoChat: STRING }, share: { type: REQUIRED | STRING, data: REQUIRED | OBJECT }, openWebview: { uri: REQUIRED | STRING }, navigateToWecode: { uri: REQUIRED | STRING, extraData: REQUIRED | OBJECT }, navigateBackWecode: { extraData: REQUIRED | OBJECT }, setStorage: { key: REQUIRED | STRING, data: REQUIRED | STRING }, showToast: { msg: REQUIRED | STRING, type: REQUIRED | STRING }, loading: { status: REQUIRED | BOOLEAN }, setNavigationBarTitle: { title: REQUIRED | STRING }, recordAudio: { type: REQUIRED | STRING, sampleRate: STRING, format: STRING, encodeBitRate: STRING, numberOfChannels: STRING }, playMedia: { url: REQUIRED | STRING, title: STRING }, playAudio: { url: REQUIRED | STRING, imageUrl: STRING, title: STRING, desc: STRING, startTime: NUMBER }, canIUse: { schema: REQUIRED | ARRAY }, getMeetingSchedules: { appId: REQUIRED | STRING, searchBeginTimeMS: NUMBER, searchEndTimeMS: NUMBER }, log: { content: REQUIRED | STRING, type: REQUIRED | STRING }, hwa: { eventId: REQUIRED | STRING, eventLabel: REQUIRED | STRING, extendData: REQUIRED | STRING }, enableIHelp: { queryString: STRING }, zipsFiles: { filesPath: REQUIRED | STRING | ARRAY }, compressImage: { filePath: REQUIRED | STRING | ARRAY }, uploadImage: { serverType: REQUIRED | STRING | NUMBER, filePath: REQUIRED | STRING | ARRAY, serverUrl: STRING, tokenUrl: STRING, formData: STRING, zip: BOOLEAN, docType: STRING, name: STRING, headers: STRING | OBJECT, timeout: STRING | NUMBER, progress: STRING | NUMBER, maxWidth: STRING | NUMBER, maxHeight: STRING | NUMBER, maxSize: STRING | NUMBER }, getAuthCode: { clientId: REQUIRED | STRING }, playRecord: { uri: STRING }, voiceToText: { action: REQUIRED | STRING, appId: STRING, appKey: STRING, appName: STRING, salt: STRING, translateMode: NUMBER, bos: NUMBER, eos: NUMBER, language: STRING, translateLanguage: STRING, paramPreserve: STRING | OBJECT }, refreshH5Height: { height: STRING | NUMBER }, queryMeetingSchedules: { bundleName: STRING }, refreshStoreCard: { appID: STRING }, startMeeting: { isVideo: STRING | NUMBER, contacts: STRING }, socialShare: { type: REQUIRED | STRING, uri: REQUIRED | STRING, title: STRING, iconUri: STRING, desc: STRING, from: STRING, internalTarget: ARRAY | STRING, externalTarget: ARRAY | STRING }, getBluetoothInfo: { action: REQUIRED | STRING }, requestPayment: { traderOrderNo: REQUIRED | STRING, language: REQUIRED | STRING, title: REQUIRED | STRING, timeStamp: REQUIRED | STRING, sign: REQUIRED | STRING, version: REQUIRED | STRING }, reward: { senderID: REQUIRED | STRING, senderNickname: REQUIRED | STRING, amount: REQUIRED | STRING, receiverID: REQUIRED | STRING, receiverNickname: REQUIRED | STRING, groupID: STRING, greeting: STRING }, searchLocation: { radius: NUMBER, longitude: REQUIRED | STRING, latitude: REQUIRED | STRING }, setNavigationBarColor: { frontColor: REQUIRED | STRING, backgroundColor: REQUIRED | STRING }, getDepartment: { bundleName: REQUIRED | STRING }, managerSelector: { bundleName: STRING, roleCodes: REQUIRED | STRING }, shareToMiniProgram: { title: STRING, iconUri: STRING, desc: STRING, from: STRING, webpageUrl: REQUIRED | STRING, userName: REQUIRED | STRING, path: REQUIRED | STRING, withShareTicket: REQUIRED | BOOLEAN, miniprogramType: REQUIRED | NUMBER }, setScreenBrightness: { value: REQUIRED | NUMBER }, getClouddriveFilesList: { appId: STRING, packageName: STRING, needCallback: NUMBER }, uploadClouddriveFile: { appId: REQUIRED | STRING, packageName: STRING, ownerId: REQUIRED | STRING, folderId: STRING, localFilePath: REQUIRED | STRING }, uploadClouddriveFileOperation: { taskId: REQUIRED | STRING, action: REQUIRED | STRING }, downloadClouddriveFile: { appId: REQUIRED | STRING, packageName: STRING, ownerId: REQUIRED | STRING, fileId: REQUIRED | STRING }, downloadClouddriveFileOperation: { taskId: REQUIRED | STRING, action: REQUIRED | STRING }, selectClouddriveFiles: { appId: REQUIRED | STRING, packageName: STRING, needCallback: NUMBER }, openClouddriveFile: { appId: STRING, packageName: STRING, ownerId: STRING, fileId: STRING }, saveClouddriveFileToMyFiles: { appId: REQUIRED | STRING, packageName: STRING, ownerId: REQUIRED | STRING, fileId: REQUIRED | STRING, isFolder: REQUIRED | STRING, needCallback: NUMBER }, importClouddriveFileFromMyFiles: { appId: REQUIRED | STRING, packageName: STRING, ownerId: REQUIRED | STRING, folderId: STRING, needCallback: NUMBER }, deleteClouddriveFile: { appId: REQUIRED | STRING, packageName: STRING, ownerId: STRING, fileId: REQUIRED | STRING, isFolder: REQUIRED | STRING, needCallback: NUMBER }, getClouddriveFileSharelink: { appId: REQUIRED | STRING, packageName: STRING, ownerId: REQUIRED | STRING, fileId: REQUIRED | STRING, isFolder: REQUIRED | STRING }, setNavigationBar: { titleCn: STRING, titleEn: STRING, frontColor: STRING, backgroundColor: STRING, buttons: OBJECT }, sendIMFile: { toId: REQUIRED | STRING, fileType: REQUIRED | STRING, filePath: REQUIRED | STRING, isGroup: REQUIRED | STRING } }; validateParameterApis.scanQR = validateParameterApis.scanCode; validateParameterApis.fetchInternet = validateParameterApis.fetch; validateParameterApis.imagePicker = validateParameterApis.chooseImage; validateParameterApis.openFileInMDM = validateParameterApis.openFile; validateParameterApis.deleteFile = validateParameterApis.removeFile; validateParameterApis.imageBrowser = validateParameterApis.previewImage; validateParameterApis.contactInfo = validateParameterApis.getContactInfo; validateParameterApis.viewContactInfo = validateParameterApis.openUserProfile; validateParameterApis.makingcall = validateParameterApis.makePhoneCall; validateParameterApis.makingCall = validateParameterApis.makePhoneCall; validateParameterApis.generateQRCode = validateParameterApis.fetch; validateParameterApis.enableFeedback = validateParameterApis.enableIHelp; validateParameterApis.fetchIntranet = validateParameterApis.fetch; validateParameterApis.selectUsers = validateParameterApis.selectContacts; exports.mappingApis = mappingApis; exports.apisAttrInterception = apisAttrInterception; exports.types = types; exports.validateParameterApis = validateParameterApis; exports.internalData = internalData; /***/ }), /* 25 */ /***/ (function(module, exports) { module.exports = function (it) { if (typeof it != 'function') throw TypeError(it + ' is not a function!'); return it; }; /***/ }), /* 26 */ /***/ (function(module, exports) { module.exports = function (bitmap, value) { return { enumerable: !(bitmap & 1), configurable: !(bitmap & 2), writable: !(bitmap & 4), value: value }; }; /***/ }), /* 27 */ /***/ (function(module, exports, __webpack_require__) { // 19.1.2.14 / 15.2.3.14 Object.keys(O) var $keys = __webpack_require__(67); var enumBugKeys = __webpack_require__(51); module.exports = Object.keys || function keys(O) { return $keys(O, enumBugKeys); }; /***/ }), /* 28 */ /***/ (function(module, exports) { var toString = {}.toString; module.exports = function (it) { return toString.call(it).slice(8, -1); }; /***/ }), /* 29 */ /***/ (function(module, exports) { module.exports = true; /***/ }), /* 30 */ /***/ (function(module, exports, __webpack_require__) { // 7.1.13 ToObject(argument) var defined = __webpack_require__(47); module.exports = function (it) { return Object(defined(it)); }; /***/ }), /* 31 */ /***/ (function(module, exports, __webpack_require__) { var def = __webpack_require__(4).f; var has = __webpack_require__(16); var TAG = __webpack_require__(2)('toStringTag'); module.exports = function (it, tag, stat) { if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag }); }; /***/ }), /* 32 */ /***/ (function(module, exports, __webpack_require__) { __webpack_require__(105); var global = __webpack_require__(1); var hide = __webpack_require__(13); var Iterators = __webpack_require__(23); var TO_STRING_TAG = __webpack_require__(2)('toStringTag'); var DOMIterables = ('CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,' + 'DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,' + 'MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,' + 'SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,' + 'TextTrackList,TouchList').split(','); for (var i = 0; i < DOMIterables.length; i++) { var NAME = DOMIterables[i]; var Collection = global[NAME]; var proto = Collection && Collection.prototype; if (proto && !proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME); Iterators[NAME] = Iterators.Array; } /***/ }), /* 33 */ /***/ (function(module, exports, __webpack_require__) { var ctx = __webpack_require__(12); var call = __webpack_require__(72); var isArrayIter = __webpack_require__(73); var anObject = __webpack_require__(9); var toLength = __webpack_require__(37); var getIterFn = __webpack_require__(57); var BREAK = {}; var RETURN = {}; var exports = module.exports = function (iterable, entries, fn, that, ITERATOR) { var iterFn = ITERATOR ? function () { return iterable; } : getIterFn(iterable); var f = ctx(fn, that, entries ? 2 : 1); var index = 0; var length, step, iterator, result; if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!'); // fast case for arrays with default iterator if (isArrayIter(iterFn)) for (length = toLength(iterable.length); length > index; index++) { result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]); if (result === BREAK || result === RETURN) return result; } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) { result = call(iterator, f, step.value, entries); if (result === BREAK || result === RETURN) return result; } }; exports.BREAK = BREAK; exports.RETURN = RETURN; /***/ }), /* 34 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var result = []; if (true) { result = __webpack_require__(114); } else {} module.exports = result; /***/ }), /* 35 */ /***/ (function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(module, global) {var __WEBPACK_AMD_DEFINE_RESULT__;/*! http://mths.be/base64 v0.1.0 by @mathias | MIT license */ ;(function(root) { // Detect free variables `exports`. var freeExports = typeof exports == 'object' && exports; // Detect free variable `module`. var freeModule = typeof module == 'object' && module && module.exports == freeExports && module; // Detect free variable `global`, from Node.js or Browserified code, and use // it as `root`. var freeGlobal = typeof global == 'object' && global; if (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal) { root = freeGlobal; } /*--------------------------------------------------------------------------*/ var InvalidCharacterError = function(message) { this.message = message; }; InvalidCharacterError.prototype = new Error; InvalidCharacterError.prototype.name = 'InvalidCharacterError'; var error = function(message) { // Note: the error messages used throughout this file match those used by // the native `atob`/`btoa` implementation in Chromium. throw new InvalidCharacterError(message); }; var TABLE = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; // http://whatwg.org/html/common-microsyntaxes.html#space-character var REGEX_SPACE_CHARACTERS = /[\t\n\f\r ]/g; // `decode` is designed to be fully compatible with `atob` as described in the // HTML Standard. http://whatwg.org/html/webappapis.html#dom-windowbase64-atob // The optimized base64-decoding algorithm used is based on @atk’s excellent // implementation. https://gist.github.com/atk/1020396 var decode = function(input) { input = String(input) .replace(REGEX_SPACE_CHARACTERS, ''); var length = input.length; if (length % 4 == 0) { input = input.replace(/==?$/, ''); length = input.length; } if ( length % 4 == 1 || // http://whatwg.org/C#alphanumeric-ascii-characters /[^+a-zA-Z0-9/]/.test(input) ) { error( 'Invalid character: the string to be decoded is not correctly encoded.' ); } var bitCounter = 0; var bitStorage; var buffer; var output = ''; var position = -1; while (++position < length) { buffer = TABLE.indexOf(input.charAt(position)); bitStorage = bitCounter % 4 ? bitStorage * 64 + buffer : buffer; // Unless this is the first of a group of 4 characters… if (bitCounter++ % 4) { // …convert the first 8 bits to a single ASCII character. output += String.fromCharCode( 0xFF & bitStorage >> (-2 * bitCounter & 6) ); } } return output; }; // `