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.
Files changed (2) hide show
  1. package/lib/proxy.mjs +7 -10
  2. 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">/* issue #58:局域网访问时 location.hostname 是局域网 IP,DSH 客户端据此判定
31
- isLoopback=false settings mirror 降级 memory 模式 模型设置页
32
- "settings are unavailable in this browser"。location.hostname WebIDL
33
- unforgeable 属性无法直接覆盖;改用全局 let location 词法绑定遮蔽 +
34
- Proxy 转发(其他属性/方法转发真实 location,只把 hostname 伪装成 127.0.0.1)。
35
- DSH API 基址走 globalThis.location.origin(不受影响)。*/
36
- let __dshPocketLoc = new Proxy(window.location, { get: function (t, p) { if (p === 'hostname') return '127.0.0.1'; var v = t[p]; if (typeof v === 'function') return v.bind(t); return v; }, set: function (t, p, v) { t[p] = v; return true; } });
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
@@ -76,5 +76,5 @@
76
76
  "access": "public",
77
77
  "registry": "https://registry.npmjs.org/"
78
78
  },
79
- "version": "1.14.4"
79
+ "version": "1.14.5"
80
80
  }