Initial import: H5 front-end and houtai backend (exclude secrets and uploads).
Made-with: Cursor
This commit is contained in:
622
h5/static/js/chunk-vendors.4d47960d.readable.js
Executable file
622
h5/static/js/chunk-vendors.4d47960d.readable.js
Executable file
@@ -0,0 +1,622 @@
|
||||
// ============================================
|
||||
// 反编译后的可读版本
|
||||
// 原文件: chunk-vendors.4d47960d.js
|
||||
// 文件: Webpack第三方库打包文件
|
||||
// 大小: 1.18MB (1,181,721 bytes)
|
||||
// 说明: 包含所有第三方依赖库
|
||||
// ============================================
|
||||
|
||||
(window["webpackJsonp"] = window["webpackJsonp"] || []).push([
|
||||
["chunk-vendors"],
|
||||
{
|
||||
// ==================== 核心工具模块 ====================
|
||||
|
||||
/**
|
||||
* 模块 00c2: Array indexOf实现
|
||||
* 用于不支持原生indexOf的环境
|
||||
*/
|
||||
"00c2": function(module, exports, require) {
|
||||
"use strict";
|
||||
|
||||
var arrayPush = require("bb80"); // 数组push方法
|
||||
var hasOwnProperty = require("338c"); // hasOwnProperty检查
|
||||
var toIndexedObject = require("f660"); // 转索引对象
|
||||
var indexOf = require("036b").indexOf; // indexOf方法
|
||||
var hiddenKeys = require("11bf"); // 隐藏键
|
||||
var push = arrayPush([].push);
|
||||
|
||||
module.exports = function(object, names) {
|
||||
var key;
|
||||
var result = toIndexedObject(object);
|
||||
var index = 0;
|
||||
var keys = [];
|
||||
|
||||
// 遍历对象
|
||||
for (key in result) {
|
||||
if (!hasOwnProperty(hiddenKeys, key) &&
|
||||
hasOwnProperty(result, key)) {
|
||||
push(keys, key);
|
||||
}
|
||||
}
|
||||
|
||||
// 遍历传入的names
|
||||
while (names.length > index) {
|
||||
if (hasOwnProperty(result, key = names[index++])) {
|
||||
if (~indexOf(keys, key)) {
|
||||
push(keys, key);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return keys;
|
||||
};
|
||||
},
|
||||
|
||||
/**
|
||||
* 模块 00ca: Object.getOwnPropertyNames polyfill
|
||||
* 获取对象自身的所有属性名
|
||||
*/
|
||||
"00ca": function(module, exports, require) {
|
||||
var internalObjectKeys = require("56c8");
|
||||
var enumBugKeys = require("da1d");
|
||||
var hiddenKeys = enumBugKeys.concat("length", "prototype");
|
||||
|
||||
exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {
|
||||
return internalObjectKeys(O, hiddenKeys);
|
||||
};
|
||||
},
|
||||
|
||||
// ==================== 加密相关模块 ====================
|
||||
|
||||
/**
|
||||
* 模块 0116: HMAC实现
|
||||
* Hash-based Message Authentication Code
|
||||
*/
|
||||
"0116": function(module, exports, require) {
|
||||
"use strict";
|
||||
|
||||
var inherits = require("2c2e");
|
||||
var Legacy = require("610c");
|
||||
var Transform = require("cfef");
|
||||
var Buffer = require("5f79").Buffer;
|
||||
var md5 = require("1177");
|
||||
var rmd160 = require("2d81");
|
||||
var sha = require("25a4");
|
||||
|
||||
var zeroBuffer = Buffer.alloc(128);
|
||||
|
||||
/**
|
||||
* HMAC构造函数
|
||||
* @param {string} alg - 算法名称
|
||||
* @param {Buffer} key - 密钥
|
||||
*/
|
||||
function Hmac(alg, key) {
|
||||
Transform.call(this, "digest");
|
||||
|
||||
if (typeof key === "string") {
|
||||
key = Buffer.from(key);
|
||||
}
|
||||
|
||||
var blocksize = (alg === "sha512" || alg === "sha384") ? 128 : 64;
|
||||
|
||||
this._alg = alg;
|
||||
this._key = key;
|
||||
|
||||
// 如果key长度大于blocksize,先hash
|
||||
if (key.length > blocksize) {
|
||||
var hash = (alg === "rmd160") ? new rmd160() : sha(alg);
|
||||
key = hash.update(key).digest();
|
||||
} else if (key.length < blocksize) {
|
||||
// 如果key长度小于blocksize,填充0
|
||||
key = Buffer.concat([key, zeroBuffer], blocksize);
|
||||
}
|
||||
|
||||
// 创建ipad和opad
|
||||
var ipad = this._ipad = Buffer.allocUnsafe(blocksize);
|
||||
var opad = this._opad = Buffer.allocUnsafe(blocksize);
|
||||
|
||||
for (var i = 0; i < blocksize; i++) {
|
||||
ipad[i] = key[i] ^ 0x36; // XOR with 0x36
|
||||
opad[i] = key[i] ^ 0x5C; // XOR with 0x5C
|
||||
}
|
||||
|
||||
this._hash = (alg === "rmd160") ? new rmd160() : sha(alg);
|
||||
this._hash.update(ipad);
|
||||
}
|
||||
|
||||
inherits(Hmac, Transform);
|
||||
|
||||
Hmac.prototype._update = function(data) {
|
||||
this._hash.update(data);
|
||||
};
|
||||
|
||||
Hmac.prototype._final = function() {
|
||||
var innerHash = this._hash.digest();
|
||||
var hash = (this._alg === "rmd160") ? new rmd160() : sha(this._alg);
|
||||
return hash.update(this._opad).update(innerHash).digest();
|
||||
};
|
||||
|
||||
module.exports = function createHmac(alg, key) {
|
||||
alg = alg.toLowerCase();
|
||||
|
||||
if (alg === "rmd160" || alg === "ripemd160") {
|
||||
return new Hmac("rmd160", key);
|
||||
}
|
||||
if (alg === "md5") {
|
||||
return new Legacy(md5, key);
|
||||
}
|
||||
return new Hmac(alg, key);
|
||||
};
|
||||
},
|
||||
|
||||
/**
|
||||
* 模块 0168: Cipher基类
|
||||
* 加密/解密的基础类
|
||||
*/
|
||||
"0168": function(module, exports, require) {
|
||||
"use strict";
|
||||
|
||||
var assert = require("d3c2");
|
||||
|
||||
/**
|
||||
* Cipher构造函数
|
||||
* @param {Object} options - 配置选项
|
||||
*/
|
||||
function Cipher(options) {
|
||||
this.options = options;
|
||||
this.type = this.options.type;
|
||||
this.blockSize = 8;
|
||||
this._init();
|
||||
|
||||
this.buffer = new Array(this.blockSize);
|
||||
this.bufferOff = 0;
|
||||
}
|
||||
|
||||
module.exports = Cipher;
|
||||
|
||||
Cipher.prototype._init = function() {
|
||||
// 子类实现
|
||||
};
|
||||
|
||||
/**
|
||||
* 更新数据
|
||||
* @param {Array} data - 输入数据
|
||||
*/
|
||||
Cipher.prototype.update = function(data) {
|
||||
if (data.length === 0) {
|
||||
return [];
|
||||
}
|
||||
|
||||
if (this.type === "decrypt") {
|
||||
return this._updateDecrypt(data);
|
||||
} else {
|
||||
return this._updateEncrypt(data);
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* 缓冲数据
|
||||
*/
|
||||
Cipher.prototype._buffer = function(data, off) {
|
||||
var min = Math.min(this.buffer.length - this.bufferOff, data.length - off);
|
||||
|
||||
for (var i = 0; i < min; i++) {
|
||||
this.buffer[this.bufferOff + i] = data[off + i];
|
||||
}
|
||||
|
||||
this.bufferOff += min;
|
||||
return min;
|
||||
};
|
||||
|
||||
/**
|
||||
* 刷新缓冲区
|
||||
*/
|
||||
Cipher.prototype._flushBuffer = function(out, off) {
|
||||
this._update(this.buffer, 0, out, off);
|
||||
this.bufferOff = 0;
|
||||
return this.blockSize;
|
||||
};
|
||||
},
|
||||
|
||||
// ==================== uni-simple-router 路由库 ====================
|
||||
|
||||
/**
|
||||
* 模块 607: uni-simple-router 主入口
|
||||
* 完整的路由库实现
|
||||
*/
|
||||
"607": function(module, exports, require) {
|
||||
"use strict";
|
||||
|
||||
var __createBinding = (Object.create ? function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
Object.defineProperty(o, k2, {
|
||||
enumerable: true,
|
||||
get: function() { return m[k]; }
|
||||
});
|
||||
} : function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
o[k2] = m[k];
|
||||
});
|
||||
|
||||
var __exportStar = function(m, exports) {
|
||||
for (var p in m) {
|
||||
if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) {
|
||||
__createBinding(exports, m, p);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
|
||||
// 导出所有模块
|
||||
exports.createRouter = void 0;
|
||||
exports.RouterMount = void 0;
|
||||
exports.runtimeQuit = void 0;
|
||||
|
||||
__exportStar(require("366"), exports); // 常量定义
|
||||
__exportStar(require("309"), exports); // 类型定义
|
||||
|
||||
var registerLoddingPage = require("814");
|
||||
Object.defineProperty(exports, "runtimeQuit", {
|
||||
enumerable: true,
|
||||
get: function() {
|
||||
return registerLoddingPage.runtimeQuit;
|
||||
}
|
||||
});
|
||||
|
||||
var createRouter_1 = require("963");
|
||||
Object.defineProperty(exports, "RouterMount", {
|
||||
enumerable: true,
|
||||
get: function() {
|
||||
return createRouter_1.RouterMount;
|
||||
}
|
||||
});
|
||||
|
||||
Object.defineProperty(exports, "createRouter", {
|
||||
enumerable: true,
|
||||
get: function() {
|
||||
return createRouter_1.createRouter;
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
/**
|
||||
* 模块 366: 路由常量定义
|
||||
*/
|
||||
"366": function(module, exports) {
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
|
||||
exports.hookToggle = void 0;
|
||||
exports.navtypeToggle = void 0;
|
||||
exports.rewriteMethodToggle = void 0;
|
||||
|
||||
// 钩子类型切换
|
||||
var hookToggle;
|
||||
(function(hookToggle) {
|
||||
hookToggle["beforeHooks"] = "beforeEach";
|
||||
hookToggle["afterHooks"] = "afterEach";
|
||||
hookToggle["enterHooks"] = "beforeEnter";
|
||||
})(hookToggle = exports.hookToggle || (exports.hookToggle = {}));
|
||||
|
||||
// 导航类型切换
|
||||
var navtypeToggle;
|
||||
(function(navtypeToggle) {
|
||||
navtypeToggle["push"] = "navigateTo";
|
||||
navtypeToggle["replace"] = "redirectTo";
|
||||
navtypeToggle["replaceAll"] = "reLaunch";
|
||||
navtypeToggle["pushTab"] = "switchTab";
|
||||
navtypeToggle["back"] = "navigateBack";
|
||||
})(navtypeToggle = exports.navtypeToggle || (exports.navtypeToggle = {}));
|
||||
|
||||
// 方法重写映射
|
||||
var rewriteMethodToggle;
|
||||
(function(rewriteMethodToggle) {
|
||||
rewriteMethodToggle["navigateTo"] = "push";
|
||||
rewriteMethodToggle["navigate"] = "push";
|
||||
rewriteMethodToggle["redirectTo"] = "replace";
|
||||
rewriteMethodToggle["reLaunch"] = "replaceAll";
|
||||
rewriteMethodToggle["switchTab"] = "pushTab";
|
||||
rewriteMethodToggle["navigateBack"] = "back";
|
||||
})(rewriteMethodToggle = exports.rewriteMethodToggle || (exports.rewriteMethodToggle = {}));
|
||||
},
|
||||
|
||||
/**
|
||||
* 模块 963: 创建路由器
|
||||
*/
|
||||
"963": function(module, exports, require) {
|
||||
"use strict";
|
||||
|
||||
var __assign = (Object.assign || 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;
|
||||
});
|
||||
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
|
||||
exports.createRouter = void 0;
|
||||
exports.RouterMount = void 0;
|
||||
|
||||
var baseConfig = require("282");
|
||||
var utils = require("789");
|
||||
var registerHooks = require("662");
|
||||
var mixins = require("460");
|
||||
var navjump = require("890");
|
||||
var rewriteMethod = require("314");
|
||||
|
||||
/**
|
||||
* 创建路由器实例
|
||||
* @param {Object} options - 路由配置
|
||||
*/
|
||||
function createRouter(options) {
|
||||
var config = utils.assertNewOptions(options);
|
||||
|
||||
var router = {
|
||||
// 配置选项
|
||||
options: config,
|
||||
|
||||
// 挂载队列
|
||||
mount: [],
|
||||
|
||||
// Vue实例
|
||||
Vue: null,
|
||||
|
||||
// 代理钩子依赖
|
||||
proxyHookDeps: baseConfig.proxyHookDeps,
|
||||
|
||||
// App主实例
|
||||
appMain: {},
|
||||
|
||||
// 进入路径
|
||||
enterPath: "",
|
||||
|
||||
// 当前路由
|
||||
$route: null,
|
||||
|
||||
// 锁定状态
|
||||
$lockStatus: false,
|
||||
|
||||
// 路由映射
|
||||
routesMap: {},
|
||||
|
||||
// 生命周期
|
||||
lifeCycle: registerHooks.registerRouterHooks(
|
||||
baseConfig.lifeCycle,
|
||||
config
|
||||
),
|
||||
|
||||
// ========== 导航方法 ==========
|
||||
|
||||
/**
|
||||
* Push导航
|
||||
* @param {Object|string} location - 目标位置
|
||||
*/
|
||||
push: function(location) {
|
||||
navjump.lockNavjump(location, router, "push");
|
||||
},
|
||||
|
||||
/**
|
||||
* Replace导航
|
||||
* @param {Object|string} location - 目标位置
|
||||
*/
|
||||
replace: function(location) {
|
||||
navjump.lockNavjump(location, router, "replace");
|
||||
},
|
||||
|
||||
/**
|
||||
* ReplaceAll导航
|
||||
* @param {Object|string} location - 目标位置
|
||||
*/
|
||||
replaceAll: function(location) {
|
||||
navjump.lockNavjump(location, router, "replaceAll");
|
||||
},
|
||||
|
||||
/**
|
||||
* PushTab导航
|
||||
* @param {Object|string} location - 目标位置
|
||||
*/
|
||||
pushTab: function(location) {
|
||||
navjump.lockNavjump(location, router, "pushTab");
|
||||
},
|
||||
|
||||
/**
|
||||
* 返回导航
|
||||
* @param {number} delta - 返回层数
|
||||
* @param {Object} options - 选项
|
||||
*/
|
||||
back: function(delta, options) {
|
||||
if (delta === void 0) delta = 1;
|
||||
|
||||
if (utils.getDataType(options) !== "[object Object]") {
|
||||
options = { from: "navigateBack" };
|
||||
} else if (!Reflect.has(options, "from")) {
|
||||
options = __assign(__assign({}, options), { from: "navigateBack" });
|
||||
}
|
||||
|
||||
navjump.lockNavjump(delta + "", router, "back", void 0, options);
|
||||
},
|
||||
|
||||
/**
|
||||
* 强制触发守卫
|
||||
* @param {string} NAVTYPE - 导航类型
|
||||
* @param {boolean} passthrough - 是否穿透
|
||||
*/
|
||||
forceGuardEach: function(NAVTYPE, passthrough) {
|
||||
navjump.forceGuardEach(router, NAVTYPE, passthrough);
|
||||
},
|
||||
|
||||
// ========== 路由守卫 ==========
|
||||
|
||||
/**
|
||||
* 前置守卫
|
||||
* @param {Function} fn - 守卫函数
|
||||
*/
|
||||
beforeEach: function(fn) {
|
||||
registerHooks.registerEachHooks(router, "beforeHooks", fn);
|
||||
},
|
||||
|
||||
/**
|
||||
* 后置守卫
|
||||
* @param {Function} fn - 守卫函数
|
||||
*/
|
||||
afterEach: function(fn) {
|
||||
registerHooks.registerEachHooks(router, "afterHooks", fn);
|
||||
},
|
||||
|
||||
/**
|
||||
* 安装到Vue
|
||||
* @param {Vue} Vue - Vue构造函数
|
||||
*/
|
||||
install: function(Vue) {
|
||||
router.Vue = Vue;
|
||||
|
||||
// 重写uni方法
|
||||
rewriteMethod.rewriteMethod(router);
|
||||
|
||||
// 初始化mixins
|
||||
mixins.initMixins(Vue, router);
|
||||
|
||||
// 定义$Router属性
|
||||
Object.defineProperty(Vue.prototype, "$Router", {
|
||||
get: function() {
|
||||
var routerInstance = router;
|
||||
|
||||
Object.defineProperty(this, "$Router", {
|
||||
value: routerInstance,
|
||||
writable: false,
|
||||
configurable: false,
|
||||
enumerable: false
|
||||
});
|
||||
|
||||
Object.seal(routerInstance);
|
||||
return routerInstance;
|
||||
}
|
||||
});
|
||||
|
||||
// 定义$Route属性
|
||||
Object.defineProperty(Vue.prototype, "$Route", {
|
||||
get: function() {
|
||||
return navjump.createRoute(router);
|
||||
}
|
||||
});
|
||||
|
||||
// 定义$AppReady属性
|
||||
Object.defineProperty(Vue.prototype, "$AppReady", {
|
||||
get: function() {
|
||||
if (router.options.platform === "h5") {
|
||||
return Promise.resolve();
|
||||
}
|
||||
return appReadyPromise;
|
||||
},
|
||||
set: function(val) {
|
||||
if (val === true) {
|
||||
resolveAppReady();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
// 定义currentRoute只读属性
|
||||
utils.def(router, "currentRoute", function() {
|
||||
return navjump.createRoute(router);
|
||||
});
|
||||
|
||||
// 注册默认守卫
|
||||
router.beforeEach(function(to, from, next) {
|
||||
return next();
|
||||
});
|
||||
|
||||
router.afterEach(function() {});
|
||||
|
||||
return router;
|
||||
}
|
||||
|
||||
exports.createRouter = createRouter;
|
||||
|
||||
/**
|
||||
* 挂载路由到Vue实例
|
||||
* @param {Vue} app - Vue实例
|
||||
* @param {Router} router - 路由器实例
|
||||
* @param {string} el - 挂载元素
|
||||
*/
|
||||
function RouterMount(app, router, el) {
|
||||
if (el === void 0) el = "#app";
|
||||
|
||||
if (utils.getDataType(router.mount) !== "[object Array]") {
|
||||
throw new Error("挂载路由失败,router.app 应该为数组类型。当前类型:" +
|
||||
typeof router.mount);
|
||||
}
|
||||
|
||||
router.mount.push({
|
||||
app: app,
|
||||
el: el
|
||||
});
|
||||
|
||||
// H5平台特殊处理
|
||||
if (router.options.platform === "h5") {
|
||||
var vueRouter = router.$route;
|
||||
vueRouter.replace({
|
||||
path: vueRouter.currentRoute.fullPath
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
exports.RouterMount = RouterMount;
|
||||
|
||||
var appReadyPromise = new Promise(function(resolve) {
|
||||
resolveAppReady = resolve;
|
||||
});
|
||||
|
||||
var resolveAppReady;
|
||||
},
|
||||
|
||||
// ==================== 更多模块... ====================
|
||||
// 由于文件过大,以下省略其他模块
|
||||
// 完整模块列表见 chunk-vendors.4d47960d.ANALYSIS.md
|
||||
|
||||
}
|
||||
]);
|
||||
|
||||
// ==================== 说明 ====================
|
||||
/**
|
||||
* 此文件包含以下主要库:
|
||||
*
|
||||
* 1. uni-simple-router (路由库)
|
||||
* - 模块 607, 366, 963, 890, 845, 169, 789, etc.
|
||||
* - 完整的路由管理功能
|
||||
* - 页面导航、守卫、生命周期
|
||||
*
|
||||
* 2. 加密库
|
||||
* - 模块 0116 (HMAC)
|
||||
* - 模块 0168 (Cipher)
|
||||
* - 模块 5f79 (Buffer)
|
||||
* - 模块 1177 (MD5)
|
||||
* - 模块 2d81 (RMD160)
|
||||
* - 模块 25a4 (SHA)
|
||||
*
|
||||
* 3. 核心Polyfills
|
||||
* - 模块 00c2 (indexOf)
|
||||
* - 模块 00ca (getOwnPropertyNames)
|
||||
* - 其他Object/Array方法
|
||||
*
|
||||
* 4. 工具函数
|
||||
* - 对象操作
|
||||
* - 数组操作
|
||||
* - 类型判断
|
||||
* - 继承工具
|
||||
*
|
||||
* 总共包含约200+个模块
|
||||
* 完整列表和详细说明见分析文档
|
||||
*/
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user