lazy-bee 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/workflows/npm-publish-github-packages.yml +40 -0
- package/README.md +3 -0
- package/index.d.ts +160 -0
- package/index.js +13 -0
- package/package.json +19 -0
- package/src/lazy-bee.js +1853 -0
package/src/lazy-bee.js
ADDED
|
@@ -0,0 +1,1853 @@
|
|
|
1
|
+
(function(){"use strict";try{if(typeof document<"u"){var e=document.createElement("style");e.appendChild(document.createTextNode('@keyframes fadeInOut-5966a29e{0%{opacity:0}to{opacity:1}}.fade-in-out[data-v-5966a29e]{opacity:0;animation-name:fadeInOut-5966a29e;animation-duration:.25s;animation-fill-mode:forwards;animation-timing-function:ease-in-out}.login-modal__content[data-v-5966a29e]{z-index:100;width:85vw;box-sizing:border-box;padding:8vw 4vw 4vw;position:fixed;top:50%;left:50%;margin:-40vw 0 0 -42.5vw;border-radius:4vw;background:#fff}.login-modal[data-v-5966a29e]:after{content:"";position:fixed;background:#0009;top:0;right:0;bottom:0;left:0;z-index:1}.login-modal__logo[data-v-5966a29e]{display:block;width:40%;margin:0 auto 2.666667vw}.login-modal__colse[data-v-5966a29e]{color:#999;background:#f2f2f2;width:5.4vw;height:5.4vw;border-radius:50%;position:absolute;top:2vw;right:3vw;display:flex;justify-content:center;align-items:center;line-height:1em;font-size:3.733333vw}.login-modal[data-v-5966a29e] .login__mobile,.login-modal[data-v-5966a29e] .login__sms{position:relative;display:flex;padding:3.2vw 4.266667vw}.login-modal[data-v-5966a29e] .login__mobile:after,.login-modal[data-v-5966a29e] .login__sms:after{content:"";position:absolute;box-sizing:border-box;pointer-events:none;right:4.266667vw;bottom:0;left:4.266667vw;border-bottom:1px solid #ebedf0;-webkit-transform:scaleY(.5);transform:scaleY(.5)}.login-modal[data-v-5966a29e] .login__mobile-value,.login-modal[data-v-5966a29e] .login__sms-value{display:block;box-sizing:border-box;width:100%;min-width:0;margin:0;padding:0;color:#323233;background-color:transparent;border:0;resize:none;-webkit-user-select:auto;user-select:auto;flex:1;font-size:3.733333vw}.login-modal[data-v-5966a29e] .login__mobile-value::-webkit-input-placeholder,.login-modal[data-v-5966a29e] .login__sms-value::-webkit-input-placeholder{color:#c8c9cc}.login-modal[data-v-5966a29e] .login__sms-btn,.login-modal[data-v-5966a29e] .login__sms-countdown{color:#0089fe;font-size:3.466667vw}.login-modal[data-v-5966a29e] .login__btn{height:10.666667vw;line-height:10.666667vw;text-align:center;border-radius:5.333334vw;background-image:-webkit-linear-gradient(left,#ffdb69 0%,#ffa641 100%);background-image:linear-gradient(90deg,#ffdb69,#ffa641);font-size:4.266667vw;color:#7f4300;border:0;width:90%;margin:6.666667vw auto 2.666667vw}.login-page[data-v-35d8ed75]{background:#f5f7fa;width:100vw;height:100vh;box-sizing:border-box;padding-top:9%}.login-page__logo[data-v-35d8ed75]{display:block;margin:0 auto;width:36%}.login-page__tips[data-v-35d8ed75]{text-align:center;line-height:12vw;font-size:4.266667vw;color:#006eff;margin:0 0 2.666667vw}.login-page[data-v-35d8ed75] .login__mobile,.login-page[data-v-35d8ed75] .login__sms{display:flex;margin:0 12% 4.666667vw;height:12vw;border:1px solid #dbdbdb;border-radius:6vw;align-items:center;position:relative;overflow:hidden}.login-page[data-v-35d8ed75] .login__mobile:before,.login-page[data-v-35d8ed75] .login__sms:before{content:"";width:9.066667vw;height:9.066667vw;position:absolute;top:1.466667vw;left:2vw}.login-page[data-v-35d8ed75] .login__mobile:before{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAkCAYAAACaJFpUAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDE0IDc5LjE1MTQ4MSwgMjAxMy8wMy8xMy0xMjowOToxNSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoxRkI1RDQ3QTNFNDYxMUU5OEYyQ0I4RkMzQ0NGRjAwOCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoxRkI1RDQ3QjNFNDYxMUU5OEYyQ0I4RkMzQ0NGRjAwOCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjFGQjVENDc4M0U0NjExRTk4RjJDQjhGQzNDQ0ZGMDA4IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjFGQjVENDc5M0U0NjExRTk4RjJDQjhGQzNDQ0ZGMDA4Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+IAy/xgAAATBJREFUeNpi/P//PwMIMOYzmAGpTiC2AWIWBuqAP0B8BIjLgfjU/4lAe0AWAi2zAAocAmJWIP4NxM+B+D+FljECsSSSmXZAC0/AfNIDlVgIxLlAic9YTcgn2VJeIJ4MxPFQO2yYoBIgH74D4nRclpEJQGalQ80G2cEAs5AZiB8DLfvJQH0AMvMx1A64hXQDoxaOWjhq4aiFoxaOWjhq4aiFw8FC5BY2D7Dd6UAje3iwWagMxPvp6cNnQNxNI3tKgVgK3cLXwIbwBLydhXyyLUyAWUhOolEC4vNAfAmINeiRSqOA2ACIdaGdFLIs/AvEssAgYydCzzYg/gDtqGwhQj3ITFmoHXALTwCxEBDPBFrKS8CAc0AsDsQiQHyUiO7aTKjZJ8DpgN4dUkZ6d7kBAgwA4yxQRxK3w+IAAAAASUVORK5CYII=) no-repeat center center / auto 90%}.login-page[data-v-35d8ed75] .login__sms:before{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAiCAYAAABMfblJAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDE0IDc5LjE1MTQ4MSwgMjAxMy8wMy8xMy0xMjowOToxNSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoxRkI1RDQ3NjNFNDYxMUU5OEYyQ0I4RkMzQ0NGRjAwOCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoxRkI1RDQ3NzNFNDYxMUU5OEYyQ0I4RkMzQ0NGRjAwOCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjFGQjVENDc0M0U0NjExRTk4RjJDQjhGQzNDQ0ZGMDA4IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjFGQjVENDc1M0U0NjExRTk4RjJDQjhGQzNDQ0ZGMDA4Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+32e7/gAAAutJREFUeNrsl1uITVEYx/c+jPFw0ohiEmZcilxKSq55mQeKKUUu5T45gzh4QErMyOVBMZPBg7sS3jCpIdcUeZB7piiEpnFrXAcdx++r/56O0zlnzj4XT1b9zlpnX9Z/fWt937fWdp2VUcdnGQxH4DcsjNY4T/y8HPDxbBCq4S6MgtFwzw07VRBMtxM3DQutsyWwFnpABGqhAyxX3QQ74CAWf8lUcDjMhQoo0rUrsNos0/8RsAsm6v9HOADHEX6QTHAgdS/oBv1hJIyB3jHPXYRtcDW+Azp2mNIymuugLObWS7gJd+AZvINXJhhJspb2wkkbLTxMNg0m2Db6sDNMszIrbsBeiZigzekPWWEjuQ/X4Wk6ThAr+NfUhZ1BVONhKAyQ9YWe4AsocTIoyQQTDOA5Vd+A84/Lf8Gcl4656ASHsGyzX6EwDUf6njdBiR2DObrUBxrzNaUu1MWI1WJdYz7XcCeE1LYcuipbpwkq69iUdYq7Z1vVGrVPQCXWRbN1GluPCaIzzNb2ZIl6o545BwsQi+TCSx9rn1sPM6AVbumalUswHbFffuPQTfHMBrm8o52gTu0bUI7YTx9aUftphp4J1qgtP8MybVNeuQ1T4FuaoVMojeaANkgTG5dqU7ADE+yBeom1+PBm67vAtAJadCuL2nnJnGIFTIW3PsNnnuqzJngKvsJMKM117mQ6S5UYTOO0Cb6XIxTEOEQuy271bVnog+elW3XUmwxLc2idLVM5vIbtsWHxyYJX7RoFerZiY6n2ev6BdZ/jU1sDVMn8eh0XMxWz09sZOzTBJsQuJMulJngUusBlnbr8ilkIXIPudhKHLamSt8XbYn2seKKVPsRCeqcrHLKdJD6hB5LEmy32Zk3vPsVqSQqhfnBeKbBAib0iUUJv72NmkkZarMRt7cPKTq6+omxw8yX0Rg7SkM3XU5GsDWmLsuIlbC//tsojqxFryfZzzSvFyqcWV0N07ZGlK7McoaZ0OvkjwADFiMfga/YjDAAAAABJRU5ErkJggg==) no-repeat center center / auto 90%}.login-page[data-v-35d8ed75] .login__mobile-value,.login-page[data-v-35d8ed75] .login__sms-value{width:100%;height:100%;background:transparent;border:0;box-sizing:border-box;padding:0 4vw 0 12vw;resize:none;-webkit-user-select:auto;user-select:auto;flex:1}.login-page[data-v-35d8ed75] .login__sms-btn,.login-page[data-v-35d8ed75] .login__sms-countdown{width:40%;height:100%;text-align:center;line-height:12vw;color:#006eff;font-size:4vw}.login-page[data-v-35d8ed75] .login__btn{display:block;margin:5.333333vw 12%;background:linear-gradient(180deg,#0973ff,#3d90ff);height:11.733333vw;line-height:11.733333vw;border-radius:5.866667vw;text-align:center;color:#fff;font-size:4vw}')),document.head.appendChild(e)}}catch(i){console.error("vite-plugin-css-injected-by-js",i)}})();
|
|
2
|
+
import Pe, { Get as O } from "lazy-koala";
|
|
3
|
+
import { ref as X, openBlock as q, createElementBlock as H, createElementVNode as G, withDirectives as ie, vModelText as se, toDisplayString as Ee, createVNode as ge, pushScopeId as me, popScopeId as Be, h as Se, render as ce } from "vue";
|
|
4
|
+
var I = typeof globalThis < "u" ? globalThis : typeof window < "u" ? window : typeof global < "u" ? global : typeof self < "u" ? self : {};
|
|
5
|
+
function Ye(o) {
|
|
6
|
+
if (o.__esModule) return o;
|
|
7
|
+
var w = o.default;
|
|
8
|
+
if (typeof w == "function") {
|
|
9
|
+
var i = function s() {
|
|
10
|
+
return this instanceof s ? Reflect.construct(w, arguments, this.constructor) : w.apply(this, arguments);
|
|
11
|
+
};
|
|
12
|
+
i.prototype = w.prototype;
|
|
13
|
+
} else i = {};
|
|
14
|
+
return Object.defineProperty(i, "__esModule", { value: !0 }), Object.keys(o).forEach(function(s) {
|
|
15
|
+
var k = Object.getOwnPropertyDescriptor(o, s);
|
|
16
|
+
Object.defineProperty(i, s, k.get ? k : {
|
|
17
|
+
enumerable: !0,
|
|
18
|
+
get: function() {
|
|
19
|
+
return o[s];
|
|
20
|
+
}
|
|
21
|
+
});
|
|
22
|
+
}), i;
|
|
23
|
+
}
|
|
24
|
+
var ze = { exports: {} };
|
|
25
|
+
function De(o) {
|
|
26
|
+
throw new Error('Could not dynamically require "' + o + '". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.');
|
|
27
|
+
}
|
|
28
|
+
var J = { exports: {} };
|
|
29
|
+
const Le = {}, Te = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
30
|
+
__proto__: null,
|
|
31
|
+
default: Le
|
|
32
|
+
}, Symbol.toStringTag, { value: "Module" })), We = /* @__PURE__ */ Ye(Te);
|
|
33
|
+
var fe;
|
|
34
|
+
function F() {
|
|
35
|
+
return fe || (fe = 1, function(o, w) {
|
|
36
|
+
(function(i, s) {
|
|
37
|
+
o.exports = s();
|
|
38
|
+
})(I, function() {
|
|
39
|
+
var i = i || function(s, k) {
|
|
40
|
+
var P;
|
|
41
|
+
if (typeof window < "u" && window.crypto && (P = window.crypto), typeof self < "u" && self.crypto && (P = self.crypto), typeof globalThis < "u" && globalThis.crypto && (P = globalThis.crypto), !P && typeof window < "u" && window.msCrypto && (P = window.msCrypto), !P && typeof I < "u" && I.crypto && (P = I.crypto), !P && typeof De == "function")
|
|
42
|
+
try {
|
|
43
|
+
P = We;
|
|
44
|
+
} catch {
|
|
45
|
+
}
|
|
46
|
+
var W = function() {
|
|
47
|
+
if (P) {
|
|
48
|
+
if (typeof P.getRandomValues == "function")
|
|
49
|
+
try {
|
|
50
|
+
return P.getRandomValues(new Uint32Array(1))[0];
|
|
51
|
+
} catch {
|
|
52
|
+
}
|
|
53
|
+
if (typeof P.randomBytes == "function")
|
|
54
|
+
try {
|
|
55
|
+
return P.randomBytes(4).readInt32LE();
|
|
56
|
+
} catch {
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
throw new Error("Native crypto module could not be used to get secure random number.");
|
|
60
|
+
}, C = Object.create || /* @__PURE__ */ function() {
|
|
61
|
+
function n() {
|
|
62
|
+
}
|
|
63
|
+
return function(e) {
|
|
64
|
+
var a;
|
|
65
|
+
return n.prototype = e, a = new n(), n.prototype = null, a;
|
|
66
|
+
};
|
|
67
|
+
}(), z = {}, t = z.lib = {}, b = t.Base = /* @__PURE__ */ function() {
|
|
68
|
+
return {
|
|
69
|
+
/**
|
|
70
|
+
* Creates a new object that inherits from this object.
|
|
71
|
+
*
|
|
72
|
+
* @param {Object} overrides Properties to copy into the new object.
|
|
73
|
+
*
|
|
74
|
+
* @return {Object} The new object.
|
|
75
|
+
*
|
|
76
|
+
* @static
|
|
77
|
+
*
|
|
78
|
+
* @example
|
|
79
|
+
*
|
|
80
|
+
* var MyType = CryptoJS.lib.Base.extend({
|
|
81
|
+
* field: 'value',
|
|
82
|
+
*
|
|
83
|
+
* method: function () {
|
|
84
|
+
* }
|
|
85
|
+
* });
|
|
86
|
+
*/
|
|
87
|
+
extend: function(n) {
|
|
88
|
+
var e = C(this);
|
|
89
|
+
return n && e.mixIn(n), (!e.hasOwnProperty("init") || this.init === e.init) && (e.init = function() {
|
|
90
|
+
e.$super.init.apply(this, arguments);
|
|
91
|
+
}), e.init.prototype = e, e.$super = this, e;
|
|
92
|
+
},
|
|
93
|
+
/**
|
|
94
|
+
* Extends this object and runs the init method.
|
|
95
|
+
* Arguments to create() will be passed to init().
|
|
96
|
+
*
|
|
97
|
+
* @return {Object} The new object.
|
|
98
|
+
*
|
|
99
|
+
* @static
|
|
100
|
+
*
|
|
101
|
+
* @example
|
|
102
|
+
*
|
|
103
|
+
* var instance = MyType.create();
|
|
104
|
+
*/
|
|
105
|
+
create: function() {
|
|
106
|
+
var n = this.extend();
|
|
107
|
+
return n.init.apply(n, arguments), n;
|
|
108
|
+
},
|
|
109
|
+
/**
|
|
110
|
+
* Initializes a newly created object.
|
|
111
|
+
* Override this method to add some logic when your objects are created.
|
|
112
|
+
*
|
|
113
|
+
* @example
|
|
114
|
+
*
|
|
115
|
+
* var MyType = CryptoJS.lib.Base.extend({
|
|
116
|
+
* init: function () {
|
|
117
|
+
* // ...
|
|
118
|
+
* }
|
|
119
|
+
* });
|
|
120
|
+
*/
|
|
121
|
+
init: function() {
|
|
122
|
+
},
|
|
123
|
+
/**
|
|
124
|
+
* Copies properties into this object.
|
|
125
|
+
*
|
|
126
|
+
* @param {Object} properties The properties to mix in.
|
|
127
|
+
*
|
|
128
|
+
* @example
|
|
129
|
+
*
|
|
130
|
+
* MyType.mixIn({
|
|
131
|
+
* field: 'value'
|
|
132
|
+
* });
|
|
133
|
+
*/
|
|
134
|
+
mixIn: function(n) {
|
|
135
|
+
for (var e in n)
|
|
136
|
+
n.hasOwnProperty(e) && (this[e] = n[e]);
|
|
137
|
+
n.hasOwnProperty("toString") && (this.toString = n.toString);
|
|
138
|
+
},
|
|
139
|
+
/**
|
|
140
|
+
* Creates a copy of this object.
|
|
141
|
+
*
|
|
142
|
+
* @return {Object} The clone.
|
|
143
|
+
*
|
|
144
|
+
* @example
|
|
145
|
+
*
|
|
146
|
+
* var clone = instance.clone();
|
|
147
|
+
*/
|
|
148
|
+
clone: function() {
|
|
149
|
+
return this.init.prototype.extend(this);
|
|
150
|
+
}
|
|
151
|
+
};
|
|
152
|
+
}(), x = t.WordArray = b.extend({
|
|
153
|
+
/**
|
|
154
|
+
* Initializes a newly created word array.
|
|
155
|
+
*
|
|
156
|
+
* @param {Array} words (Optional) An array of 32-bit words.
|
|
157
|
+
* @param {number} sigBytes (Optional) The number of significant bytes in the words.
|
|
158
|
+
*
|
|
159
|
+
* @example
|
|
160
|
+
*
|
|
161
|
+
* var wordArray = CryptoJS.lib.WordArray.create();
|
|
162
|
+
* var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607]);
|
|
163
|
+
* var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607], 6);
|
|
164
|
+
*/
|
|
165
|
+
init: function(n, e) {
|
|
166
|
+
n = this.words = n || [], e != k ? this.sigBytes = e : this.sigBytes = n.length * 4;
|
|
167
|
+
},
|
|
168
|
+
/**
|
|
169
|
+
* Converts this word array to a string.
|
|
170
|
+
*
|
|
171
|
+
* @param {Encoder} encoder (Optional) The encoding strategy to use. Default: CryptoJS.enc.Hex
|
|
172
|
+
*
|
|
173
|
+
* @return {string} The stringified word array.
|
|
174
|
+
*
|
|
175
|
+
* @example
|
|
176
|
+
*
|
|
177
|
+
* var string = wordArray + '';
|
|
178
|
+
* var string = wordArray.toString();
|
|
179
|
+
* var string = wordArray.toString(CryptoJS.enc.Utf8);
|
|
180
|
+
*/
|
|
181
|
+
toString: function(n) {
|
|
182
|
+
return (n || g).stringify(this);
|
|
183
|
+
},
|
|
184
|
+
/**
|
|
185
|
+
* Concatenates a word array to this word array.
|
|
186
|
+
*
|
|
187
|
+
* @param {WordArray} wordArray The word array to append.
|
|
188
|
+
*
|
|
189
|
+
* @return {WordArray} This word array.
|
|
190
|
+
*
|
|
191
|
+
* @example
|
|
192
|
+
*
|
|
193
|
+
* wordArray1.concat(wordArray2);
|
|
194
|
+
*/
|
|
195
|
+
concat: function(n) {
|
|
196
|
+
var e = this.words, a = n.words, p = this.sigBytes, A = n.sigBytes;
|
|
197
|
+
if (this.clamp(), p % 4)
|
|
198
|
+
for (var S = 0; S < A; S++) {
|
|
199
|
+
var Q = a[S >>> 2] >>> 24 - S % 4 * 8 & 255;
|
|
200
|
+
e[p + S >>> 2] |= Q << 24 - (p + S) % 4 * 8;
|
|
201
|
+
}
|
|
202
|
+
else
|
|
203
|
+
for (var T = 0; T < A; T += 4)
|
|
204
|
+
e[p + T >>> 2] = a[T >>> 2];
|
|
205
|
+
return this.sigBytes += A, this;
|
|
206
|
+
},
|
|
207
|
+
/**
|
|
208
|
+
* Removes insignificant bits.
|
|
209
|
+
*
|
|
210
|
+
* @example
|
|
211
|
+
*
|
|
212
|
+
* wordArray.clamp();
|
|
213
|
+
*/
|
|
214
|
+
clamp: function() {
|
|
215
|
+
var n = this.words, e = this.sigBytes;
|
|
216
|
+
n[e >>> 2] &= 4294967295 << 32 - e % 4 * 8, n.length = s.ceil(e / 4);
|
|
217
|
+
},
|
|
218
|
+
/**
|
|
219
|
+
* Creates a copy of this word array.
|
|
220
|
+
*
|
|
221
|
+
* @return {WordArray} The clone.
|
|
222
|
+
*
|
|
223
|
+
* @example
|
|
224
|
+
*
|
|
225
|
+
* var clone = wordArray.clone();
|
|
226
|
+
*/
|
|
227
|
+
clone: function() {
|
|
228
|
+
var n = b.clone.call(this);
|
|
229
|
+
return n.words = this.words.slice(0), n;
|
|
230
|
+
},
|
|
231
|
+
/**
|
|
232
|
+
* Creates a word array filled with random bytes.
|
|
233
|
+
*
|
|
234
|
+
* @param {number} nBytes The number of random bytes to generate.
|
|
235
|
+
*
|
|
236
|
+
* @return {WordArray} The random word array.
|
|
237
|
+
*
|
|
238
|
+
* @static
|
|
239
|
+
*
|
|
240
|
+
* @example
|
|
241
|
+
*
|
|
242
|
+
* var wordArray = CryptoJS.lib.WordArray.random(16);
|
|
243
|
+
*/
|
|
244
|
+
random: function(n) {
|
|
245
|
+
for (var e = [], a = 0; a < n; a += 4)
|
|
246
|
+
e.push(W());
|
|
247
|
+
return new x.init(e, n);
|
|
248
|
+
}
|
|
249
|
+
}), d = z.enc = {}, g = d.Hex = {
|
|
250
|
+
/**
|
|
251
|
+
* Converts a word array to a hex string.
|
|
252
|
+
*
|
|
253
|
+
* @param {WordArray} wordArray The word array.
|
|
254
|
+
*
|
|
255
|
+
* @return {string} The hex string.
|
|
256
|
+
*
|
|
257
|
+
* @static
|
|
258
|
+
*
|
|
259
|
+
* @example
|
|
260
|
+
*
|
|
261
|
+
* var hexString = CryptoJS.enc.Hex.stringify(wordArray);
|
|
262
|
+
*/
|
|
263
|
+
stringify: function(n) {
|
|
264
|
+
for (var e = n.words, a = n.sigBytes, p = [], A = 0; A < a; A++) {
|
|
265
|
+
var S = e[A >>> 2] >>> 24 - A % 4 * 8 & 255;
|
|
266
|
+
p.push((S >>> 4).toString(16)), p.push((S & 15).toString(16));
|
|
267
|
+
}
|
|
268
|
+
return p.join("");
|
|
269
|
+
},
|
|
270
|
+
/**
|
|
271
|
+
* Converts a hex string to a word array.
|
|
272
|
+
*
|
|
273
|
+
* @param {string} hexStr The hex string.
|
|
274
|
+
*
|
|
275
|
+
* @return {WordArray} The word array.
|
|
276
|
+
*
|
|
277
|
+
* @static
|
|
278
|
+
*
|
|
279
|
+
* @example
|
|
280
|
+
*
|
|
281
|
+
* var wordArray = CryptoJS.enc.Hex.parse(hexString);
|
|
282
|
+
*/
|
|
283
|
+
parse: function(n) {
|
|
284
|
+
for (var e = n.length, a = [], p = 0; p < e; p += 2)
|
|
285
|
+
a[p >>> 3] |= parseInt(n.substr(p, 2), 16) << 24 - p % 8 * 4;
|
|
286
|
+
return new x.init(a, e / 2);
|
|
287
|
+
}
|
|
288
|
+
}, E = d.Latin1 = {
|
|
289
|
+
/**
|
|
290
|
+
* Converts a word array to a Latin1 string.
|
|
291
|
+
*
|
|
292
|
+
* @param {WordArray} wordArray The word array.
|
|
293
|
+
*
|
|
294
|
+
* @return {string} The Latin1 string.
|
|
295
|
+
*
|
|
296
|
+
* @static
|
|
297
|
+
*
|
|
298
|
+
* @example
|
|
299
|
+
*
|
|
300
|
+
* var latin1String = CryptoJS.enc.Latin1.stringify(wordArray);
|
|
301
|
+
*/
|
|
302
|
+
stringify: function(n) {
|
|
303
|
+
for (var e = n.words, a = n.sigBytes, p = [], A = 0; A < a; A++) {
|
|
304
|
+
var S = e[A >>> 2] >>> 24 - A % 4 * 8 & 255;
|
|
305
|
+
p.push(String.fromCharCode(S));
|
|
306
|
+
}
|
|
307
|
+
return p.join("");
|
|
308
|
+
},
|
|
309
|
+
/**
|
|
310
|
+
* Converts a Latin1 string to a word array.
|
|
311
|
+
*
|
|
312
|
+
* @param {string} latin1Str The Latin1 string.
|
|
313
|
+
*
|
|
314
|
+
* @return {WordArray} The word array.
|
|
315
|
+
*
|
|
316
|
+
* @static
|
|
317
|
+
*
|
|
318
|
+
* @example
|
|
319
|
+
*
|
|
320
|
+
* var wordArray = CryptoJS.enc.Latin1.parse(latin1String);
|
|
321
|
+
*/
|
|
322
|
+
parse: function(n) {
|
|
323
|
+
for (var e = n.length, a = [], p = 0; p < e; p++)
|
|
324
|
+
a[p >>> 2] |= (n.charCodeAt(p) & 255) << 24 - p % 4 * 8;
|
|
325
|
+
return new x.init(a, e);
|
|
326
|
+
}
|
|
327
|
+
}, B = d.Utf8 = {
|
|
328
|
+
/**
|
|
329
|
+
* Converts a word array to a UTF-8 string.
|
|
330
|
+
*
|
|
331
|
+
* @param {WordArray} wordArray The word array.
|
|
332
|
+
*
|
|
333
|
+
* @return {string} The UTF-8 string.
|
|
334
|
+
*
|
|
335
|
+
* @static
|
|
336
|
+
*
|
|
337
|
+
* @example
|
|
338
|
+
*
|
|
339
|
+
* var utf8String = CryptoJS.enc.Utf8.stringify(wordArray);
|
|
340
|
+
*/
|
|
341
|
+
stringify: function(n) {
|
|
342
|
+
try {
|
|
343
|
+
return decodeURIComponent(escape(E.stringify(n)));
|
|
344
|
+
} catch {
|
|
345
|
+
throw new Error("Malformed UTF-8 data");
|
|
346
|
+
}
|
|
347
|
+
},
|
|
348
|
+
/**
|
|
349
|
+
* Converts a UTF-8 string to a word array.
|
|
350
|
+
*
|
|
351
|
+
* @param {string} utf8Str The UTF-8 string.
|
|
352
|
+
*
|
|
353
|
+
* @return {WordArray} The word array.
|
|
354
|
+
*
|
|
355
|
+
* @static
|
|
356
|
+
*
|
|
357
|
+
* @example
|
|
358
|
+
*
|
|
359
|
+
* var wordArray = CryptoJS.enc.Utf8.parse(utf8String);
|
|
360
|
+
*/
|
|
361
|
+
parse: function(n) {
|
|
362
|
+
return E.parse(unescape(encodeURIComponent(n)));
|
|
363
|
+
}
|
|
364
|
+
}, y = t.BufferedBlockAlgorithm = b.extend({
|
|
365
|
+
/**
|
|
366
|
+
* Resets this block algorithm's data buffer to its initial state.
|
|
367
|
+
*
|
|
368
|
+
* @example
|
|
369
|
+
*
|
|
370
|
+
* bufferedBlockAlgorithm.reset();
|
|
371
|
+
*/
|
|
372
|
+
reset: function() {
|
|
373
|
+
this._data = new x.init(), this._nDataBytes = 0;
|
|
374
|
+
},
|
|
375
|
+
/**
|
|
376
|
+
* Adds new data to this block algorithm's buffer.
|
|
377
|
+
*
|
|
378
|
+
* @param {WordArray|string} data The data to append. Strings are converted to a WordArray using UTF-8.
|
|
379
|
+
*
|
|
380
|
+
* @example
|
|
381
|
+
*
|
|
382
|
+
* bufferedBlockAlgorithm._append('data');
|
|
383
|
+
* bufferedBlockAlgorithm._append(wordArray);
|
|
384
|
+
*/
|
|
385
|
+
_append: function(n) {
|
|
386
|
+
typeof n == "string" && (n = B.parse(n)), this._data.concat(n), this._nDataBytes += n.sigBytes;
|
|
387
|
+
},
|
|
388
|
+
/**
|
|
389
|
+
* Processes available data blocks.
|
|
390
|
+
*
|
|
391
|
+
* This method invokes _doProcessBlock(offset), which must be implemented by a concrete subtype.
|
|
392
|
+
*
|
|
393
|
+
* @param {boolean} doFlush Whether all blocks and partial blocks should be processed.
|
|
394
|
+
*
|
|
395
|
+
* @return {WordArray} The processed data.
|
|
396
|
+
*
|
|
397
|
+
* @example
|
|
398
|
+
*
|
|
399
|
+
* var processedData = bufferedBlockAlgorithm._process();
|
|
400
|
+
* var processedData = bufferedBlockAlgorithm._process(!!'flush');
|
|
401
|
+
*/
|
|
402
|
+
_process: function(n) {
|
|
403
|
+
var e, a = this._data, p = a.words, A = a.sigBytes, S = this.blockSize, Q = S * 4, T = A / Q;
|
|
404
|
+
n ? T = s.ceil(T) : T = s.max((T | 0) - this._minBufferSize, 0);
|
|
405
|
+
var r = T * S, c = s.min(r * 4, A);
|
|
406
|
+
if (r) {
|
|
407
|
+
for (var m = 0; m < r; m += S)
|
|
408
|
+
this._doProcessBlock(p, m);
|
|
409
|
+
e = p.splice(0, r), a.sigBytes -= c;
|
|
410
|
+
}
|
|
411
|
+
return new x.init(e, c);
|
|
412
|
+
},
|
|
413
|
+
/**
|
|
414
|
+
* Creates a copy of this object.
|
|
415
|
+
*
|
|
416
|
+
* @return {Object} The clone.
|
|
417
|
+
*
|
|
418
|
+
* @example
|
|
419
|
+
*
|
|
420
|
+
* var clone = bufferedBlockAlgorithm.clone();
|
|
421
|
+
*/
|
|
422
|
+
clone: function() {
|
|
423
|
+
var n = b.clone.call(this);
|
|
424
|
+
return n._data = this._data.clone(), n;
|
|
425
|
+
},
|
|
426
|
+
_minBufferSize: 0
|
|
427
|
+
});
|
|
428
|
+
t.Hasher = y.extend({
|
|
429
|
+
/**
|
|
430
|
+
* Configuration options.
|
|
431
|
+
*/
|
|
432
|
+
cfg: b.extend(),
|
|
433
|
+
/**
|
|
434
|
+
* Initializes a newly created hasher.
|
|
435
|
+
*
|
|
436
|
+
* @param {Object} cfg (Optional) The configuration options to use for this hash computation.
|
|
437
|
+
*
|
|
438
|
+
* @example
|
|
439
|
+
*
|
|
440
|
+
* var hasher = CryptoJS.algo.SHA256.create();
|
|
441
|
+
*/
|
|
442
|
+
init: function(n) {
|
|
443
|
+
this.cfg = this.cfg.extend(n), this.reset();
|
|
444
|
+
},
|
|
445
|
+
/**
|
|
446
|
+
* Resets this hasher to its initial state.
|
|
447
|
+
*
|
|
448
|
+
* @example
|
|
449
|
+
*
|
|
450
|
+
* hasher.reset();
|
|
451
|
+
*/
|
|
452
|
+
reset: function() {
|
|
453
|
+
y.reset.call(this), this._doReset();
|
|
454
|
+
},
|
|
455
|
+
/**
|
|
456
|
+
* Updates this hasher with a message.
|
|
457
|
+
*
|
|
458
|
+
* @param {WordArray|string} messageUpdate The message to append.
|
|
459
|
+
*
|
|
460
|
+
* @return {Hasher} This hasher.
|
|
461
|
+
*
|
|
462
|
+
* @example
|
|
463
|
+
*
|
|
464
|
+
* hasher.update('message');
|
|
465
|
+
* hasher.update(wordArray);
|
|
466
|
+
*/
|
|
467
|
+
update: function(n) {
|
|
468
|
+
return this._append(n), this._process(), this;
|
|
469
|
+
},
|
|
470
|
+
/**
|
|
471
|
+
* Finalizes the hash computation.
|
|
472
|
+
* Note that the finalize operation is effectively a destructive, read-once operation.
|
|
473
|
+
*
|
|
474
|
+
* @param {WordArray|string} messageUpdate (Optional) A final message update.
|
|
475
|
+
*
|
|
476
|
+
* @return {WordArray} The hash.
|
|
477
|
+
*
|
|
478
|
+
* @example
|
|
479
|
+
*
|
|
480
|
+
* var hash = hasher.finalize();
|
|
481
|
+
* var hash = hasher.finalize('message');
|
|
482
|
+
* var hash = hasher.finalize(wordArray);
|
|
483
|
+
*/
|
|
484
|
+
finalize: function(n) {
|
|
485
|
+
n && this._append(n);
|
|
486
|
+
var e = this._doFinalize();
|
|
487
|
+
return e;
|
|
488
|
+
},
|
|
489
|
+
blockSize: 16,
|
|
490
|
+
/**
|
|
491
|
+
* Creates a shortcut function to a hasher's object interface.
|
|
492
|
+
*
|
|
493
|
+
* @param {Hasher} hasher The hasher to create a helper for.
|
|
494
|
+
*
|
|
495
|
+
* @return {Function} The shortcut function.
|
|
496
|
+
*
|
|
497
|
+
* @static
|
|
498
|
+
*
|
|
499
|
+
* @example
|
|
500
|
+
*
|
|
501
|
+
* var SHA256 = CryptoJS.lib.Hasher._createHelper(CryptoJS.algo.SHA256);
|
|
502
|
+
*/
|
|
503
|
+
_createHelper: function(n) {
|
|
504
|
+
return function(e, a) {
|
|
505
|
+
return new n.init(a).finalize(e);
|
|
506
|
+
};
|
|
507
|
+
},
|
|
508
|
+
/**
|
|
509
|
+
* Creates a shortcut function to the HMAC's object interface.
|
|
510
|
+
*
|
|
511
|
+
* @param {Hasher} hasher The hasher to use in this HMAC helper.
|
|
512
|
+
*
|
|
513
|
+
* @return {Function} The shortcut function.
|
|
514
|
+
*
|
|
515
|
+
* @static
|
|
516
|
+
*
|
|
517
|
+
* @example
|
|
518
|
+
*
|
|
519
|
+
* var HmacSHA256 = CryptoJS.lib.Hasher._createHmacHelper(CryptoJS.algo.SHA256);
|
|
520
|
+
*/
|
|
521
|
+
_createHmacHelper: function(n) {
|
|
522
|
+
return function(e, a) {
|
|
523
|
+
return new L.HMAC.init(n, a).finalize(e);
|
|
524
|
+
};
|
|
525
|
+
}
|
|
526
|
+
});
|
|
527
|
+
var L = z.algo = {};
|
|
528
|
+
return z;
|
|
529
|
+
}(Math);
|
|
530
|
+
return i;
|
|
531
|
+
});
|
|
532
|
+
}(J)), J.exports;
|
|
533
|
+
}
|
|
534
|
+
var R = { exports: {} }, le;
|
|
535
|
+
function Qe() {
|
|
536
|
+
return le || (le = 1, function(o, w) {
|
|
537
|
+
(function(i, s) {
|
|
538
|
+
o.exports = s(F());
|
|
539
|
+
})(I, function(i) {
|
|
540
|
+
return function() {
|
|
541
|
+
var s = i, k = s.lib, P = k.WordArray, W = s.enc;
|
|
542
|
+
W.Base64 = {
|
|
543
|
+
/**
|
|
544
|
+
* Converts a word array to a Base64 string.
|
|
545
|
+
*
|
|
546
|
+
* @param {WordArray} wordArray The word array.
|
|
547
|
+
*
|
|
548
|
+
* @return {string} The Base64 string.
|
|
549
|
+
*
|
|
550
|
+
* @static
|
|
551
|
+
*
|
|
552
|
+
* @example
|
|
553
|
+
*
|
|
554
|
+
* var base64String = CryptoJS.enc.Base64.stringify(wordArray);
|
|
555
|
+
*/
|
|
556
|
+
stringify: function(z) {
|
|
557
|
+
var t = z.words, b = z.sigBytes, x = this._map;
|
|
558
|
+
z.clamp();
|
|
559
|
+
for (var d = [], g = 0; g < b; g += 3)
|
|
560
|
+
for (var E = t[g >>> 2] >>> 24 - g % 4 * 8 & 255, B = t[g + 1 >>> 2] >>> 24 - (g + 1) % 4 * 8 & 255, y = t[g + 2 >>> 2] >>> 24 - (g + 2) % 4 * 8 & 255, L = E << 16 | B << 8 | y, n = 0; n < 4 && g + n * 0.75 < b; n++)
|
|
561
|
+
d.push(x.charAt(L >>> 6 * (3 - n) & 63));
|
|
562
|
+
var e = x.charAt(64);
|
|
563
|
+
if (e)
|
|
564
|
+
for (; d.length % 4; )
|
|
565
|
+
d.push(e);
|
|
566
|
+
return d.join("");
|
|
567
|
+
},
|
|
568
|
+
/**
|
|
569
|
+
* Converts a Base64 string to a word array.
|
|
570
|
+
*
|
|
571
|
+
* @param {string} base64Str The Base64 string.
|
|
572
|
+
*
|
|
573
|
+
* @return {WordArray} The word array.
|
|
574
|
+
*
|
|
575
|
+
* @static
|
|
576
|
+
*
|
|
577
|
+
* @example
|
|
578
|
+
*
|
|
579
|
+
* var wordArray = CryptoJS.enc.Base64.parse(base64String);
|
|
580
|
+
*/
|
|
581
|
+
parse: function(z) {
|
|
582
|
+
var t = z.length, b = this._map, x = this._reverseMap;
|
|
583
|
+
if (!x) {
|
|
584
|
+
x = this._reverseMap = [];
|
|
585
|
+
for (var d = 0; d < b.length; d++)
|
|
586
|
+
x[b.charCodeAt(d)] = d;
|
|
587
|
+
}
|
|
588
|
+
var g = b.charAt(64);
|
|
589
|
+
if (g) {
|
|
590
|
+
var E = z.indexOf(g);
|
|
591
|
+
E !== -1 && (t = E);
|
|
592
|
+
}
|
|
593
|
+
return C(z, t, x);
|
|
594
|
+
},
|
|
595
|
+
_map: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="
|
|
596
|
+
};
|
|
597
|
+
function C(z, t, b) {
|
|
598
|
+
for (var x = [], d = 0, g = 0; g < t; g++)
|
|
599
|
+
if (g % 4) {
|
|
600
|
+
var E = b[z.charCodeAt(g - 1)] << g % 4 * 2, B = b[z.charCodeAt(g)] >>> 6 - g % 4 * 2, y = E | B;
|
|
601
|
+
x[d >>> 2] |= y << 24 - d % 4 * 8, d++;
|
|
602
|
+
}
|
|
603
|
+
return P.create(x, d);
|
|
604
|
+
}
|
|
605
|
+
}(), i.enc.Base64;
|
|
606
|
+
});
|
|
607
|
+
}(R)), R.exports;
|
|
608
|
+
}
|
|
609
|
+
var K = { exports: {} }, ue;
|
|
610
|
+
function Ue() {
|
|
611
|
+
return ue || (ue = 1, function(o, w) {
|
|
612
|
+
(function(i, s) {
|
|
613
|
+
o.exports = s(F());
|
|
614
|
+
})(I, function(i) {
|
|
615
|
+
return function(s) {
|
|
616
|
+
var k = i, P = k.lib, W = P.WordArray, C = P.Hasher, z = k.algo, t = [];
|
|
617
|
+
(function() {
|
|
618
|
+
for (var B = 0; B < 64; B++)
|
|
619
|
+
t[B] = s.abs(s.sin(B + 1)) * 4294967296 | 0;
|
|
620
|
+
})();
|
|
621
|
+
var b = z.MD5 = C.extend({
|
|
622
|
+
_doReset: function() {
|
|
623
|
+
this._hash = new W.init([
|
|
624
|
+
1732584193,
|
|
625
|
+
4023233417,
|
|
626
|
+
2562383102,
|
|
627
|
+
271733878
|
|
628
|
+
]);
|
|
629
|
+
},
|
|
630
|
+
_doProcessBlock: function(B, y) {
|
|
631
|
+
for (var L = 0; L < 16; L++) {
|
|
632
|
+
var n = y + L, e = B[n];
|
|
633
|
+
B[n] = (e << 8 | e >>> 24) & 16711935 | (e << 24 | e >>> 8) & 4278255360;
|
|
634
|
+
}
|
|
635
|
+
var a = this._hash.words, p = B[y + 0], A = B[y + 1], S = B[y + 2], Q = B[y + 3], T = B[y + 4], r = B[y + 5], c = B[y + 6], m = B[y + 7], l = B[y + 8], Y = B[y + 9], D = B[y + 10], U = B[y + 11], V = B[y + 12], N = B[y + 13], j = B[y + 14], M = B[y + 15], f = a[0], u = a[1], v = a[2], h = a[3];
|
|
636
|
+
f = x(f, u, v, h, p, 7, t[0]), h = x(h, f, u, v, A, 12, t[1]), v = x(v, h, f, u, S, 17, t[2]), u = x(u, v, h, f, Q, 22, t[3]), f = x(f, u, v, h, T, 7, t[4]), h = x(h, f, u, v, r, 12, t[5]), v = x(v, h, f, u, c, 17, t[6]), u = x(u, v, h, f, m, 22, t[7]), f = x(f, u, v, h, l, 7, t[8]), h = x(h, f, u, v, Y, 12, t[9]), v = x(v, h, f, u, D, 17, t[10]), u = x(u, v, h, f, U, 22, t[11]), f = x(f, u, v, h, V, 7, t[12]), h = x(h, f, u, v, N, 12, t[13]), v = x(v, h, f, u, j, 17, t[14]), u = x(u, v, h, f, M, 22, t[15]), f = d(f, u, v, h, A, 5, t[16]), h = d(h, f, u, v, c, 9, t[17]), v = d(v, h, f, u, U, 14, t[18]), u = d(u, v, h, f, p, 20, t[19]), f = d(f, u, v, h, r, 5, t[20]), h = d(h, f, u, v, D, 9, t[21]), v = d(v, h, f, u, M, 14, t[22]), u = d(u, v, h, f, T, 20, t[23]), f = d(f, u, v, h, Y, 5, t[24]), h = d(h, f, u, v, j, 9, t[25]), v = d(v, h, f, u, Q, 14, t[26]), u = d(u, v, h, f, l, 20, t[27]), f = d(f, u, v, h, N, 5, t[28]), h = d(h, f, u, v, S, 9, t[29]), v = d(v, h, f, u, m, 14, t[30]), u = d(u, v, h, f, V, 20, t[31]), f = g(f, u, v, h, r, 4, t[32]), h = g(h, f, u, v, l, 11, t[33]), v = g(v, h, f, u, U, 16, t[34]), u = g(u, v, h, f, j, 23, t[35]), f = g(f, u, v, h, A, 4, t[36]), h = g(h, f, u, v, T, 11, t[37]), v = g(v, h, f, u, m, 16, t[38]), u = g(u, v, h, f, D, 23, t[39]), f = g(f, u, v, h, N, 4, t[40]), h = g(h, f, u, v, p, 11, t[41]), v = g(v, h, f, u, Q, 16, t[42]), u = g(u, v, h, f, c, 23, t[43]), f = g(f, u, v, h, Y, 4, t[44]), h = g(h, f, u, v, V, 11, t[45]), v = g(v, h, f, u, M, 16, t[46]), u = g(u, v, h, f, S, 23, t[47]), f = E(f, u, v, h, p, 6, t[48]), h = E(h, f, u, v, m, 10, t[49]), v = E(v, h, f, u, j, 15, t[50]), u = E(u, v, h, f, r, 21, t[51]), f = E(f, u, v, h, V, 6, t[52]), h = E(h, f, u, v, Q, 10, t[53]), v = E(v, h, f, u, D, 15, t[54]), u = E(u, v, h, f, A, 21, t[55]), f = E(f, u, v, h, l, 6, t[56]), h = E(h, f, u, v, M, 10, t[57]), v = E(v, h, f, u, c, 15, t[58]), u = E(u, v, h, f, N, 21, t[59]), f = E(f, u, v, h, T, 6, t[60]), h = E(h, f, u, v, U, 10, t[61]), v = E(v, h, f, u, S, 15, t[62]), u = E(u, v, h, f, Y, 21, t[63]), a[0] = a[0] + f | 0, a[1] = a[1] + u | 0, a[2] = a[2] + v | 0, a[3] = a[3] + h | 0;
|
|
637
|
+
},
|
|
638
|
+
_doFinalize: function() {
|
|
639
|
+
var B = this._data, y = B.words, L = this._nDataBytes * 8, n = B.sigBytes * 8;
|
|
640
|
+
y[n >>> 5] |= 128 << 24 - n % 32;
|
|
641
|
+
var e = s.floor(L / 4294967296), a = L;
|
|
642
|
+
y[(n + 64 >>> 9 << 4) + 15] = (e << 8 | e >>> 24) & 16711935 | (e << 24 | e >>> 8) & 4278255360, y[(n + 64 >>> 9 << 4) + 14] = (a << 8 | a >>> 24) & 16711935 | (a << 24 | a >>> 8) & 4278255360, B.sigBytes = (y.length + 1) * 4, this._process();
|
|
643
|
+
for (var p = this._hash, A = p.words, S = 0; S < 4; S++) {
|
|
644
|
+
var Q = A[S];
|
|
645
|
+
A[S] = (Q << 8 | Q >>> 24) & 16711935 | (Q << 24 | Q >>> 8) & 4278255360;
|
|
646
|
+
}
|
|
647
|
+
return p;
|
|
648
|
+
},
|
|
649
|
+
clone: function() {
|
|
650
|
+
var B = C.clone.call(this);
|
|
651
|
+
return B._hash = this._hash.clone(), B;
|
|
652
|
+
}
|
|
653
|
+
});
|
|
654
|
+
function x(B, y, L, n, e, a, p) {
|
|
655
|
+
var A = B + (y & L | ~y & n) + e + p;
|
|
656
|
+
return (A << a | A >>> 32 - a) + y;
|
|
657
|
+
}
|
|
658
|
+
function d(B, y, L, n, e, a, p) {
|
|
659
|
+
var A = B + (y & n | L & ~n) + e + p;
|
|
660
|
+
return (A << a | A >>> 32 - a) + y;
|
|
661
|
+
}
|
|
662
|
+
function g(B, y, L, n, e, a, p) {
|
|
663
|
+
var A = B + (y ^ L ^ n) + e + p;
|
|
664
|
+
return (A << a | A >>> 32 - a) + y;
|
|
665
|
+
}
|
|
666
|
+
function E(B, y, L, n, e, a, p) {
|
|
667
|
+
var A = B + (L ^ (y | ~n)) + e + p;
|
|
668
|
+
return (A << a | A >>> 32 - a) + y;
|
|
669
|
+
}
|
|
670
|
+
k.MD5 = C._createHelper(b), k.HmacMD5 = C._createHmacHelper(b);
|
|
671
|
+
}(Math), i.MD5;
|
|
672
|
+
});
|
|
673
|
+
}(K)), K.exports;
|
|
674
|
+
}
|
|
675
|
+
var _ = { exports: {} }, $ = { exports: {} }, ve;
|
|
676
|
+
function Ie() {
|
|
677
|
+
return ve || (ve = 1, function(o, w) {
|
|
678
|
+
(function(i, s) {
|
|
679
|
+
o.exports = s(F());
|
|
680
|
+
})(I, function(i) {
|
|
681
|
+
return function() {
|
|
682
|
+
var s = i, k = s.lib, P = k.WordArray, W = k.Hasher, C = s.algo, z = [], t = C.SHA1 = W.extend({
|
|
683
|
+
_doReset: function() {
|
|
684
|
+
this._hash = new P.init([
|
|
685
|
+
1732584193,
|
|
686
|
+
4023233417,
|
|
687
|
+
2562383102,
|
|
688
|
+
271733878,
|
|
689
|
+
3285377520
|
|
690
|
+
]);
|
|
691
|
+
},
|
|
692
|
+
_doProcessBlock: function(b, x) {
|
|
693
|
+
for (var d = this._hash.words, g = d[0], E = d[1], B = d[2], y = d[3], L = d[4], n = 0; n < 80; n++) {
|
|
694
|
+
if (n < 16)
|
|
695
|
+
z[n] = b[x + n] | 0;
|
|
696
|
+
else {
|
|
697
|
+
var e = z[n - 3] ^ z[n - 8] ^ z[n - 14] ^ z[n - 16];
|
|
698
|
+
z[n] = e << 1 | e >>> 31;
|
|
699
|
+
}
|
|
700
|
+
var a = (g << 5 | g >>> 27) + L + z[n];
|
|
701
|
+
n < 20 ? a += (E & B | ~E & y) + 1518500249 : n < 40 ? a += (E ^ B ^ y) + 1859775393 : n < 60 ? a += (E & B | E & y | B & y) - 1894007588 : a += (E ^ B ^ y) - 899497514, L = y, y = B, B = E << 30 | E >>> 2, E = g, g = a;
|
|
702
|
+
}
|
|
703
|
+
d[0] = d[0] + g | 0, d[1] = d[1] + E | 0, d[2] = d[2] + B | 0, d[3] = d[3] + y | 0, d[4] = d[4] + L | 0;
|
|
704
|
+
},
|
|
705
|
+
_doFinalize: function() {
|
|
706
|
+
var b = this._data, x = b.words, d = this._nDataBytes * 8, g = b.sigBytes * 8;
|
|
707
|
+
return x[g >>> 5] |= 128 << 24 - g % 32, x[(g + 64 >>> 9 << 4) + 14] = Math.floor(d / 4294967296), x[(g + 64 >>> 9 << 4) + 15] = d, b.sigBytes = x.length * 4, this._process(), this._hash;
|
|
708
|
+
},
|
|
709
|
+
clone: function() {
|
|
710
|
+
var b = W.clone.call(this);
|
|
711
|
+
return b._hash = this._hash.clone(), b;
|
|
712
|
+
}
|
|
713
|
+
});
|
|
714
|
+
s.SHA1 = W._createHelper(t), s.HmacSHA1 = W._createHmacHelper(t);
|
|
715
|
+
}(), i.SHA1;
|
|
716
|
+
});
|
|
717
|
+
}($)), $.exports;
|
|
718
|
+
}
|
|
719
|
+
var ee = { exports: {} }, he;
|
|
720
|
+
function Ve() {
|
|
721
|
+
return he || (he = 1, function(o, w) {
|
|
722
|
+
(function(i, s) {
|
|
723
|
+
o.exports = s(F());
|
|
724
|
+
})(I, function(i) {
|
|
725
|
+
(function() {
|
|
726
|
+
var s = i, k = s.lib, P = k.Base, W = s.enc, C = W.Utf8, z = s.algo;
|
|
727
|
+
z.HMAC = P.extend({
|
|
728
|
+
/**
|
|
729
|
+
* Initializes a newly created HMAC.
|
|
730
|
+
*
|
|
731
|
+
* @param {Hasher} hasher The hash algorithm to use.
|
|
732
|
+
* @param {WordArray|string} key The secret key.
|
|
733
|
+
*
|
|
734
|
+
* @example
|
|
735
|
+
*
|
|
736
|
+
* var hmacHasher = CryptoJS.algo.HMAC.create(CryptoJS.algo.SHA256, key);
|
|
737
|
+
*/
|
|
738
|
+
init: function(t, b) {
|
|
739
|
+
t = this._hasher = new t.init(), typeof b == "string" && (b = C.parse(b));
|
|
740
|
+
var x = t.blockSize, d = x * 4;
|
|
741
|
+
b.sigBytes > d && (b = t.finalize(b)), b.clamp();
|
|
742
|
+
for (var g = this._oKey = b.clone(), E = this._iKey = b.clone(), B = g.words, y = E.words, L = 0; L < x; L++)
|
|
743
|
+
B[L] ^= 1549556828, y[L] ^= 909522486;
|
|
744
|
+
g.sigBytes = E.sigBytes = d, this.reset();
|
|
745
|
+
},
|
|
746
|
+
/**
|
|
747
|
+
* Resets this HMAC to its initial state.
|
|
748
|
+
*
|
|
749
|
+
* @example
|
|
750
|
+
*
|
|
751
|
+
* hmacHasher.reset();
|
|
752
|
+
*/
|
|
753
|
+
reset: function() {
|
|
754
|
+
var t = this._hasher;
|
|
755
|
+
t.reset(), t.update(this._iKey);
|
|
756
|
+
},
|
|
757
|
+
/**
|
|
758
|
+
* Updates this HMAC with a message.
|
|
759
|
+
*
|
|
760
|
+
* @param {WordArray|string} messageUpdate The message to append.
|
|
761
|
+
*
|
|
762
|
+
* @return {HMAC} This HMAC instance.
|
|
763
|
+
*
|
|
764
|
+
* @example
|
|
765
|
+
*
|
|
766
|
+
* hmacHasher.update('message');
|
|
767
|
+
* hmacHasher.update(wordArray);
|
|
768
|
+
*/
|
|
769
|
+
update: function(t) {
|
|
770
|
+
return this._hasher.update(t), this;
|
|
771
|
+
},
|
|
772
|
+
/**
|
|
773
|
+
* Finalizes the HMAC computation.
|
|
774
|
+
* Note that the finalize operation is effectively a destructive, read-once operation.
|
|
775
|
+
*
|
|
776
|
+
* @param {WordArray|string} messageUpdate (Optional) A final message update.
|
|
777
|
+
*
|
|
778
|
+
* @return {WordArray} The HMAC.
|
|
779
|
+
*
|
|
780
|
+
* @example
|
|
781
|
+
*
|
|
782
|
+
* var hmac = hmacHasher.finalize();
|
|
783
|
+
* var hmac = hmacHasher.finalize('message');
|
|
784
|
+
* var hmac = hmacHasher.finalize(wordArray);
|
|
785
|
+
*/
|
|
786
|
+
finalize: function(t) {
|
|
787
|
+
var b = this._hasher, x = b.finalize(t);
|
|
788
|
+
b.reset();
|
|
789
|
+
var d = b.finalize(this._oKey.clone().concat(x));
|
|
790
|
+
return d;
|
|
791
|
+
}
|
|
792
|
+
});
|
|
793
|
+
})();
|
|
794
|
+
});
|
|
795
|
+
}(ee)), ee.exports;
|
|
796
|
+
}
|
|
797
|
+
var de;
|
|
798
|
+
function Ae() {
|
|
799
|
+
return de || (de = 1, function(o, w) {
|
|
800
|
+
(function(i, s, k) {
|
|
801
|
+
o.exports = s(F(), Ie(), Ve());
|
|
802
|
+
})(I, function(i) {
|
|
803
|
+
return function() {
|
|
804
|
+
var s = i, k = s.lib, P = k.Base, W = k.WordArray, C = s.algo, z = C.MD5, t = C.EvpKDF = P.extend({
|
|
805
|
+
/**
|
|
806
|
+
* Configuration options.
|
|
807
|
+
*
|
|
808
|
+
* @property {number} keySize The key size in words to generate. Default: 4 (128 bits)
|
|
809
|
+
* @property {Hasher} hasher The hash algorithm to use. Default: MD5
|
|
810
|
+
* @property {number} iterations The number of iterations to perform. Default: 1
|
|
811
|
+
*/
|
|
812
|
+
cfg: P.extend({
|
|
813
|
+
keySize: 128 / 32,
|
|
814
|
+
hasher: z,
|
|
815
|
+
iterations: 1
|
|
816
|
+
}),
|
|
817
|
+
/**
|
|
818
|
+
* Initializes a newly created key derivation function.
|
|
819
|
+
*
|
|
820
|
+
* @param {Object} cfg (Optional) The configuration options to use for the derivation.
|
|
821
|
+
*
|
|
822
|
+
* @example
|
|
823
|
+
*
|
|
824
|
+
* var kdf = CryptoJS.algo.EvpKDF.create();
|
|
825
|
+
* var kdf = CryptoJS.algo.EvpKDF.create({ keySize: 8 });
|
|
826
|
+
* var kdf = CryptoJS.algo.EvpKDF.create({ keySize: 8, iterations: 1000 });
|
|
827
|
+
*/
|
|
828
|
+
init: function(b) {
|
|
829
|
+
this.cfg = this.cfg.extend(b);
|
|
830
|
+
},
|
|
831
|
+
/**
|
|
832
|
+
* Derives a key from a password.
|
|
833
|
+
*
|
|
834
|
+
* @param {WordArray|string} password The password.
|
|
835
|
+
* @param {WordArray|string} salt A salt.
|
|
836
|
+
*
|
|
837
|
+
* @return {WordArray} The derived key.
|
|
838
|
+
*
|
|
839
|
+
* @example
|
|
840
|
+
*
|
|
841
|
+
* var key = kdf.compute(password, salt);
|
|
842
|
+
*/
|
|
843
|
+
compute: function(b, x) {
|
|
844
|
+
for (var d, g = this.cfg, E = g.hasher.create(), B = W.create(), y = B.words, L = g.keySize, n = g.iterations; y.length < L; ) {
|
|
845
|
+
d && E.update(d), d = E.update(b).finalize(x), E.reset();
|
|
846
|
+
for (var e = 1; e < n; e++)
|
|
847
|
+
d = E.finalize(d), E.reset();
|
|
848
|
+
B.concat(d);
|
|
849
|
+
}
|
|
850
|
+
return B.sigBytes = L * 4, B;
|
|
851
|
+
}
|
|
852
|
+
});
|
|
853
|
+
s.EvpKDF = function(b, x, d) {
|
|
854
|
+
return t.create(d).compute(b, x);
|
|
855
|
+
};
|
|
856
|
+
}(), i.EvpKDF;
|
|
857
|
+
});
|
|
858
|
+
}(_)), _.exports;
|
|
859
|
+
}
|
|
860
|
+
var re = { exports: {} }, pe;
|
|
861
|
+
function ae() {
|
|
862
|
+
return pe || (pe = 1, function(o, w) {
|
|
863
|
+
(function(i, s, k) {
|
|
864
|
+
o.exports = s(F(), Ae());
|
|
865
|
+
})(I, function(i) {
|
|
866
|
+
i.lib.Cipher || function(s) {
|
|
867
|
+
var k = i, P = k.lib, W = P.Base, C = P.WordArray, z = P.BufferedBlockAlgorithm, t = k.enc;
|
|
868
|
+
t.Utf8;
|
|
869
|
+
var b = t.Base64, x = k.algo, d = x.EvpKDF, g = P.Cipher = z.extend({
|
|
870
|
+
/**
|
|
871
|
+
* Configuration options.
|
|
872
|
+
*
|
|
873
|
+
* @property {WordArray} iv The IV to use for this operation.
|
|
874
|
+
*/
|
|
875
|
+
cfg: W.extend(),
|
|
876
|
+
/**
|
|
877
|
+
* Creates this cipher in encryption mode.
|
|
878
|
+
*
|
|
879
|
+
* @param {WordArray} key The key.
|
|
880
|
+
* @param {Object} cfg (Optional) The configuration options to use for this operation.
|
|
881
|
+
*
|
|
882
|
+
* @return {Cipher} A cipher instance.
|
|
883
|
+
*
|
|
884
|
+
* @static
|
|
885
|
+
*
|
|
886
|
+
* @example
|
|
887
|
+
*
|
|
888
|
+
* var cipher = CryptoJS.algo.AES.createEncryptor(keyWordArray, { iv: ivWordArray });
|
|
889
|
+
*/
|
|
890
|
+
createEncryptor: function(r, c) {
|
|
891
|
+
return this.create(this._ENC_XFORM_MODE, r, c);
|
|
892
|
+
},
|
|
893
|
+
/**
|
|
894
|
+
* Creates this cipher in decryption mode.
|
|
895
|
+
*
|
|
896
|
+
* @param {WordArray} key The key.
|
|
897
|
+
* @param {Object} cfg (Optional) The configuration options to use for this operation.
|
|
898
|
+
*
|
|
899
|
+
* @return {Cipher} A cipher instance.
|
|
900
|
+
*
|
|
901
|
+
* @static
|
|
902
|
+
*
|
|
903
|
+
* @example
|
|
904
|
+
*
|
|
905
|
+
* var cipher = CryptoJS.algo.AES.createDecryptor(keyWordArray, { iv: ivWordArray });
|
|
906
|
+
*/
|
|
907
|
+
createDecryptor: function(r, c) {
|
|
908
|
+
return this.create(this._DEC_XFORM_MODE, r, c);
|
|
909
|
+
},
|
|
910
|
+
/**
|
|
911
|
+
* Initializes a newly created cipher.
|
|
912
|
+
*
|
|
913
|
+
* @param {number} xformMode Either the encryption or decryption transormation mode constant.
|
|
914
|
+
* @param {WordArray} key The key.
|
|
915
|
+
* @param {Object} cfg (Optional) The configuration options to use for this operation.
|
|
916
|
+
*
|
|
917
|
+
* @example
|
|
918
|
+
*
|
|
919
|
+
* var cipher = CryptoJS.algo.AES.create(CryptoJS.algo.AES._ENC_XFORM_MODE, keyWordArray, { iv: ivWordArray });
|
|
920
|
+
*/
|
|
921
|
+
init: function(r, c, m) {
|
|
922
|
+
this.cfg = this.cfg.extend(m), this._xformMode = r, this._key = c, this.reset();
|
|
923
|
+
},
|
|
924
|
+
/**
|
|
925
|
+
* Resets this cipher to its initial state.
|
|
926
|
+
*
|
|
927
|
+
* @example
|
|
928
|
+
*
|
|
929
|
+
* cipher.reset();
|
|
930
|
+
*/
|
|
931
|
+
reset: function() {
|
|
932
|
+
z.reset.call(this), this._doReset();
|
|
933
|
+
},
|
|
934
|
+
/**
|
|
935
|
+
* Adds data to be encrypted or decrypted.
|
|
936
|
+
*
|
|
937
|
+
* @param {WordArray|string} dataUpdate The data to encrypt or decrypt.
|
|
938
|
+
*
|
|
939
|
+
* @return {WordArray} The data after processing.
|
|
940
|
+
*
|
|
941
|
+
* @example
|
|
942
|
+
*
|
|
943
|
+
* var encrypted = cipher.process('data');
|
|
944
|
+
* var encrypted = cipher.process(wordArray);
|
|
945
|
+
*/
|
|
946
|
+
process: function(r) {
|
|
947
|
+
return this._append(r), this._process();
|
|
948
|
+
},
|
|
949
|
+
/**
|
|
950
|
+
* Finalizes the encryption or decryption process.
|
|
951
|
+
* Note that the finalize operation is effectively a destructive, read-once operation.
|
|
952
|
+
*
|
|
953
|
+
* @param {WordArray|string} dataUpdate The final data to encrypt or decrypt.
|
|
954
|
+
*
|
|
955
|
+
* @return {WordArray} The data after final processing.
|
|
956
|
+
*
|
|
957
|
+
* @example
|
|
958
|
+
*
|
|
959
|
+
* var encrypted = cipher.finalize();
|
|
960
|
+
* var encrypted = cipher.finalize('data');
|
|
961
|
+
* var encrypted = cipher.finalize(wordArray);
|
|
962
|
+
*/
|
|
963
|
+
finalize: function(r) {
|
|
964
|
+
r && this._append(r);
|
|
965
|
+
var c = this._doFinalize();
|
|
966
|
+
return c;
|
|
967
|
+
},
|
|
968
|
+
keySize: 128 / 32,
|
|
969
|
+
ivSize: 128 / 32,
|
|
970
|
+
_ENC_XFORM_MODE: 1,
|
|
971
|
+
_DEC_XFORM_MODE: 2,
|
|
972
|
+
/**
|
|
973
|
+
* Creates shortcut functions to a cipher's object interface.
|
|
974
|
+
*
|
|
975
|
+
* @param {Cipher} cipher The cipher to create a helper for.
|
|
976
|
+
*
|
|
977
|
+
* @return {Object} An object with encrypt and decrypt shortcut functions.
|
|
978
|
+
*
|
|
979
|
+
* @static
|
|
980
|
+
*
|
|
981
|
+
* @example
|
|
982
|
+
*
|
|
983
|
+
* var AES = CryptoJS.lib.Cipher._createHelper(CryptoJS.algo.AES);
|
|
984
|
+
*/
|
|
985
|
+
_createHelper: /* @__PURE__ */ function() {
|
|
986
|
+
function r(c) {
|
|
987
|
+
return typeof c == "string" ? T : A;
|
|
988
|
+
}
|
|
989
|
+
return function(c) {
|
|
990
|
+
return {
|
|
991
|
+
encrypt: function(m, l, Y) {
|
|
992
|
+
return r(l).encrypt(c, m, l, Y);
|
|
993
|
+
},
|
|
994
|
+
decrypt: function(m, l, Y) {
|
|
995
|
+
return r(l).decrypt(c, m, l, Y);
|
|
996
|
+
}
|
|
997
|
+
};
|
|
998
|
+
};
|
|
999
|
+
}()
|
|
1000
|
+
});
|
|
1001
|
+
P.StreamCipher = g.extend({
|
|
1002
|
+
_doFinalize: function() {
|
|
1003
|
+
var r = this._process(!0);
|
|
1004
|
+
return r;
|
|
1005
|
+
},
|
|
1006
|
+
blockSize: 1
|
|
1007
|
+
});
|
|
1008
|
+
var E = k.mode = {}, B = P.BlockCipherMode = W.extend({
|
|
1009
|
+
/**
|
|
1010
|
+
* Creates this mode for encryption.
|
|
1011
|
+
*
|
|
1012
|
+
* @param {Cipher} cipher A block cipher instance.
|
|
1013
|
+
* @param {Array} iv The IV words.
|
|
1014
|
+
*
|
|
1015
|
+
* @static
|
|
1016
|
+
*
|
|
1017
|
+
* @example
|
|
1018
|
+
*
|
|
1019
|
+
* var mode = CryptoJS.mode.CBC.createEncryptor(cipher, iv.words);
|
|
1020
|
+
*/
|
|
1021
|
+
createEncryptor: function(r, c) {
|
|
1022
|
+
return this.Encryptor.create(r, c);
|
|
1023
|
+
},
|
|
1024
|
+
/**
|
|
1025
|
+
* Creates this mode for decryption.
|
|
1026
|
+
*
|
|
1027
|
+
* @param {Cipher} cipher A block cipher instance.
|
|
1028
|
+
* @param {Array} iv The IV words.
|
|
1029
|
+
*
|
|
1030
|
+
* @static
|
|
1031
|
+
*
|
|
1032
|
+
* @example
|
|
1033
|
+
*
|
|
1034
|
+
* var mode = CryptoJS.mode.CBC.createDecryptor(cipher, iv.words);
|
|
1035
|
+
*/
|
|
1036
|
+
createDecryptor: function(r, c) {
|
|
1037
|
+
return this.Decryptor.create(r, c);
|
|
1038
|
+
},
|
|
1039
|
+
/**
|
|
1040
|
+
* Initializes a newly created mode.
|
|
1041
|
+
*
|
|
1042
|
+
* @param {Cipher} cipher A block cipher instance.
|
|
1043
|
+
* @param {Array} iv The IV words.
|
|
1044
|
+
*
|
|
1045
|
+
* @example
|
|
1046
|
+
*
|
|
1047
|
+
* var mode = CryptoJS.mode.CBC.Encryptor.create(cipher, iv.words);
|
|
1048
|
+
*/
|
|
1049
|
+
init: function(r, c) {
|
|
1050
|
+
this._cipher = r, this._iv = c;
|
|
1051
|
+
}
|
|
1052
|
+
}), y = E.CBC = function() {
|
|
1053
|
+
var r = B.extend();
|
|
1054
|
+
r.Encryptor = r.extend({
|
|
1055
|
+
/**
|
|
1056
|
+
* Processes the data block at offset.
|
|
1057
|
+
*
|
|
1058
|
+
* @param {Array} words The data words to operate on.
|
|
1059
|
+
* @param {number} offset The offset where the block starts.
|
|
1060
|
+
*
|
|
1061
|
+
* @example
|
|
1062
|
+
*
|
|
1063
|
+
* mode.processBlock(data.words, offset);
|
|
1064
|
+
*/
|
|
1065
|
+
processBlock: function(m, l) {
|
|
1066
|
+
var Y = this._cipher, D = Y.blockSize;
|
|
1067
|
+
c.call(this, m, l, D), Y.encryptBlock(m, l), this._prevBlock = m.slice(l, l + D);
|
|
1068
|
+
}
|
|
1069
|
+
}), r.Decryptor = r.extend({
|
|
1070
|
+
/**
|
|
1071
|
+
* Processes the data block at offset.
|
|
1072
|
+
*
|
|
1073
|
+
* @param {Array} words The data words to operate on.
|
|
1074
|
+
* @param {number} offset The offset where the block starts.
|
|
1075
|
+
*
|
|
1076
|
+
* @example
|
|
1077
|
+
*
|
|
1078
|
+
* mode.processBlock(data.words, offset);
|
|
1079
|
+
*/
|
|
1080
|
+
processBlock: function(m, l) {
|
|
1081
|
+
var Y = this._cipher, D = Y.blockSize, U = m.slice(l, l + D);
|
|
1082
|
+
Y.decryptBlock(m, l), c.call(this, m, l, D), this._prevBlock = U;
|
|
1083
|
+
}
|
|
1084
|
+
});
|
|
1085
|
+
function c(m, l, Y) {
|
|
1086
|
+
var D, U = this._iv;
|
|
1087
|
+
U ? (D = U, this._iv = s) : D = this._prevBlock;
|
|
1088
|
+
for (var V = 0; V < Y; V++)
|
|
1089
|
+
m[l + V] ^= D[V];
|
|
1090
|
+
}
|
|
1091
|
+
return r;
|
|
1092
|
+
}(), L = k.pad = {}, n = L.Pkcs7 = {
|
|
1093
|
+
/**
|
|
1094
|
+
* Pads data using the algorithm defined in PKCS #5/7.
|
|
1095
|
+
*
|
|
1096
|
+
* @param {WordArray} data The data to pad.
|
|
1097
|
+
* @param {number} blockSize The multiple that the data should be padded to.
|
|
1098
|
+
*
|
|
1099
|
+
* @static
|
|
1100
|
+
*
|
|
1101
|
+
* @example
|
|
1102
|
+
*
|
|
1103
|
+
* CryptoJS.pad.Pkcs7.pad(wordArray, 4);
|
|
1104
|
+
*/
|
|
1105
|
+
pad: function(r, c) {
|
|
1106
|
+
for (var m = c * 4, l = m - r.sigBytes % m, Y = l << 24 | l << 16 | l << 8 | l, D = [], U = 0; U < l; U += 4)
|
|
1107
|
+
D.push(Y);
|
|
1108
|
+
var V = C.create(D, l);
|
|
1109
|
+
r.concat(V);
|
|
1110
|
+
},
|
|
1111
|
+
/**
|
|
1112
|
+
* Unpads data that had been padded using the algorithm defined in PKCS #5/7.
|
|
1113
|
+
*
|
|
1114
|
+
* @param {WordArray} data The data to unpad.
|
|
1115
|
+
*
|
|
1116
|
+
* @static
|
|
1117
|
+
*
|
|
1118
|
+
* @example
|
|
1119
|
+
*
|
|
1120
|
+
* CryptoJS.pad.Pkcs7.unpad(wordArray);
|
|
1121
|
+
*/
|
|
1122
|
+
unpad: function(r) {
|
|
1123
|
+
var c = r.words[r.sigBytes - 1 >>> 2] & 255;
|
|
1124
|
+
r.sigBytes -= c;
|
|
1125
|
+
}
|
|
1126
|
+
};
|
|
1127
|
+
P.BlockCipher = g.extend({
|
|
1128
|
+
/**
|
|
1129
|
+
* Configuration options.
|
|
1130
|
+
*
|
|
1131
|
+
* @property {Mode} mode The block mode to use. Default: CBC
|
|
1132
|
+
* @property {Padding} padding The padding strategy to use. Default: Pkcs7
|
|
1133
|
+
*/
|
|
1134
|
+
cfg: g.cfg.extend({
|
|
1135
|
+
mode: y,
|
|
1136
|
+
padding: n
|
|
1137
|
+
}),
|
|
1138
|
+
reset: function() {
|
|
1139
|
+
var r;
|
|
1140
|
+
g.reset.call(this);
|
|
1141
|
+
var c = this.cfg, m = c.iv, l = c.mode;
|
|
1142
|
+
this._xformMode == this._ENC_XFORM_MODE ? r = l.createEncryptor : (r = l.createDecryptor, this._minBufferSize = 1), this._mode && this._mode.__creator == r ? this._mode.init(this, m && m.words) : (this._mode = r.call(l, this, m && m.words), this._mode.__creator = r);
|
|
1143
|
+
},
|
|
1144
|
+
_doProcessBlock: function(r, c) {
|
|
1145
|
+
this._mode.processBlock(r, c);
|
|
1146
|
+
},
|
|
1147
|
+
_doFinalize: function() {
|
|
1148
|
+
var r, c = this.cfg.padding;
|
|
1149
|
+
return this._xformMode == this._ENC_XFORM_MODE ? (c.pad(this._data, this.blockSize), r = this._process(!0)) : (r = this._process(!0), c.unpad(r)), r;
|
|
1150
|
+
},
|
|
1151
|
+
blockSize: 128 / 32
|
|
1152
|
+
});
|
|
1153
|
+
var e = P.CipherParams = W.extend({
|
|
1154
|
+
/**
|
|
1155
|
+
* Initializes a newly created cipher params object.
|
|
1156
|
+
*
|
|
1157
|
+
* @param {Object} cipherParams An object with any of the possible cipher parameters.
|
|
1158
|
+
*
|
|
1159
|
+
* @example
|
|
1160
|
+
*
|
|
1161
|
+
* var cipherParams = CryptoJS.lib.CipherParams.create({
|
|
1162
|
+
* ciphertext: ciphertextWordArray,
|
|
1163
|
+
* key: keyWordArray,
|
|
1164
|
+
* iv: ivWordArray,
|
|
1165
|
+
* salt: saltWordArray,
|
|
1166
|
+
* algorithm: CryptoJS.algo.AES,
|
|
1167
|
+
* mode: CryptoJS.mode.CBC,
|
|
1168
|
+
* padding: CryptoJS.pad.PKCS7,
|
|
1169
|
+
* blockSize: 4,
|
|
1170
|
+
* formatter: CryptoJS.format.OpenSSL
|
|
1171
|
+
* });
|
|
1172
|
+
*/
|
|
1173
|
+
init: function(r) {
|
|
1174
|
+
this.mixIn(r);
|
|
1175
|
+
},
|
|
1176
|
+
/**
|
|
1177
|
+
* Converts this cipher params object to a string.
|
|
1178
|
+
*
|
|
1179
|
+
* @param {Format} formatter (Optional) The formatting strategy to use.
|
|
1180
|
+
*
|
|
1181
|
+
* @return {string} The stringified cipher params.
|
|
1182
|
+
*
|
|
1183
|
+
* @throws Error If neither the formatter nor the default formatter is set.
|
|
1184
|
+
*
|
|
1185
|
+
* @example
|
|
1186
|
+
*
|
|
1187
|
+
* var string = cipherParams + '';
|
|
1188
|
+
* var string = cipherParams.toString();
|
|
1189
|
+
* var string = cipherParams.toString(CryptoJS.format.OpenSSL);
|
|
1190
|
+
*/
|
|
1191
|
+
toString: function(r) {
|
|
1192
|
+
return (r || this.formatter).stringify(this);
|
|
1193
|
+
}
|
|
1194
|
+
}), a = k.format = {}, p = a.OpenSSL = {
|
|
1195
|
+
/**
|
|
1196
|
+
* Converts a cipher params object to an OpenSSL-compatible string.
|
|
1197
|
+
*
|
|
1198
|
+
* @param {CipherParams} cipherParams The cipher params object.
|
|
1199
|
+
*
|
|
1200
|
+
* @return {string} The OpenSSL-compatible string.
|
|
1201
|
+
*
|
|
1202
|
+
* @static
|
|
1203
|
+
*
|
|
1204
|
+
* @example
|
|
1205
|
+
*
|
|
1206
|
+
* var openSSLString = CryptoJS.format.OpenSSL.stringify(cipherParams);
|
|
1207
|
+
*/
|
|
1208
|
+
stringify: function(r) {
|
|
1209
|
+
var c, m = r.ciphertext, l = r.salt;
|
|
1210
|
+
return l ? c = C.create([1398893684, 1701076831]).concat(l).concat(m) : c = m, c.toString(b);
|
|
1211
|
+
},
|
|
1212
|
+
/**
|
|
1213
|
+
* Converts an OpenSSL-compatible string to a cipher params object.
|
|
1214
|
+
*
|
|
1215
|
+
* @param {string} openSSLStr The OpenSSL-compatible string.
|
|
1216
|
+
*
|
|
1217
|
+
* @return {CipherParams} The cipher params object.
|
|
1218
|
+
*
|
|
1219
|
+
* @static
|
|
1220
|
+
*
|
|
1221
|
+
* @example
|
|
1222
|
+
*
|
|
1223
|
+
* var cipherParams = CryptoJS.format.OpenSSL.parse(openSSLString);
|
|
1224
|
+
*/
|
|
1225
|
+
parse: function(r) {
|
|
1226
|
+
var c, m = b.parse(r), l = m.words;
|
|
1227
|
+
return l[0] == 1398893684 && l[1] == 1701076831 && (c = C.create(l.slice(2, 4)), l.splice(0, 4), m.sigBytes -= 16), e.create({ ciphertext: m, salt: c });
|
|
1228
|
+
}
|
|
1229
|
+
}, A = P.SerializableCipher = W.extend({
|
|
1230
|
+
/**
|
|
1231
|
+
* Configuration options.
|
|
1232
|
+
*
|
|
1233
|
+
* @property {Formatter} format The formatting strategy to convert cipher param objects to and from a string. Default: OpenSSL
|
|
1234
|
+
*/
|
|
1235
|
+
cfg: W.extend({
|
|
1236
|
+
format: p
|
|
1237
|
+
}),
|
|
1238
|
+
/**
|
|
1239
|
+
* Encrypts a message.
|
|
1240
|
+
*
|
|
1241
|
+
* @param {Cipher} cipher The cipher algorithm to use.
|
|
1242
|
+
* @param {WordArray|string} message The message to encrypt.
|
|
1243
|
+
* @param {WordArray} key The key.
|
|
1244
|
+
* @param {Object} cfg (Optional) The configuration options to use for this operation.
|
|
1245
|
+
*
|
|
1246
|
+
* @return {CipherParams} A cipher params object.
|
|
1247
|
+
*
|
|
1248
|
+
* @static
|
|
1249
|
+
*
|
|
1250
|
+
* @example
|
|
1251
|
+
*
|
|
1252
|
+
* var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key);
|
|
1253
|
+
* var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key, { iv: iv });
|
|
1254
|
+
* var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key, { iv: iv, format: CryptoJS.format.OpenSSL });
|
|
1255
|
+
*/
|
|
1256
|
+
encrypt: function(r, c, m, l) {
|
|
1257
|
+
l = this.cfg.extend(l);
|
|
1258
|
+
var Y = r.createEncryptor(m, l), D = Y.finalize(c), U = Y.cfg;
|
|
1259
|
+
return e.create({
|
|
1260
|
+
ciphertext: D,
|
|
1261
|
+
key: m,
|
|
1262
|
+
iv: U.iv,
|
|
1263
|
+
algorithm: r,
|
|
1264
|
+
mode: U.mode,
|
|
1265
|
+
padding: U.padding,
|
|
1266
|
+
blockSize: r.blockSize,
|
|
1267
|
+
formatter: l.format
|
|
1268
|
+
});
|
|
1269
|
+
},
|
|
1270
|
+
/**
|
|
1271
|
+
* Decrypts serialized ciphertext.
|
|
1272
|
+
*
|
|
1273
|
+
* @param {Cipher} cipher The cipher algorithm to use.
|
|
1274
|
+
* @param {CipherParams|string} ciphertext The ciphertext to decrypt.
|
|
1275
|
+
* @param {WordArray} key The key.
|
|
1276
|
+
* @param {Object} cfg (Optional) The configuration options to use for this operation.
|
|
1277
|
+
*
|
|
1278
|
+
* @return {WordArray} The plaintext.
|
|
1279
|
+
*
|
|
1280
|
+
* @static
|
|
1281
|
+
*
|
|
1282
|
+
* @example
|
|
1283
|
+
*
|
|
1284
|
+
* var plaintext = CryptoJS.lib.SerializableCipher.decrypt(CryptoJS.algo.AES, formattedCiphertext, key, { iv: iv, format: CryptoJS.format.OpenSSL });
|
|
1285
|
+
* var plaintext = CryptoJS.lib.SerializableCipher.decrypt(CryptoJS.algo.AES, ciphertextParams, key, { iv: iv, format: CryptoJS.format.OpenSSL });
|
|
1286
|
+
*/
|
|
1287
|
+
decrypt: function(r, c, m, l) {
|
|
1288
|
+
l = this.cfg.extend(l), c = this._parse(c, l.format);
|
|
1289
|
+
var Y = r.createDecryptor(m, l).finalize(c.ciphertext);
|
|
1290
|
+
return Y;
|
|
1291
|
+
},
|
|
1292
|
+
/**
|
|
1293
|
+
* Converts serialized ciphertext to CipherParams,
|
|
1294
|
+
* else assumed CipherParams already and returns ciphertext unchanged.
|
|
1295
|
+
*
|
|
1296
|
+
* @param {CipherParams|string} ciphertext The ciphertext.
|
|
1297
|
+
* @param {Formatter} format The formatting strategy to use to parse serialized ciphertext.
|
|
1298
|
+
*
|
|
1299
|
+
* @return {CipherParams} The unserialized ciphertext.
|
|
1300
|
+
*
|
|
1301
|
+
* @static
|
|
1302
|
+
*
|
|
1303
|
+
* @example
|
|
1304
|
+
*
|
|
1305
|
+
* var ciphertextParams = CryptoJS.lib.SerializableCipher._parse(ciphertextStringOrParams, format);
|
|
1306
|
+
*/
|
|
1307
|
+
_parse: function(r, c) {
|
|
1308
|
+
return typeof r == "string" ? c.parse(r, this) : r;
|
|
1309
|
+
}
|
|
1310
|
+
}), S = k.kdf = {}, Q = S.OpenSSL = {
|
|
1311
|
+
/**
|
|
1312
|
+
* Derives a key and IV from a password.
|
|
1313
|
+
*
|
|
1314
|
+
* @param {string} password The password to derive from.
|
|
1315
|
+
* @param {number} keySize The size in words of the key to generate.
|
|
1316
|
+
* @param {number} ivSize The size in words of the IV to generate.
|
|
1317
|
+
* @param {WordArray|string} salt (Optional) A 64-bit salt to use. If omitted, a salt will be generated randomly.
|
|
1318
|
+
*
|
|
1319
|
+
* @return {CipherParams} A cipher params object with the key, IV, and salt.
|
|
1320
|
+
*
|
|
1321
|
+
* @static
|
|
1322
|
+
*
|
|
1323
|
+
* @example
|
|
1324
|
+
*
|
|
1325
|
+
* var derivedParams = CryptoJS.kdf.OpenSSL.execute('Password', 256/32, 128/32);
|
|
1326
|
+
* var derivedParams = CryptoJS.kdf.OpenSSL.execute('Password', 256/32, 128/32, 'saltsalt');
|
|
1327
|
+
*/
|
|
1328
|
+
execute: function(r, c, m, l, Y) {
|
|
1329
|
+
if (l || (l = C.random(64 / 8)), Y)
|
|
1330
|
+
var D = d.create({ keySize: c + m, hasher: Y }).compute(r, l);
|
|
1331
|
+
else
|
|
1332
|
+
var D = d.create({ keySize: c + m }).compute(r, l);
|
|
1333
|
+
var U = C.create(D.words.slice(c), m * 4);
|
|
1334
|
+
return D.sigBytes = c * 4, e.create({ key: D, iv: U, salt: l });
|
|
1335
|
+
}
|
|
1336
|
+
}, T = P.PasswordBasedCipher = A.extend({
|
|
1337
|
+
/**
|
|
1338
|
+
* Configuration options.
|
|
1339
|
+
*
|
|
1340
|
+
* @property {KDF} kdf The key derivation function to use to generate a key and IV from a password. Default: OpenSSL
|
|
1341
|
+
*/
|
|
1342
|
+
cfg: A.cfg.extend({
|
|
1343
|
+
kdf: Q
|
|
1344
|
+
}),
|
|
1345
|
+
/**
|
|
1346
|
+
* Encrypts a message using a password.
|
|
1347
|
+
*
|
|
1348
|
+
* @param {Cipher} cipher The cipher algorithm to use.
|
|
1349
|
+
* @param {WordArray|string} message The message to encrypt.
|
|
1350
|
+
* @param {string} password The password.
|
|
1351
|
+
* @param {Object} cfg (Optional) The configuration options to use for this operation.
|
|
1352
|
+
*
|
|
1353
|
+
* @return {CipherParams} A cipher params object.
|
|
1354
|
+
*
|
|
1355
|
+
* @static
|
|
1356
|
+
*
|
|
1357
|
+
* @example
|
|
1358
|
+
*
|
|
1359
|
+
* var ciphertextParams = CryptoJS.lib.PasswordBasedCipher.encrypt(CryptoJS.algo.AES, message, 'password');
|
|
1360
|
+
* var ciphertextParams = CryptoJS.lib.PasswordBasedCipher.encrypt(CryptoJS.algo.AES, message, 'password', { format: CryptoJS.format.OpenSSL });
|
|
1361
|
+
*/
|
|
1362
|
+
encrypt: function(r, c, m, l) {
|
|
1363
|
+
l = this.cfg.extend(l);
|
|
1364
|
+
var Y = l.kdf.execute(m, r.keySize, r.ivSize, l.salt, l.hasher);
|
|
1365
|
+
l.iv = Y.iv;
|
|
1366
|
+
var D = A.encrypt.call(this, r, c, Y.key, l);
|
|
1367
|
+
return D.mixIn(Y), D;
|
|
1368
|
+
},
|
|
1369
|
+
/**
|
|
1370
|
+
* Decrypts serialized ciphertext using a password.
|
|
1371
|
+
*
|
|
1372
|
+
* @param {Cipher} cipher The cipher algorithm to use.
|
|
1373
|
+
* @param {CipherParams|string} ciphertext The ciphertext to decrypt.
|
|
1374
|
+
* @param {string} password The password.
|
|
1375
|
+
* @param {Object} cfg (Optional) The configuration options to use for this operation.
|
|
1376
|
+
*
|
|
1377
|
+
* @return {WordArray} The plaintext.
|
|
1378
|
+
*
|
|
1379
|
+
* @static
|
|
1380
|
+
*
|
|
1381
|
+
* @example
|
|
1382
|
+
*
|
|
1383
|
+
* var plaintext = CryptoJS.lib.PasswordBasedCipher.decrypt(CryptoJS.algo.AES, formattedCiphertext, 'password', { format: CryptoJS.format.OpenSSL });
|
|
1384
|
+
* var plaintext = CryptoJS.lib.PasswordBasedCipher.decrypt(CryptoJS.algo.AES, ciphertextParams, 'password', { format: CryptoJS.format.OpenSSL });
|
|
1385
|
+
*/
|
|
1386
|
+
decrypt: function(r, c, m, l) {
|
|
1387
|
+
l = this.cfg.extend(l), c = this._parse(c, l.format);
|
|
1388
|
+
var Y = l.kdf.execute(m, r.keySize, r.ivSize, c.salt, l.hasher);
|
|
1389
|
+
l.iv = Y.iv;
|
|
1390
|
+
var D = A.decrypt.call(this, r, c, Y.key, l);
|
|
1391
|
+
return D;
|
|
1392
|
+
}
|
|
1393
|
+
});
|
|
1394
|
+
}();
|
|
1395
|
+
});
|
|
1396
|
+
}(re)), re.exports;
|
|
1397
|
+
}
|
|
1398
|
+
(function(o, w) {
|
|
1399
|
+
(function(i, s, k) {
|
|
1400
|
+
o.exports = s(F(), Qe(), Ue(), Ae(), ae());
|
|
1401
|
+
})(I, function(i) {
|
|
1402
|
+
return function() {
|
|
1403
|
+
var s = i, k = s.lib, P = k.BlockCipher, W = s.algo, C = [], z = [], t = [], b = [], x = [], d = [], g = [], E = [], B = [], y = [];
|
|
1404
|
+
(function() {
|
|
1405
|
+
for (var e = [], a = 0; a < 256; a++)
|
|
1406
|
+
a < 128 ? e[a] = a << 1 : e[a] = a << 1 ^ 283;
|
|
1407
|
+
for (var p = 0, A = 0, a = 0; a < 256; a++) {
|
|
1408
|
+
var S = A ^ A << 1 ^ A << 2 ^ A << 3 ^ A << 4;
|
|
1409
|
+
S = S >>> 8 ^ S & 255 ^ 99, C[p] = S, z[S] = p;
|
|
1410
|
+
var Q = e[p], T = e[Q], r = e[T], c = e[S] * 257 ^ S * 16843008;
|
|
1411
|
+
t[p] = c << 24 | c >>> 8, b[p] = c << 16 | c >>> 16, x[p] = c << 8 | c >>> 24, d[p] = c;
|
|
1412
|
+
var c = r * 16843009 ^ T * 65537 ^ Q * 257 ^ p * 16843008;
|
|
1413
|
+
g[S] = c << 24 | c >>> 8, E[S] = c << 16 | c >>> 16, B[S] = c << 8 | c >>> 24, y[S] = c, p ? (p = Q ^ e[e[e[r ^ Q]]], A ^= e[e[A]]) : p = A = 1;
|
|
1414
|
+
}
|
|
1415
|
+
})();
|
|
1416
|
+
var L = [0, 1, 2, 4, 8, 16, 32, 64, 128, 27, 54], n = W.AES = P.extend({
|
|
1417
|
+
_doReset: function() {
|
|
1418
|
+
var e;
|
|
1419
|
+
if (!(this._nRounds && this._keyPriorReset === this._key)) {
|
|
1420
|
+
for (var a = this._keyPriorReset = this._key, p = a.words, A = a.sigBytes / 4, S = this._nRounds = A + 6, Q = (S + 1) * 4, T = this._keySchedule = [], r = 0; r < Q; r++)
|
|
1421
|
+
r < A ? T[r] = p[r] : (e = T[r - 1], r % A ? A > 6 && r % A == 4 && (e = C[e >>> 24] << 24 | C[e >>> 16 & 255] << 16 | C[e >>> 8 & 255] << 8 | C[e & 255]) : (e = e << 8 | e >>> 24, e = C[e >>> 24] << 24 | C[e >>> 16 & 255] << 16 | C[e >>> 8 & 255] << 8 | C[e & 255], e ^= L[r / A | 0] << 24), T[r] = T[r - A] ^ e);
|
|
1422
|
+
for (var c = this._invKeySchedule = [], m = 0; m < Q; m++) {
|
|
1423
|
+
var r = Q - m;
|
|
1424
|
+
if (m % 4)
|
|
1425
|
+
var e = T[r];
|
|
1426
|
+
else
|
|
1427
|
+
var e = T[r - 4];
|
|
1428
|
+
m < 4 || r <= 4 ? c[m] = e : c[m] = g[C[e >>> 24]] ^ E[C[e >>> 16 & 255]] ^ B[C[e >>> 8 & 255]] ^ y[C[e & 255]];
|
|
1429
|
+
}
|
|
1430
|
+
}
|
|
1431
|
+
},
|
|
1432
|
+
encryptBlock: function(e, a) {
|
|
1433
|
+
this._doCryptBlock(e, a, this._keySchedule, t, b, x, d, C);
|
|
1434
|
+
},
|
|
1435
|
+
decryptBlock: function(e, a) {
|
|
1436
|
+
var p = e[a + 1];
|
|
1437
|
+
e[a + 1] = e[a + 3], e[a + 3] = p, this._doCryptBlock(e, a, this._invKeySchedule, g, E, B, y, z);
|
|
1438
|
+
var p = e[a + 1];
|
|
1439
|
+
e[a + 1] = e[a + 3], e[a + 3] = p;
|
|
1440
|
+
},
|
|
1441
|
+
_doCryptBlock: function(e, a, p, A, S, Q, T, r) {
|
|
1442
|
+
for (var c = this._nRounds, m = e[a] ^ p[0], l = e[a + 1] ^ p[1], Y = e[a + 2] ^ p[2], D = e[a + 3] ^ p[3], U = 4, V = 1; V < c; V++) {
|
|
1443
|
+
var N = A[m >>> 24] ^ S[l >>> 16 & 255] ^ Q[Y >>> 8 & 255] ^ T[D & 255] ^ p[U++], j = A[l >>> 24] ^ S[Y >>> 16 & 255] ^ Q[D >>> 8 & 255] ^ T[m & 255] ^ p[U++], M = A[Y >>> 24] ^ S[D >>> 16 & 255] ^ Q[m >>> 8 & 255] ^ T[l & 255] ^ p[U++], f = A[D >>> 24] ^ S[m >>> 16 & 255] ^ Q[l >>> 8 & 255] ^ T[Y & 255] ^ p[U++];
|
|
1444
|
+
m = N, l = j, Y = M, D = f;
|
|
1445
|
+
}
|
|
1446
|
+
var N = (r[m >>> 24] << 24 | r[l >>> 16 & 255] << 16 | r[Y >>> 8 & 255] << 8 | r[D & 255]) ^ p[U++], j = (r[l >>> 24] << 24 | r[Y >>> 16 & 255] << 16 | r[D >>> 8 & 255] << 8 | r[m & 255]) ^ p[U++], M = (r[Y >>> 24] << 24 | r[D >>> 16 & 255] << 16 | r[m >>> 8 & 255] << 8 | r[l & 255]) ^ p[U++], f = (r[D >>> 24] << 24 | r[m >>> 16 & 255] << 16 | r[l >>> 8 & 255] << 8 | r[Y & 255]) ^ p[U++];
|
|
1447
|
+
e[a] = N, e[a + 1] = j, e[a + 2] = M, e[a + 3] = f;
|
|
1448
|
+
},
|
|
1449
|
+
keySize: 256 / 32
|
|
1450
|
+
});
|
|
1451
|
+
s.AES = P._createHelper(n);
|
|
1452
|
+
}(), i.AES;
|
|
1453
|
+
});
|
|
1454
|
+
})(ze);
|
|
1455
|
+
var Fe = { exports: {} };
|
|
1456
|
+
(function(o, w) {
|
|
1457
|
+
(function(i, s) {
|
|
1458
|
+
o.exports = s(F());
|
|
1459
|
+
})(I, function(i) {
|
|
1460
|
+
return i.enc.Utf8;
|
|
1461
|
+
});
|
|
1462
|
+
})(Fe);
|
|
1463
|
+
var Ge = { exports: {} };
|
|
1464
|
+
(function(o, w) {
|
|
1465
|
+
(function(i, s, k) {
|
|
1466
|
+
o.exports = s(F(), ae());
|
|
1467
|
+
})(I, function(i) {
|
|
1468
|
+
return i.mode.ECB = function() {
|
|
1469
|
+
var s = i.lib.BlockCipherMode.extend();
|
|
1470
|
+
return s.Encryptor = s.extend({
|
|
1471
|
+
processBlock: function(k, P) {
|
|
1472
|
+
this._cipher.encryptBlock(k, P);
|
|
1473
|
+
}
|
|
1474
|
+
}), s.Decryptor = s.extend({
|
|
1475
|
+
processBlock: function(k, P) {
|
|
1476
|
+
this._cipher.decryptBlock(k, P);
|
|
1477
|
+
}
|
|
1478
|
+
}), s;
|
|
1479
|
+
}(), i.mode.ECB;
|
|
1480
|
+
});
|
|
1481
|
+
})(Ge);
|
|
1482
|
+
var Ne = { exports: {} };
|
|
1483
|
+
(function(o, w) {
|
|
1484
|
+
(function(i, s, k) {
|
|
1485
|
+
o.exports = s(F(), ae());
|
|
1486
|
+
})(I, function(i) {
|
|
1487
|
+
return i.pad.Pkcs7;
|
|
1488
|
+
});
|
|
1489
|
+
})(Ne);
|
|
1490
|
+
var je = { exports: {} };
|
|
1491
|
+
(function(o, w) {
|
|
1492
|
+
(function(i, s) {
|
|
1493
|
+
o.exports = s(F());
|
|
1494
|
+
})(I, function(i) {
|
|
1495
|
+
return i.enc.Hex;
|
|
1496
|
+
});
|
|
1497
|
+
})(je);
|
|
1498
|
+
const Me = navigator.userAgent.toLowerCase();
|
|
1499
|
+
function ye() {
|
|
1500
|
+
return Me.includes("leadeon");
|
|
1501
|
+
}
|
|
1502
|
+
function Ce(o, w = "") {
|
|
1503
|
+
const i = new URLSearchParams(o), s = Object.fromEntries(i.entries());
|
|
1504
|
+
return w ? s[w] || "" : s;
|
|
1505
|
+
}
|
|
1506
|
+
function te(o = "") {
|
|
1507
|
+
return Ce(window.location.search, o);
|
|
1508
|
+
}
|
|
1509
|
+
function oe(o = "") {
|
|
1510
|
+
const w = window.location.hash || "";
|
|
1511
|
+
return Ce(w.split("?")[1] || "", o);
|
|
1512
|
+
}
|
|
1513
|
+
function qe(o = "") {
|
|
1514
|
+
return o ? te(o) || oe(o) : {
|
|
1515
|
+
search: te(),
|
|
1516
|
+
hash: oe()
|
|
1517
|
+
};
|
|
1518
|
+
}
|
|
1519
|
+
function xe() {
|
|
1520
|
+
return new Promise((o, w) => {
|
|
1521
|
+
if (window.leadeon)
|
|
1522
|
+
o("leadeon.js加载成功");
|
|
1523
|
+
else {
|
|
1524
|
+
const i = document.createElement("script");
|
|
1525
|
+
i.src = "https://res.app.coc.10086.cn/appother/js/public/leadeon.js", i.type = "text/javascript", i.crossOrigin = "anonymous", i.onload = function() {
|
|
1526
|
+
o("leadeon.js加载成功");
|
|
1527
|
+
}, i.onerror = function() {
|
|
1528
|
+
w("leadeon.js加载失败");
|
|
1529
|
+
}, document.getElementsByTagName("head")[0].appendChild(i);
|
|
1530
|
+
}
|
|
1531
|
+
});
|
|
1532
|
+
}
|
|
1533
|
+
function He() {
|
|
1534
|
+
return new Promise((o, w) => {
|
|
1535
|
+
if (window.showCommonShareBox)
|
|
1536
|
+
o("share.js加载成功");
|
|
1537
|
+
else {
|
|
1538
|
+
const i = document.createElement("script");
|
|
1539
|
+
i.src = "https://wap.cq.10086.cn/mapp/activities/act2023/share/js/share.js", i.type = "text/javascript", i.crossOrigin = "anonymous", i.onload = function() {
|
|
1540
|
+
o("share.js加载成功");
|
|
1541
|
+
}, i.onerror = function() {
|
|
1542
|
+
w("share.js加载失败");
|
|
1543
|
+
}, document.getElementsByTagName("head")[0].appendChild(i);
|
|
1544
|
+
}
|
|
1545
|
+
});
|
|
1546
|
+
}
|
|
1547
|
+
Pe.init();
|
|
1548
|
+
const Z = {
|
|
1549
|
+
urlToken: {
|
|
1550
|
+
// 来自url中的token, 需要转化为mcToken, 重庆本地和集团名称一样, 默认按重庆本地
|
|
1551
|
+
name: "token",
|
|
1552
|
+
// 名称
|
|
1553
|
+
position: "all",
|
|
1554
|
+
// 位置 search | hash | all
|
|
1555
|
+
type: "cq"
|
|
1556
|
+
// cq | jt
|
|
1557
|
+
},
|
|
1558
|
+
myToken: {
|
|
1559
|
+
// mytoken原商城token, 商城2.0以后需要转化为mctoken
|
|
1560
|
+
name: "mytoken",
|
|
1561
|
+
position: "all"
|
|
1562
|
+
// 位置 search | hash | all
|
|
1563
|
+
},
|
|
1564
|
+
appToken: {
|
|
1565
|
+
sourceId: ""
|
|
1566
|
+
},
|
|
1567
|
+
sessToken: {
|
|
1568
|
+
// 本地存储token, 也是登录判断标识, 各项目可能不一致
|
|
1569
|
+
name: "token",
|
|
1570
|
+
// 名称
|
|
1571
|
+
position: "session"
|
|
1572
|
+
// 位置 session | local
|
|
1573
|
+
},
|
|
1574
|
+
mcToken: {
|
|
1575
|
+
// 商城2.0以后的token, 等同sessToken, 可放url中
|
|
1576
|
+
name: "mctoken",
|
|
1577
|
+
position: "all"
|
|
1578
|
+
// 位置 search | hash | all
|
|
1579
|
+
},
|
|
1580
|
+
host: ""
|
|
1581
|
+
// 接口, 仅支持商城2.0及以上, 集团app内会自动转化
|
|
1582
|
+
};
|
|
1583
|
+
function Xe(o) {
|
|
1584
|
+
return new Promise((w, i) => {
|
|
1585
|
+
leadeon.checkSessionIsvalid({
|
|
1586
|
+
debug: !1,
|
|
1587
|
+
success: function(s) {
|
|
1588
|
+
String(s.status) === "1" && leadeon.getYDRZToken({
|
|
1589
|
+
debug: !1,
|
|
1590
|
+
sourceId: o,
|
|
1591
|
+
success: function(k) {
|
|
1592
|
+
w(k.token);
|
|
1593
|
+
},
|
|
1594
|
+
error: function(k) {
|
|
1595
|
+
i(k);
|
|
1596
|
+
}
|
|
1597
|
+
});
|
|
1598
|
+
},
|
|
1599
|
+
error: function(s) {
|
|
1600
|
+
i(s);
|
|
1601
|
+
}
|
|
1602
|
+
});
|
|
1603
|
+
});
|
|
1604
|
+
}
|
|
1605
|
+
function ne(o, w) {
|
|
1606
|
+
if (w === "search")
|
|
1607
|
+
return te(o);
|
|
1608
|
+
if (w === "hash")
|
|
1609
|
+
return oe(o);
|
|
1610
|
+
if (w === "all")
|
|
1611
|
+
return qe(o);
|
|
1612
|
+
}
|
|
1613
|
+
function vr(o = {}) {
|
|
1614
|
+
return Object.keys(Z).forEach((w) => {
|
|
1615
|
+
Z[w] instanceof Object ? o[w] = Object.assign(Z[w], o[w]) : o[w] = o[w] || Z[w];
|
|
1616
|
+
}), new Promise((w, i) => {
|
|
1617
|
+
if (!o.host) {
|
|
1618
|
+
i("缺少host");
|
|
1619
|
+
return;
|
|
1620
|
+
}
|
|
1621
|
+
const s = ((C) => {
|
|
1622
|
+
if (C.position === "local")
|
|
1623
|
+
return localStorage.getItem(C.name);
|
|
1624
|
+
if (C.position === "session")
|
|
1625
|
+
return sessionStorage.getItem(C.name);
|
|
1626
|
+
})(o.sessToken);
|
|
1627
|
+
if (s) {
|
|
1628
|
+
w({
|
|
1629
|
+
token: s,
|
|
1630
|
+
from: "sessToken"
|
|
1631
|
+
});
|
|
1632
|
+
return;
|
|
1633
|
+
}
|
|
1634
|
+
const k = ne(o.mcToken.name, o.mcToken.position);
|
|
1635
|
+
if (k) {
|
|
1636
|
+
w({
|
|
1637
|
+
token: k,
|
|
1638
|
+
from: "mcToken"
|
|
1639
|
+
});
|
|
1640
|
+
return;
|
|
1641
|
+
}
|
|
1642
|
+
const P = ne(o.urlToken.name, o.urlToken.position);
|
|
1643
|
+
if (P) {
|
|
1644
|
+
O(
|
|
1645
|
+
`${o.host}/api/user/loginReturnJsonToken`,
|
|
1646
|
+
{
|
|
1647
|
+
from: o.urlToken.type === "jt" ? "JT" : "CQAPP",
|
|
1648
|
+
data: o.urlToken.type === "jt" ? P : JSON.stringify({ ticket: P })
|
|
1649
|
+
}
|
|
1650
|
+
).then((C) => {
|
|
1651
|
+
w({
|
|
1652
|
+
token: C.data,
|
|
1653
|
+
from: "urlToken"
|
|
1654
|
+
});
|
|
1655
|
+
}).catch((C) => {
|
|
1656
|
+
i(C);
|
|
1657
|
+
});
|
|
1658
|
+
return;
|
|
1659
|
+
}
|
|
1660
|
+
const W = ne(o.myToken.name, o.myToken.position);
|
|
1661
|
+
if (W) {
|
|
1662
|
+
O(
|
|
1663
|
+
`${o.host}/api/user/entryFromThirdPartyJson`,
|
|
1664
|
+
{
|
|
1665
|
+
data: W
|
|
1666
|
+
}
|
|
1667
|
+
).then((C) => {
|
|
1668
|
+
w({
|
|
1669
|
+
token: C.data,
|
|
1670
|
+
from: "urlToken"
|
|
1671
|
+
});
|
|
1672
|
+
}).catch((C) => {
|
|
1673
|
+
i(C);
|
|
1674
|
+
});
|
|
1675
|
+
return;
|
|
1676
|
+
}
|
|
1677
|
+
if (ye()) {
|
|
1678
|
+
if (!o.appToken.sourceId) {
|
|
1679
|
+
i("缺少sourceId");
|
|
1680
|
+
return;
|
|
1681
|
+
}
|
|
1682
|
+
xe().then(() => {
|
|
1683
|
+
Xe(o.appToken.sourceId).then((C) => {
|
|
1684
|
+
O(
|
|
1685
|
+
`${o.host}/api/user/loginReturnJsonToken`,
|
|
1686
|
+
{
|
|
1687
|
+
from: "JT",
|
|
1688
|
+
data: C
|
|
1689
|
+
}
|
|
1690
|
+
).then((z) => {
|
|
1691
|
+
w({
|
|
1692
|
+
token: z.data,
|
|
1693
|
+
from: "appToken"
|
|
1694
|
+
});
|
|
1695
|
+
}).catch((z) => {
|
|
1696
|
+
i(z);
|
|
1697
|
+
});
|
|
1698
|
+
}).catch((C) => i(C));
|
|
1699
|
+
}).catch((C) => i(C));
|
|
1700
|
+
return;
|
|
1701
|
+
}
|
|
1702
|
+
i("未登录");
|
|
1703
|
+
});
|
|
1704
|
+
}
|
|
1705
|
+
function hr({ title: o, content: w, link: i, imgUrl: s }) {
|
|
1706
|
+
ye() ? xe().then(() => {
|
|
1707
|
+
window.leadeon.shareMessage({
|
|
1708
|
+
debug: !1,
|
|
1709
|
+
shareChannelArray: ["0", "1", "2", "3", "4", "5", "6", "7"],
|
|
1710
|
+
title: o,
|
|
1711
|
+
content: w,
|
|
1712
|
+
link: i,
|
|
1713
|
+
imgUrl: s,
|
|
1714
|
+
success: function() {
|
|
1715
|
+
},
|
|
1716
|
+
error: function(k) {
|
|
1717
|
+
}
|
|
1718
|
+
});
|
|
1719
|
+
}) : He().then(() => {
|
|
1720
|
+
window.showCommonShareBox(
|
|
1721
|
+
[0, 1, 2, 3, 4, 5],
|
|
1722
|
+
o,
|
|
1723
|
+
w,
|
|
1724
|
+
i,
|
|
1725
|
+
s,
|
|
1726
|
+
!0
|
|
1727
|
+
);
|
|
1728
|
+
});
|
|
1729
|
+
}
|
|
1730
|
+
const Ze = "data:image/png;base64,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", Oe = { class: "login__content" }, Je = { class: "login__mobile" }, Re = { class: "login__sms" }, Ke = {
|
|
1731
|
+
key: 0,
|
|
1732
|
+
class: "login__sms-countdown"
|
|
1733
|
+
}, we = {
|
|
1734
|
+
__name: "Login",
|
|
1735
|
+
props: ["close"],
|
|
1736
|
+
emits: ["onSend", "onLogin"],
|
|
1737
|
+
setup(o, { emit: w }) {
|
|
1738
|
+
const i = o, s = w, k = X(""), P = X(""), W = X(!1), C = X(59), z = () => {
|
|
1739
|
+
W.value = !0;
|
|
1740
|
+
const x = setInterval(() => {
|
|
1741
|
+
C.value -= 1, C.value < 1 && (clearInterval(x), W.value = !1, C.value = 59);
|
|
1742
|
+
}, 1e3);
|
|
1743
|
+
}, t = () => {
|
|
1744
|
+
s(
|
|
1745
|
+
"onSend",
|
|
1746
|
+
{ mobile: k.value },
|
|
1747
|
+
z
|
|
1748
|
+
);
|
|
1749
|
+
}, b = () => {
|
|
1750
|
+
i.close ? s(
|
|
1751
|
+
"onLogin",
|
|
1752
|
+
{ mobile: k.value, sms: P.value },
|
|
1753
|
+
i.close
|
|
1754
|
+
) : s(
|
|
1755
|
+
"onLogin",
|
|
1756
|
+
{ mobile: k.value, sms: P.value }
|
|
1757
|
+
);
|
|
1758
|
+
};
|
|
1759
|
+
return (x, d) => (q(), H("div", Oe, [
|
|
1760
|
+
G("div", Je, [
|
|
1761
|
+
ie(G("input", {
|
|
1762
|
+
class: "login__mobile-value",
|
|
1763
|
+
placeholder: "请输入手机号",
|
|
1764
|
+
maxlength: "11",
|
|
1765
|
+
"onUpdate:modelValue": d[0] || (d[0] = (g) => k.value = g)
|
|
1766
|
+
}, null, 512), [
|
|
1767
|
+
[se, k.value]
|
|
1768
|
+
])
|
|
1769
|
+
]),
|
|
1770
|
+
G("div", Re, [
|
|
1771
|
+
ie(G("input", {
|
|
1772
|
+
class: "login__sms-value",
|
|
1773
|
+
placeholder: "请输入验证码",
|
|
1774
|
+
maxlength: "6",
|
|
1775
|
+
"onUpdate:modelValue": d[1] || (d[1] = (g) => P.value = g)
|
|
1776
|
+
}, null, 512), [
|
|
1777
|
+
[se, P.value]
|
|
1778
|
+
]),
|
|
1779
|
+
W.value ? (q(), H("span", Ke, "还有" + Ee(C.value) + "s", 1)) : (q(), H("span", {
|
|
1780
|
+
key: 1,
|
|
1781
|
+
class: "login__sms-btn",
|
|
1782
|
+
onClick: t
|
|
1783
|
+
}, "获取验证码"))
|
|
1784
|
+
]),
|
|
1785
|
+
G("div", {
|
|
1786
|
+
class: "login__btn",
|
|
1787
|
+
onClick: b
|
|
1788
|
+
}, "登录")
|
|
1789
|
+
]));
|
|
1790
|
+
}
|
|
1791
|
+
}, be = (o, w) => {
|
|
1792
|
+
const i = o.__vccOpts || o;
|
|
1793
|
+
for (const [s, k] of w)
|
|
1794
|
+
i[s] = k;
|
|
1795
|
+
return i;
|
|
1796
|
+
}, _e = (o) => (me("data-v-5966a29e"), o = o(), Be(), o), $e = { class: "login-modal fade-in-out" }, er = { class: "login-modal__content" }, rr = /* @__PURE__ */ _e(() => /* @__PURE__ */ G("img", {
|
|
1797
|
+
class: "login-modal__logo",
|
|
1798
|
+
src: Ze
|
|
1799
|
+
}, null, -1)), nr = {
|
|
1800
|
+
__name: "LoginModal",
|
|
1801
|
+
props: ["sendSMS", "login", "close"],
|
|
1802
|
+
setup(o) {
|
|
1803
|
+
return (w, i) => (q(), H("div", $e, [
|
|
1804
|
+
G("div", er, [
|
|
1805
|
+
rr,
|
|
1806
|
+
G("span", {
|
|
1807
|
+
class: "login-modal__colse",
|
|
1808
|
+
onClick: i[0] || (i[0] = (...s) => o.close && o.close(...s))
|
|
1809
|
+
}, "×"),
|
|
1810
|
+
ge(we, {
|
|
1811
|
+
close: o.close,
|
|
1812
|
+
onOnSend: o.sendSMS,
|
|
1813
|
+
onOnLogin: o.login
|
|
1814
|
+
}, null, 8, ["close", "onOnSend", "onOnLogin"])
|
|
1815
|
+
])
|
|
1816
|
+
]));
|
|
1817
|
+
}
|
|
1818
|
+
}, tr = /* @__PURE__ */ be(nr, [["__scopeId", "data-v-5966a29e"]]), dr = ({ sendSMS: o, login: w }) => {
|
|
1819
|
+
const s = Se(tr, {
|
|
1820
|
+
sendSMS: o,
|
|
1821
|
+
login: w,
|
|
1822
|
+
close: () => {
|
|
1823
|
+
ce(null, document.body);
|
|
1824
|
+
}
|
|
1825
|
+
});
|
|
1826
|
+
ce(s, document.body);
|
|
1827
|
+
}, or = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAANQAAADbCAYAAAAViL/NAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDE0IDc5LjE1MTQ4MSwgMjAxMy8wMy8xMy0xMjowOToxNSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo2OENCMTBFMjNFNDcxMUU5OEFCMUQxNzdCMzdGNDE4RSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo2OENCMTBFMzNFNDcxMUU5OEFCMUQxNzdCMzdGNDE4RSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjY4Q0IxMEUwM0U0NzExRTk4QUIxRDE3N0IzN0Y0MThFIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjY4Q0IxMEUxM0U0NzExRTk4QUIxRDE3N0IzN0Y0MThFIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+D8OfTwAALuVJREFUeNrsXQe4FEUS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", ke = (o) => (me("data-v-35d8ed75"), o = o(), Be(), o), ar = { class: "login-page" }, ir = /* @__PURE__ */ ke(() => /* @__PURE__ */ G("img", {
|
|
1828
|
+
class: "login-page__logo",
|
|
1829
|
+
src: or
|
|
1830
|
+
}, null, -1)), sr = /* @__PURE__ */ ke(() => /* @__PURE__ */ G("p", { class: "login-page__tips" }, "短信验证码登录", -1)), cr = {
|
|
1831
|
+
__name: "LoginPage",
|
|
1832
|
+
props: ["sendSMS", "login"],
|
|
1833
|
+
setup(o) {
|
|
1834
|
+
return (w, i) => (q(), H("div", ar, [
|
|
1835
|
+
ir,
|
|
1836
|
+
sr,
|
|
1837
|
+
ge(we, {
|
|
1838
|
+
onOnSend: o.sendSMS,
|
|
1839
|
+
onOnLogin: o.login
|
|
1840
|
+
}, null, 8, ["onOnSend", "onOnLogin"])
|
|
1841
|
+
]));
|
|
1842
|
+
}
|
|
1843
|
+
}, fr = /* @__PURE__ */ be(cr, [["__scopeId", "data-v-35d8ed75"]]), pr = {
|
|
1844
|
+
install(o) {
|
|
1845
|
+
o.component("LoginPage", fr);
|
|
1846
|
+
}
|
|
1847
|
+
};
|
|
1848
|
+
export {
|
|
1849
|
+
dr as LoginModal,
|
|
1850
|
+
pr as LoginPage,
|
|
1851
|
+
vr as converToken,
|
|
1852
|
+
hr as share
|
|
1853
|
+
};
|