@whitesev/utils 2.6.0 → 2.6.2
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/dist/index.amd.js +56 -6
- package/dist/index.amd.js.map +1 -1
- package/dist/index.cjs.js +56 -6
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm.js +56 -6
- package/dist/index.esm.js.map +1 -1
- package/dist/index.iife.js +56 -6
- package/dist/index.iife.js.map +1 -1
- package/dist/index.system.js +56 -6
- package/dist/index.system.js.map +1 -1
- package/dist/index.umd.js +56 -6
- package/dist/index.umd.js.map +1 -1
- package/dist/types/src/Utils.d.ts +1 -1
- package/dist/types/src/UtilsGMCookie.d.ts +3 -4
- package/package.json +1 -1
- package/src/Utils.ts +2 -2
- package/src/UtilsGMCookie.ts +4 -6
- package/src/ajaxHooker/ajaxHooker.js +54 -4
|
@@ -56,7 +56,7 @@ declare class Utils {
|
|
|
56
56
|
* ajax劫持库,支持xhr和fetch劫持。
|
|
57
57
|
* + 来源:https://bbs.tampermonkey.net.cn/thread-3284-1-1.html
|
|
58
58
|
* + 作者:cxxjackie
|
|
59
|
-
* + 版本:1.4.
|
|
59
|
+
* + 版本:1.4.4
|
|
60
60
|
* + 旧版本:1.2.4
|
|
61
61
|
* + 文档:https://scriptcat.org/zh-CN/script-show-page/637/
|
|
62
62
|
* @param useOldVersion 是否使用旧版本,默认false
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { UtilsGMCookieDeleteOptions, UtilsGMCookieListOptions, UtilsGMCookieResult, UtilsGMCookieSetOptions, WindowApiOption } from "./types/UtilsGMCookie";
|
|
2
|
-
declare class UtilsGMCookie {
|
|
2
|
+
export declare class UtilsGMCookie {
|
|
3
3
|
private windowApi;
|
|
4
4
|
constructor(windowApiOption?: WindowApiOption);
|
|
5
5
|
/**
|
|
@@ -14,12 +14,12 @@ declare class UtilsGMCookie {
|
|
|
14
14
|
* + cookies object[]
|
|
15
15
|
* + error string|undefined
|
|
16
16
|
**/
|
|
17
|
-
list(option: UtilsGMCookieListOptions, callback?: (data: UtilsGMCookieResult[], error?: Error) => void): void;
|
|
17
|
+
list(option: UtilsGMCookieListOptions | {}, callback?: (data: UtilsGMCookieResult[], error?: Error) => void): void;
|
|
18
18
|
/**
|
|
19
19
|
* 获取多组Cookie
|
|
20
20
|
* @param option 配置
|
|
21
21
|
**/
|
|
22
|
-
getList(option: UtilsGMCookieListOptions): UtilsGMCookieResult[];
|
|
22
|
+
getList(option: UtilsGMCookieListOptions | {}): UtilsGMCookieResult[];
|
|
23
23
|
/**
|
|
24
24
|
* 设置Cookie
|
|
25
25
|
* @param option 配置
|
|
@@ -42,4 +42,3 @@ declare class UtilsGMCookie {
|
|
|
42
42
|
value: string;
|
|
43
43
|
}[];
|
|
44
44
|
}
|
|
45
|
-
export { UtilsGMCookie };
|
package/package.json
CHANGED
package/src/Utils.ts
CHANGED
|
@@ -31,7 +31,7 @@ class Utils {
|
|
|
31
31
|
this.windowApi = new WindowApi(option);
|
|
32
32
|
}
|
|
33
33
|
/** 版本号 */
|
|
34
|
-
version = "2025.
|
|
34
|
+
version = "2025.3.24";
|
|
35
35
|
|
|
36
36
|
/**
|
|
37
37
|
* 在页面中增加style元素,如果html节点存在子节点,添加子节点第一个,反之,添加到html节点的子节点最后一个
|
|
@@ -209,7 +209,7 @@ class Utils {
|
|
|
209
209
|
* ajax劫持库,支持xhr和fetch劫持。
|
|
210
210
|
* + 来源:https://bbs.tampermonkey.net.cn/thread-3284-1-1.html
|
|
211
211
|
* + 作者:cxxjackie
|
|
212
|
-
* + 版本:1.4.
|
|
212
|
+
* + 版本:1.4.4
|
|
213
213
|
* + 旧版本:1.2.4
|
|
214
214
|
* + 文档:https://scriptcat.org/zh-CN/script-show-page/637/
|
|
215
215
|
* @param useOldVersion 是否使用旧版本,默认false
|
package/src/UtilsGMCookie.ts
CHANGED
|
@@ -7,7 +7,7 @@ import type {
|
|
|
7
7
|
} from "./types/UtilsGMCookie";
|
|
8
8
|
import { Utils } from "./Utils";
|
|
9
9
|
|
|
10
|
-
class UtilsGMCookie {
|
|
10
|
+
export class UtilsGMCookie {
|
|
11
11
|
private windowApi = {
|
|
12
12
|
window: window,
|
|
13
13
|
document: document,
|
|
@@ -60,7 +60,7 @@ class UtilsGMCookie {
|
|
|
60
60
|
* + error string|undefined
|
|
61
61
|
**/
|
|
62
62
|
list(
|
|
63
|
-
option: UtilsGMCookieListOptions,
|
|
63
|
+
option: UtilsGMCookieListOptions | {},
|
|
64
64
|
callback?: (data: UtilsGMCookieResult[], error?: Error) => void
|
|
65
65
|
) {
|
|
66
66
|
if (option == null) {
|
|
@@ -114,7 +114,7 @@ class UtilsGMCookie {
|
|
|
114
114
|
* 获取多组Cookie
|
|
115
115
|
* @param option 配置
|
|
116
116
|
**/
|
|
117
|
-
getList(option: UtilsGMCookieListOptions): UtilsGMCookieResult[] {
|
|
117
|
+
getList(option: UtilsGMCookieListOptions | {}): UtilsGMCookieResult[] {
|
|
118
118
|
if (option == null) {
|
|
119
119
|
throw new Error("Utils.GMCookie.list 参数不能为空");
|
|
120
120
|
}
|
|
@@ -226,7 +226,7 @@ class UtilsGMCookie {
|
|
|
226
226
|
/**
|
|
227
227
|
* 解析cookie字符串
|
|
228
228
|
* 例如:document.cookie
|
|
229
|
-
* @param cookieStr
|
|
229
|
+
* @param cookieStr
|
|
230
230
|
*/
|
|
231
231
|
parseCookie(cookieStr: string) {
|
|
232
232
|
let cookies = cookieStr.split(";");
|
|
@@ -245,5 +245,3 @@ class UtilsGMCookie {
|
|
|
245
245
|
return result;
|
|
246
246
|
}
|
|
247
247
|
}
|
|
248
|
-
|
|
249
|
-
export { UtilsGMCookie };
|
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
// @name ajaxHooker
|
|
2
2
|
// @author cxxjackie
|
|
3
|
-
// @version 1.4.
|
|
4
|
-
// @updateLog
|
|
5
|
-
// @updateLog xhr事件增加currentTarget劫持。
|
|
3
|
+
// @version 1.4.4
|
|
4
|
+
// @updateLog 修复头条、抖音部分站点下this引用错误的问题。
|
|
6
5
|
// @supportURL https://bbs.tampermonkey.net.cn/thread-3284-1-1.html
|
|
7
6
|
|
|
8
7
|
export const AjaxHooker = function () {
|
|
9
8
|
return (function () {
|
|
10
9
|
"use strict";
|
|
11
|
-
const version = "1.4.
|
|
10
|
+
const version = "1.4.4";
|
|
12
11
|
const hookInst = {
|
|
13
12
|
hookFns: [],
|
|
14
13
|
filters: [],
|
|
@@ -542,6 +541,57 @@ export const AjaxHooker = function () {
|
|
|
542
541
|
win.fetch = winAh.fakeFetch;
|
|
543
542
|
resProto.clone = winAh.fakeFetchClone;
|
|
544
543
|
winAh.hookInsts.add(hookInst);
|
|
544
|
+
// 针对头条、抖音 secsdk.umd.js 的兼容性处理
|
|
545
|
+
class AHFunction {
|
|
546
|
+
call(thisArg, ...args) {
|
|
547
|
+
if (
|
|
548
|
+
thisArg &&
|
|
549
|
+
thisArg.__ajaxHooker &&
|
|
550
|
+
thisArg.__ajaxHooker.proxyXhr === thisArg
|
|
551
|
+
) {
|
|
552
|
+
thisArg = thisArg.__ajaxHooker.originalXhr;
|
|
553
|
+
}
|
|
554
|
+
return Reflect.apply(this, thisArg, args);
|
|
555
|
+
}
|
|
556
|
+
apply(thisArg, args) {
|
|
557
|
+
if (
|
|
558
|
+
thisArg &&
|
|
559
|
+
thisArg.__ajaxHooker &&
|
|
560
|
+
thisArg.__ajaxHooker.proxyXhr === thisArg
|
|
561
|
+
) {
|
|
562
|
+
thisArg = thisArg.__ajaxHooker.originalXhr;
|
|
563
|
+
}
|
|
564
|
+
return Reflect.apply(this, thisArg, args || []);
|
|
565
|
+
}
|
|
566
|
+
}
|
|
567
|
+
function hookSecsdk(csrf) {
|
|
568
|
+
Object.setPrototypeOf(
|
|
569
|
+
csrf.nativeXMLHttpRequestSetRequestHeader,
|
|
570
|
+
AHFunction.prototype
|
|
571
|
+
);
|
|
572
|
+
Object.setPrototypeOf(
|
|
573
|
+
csrf.nativeXMLHttpRequestOpen,
|
|
574
|
+
AHFunction.prototype
|
|
575
|
+
);
|
|
576
|
+
Object.setPrototypeOf(
|
|
577
|
+
csrf.nativeXMLHttpRequestSend,
|
|
578
|
+
AHFunction.prototype
|
|
579
|
+
);
|
|
580
|
+
}
|
|
581
|
+
if (win.secsdk) {
|
|
582
|
+
if (win.secsdk.csrf && win.secsdk.csrf.nativeXMLHttpRequestOpen)
|
|
583
|
+
hookSecsdk(win.secsdk.csrf);
|
|
584
|
+
} else {
|
|
585
|
+
defineProp(win, "secsdk", emptyFn, (secsdk) => {
|
|
586
|
+
delete win.secsdk;
|
|
587
|
+
win.secsdk = secsdk;
|
|
588
|
+
defineProp(secsdk, "csrf", emptyFn, (csrf) => {
|
|
589
|
+
delete secsdk.csrf;
|
|
590
|
+
secsdk.csrf = csrf;
|
|
591
|
+
if (csrf.nativeXMLHttpRequestOpen) hookSecsdk(csrf);
|
|
592
|
+
});
|
|
593
|
+
});
|
|
594
|
+
}
|
|
545
595
|
return {
|
|
546
596
|
hook: (fn) => hookInst.hookFns.push(fn),
|
|
547
597
|
filter: (arr) => {
|