@wecode/wlk-jsapi
Version:
Mock libraries / JSAPIs for developing and testing WeCode apps on PC.
1,846 lines (1,616 loc) • 411 kB
JavaScript
(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;
};
// `