dsh-pocket 1.14.4 → 1.14.5
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/lib/proxy.mjs +7 -10
- package/package.json +1 -1
package/lib/proxy.mjs
CHANGED
|
@@ -27,16 +27,13 @@ const DEFAULT_UPSTREAM = { host: '127.0.0.1', port: 3080 };
|
|
|
27
27
|
* 带 data-dsh-pocket-polyfill 标记:注入判重用它,而不是搜索 "crypto.randomUUID"
|
|
28
28
|
* 字样(dsh 页面源码里可能恰好出现该字符串,导致误判为已注入而跳过)。
|
|
29
29
|
*/
|
|
30
|
-
export const RANDOM_UUID_POLYFILL = `<script data-dsh-pocket-polyfill="1"
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
let location = __dshPocketLoc;
|
|
38
|
-
!function(){try{if(self.crypto&&!self.crypto.randomUUID){self.crypto.randomUUID=function(){var b=new Uint8Array(16);self.crypto.getRandomValues(b);b[6]=b[6]&15|64;b[8]=b[8]&63|128;var h="";for(var i=0;i<16;i++){var x=b[i].toString(16);h+=(x.length<2?"0":"")+x;if(i===3||i===5||i===7||i===9)h+="-";}return h;}}}catch(e){}}();
|
|
39
|
-
!function(){try{if(self.AbortSignal&&!self.AbortSignal.any){self.AbortSignal.any=function(signals){var controller=new AbortController();var list=Array.from(signals||[]);var done=false;var handlers=list.map(function(signal){return function(){abort(signal);};});function cleanup(){for(var i=0;i<list.length;i++){try{list[i].removeEventListener('abort',handlers[i]);}catch(e){}}}function abort(signal){if(done)return;done=true;cleanup();try{controller.abort(signal.reason);}catch(e){controller.abort();}}for(var j=0;j<list.length;j++){var sig=list[j];if(sig.aborted){abort(sig);break;}sig.addEventListener('abort',handlers[j],{once:true});}return controller.signal;};}}catch(e){}}();</script>`;
|
|
30
|
+
export const RANDOM_UUID_POLYFILL = `<script data-dsh-pocket-polyfill="1">!function(){try{if(self.crypto&&!self.crypto.randomUUID){self.crypto.randomUUID=function(){var b=new Uint8Array(16);self.crypto.getRandomValues(b);b[6]=b[6]&15|64;b[8]=b[8]&63|128;var h="";for(var i=0;i<16;i++){var x=b[i].toString(16);h+=(x.length<2?"0":"")+x;if(i===3||i===5||i===7||i===9)h+="-";}return h;}}}catch(e){}}();
|
|
31
|
+
!function(){try{if(self.AbortSignal&&!self.AbortSignal.any){self.AbortSignal.any=function(signals){var controller=new AbortController();var list=Array.from(signals||[]);var done=false;var handlers=list.map(function(signal){return function(){abort(signal);};});function cleanup(){for(var i=0;i<list.length;i++){try{list[i].removeEventListener('abort',handlers[i]);}catch(e){}}}function abort(signal){if(done)return;done=true;cleanup();try{controller.abort(signal.reason);}catch(e){controller.abort();}}for(var j=0;j<list.length;j++){var sig=list[j];if(sig.aborted){abort(sig);break;}sig.addEventListener('abort',handlers[j],{once:true});}return controller.signal;};}}catch(e){}}();
|
|
32
|
+
/* 注:曾用「全局 let location + Proxy」伪装 location.hostname 修 DSH isLoopback 判定
|
|
33
|
+
(issue #58:局域网访问模型设置页报 settings unavailable)——但 let location 全局
|
|
34
|
+
词法绑定会让任何恰好顶层声明 location 的脚本(DSH 插件经典 script)SyntaxError 崩溃,
|
|
35
|
+
导致会话列表不显示(实测 PAGEERROR: Identifier 'location' has already been declared)。
|
|
36
|
+
已回退;该问题属 DSH 客户端限制(location.hostname 是 unforgeable 属性)无法安全绕过。*/</script>`;
|
|
40
37
|
|
|
41
38
|
const INJECT_MARK = 'data-dsh-pocket-polyfill="1"';
|
|
42
39
|
|
package/package.json
CHANGED