@whitesev/utils 2.6.0 → 2.6.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.
@@ -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.3
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
package/package.json CHANGED
@@ -1,52 +1,52 @@
1
- {
2
- "name": "@whitesev/utils",
3
- "version": "2.6.0",
4
- "description": "一个常用的工具库",
5
- "main": "dist/index.cjs.js",
6
- "module": "dist/index.esm.js",
7
- "types": "dist/types/index.d.ts",
8
- "jsdelivr": "dist/index.umd.js",
9
- "exports": {
10
- "./package.json": "./package.json",
11
- "./dist/*": "./dist/*",
12
- ".": {
13
- "import": "./dist/index.esm.js",
14
- "require": "./dist/index.cjs.js",
15
- "types": "./dist/types/index.d.ts"
16
- }
17
- },
18
- "files": [
19
- "dist",
20
- "src"
21
- ],
22
- "publishConfig": {
23
- "registry": "https://registry.npmjs.org/"
24
- },
25
- "keywords": [
26
- "typescript",
27
- "Utils",
28
- "工具类",
29
- "TamperMonkey",
30
- "VioletMonkey",
31
- "ScriptCat"
32
- ],
33
- "author": "WhiteSev",
34
- "license": "MIT",
35
- "dependencies": {
36
- "@rollup/plugin-babel": "^6.0.4",
37
- "@rollup/plugin-commonjs": "^26.0.1",
38
- "@rollup/plugin-node-resolve": "^15.2.3",
39
- "@rollup/plugin-typescript": "^11.1.6",
40
- "rollup-plugin-clear": "^2.0.7",
41
- "tslib": "^2.6.3"
42
- },
43
- "devDependencies": {
44
- "typescript": "^5.5.4"
45
- },
46
- "scripts": {
47
- "dev": "rollup --config --watch",
48
- "build": "rollup --config",
49
- "build:all": "rollup --config",
50
- "build:all-new": "rollup --config"
51
- }
52
- }
1
+ {
2
+ "name": "@whitesev/utils",
3
+ "version": "2.6.1",
4
+ "description": "一个常用的工具库",
5
+ "main": "dist/index.cjs.js",
6
+ "module": "dist/index.esm.js",
7
+ "types": "dist/types/index.d.ts",
8
+ "jsdelivr": "dist/index.umd.js",
9
+ "exports": {
10
+ "./package.json": "./package.json",
11
+ "./dist/*": "./dist/*",
12
+ ".": {
13
+ "import": "./dist/index.esm.js",
14
+ "require": "./dist/index.cjs.js",
15
+ "types": "./dist/types/index.d.ts"
16
+ }
17
+ },
18
+ "files": [
19
+ "dist",
20
+ "src"
21
+ ],
22
+ "scripts": {
23
+ "dev": "rollup --config --watch",
24
+ "build": "rollup --config",
25
+ "build:all": "rollup --config",
26
+ "build:all-new": "rollup --config"
27
+ },
28
+ "publishConfig": {
29
+ "registry": "https://registry.npmjs.org/"
30
+ },
31
+ "keywords": [
32
+ "typescript",
33
+ "Utils",
34
+ "工具类",
35
+ "TamperMonkey",
36
+ "VioletMonkey",
37
+ "ScriptCat"
38
+ ],
39
+ "author": "WhiteSev",
40
+ "license": "MIT",
41
+ "dependencies": {
42
+ "@rollup/plugin-babel": "^6.0.4",
43
+ "@rollup/plugin-commonjs": "^26.0.1",
44
+ "@rollup/plugin-node-resolve": "^15.2.3",
45
+ "@rollup/plugin-typescript": "^11.1.6",
46
+ "rollup-plugin-clear": "^2.0.7",
47
+ "tslib": "^2.6.3"
48
+ },
49
+ "devDependencies": {
50
+ "typescript": "^5.5.4"
51
+ }
52
+ }
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.1.11";
34
+ version = "2025.2.8";
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.3
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
@@ -1,14 +1,13 @@
1
1
  // @name ajaxHooker
2
2
  // @author cxxjackie
3
- // @version 1.4.3
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.3";
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) => {