@qqbrowser/qbot-claw-launcher 0.10.20 → 0.10.22
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/authMiddleware.js +1 -1
- package/dist/build.js +1 -1
- package/dist/qqbrowser-skill-installer.js +2 -2
- package/dist/service.js +3 -3
- package/package.json +1 -1
package/dist/authMiddleware.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.verifyOrigin=
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.verifyOrigin=n,exports.authenticateRequest=c;const i=require("./service"),a=["https://quickstart.imtt.qq.com","https://quickstarttest.imtt.qq.com","https://browser.qq.com"];function o(e){const t=e.headers.authorization;if(typeof t=="string"){const r=t.match(/^Bearer\s+(.+)$/i);if(r&&r[1])return r[1].trim()}}function u(e){const t=o(e);if(!t)return!1;const r=(0,i.getOrCreateGatewayToken)();return r?t===r:!1}function n(e){const t=e.headers.origin;if(!t)return!1;if(t.startsWith("chrome-extension://")||t.startsWith("moz-extension://"))return!0;try{const r=new URL(t).origin;return a.some(s=>{try{return new URL(s).origin===r}catch{return!1}})}catch{return!1}}function c(e){return n(e)?u(e)?{ok:!0,statusCode:200,message:""}:{ok:!1,statusCode:401,message:"gateway token \u7F3A\u5931\u6216\u4E0D\u5339\u914D"}:{ok:!1,statusCode:403,message:"\u8BF7\u6C42\u6765\u6E90\u4E0D\u5728\u5141\u8BB8\u5217\u8868\u4E2D"}}
|
package/dist/build.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.IS_DEBUG_BUILD=exports.LAUNCHER_VERSION=void 0,exports.LAUNCHER_VERSION="0.10.
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.IS_DEBUG_BUILD=exports.LAUNCHER_VERSION=void 0,exports.LAUNCHER_VERSION="0.10.22",exports.IS_DEBUG_BUILD=!1;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var k=exports&&exports.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.installQQBrowserSkill=
|
|
2
|
-
`,(0,t.log)(`[qqbrowser-skill] ${
|
|
1
|
+
"use strict";var k=exports&&exports.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.installQQBrowserSkill=S;const m=k(require("fs")),f=require("child_process"),a=require("./config"),t=require("./reportLog"),_=require("./report"),g="https://test.pypi.org/simple/",d="https://mirrors.tencent.com/pypi/simple/",p=!0,b=p?g:d,u=p?"test.pypi.org":"mirrors.tencent.com",$="https://pypi.org/simple/",I="pypi.org";function w(r,i,l){return new Promise(e=>{let n="";const o=(0,f.spawn)(r,i,{stdio:["ignore","pipe","pipe"],windowsHide:!0});o.stdout.on("data",s=>{const q=s.toString().trim();q&&((0,t.log)(`[qqbrowser-skill] ${q}`),l(`[qqbrowser-skill] ${q}`))}),o.stderr.on("data",s=>{const q=s.toString().trim();q&&(n+=q+`
|
|
2
|
+
`,(0,t.log)(`[qqbrowser-skill] ${q}`),l(`[qqbrowser-skill] ${q}`))}),o.on("close",s=>{e({code:s??1,stderr:n})}),o.on("error",s=>{(0,t.log)(`[qqbrowser-skill] \u547D\u4EE4\u6267\u884C\u5931\u8D25: ${s.message}`),e({code:1,stderr:s.message})})})}const c="qqbrowser-skill";async function S(r){const i=Date.now();try{(0,t.log)("[qqbrowser-skill] \u5F00\u59CB\u5B89\u88C5 support-trusted-host & force-reinstall"),r("[qqbrowser-skill] \u5F00\u59CB\u5B89\u88C5...");const l=p?["--no-deps","--extra-index-url",$,"--trusted-host",I]:[];if(process.platform==="darwin"){if(!m.default.existsSync(a.PYTHON_BIN)){(0,t.log)(`[qqbrowser-skill] \u5185\u7F6E Python \u4E0D\u5B58\u5728: ${a.PYTHON_BIN}\uFF0C\u8DF3\u8FC7\u5B89\u88C5`),r("[qqbrowser-skill] \u5185\u7F6E Python \u4E0D\u5B58\u5728\uFF0C\u8DF3\u8FC7\u5B89\u88C5"),(0,_.report)({event_name:"qbot_claw_qqbrowser_skill_install",result:"0",cost_ms:String(Date.now()-i),error:"\u5185\u7F6E Python \u4E0D\u5B58\u5728"});return}(0,t.log)(`[qqbrowser-skill] \u4F7F\u7528 pip \u5B89\u88C5/\u5347\u7EA7: ${c}`),r("[qqbrowser-skill] \u6B63\u5728\u901A\u8FC7 pip \u5B89\u88C5/\u5347\u7EA7...");const{code:e,stderr:n}=await w(a.PYTHON_BIN,["-m","pip","install","--force-reinstall","-i",b,"--trusted-host",u,...l,"--prefix",a.PYTHON_DIR,c],r);if(e!==0){(0,t.log)(`[qqbrowser-skill] pip install \u5931\u8D25\uFF0C\u9000\u51FA\u7801: ${e}\uFF0Cstderr: ${n}`),r(`[qqbrowser-skill] \u5B89\u88C5\u5931\u8D25\uFF08\u9000\u51FA\u7801: ${e}\uFF09`),(0,_.report)({event_name:"qbot_claw_qqbrowser_skill_install",result:"0",cost_ms:String(Date.now()-i),error:n});return}try{(0,t.log)(`[qqbrowser-skill] \u6E05\u9664 Python \u76EE\u5F55\u9694\u79BB\u5C5E\u6027: ${a.PYTHON_DIR}`),r("[qqbrowser-skill] \u6B63\u5728\u6E05\u9664\u9694\u79BB\u5C5E\u6027...");const{code:o,stderr:s}=await w("/usr/bin/xattr",["-rd","com.apple.quarantine",a.PYTHON_DIR],r);o!==0?(0,t.log)(`[qqbrowser-skill] xattr \u6E05\u9664\u9694\u79BB\u5C5E\u6027\u5931\u8D25\uFF08\u9000\u51FA\u7801: ${o}\uFF09\uFF0Cstderr: ${s}`):(0,t.log)("[qqbrowser-skill] \u9694\u79BB\u5C5E\u6027\u6E05\u9664\u5B8C\u6210")}catch(o){(0,t.log)(`[qqbrowser-skill] xattr \u6267\u884C\u5F02\u5E38: ${o.message}`)}}else if(process.platform==="win32"){(0,t.log)(`[qqbrowser-skill] \u4F7F\u7528 pip \u5B89\u88C5/\u5347\u7EA7: ${c}`),r("[qqbrowser-skill] \u6B63\u5728\u901A\u8FC7 pip \u5B89\u88C5/\u5347\u7EA7...");const{code:e,stderr:n}=await w("pip",["install","--force-reinstall","-i",b,"--trusted-host",u,...l,"--prefix",a.PYTHON_DIR,c],r);if(e!==0){(0,t.log)(`[qqbrowser-skill] pip install \u5931\u8D25\uFF0C\u9000\u51FA\u7801: ${e}\uFF0Cstderr: ${n}`),r(`[qqbrowser-skill] \u5B89\u88C5\u5931\u8D25\uFF08\u9000\u51FA\u7801: ${e}\uFF09`),(0,_.report)({event_name:"qbot_claw_qqbrowser_skill_install",result:"0",cost_ms:String(Date.now()-i),error:n});return}}else{(0,t.log)(`[qqbrowser-skill] \u4E0D\u652F\u6301\u7684\u5E73\u53F0: ${process.platform}\uFF0C\u8DF3\u8FC7\u5B89\u88C5`),r("[qqbrowser-skill] \u4E0D\u652F\u6301\u7684\u5E73\u53F0\uFF0C\u8DF3\u8FC7\u5B89\u88C5"),(0,_.report)({event_name:"qbot_claw_qqbrowser_skill_install",result:"0",cost_ms:String(Date.now()-i),error:`\u4E0D\u652F\u6301\u7684\u5E73\u53F0: ${process.platform}`});return}(0,t.log)("[qqbrowser-skill] \u5B89\u88C5\u5B8C\u6210"),r("[qqbrowser-skill] \u5B89\u88C5\u5B8C\u6210"),(0,_.report)({event_name:"qbot_claw_qqbrowser_skill_install",result:"1",cost_ms:String(Date.now()-i)})}catch(l){(0,t.log)(`[qqbrowser-skill] \u5B89\u88C5\u8FC7\u7A0B\u4E2D\u53D1\u751F\u5F02\u5E38: ${l.message}`),r(`[qqbrowser-skill] \u5B89\u88C5\u5F02\u5E38: ${l.message}`),(0,_.report)({event_name:"qbot_claw_qqbrowser_skill_install",result:"0",cost_ms:String(Date.now()-i),error:l.message})}}
|
package/dist/service.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
"use strict";var
|
|
2
|
-
`),process.stdout.uncork(),(0,r.log)(`[service] \u7248\u672C\u4E00\u81F4\uFF0C\u590D\u7528\u5DF2\u6709\u670D\u52A1 (pid: ${a.pid}, port: ${a.port})`);return}const c=await(0,t.findAvailablePort)();
|
|
3
|
-
`),process.stdout.uncork()}),process.on("SIGTERM",()=>{(0,t.stopGateway)(),(0,t.clearState)(),(0,r.flushLogs)().finally(()=>{process.exit(0)})})}function
|
|
1
|
+
"use strict";var v=exports&&exports.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.readCurrentGatewayToken=d,exports.getOrCreateGatewayToken=w,exports.startService=$,exports.stopService=b;const f=v(require("fs")),y=require("./server"),t=require("./state"),p=require("./config"),_=require("./build"),S=require("./installer"),k=require("./utils"),r=require("./reportLog"),o=require("./report");let s;const g="0526bec85002fe65ef10d33df0a8dfbe76917cd125f5a4ad";function d(){try{if(!f.default.existsSync(p.QBOT_CLAW_CONFIG_PATH))return(0,r.log)(`[service] \u914D\u7F6E\u6587\u4EF6\u4E0D\u5B58\u5728: ${p.QBOT_CLAW_CONFIG_PATH}`),(0,t.readState)().token||g;const e=f.default.readFileSync(p.QBOT_CLAW_CONFIG_PATH,"utf-8");return JSON.parse(e)?.gateway?.auth?.token||g}catch(e){return(0,r.log)(`[service] \u8BFB\u53D6\u914D\u7F6E\u6587\u4EF6 gateway.auth.token \u5931\u8D25: ${e.message}`),(0,t.readState)().token||g}}function w(){return s||(s=require("crypto").randomBytes(24).toString("hex"),(0,r.log)(`[service] \u751F\u6210\u65B0\u7684 gateway token: ${s}`),s||d())}async function q(){const e=(0,t.readState)();if(!e.pid||!e.port)return null;try{process.kill(e.pid,0)}catch{return(0,t.clearState)(),null}if(await(0,t.isPortAvailable)(e.port))return(0,r.log)("\u7AEF\u53E3\u672A\u88AB\u5360\u7528\uFF0C\u8BF4\u660E\u72B6\u6001\u6587\u4EF6\u8FC7\u671F"),(0,t.clearState)(),null;const i=e.launcherVersion??null;if((0,r.log)(`[service] \u68C0\u6D4B\u5230\u6B63\u5728\u8FD0\u884C\u7684\u670D\u52A1\u7248\u672C: ${i??"unknown"}\uFF0C\u5F53\u524D\u7248\u672C: ${_.LAUNCHER_VERSION}`),i===_.LAUNCHER_VERSION)return(0,r.log)(`[service] \u7248\u672C\u4E00\u81F4\uFF0C\u590D\u7528\u5DF2\u6709\u670D\u52A1 (pid: ${e.pid}, port: ${e.port})`),!1;(0,r.log)(`[service] \u7248\u672C\u4E0D\u4E00\u81F4 (\u8FD0\u884C\u4E2D: ${i??"unknown"}, \u5F53\u524D: ${_.LAUNCHER_VERSION})\uFF0C\u6740\u6389\u65E7\u8FDB\u7A0B pid: ${e.pid}\uFF0C\u91CD\u65B0\u542F\u52A8`);try{process.kill(e.pid,"SIGTERM")}catch{}return(0,t.clearState)(),!0}async function $(e,n){if(await q()===!1){const a=(0,t.readState)();process.stdout.write(JSON.stringify({state:"success",pid:a.pid,port:a.port,gatewayToken:d()})+`
|
|
2
|
+
`),process.stdout.uncork(),(0,r.log)(`[service] \u7248\u672C\u4E00\u81F4\uFF0C\u590D\u7528\u5DF2\u6709\u670D\u52A1 (pid: ${a.pid}, port: ${a.port})`);return}const c=await(0,t.findAvailablePort)();y.server.listen(c,"127.0.0.1",async()=>{(0,t.writeState)({pid:process.pid,port:c,token:w(),launcherVersion:_.LAUNCHER_VERSION,...e?{ppid:e}:{}}),(0,y.watchParentProcess)(e),(0,o.report)({event_name:"qbot_claw_try_start"});let a=w();if(f.default.existsSync(p.QBOTCLAW_BIN))try{const l=await(0,k.getQBotClawVersion)(),u=(0,t.readState)();l!==n?((0,r.log)(`[service] qbotclaw \u672C\u5730\u7248\u672C (${l??"unknown"}) \u4E0E\u671F\u671B\u7248\u672C (${n}) \u4E0D\u4E00\u81F4\uFF0C\u505C\u6B62\u5F53\u524D qbotclaw \u8FDB\u7A0B`),(0,o.report)({event_name:"qbot_claw_need_update"}),(0,t.stopGateway)()):u.gatewayPid&&u.gatewayPort?((0,r.log)(`[service] qbotclaw \u5DF2\u5728\u8FD0\u884C\uFF0Cpid: ${u.gatewayPid}, port: ${u.gatewayPort}`),a=d(),(0,o.report)({event_name:"qbot_claw_version_match"}),(0,o.report)({event_name:"qbot_claw_reuse"})):((0,r.log)("[service] \u68C0\u6D4B\u5230 qbotclaw\uFF0C\u7248\u672C\u5339\u914D\uFF0C\u81EA\u52A8\u542F\u52A8 gateway..."),(0,o.report)({event_name:"qbot_claw_version_match"}),await(0,S.configAndRunQBotClaw)(),a=w())}catch(l){(0,r.log)(`[service] \u81EA\u52A8\u542F\u52A8 gateway \u5931\u8D25: ${l.message}`)}else(0,r.log)("[service] qbotclaw \u672A\u5B89\u88C5\uFF0C\u4E0D\u81EA\u52A8\u542F\u52A8"),(0,o.report)({event_name:"qbot_claw_need_install"});(0,r.log)(`[service] \u670D\u52A1\u542F\u52A8\u6210\u529F\uFF0Cpid: ${process.pid}, port: ${c}, token: ${a}`),process.stdout.write(JSON.stringify({state:"success",pid:process.pid,port:c,gatewayToken:a})+`
|
|
3
|
+
`),process.stdout.uncork()}),process.on("SIGTERM",()=>{(0,t.stopGateway)(),(0,t.clearState)(),(0,r.flushLogs)().finally(()=>{process.exit(0)})})}function b(){(0,t.stopGateway)();const e=(0,t.readState)();if(!e.pid){(0,t.clearState)();return}try{process.kill(e.pid,"SIGTERM")}catch{}(0,t.clearState)()}
|