efront 3.9.15 → 3.9.16
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/coms/basic/cookie.js +91 -0
- package/coms/zimoli/cross.js +6 -66
- package/package.json +1 -1
- package/public/efront.js +1 -1
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
var cookiesMap = {};
|
|
2
|
+
var parseCookieFromText = function (cookie) {
|
|
3
|
+
var pairs = cookie.split(/;\s*/);
|
|
4
|
+
var info = {};
|
|
5
|
+
for (var cx = 1, dx = pairs.length; cx < dx; cx++) {
|
|
6
|
+
var kvs = /^(.+?)\=(.+?)$/.exec(pairs[cx]);
|
|
7
|
+
if (!kvs) continue;
|
|
8
|
+
var [, k, v] = kvs;
|
|
9
|
+
k = k.trim().toLowerCase();
|
|
10
|
+
switch (k) {
|
|
11
|
+
case "expires":
|
|
12
|
+
v = +new Date(v);
|
|
13
|
+
break;
|
|
14
|
+
case "max-age":
|
|
15
|
+
k = "expires";
|
|
16
|
+
v = Date.now() + v * 1000;
|
|
17
|
+
break;
|
|
18
|
+
}
|
|
19
|
+
info[k] = v;
|
|
20
|
+
}
|
|
21
|
+
var pair = parseKV(pairs[0], ";");
|
|
22
|
+
return [pair, info];
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
function addCookie(cookie_text, originDomain = "") {
|
|
26
|
+
if (!cookie_text) return;
|
|
27
|
+
var cookies = cookie_text.replace(/(^|;|,)\s*(expires)=(\w*),([^=]*)(;|$)/ig, "$1$2=$3.$4$5")
|
|
28
|
+
.split(/,\s*/).map(parseCookieFromText);
|
|
29
|
+
for (var cookie of cookies) {
|
|
30
|
+
var [pair, info] = cookie;
|
|
31
|
+
var { path, domain, expires } = info;
|
|
32
|
+
if (!domain) {
|
|
33
|
+
domain = originDomain.replace(/[^\/]+$/, "");
|
|
34
|
+
}
|
|
35
|
+
if (/^\./.test(domain)) {
|
|
36
|
+
domain = domain.replace(/^\.+/, "");
|
|
37
|
+
}
|
|
38
|
+
var destPath;
|
|
39
|
+
if (/^\//.test(path)) {
|
|
40
|
+
destPath = domain.replace(/\/.*$/, "") + path;
|
|
41
|
+
} else {
|
|
42
|
+
destPath = domain;
|
|
43
|
+
}
|
|
44
|
+
destPath = destPath.replace(/\/+$/, "");
|
|
45
|
+
if (originDomain.indexOf(destPath) >= 0) {
|
|
46
|
+
if (!cookiesMap[destPath]) {
|
|
47
|
+
cookiesMap[destPath] = {};
|
|
48
|
+
}
|
|
49
|
+
var map = cookiesMap[destPath];
|
|
50
|
+
for (var k in pair) {
|
|
51
|
+
var v = pair[k];
|
|
52
|
+
map[k] = [v, expires];
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
function getCookies(domainPath) {
|
|
59
|
+
var cookieObject = {};
|
|
60
|
+
var splited = domainPath.split("/");
|
|
61
|
+
var domain = splited[0];
|
|
62
|
+
var now = Date.now();
|
|
63
|
+
do {
|
|
64
|
+
var copy = splited.slice(0);
|
|
65
|
+
do {
|
|
66
|
+
domainPath = copy.join("/");
|
|
67
|
+
var cookie = cookiesMap[domainPath];
|
|
68
|
+
if (cookie) {
|
|
69
|
+
for (var k in cookie) {
|
|
70
|
+
if (!cookieObject[k]) {
|
|
71
|
+
var [cook, expires] = cookie[k];
|
|
72
|
+
if (expires && expires < now) {
|
|
73
|
+
delete cookieObject[k];
|
|
74
|
+
continue;
|
|
75
|
+
}
|
|
76
|
+
cookieObject[k] = cook;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
copy.pop();
|
|
81
|
+
} while (copy.length);
|
|
82
|
+
domain = domain.replace(/^.*?(\.|$)/, "");
|
|
83
|
+
splited[0] = domain;
|
|
84
|
+
} while (domain.length);
|
|
85
|
+
return serialize(cookieObject, ";");
|
|
86
|
+
}
|
|
87
|
+
return {
|
|
88
|
+
cookiesMap,
|
|
89
|
+
addCookie,
|
|
90
|
+
getCookies,
|
|
91
|
+
}
|
package/coms/zimoli/cross.js
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
var FormData = this.FormData;
|
|
2
|
-
var cookiesMap =
|
|
2
|
+
var { cookiesMap, getCookies, addCookie } = cookie;
|
|
3
|
+
var saveCookie = lazy(function () {
|
|
4
|
+
sessionStorage.setItem(cookieItemsInSessionStorageKey, JSON.stringify(cookiesMap));
|
|
5
|
+
}, 20);
|
|
3
6
|
// ///// 1 ////////// 2 /////// 3 //// 4 //
|
|
4
7
|
var domainReg = /^(?:(https?)\:)?\/\/(.*?)(?:\/(.*?))?([\?#].*)?$/i;
|
|
5
8
|
var base = domainReg.test(location.href) ? '/' : "http://efront.cc/";
|
|
@@ -33,71 +36,6 @@ function getRequestProtocol(url) {
|
|
|
33
36
|
}
|
|
34
37
|
return "http:";
|
|
35
38
|
}
|
|
36
|
-
function getCookies(domainPath) {
|
|
37
|
-
var cookieObject = {};
|
|
38
|
-
var splited = domainPath.split("/");
|
|
39
|
-
var domain = splited[0];
|
|
40
|
-
do {
|
|
41
|
-
var copy = splited.slice(0);
|
|
42
|
-
do {
|
|
43
|
-
domainPath = copy.join("/");
|
|
44
|
-
var cookie = cookiesMap[domainPath];
|
|
45
|
-
if (cookie) {
|
|
46
|
-
for (var k in cookie) {
|
|
47
|
-
if (!cookieObject[k]) {
|
|
48
|
-
cookieObject[k] = cookie[k];
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
copy.pop();
|
|
53
|
-
} while (copy.length);
|
|
54
|
-
domain = domain.replace(/^.*?(\.|$)/, "");
|
|
55
|
-
splited[0] = domain;
|
|
56
|
-
} while (domain.length);
|
|
57
|
-
return serialize(cookieObject, ";");
|
|
58
|
-
}
|
|
59
|
-
function addCookie(cookie, originDomain = "") {
|
|
60
|
-
if (cookie) {
|
|
61
|
-
clearTimeout(addCookie.save_timer);
|
|
62
|
-
addCookie.save_timer = setTimeout(function () {
|
|
63
|
-
sessionStorage.setItem(cookieItemsInSessionStorageKey, JSON.stringify(cookiesMap));
|
|
64
|
-
}, 20);
|
|
65
|
-
cookie.replace(/(^|;|,)\s*(expires)=(\w*),([^=]*)(;|$)/ig, "$1$2=$3.$4$5")
|
|
66
|
-
.split(/,\s*/).map(function (cookie) {
|
|
67
|
-
var cookieObject = {};
|
|
68
|
-
var result = cookie.split(/;\s*/);
|
|
69
|
-
result.slice(1).map(function (kev) {
|
|
70
|
-
var kvs = /^(.+?)\=(.+?)$/.exec(kev);
|
|
71
|
-
if (kvs) {
|
|
72
|
-
var [, k, v] = kvs;
|
|
73
|
-
cookieObject[k.toLowerCase()] = v;
|
|
74
|
-
}
|
|
75
|
-
});
|
|
76
|
-
var { path, domain } = cookieObject;
|
|
77
|
-
if (!domain) {
|
|
78
|
-
domain = originDomain.replace(/[^\/]+$/, "");
|
|
79
|
-
}
|
|
80
|
-
if (/^\./.test(domain)) {
|
|
81
|
-
domain = domain.replace(/^\.+/, "");
|
|
82
|
-
}
|
|
83
|
-
var destPath;
|
|
84
|
-
if (/^\//.test(path)) {
|
|
85
|
-
destPath = domain.replace(/\/.*$/, "") + path;
|
|
86
|
-
} else {
|
|
87
|
-
destPath = domain;
|
|
88
|
-
}
|
|
89
|
-
destPath = destPath.replace(/\/+$/, "");
|
|
90
|
-
if (originDomain.indexOf(destPath) >= 0) {
|
|
91
|
-
var cookieMap = parseKV(result[0], ";");
|
|
92
|
-
if (!cookiesMap[destPath]) {
|
|
93
|
-
cookiesMap[destPath] = cookieMap;
|
|
94
|
-
} else {
|
|
95
|
-
extend(cookiesMap[destPath], cookieMap);
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
});
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
39
|
function isChildPath(relative, path) {
|
|
102
40
|
return relative.replace(/^(.*\/)[^\/]*$/, path);
|
|
103
41
|
}
|
|
@@ -174,6 +112,7 @@ function cross(method, url, headers) {
|
|
|
174
112
|
if (xhr.getResponseHeader && !nocross) {
|
|
175
113
|
var cookie = xhr.getResponseHeader("efront-cookie");
|
|
176
114
|
addCookie(cookie, originDomain);
|
|
115
|
+
saveCookie();
|
|
177
116
|
}
|
|
178
117
|
switch (xhr.status) {
|
|
179
118
|
case 0:
|
|
@@ -380,6 +319,7 @@ extend(cross, {
|
|
|
380
319
|
setHost,
|
|
381
320
|
addReform,
|
|
382
321
|
getCookies,
|
|
322
|
+
saveCookie,
|
|
383
323
|
addCookie,
|
|
384
324
|
addDirect,
|
|
385
325
|
getCrossUrl
|