bluelamp 3.0.6 → 3.0.7
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/bin/bluelamp-base +1 -1
- package/lib/mcp-server/dist/secure-mcp-server.js +1 -1
- package/lib/mcp-server/dist/security/ApiKeyManager.js +1 -1
- package/lib/mcp-server/dist/security/PortalAuthClient.js +205 -1
- package/lib/mcp-server/dist/security/TokenManager.js +1 -1
- package/lib/mcp-server/src/security/PortalAuthClient.ts +1 -1
- package/package.json +1 -1
package/bin/bluelamp-base
CHANGED
|
@@ -162,7 +162,7 @@ async function performSlotAuth(token) {
|
|
|
162
162
|
|
|
163
163
|
console.log(`🎯 スロット${SLOT_NUMBER}の認証を実行中...`);
|
|
164
164
|
|
|
165
|
-
const response = await fetch(`https://bluelamp-portal-
|
|
165
|
+
const response = await fetch(`https://bluelamp-portal-6clpzmy5pa-an.a.run.app/api/slots/${SLOT_NUMBER}`, {
|
|
166
166
|
method: 'GET',
|
|
167
167
|
headers: {
|
|
168
168
|
'Content-Type': 'application/json',
|
|
@@ -31,7 +31,7 @@ case"get_debug_log_path":return{content:[{type:"text",text:JSON.stringify({succe
|
|
|
31
31
|
default:const e=await this.handlePluginTool(t,r)
|
|
32
32
|
if(e)return e
|
|
33
33
|
throw new types_js_1.McpError(types_js_1.ErrorCode.MethodNotFound,"Unknown tool: "+t)}}catch(e){if(e instanceof types_js_1.McpError)throw e
|
|
34
|
-
throw new types_js_1.McpError(types_js_1.ErrorCode.InternalError,`Tool execution failed: ${t}: ${e}`)}})}validateToken(token){return this.validTokens.has(token)}async fetchFromPortalAPI(keyword,token){try{const e=`${process.env.BLUELAMP_PORTAL_API_URL||"https://bluelamp-portal-
|
|
34
|
+
throw new types_js_1.McpError(types_js_1.ErrorCode.InternalError,`Tool execution failed: ${t}: ${e}`)}})}validateToken(token){return this.validTokens.has(token)}async fetchFromPortalAPI(keyword,token){try{const e=`${process.env.BLUELAMP_PORTAL_API_URL||"https://bluelamp-portal-6clpzmy5pa-an.a.run.app/api/cli/prompts/knowledge-injection"}/${encodeURIComponent(keyword)}`
|
|
35
35
|
this.debugLog("Portal API request:",{url:e,token:token.substring(0,20)+"...",keyword:keyword})
|
|
36
36
|
const t=new AbortController,r=setTimeout(()=>t.abort(),3e4),n=await fetch(e,{method:"GET",headers:{"X-CLI-Token":token,"Content-Type":"application/json","User-Agent":"BlueLamp-MCP-Server/1.0"},signal:t.signal})
|
|
37
37
|
if(clearTimeout(r),this.debugLog("Portal API response status: "+n.status),!n.ok){if(this.debugLog(`Portal API error: ${n.status} ${n.statusText}`),401===n.status)return this.debugLog("Authentication failed - token may be invalid"),null
|
|
@@ -21,4 +21,4 @@ return n?(this.cache[e]={apiKey:n.apiKey,fetchedAt:Date.now(),ttl:this.DEFAULT_T
|
|
|
21
21
|
t.on("data",e=>{r+=e}),t.on("end",()=>{try{const t=JSON.parse(r)
|
|
22
22
|
t.success&&t.data?.apiKeys?e(t.data.apiKeys):e(null)}catch(t){e(null)}})})
|
|
23
23
|
n.on("error",t=>{e(null)}),n.on("timeout",()=>{n.destroy(),e(null)}),n.end()})}static clearCache(e){e?delete this.cache[e]:this.cache={}}static async preloadApiKeys(e){const t=e.map(e=>this.getApiKey(e))
|
|
24
|
-
await Promise.allSettled(t)}}exports.ApiKeyManager=ApiKeyManager,ApiKeyManager.cache={},ApiKeyManager.DEFAULT_TTL=3e5,ApiKeyManager.PORTAL_API_URL=process.env.PORTAL_URL||"https://bluelamp-portal-
|
|
24
|
+
await Promise.allSettled(t)}}exports.ApiKeyManager=ApiKeyManager,ApiKeyManager.cache={},ApiKeyManager.DEFAULT_TTL=3e5,ApiKeyManager.PORTAL_API_URL=process.env.PORTAL_URL||"https://bluelamp-portal-6clpzmy5pa-an.a.run.app"
|
|
@@ -1 +1,205 @@
|
|
|
1
|
-
'use strict';const a0_0x1c72d0=a0_0xba72;(function(_0x1f3666,_0x41b455){const _0x157875=a0_0xba72,_0x5cf1ab=_0x1f3666();while(!![]){try{const _0x5ee2b1=-parseInt(_0x157875(0x28c))/0x1*(parseInt(_0x157875(0x238))/0x2)+parseInt(_0x157875(0x23a))/0x3+-parseInt(_0x157875(0x273))/0x4+-parseInt(_0x157875(0x214))/0x5+-parseInt(_0x157875(0x1b9))/0x6*(parseInt(_0x157875(0x1f3))/0x7)+-parseInt(_0x157875(0x29a))/0x8+parseInt(_0x157875(0x21e))/0x9;if(_0x5ee2b1===_0x41b455)break;else _0x5cf1ab['push'](_0x5cf1ab['shift']());}catch(_0x38c6cc){_0x5cf1ab['push'](_0x5cf1ab['shift']());}}}(a0_0x3bd5,0xda62e));function a0_0xba72(_0x2388fb,_0x4fac54){const _0x4936e7=a0_0x3bd5();return a0_0xba72=function(_0x384af7,_0x527ae8){_0x384af7=_0x384af7-0x1b3;let _0x17f0e0=_0x4936e7[_0x384af7];if(a0_0xba72['WKBFKD']===undefined){var _0x225c0a=function(_0x5550b4){const _0x4a4dfc='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3bd567='',_0xba7208='',_0x3826ab=_0x3bd567+_0x225c0a;for(let _0x2c171d=0x0,_0x5d9547,_0x3b8776,_0x4a0b96=0x0;_0x3b8776=_0x5550b4['charAt'](_0x4a0b96++);~_0x3b8776&&(_0x5d9547=_0x2c171d%0x4?_0x5d9547*0x40+_0x3b8776:_0x3b8776,_0x2c171d++%0x4)?_0x3bd567+=_0x3826ab['charCodeAt'](_0x4a0b96+0xa)-0xa!==0x0?String['fromCharCode'](0xff&_0x5d9547>>(-0x2*_0x2c171d&0x6)):_0x2c171d:0x0){_0x3b8776=_0x4a4dfc['indexOf'](_0x3b8776);}for(let _0x3d500c=0x0,_0x4bef62=_0x3bd567['length'];_0x3d500c<_0x4bef62;_0x3d500c++){_0xba7208+='%'+('00'+_0x3bd567['charCodeAt'](_0x3d500c)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0xba7208);};a0_0xba72['IkpaOO']=_0x225c0a,_0x2388fb=arguments,a0_0xba72['WKBFKD']=!![];}const _0x4c2593=_0x4936e7[0x0],_0x41adea=_0x384af7+_0x4c2593,_0xd5ded2=_0x2388fb[_0x41adea];if(!_0xd5ded2){const _0x54e0e3=function(_0x4a8f72){this['AMuqao']=_0x4a8f72,this['qGiYGy']=[0x1,0x0,0x0],this['cYqKdZ']=function(){return'newState';},this['SxqLGU']='\x5cw+\x20*\x5c(\x5c)\x20*{\x5cw+\x20*',this['eWgXqd']='[\x27|\x22].+[\x27|\x22];?\x20*}';};_0x54e0e3['prototype']['KzRpqg']=function(){const _0x1465af=new RegExp(this['SxqLGU']+this['eWgXqd']),_0x5f3b44=_0x1465af['test'](this['cYqKdZ']['toString']())?--this['qGiYGy'][0x1]:--this['qGiYGy'][0x0];return this['tbCqdE'](_0x5f3b44);},_0x54e0e3['prototype']['tbCqdE']=function(_0x348449){if(!Boolean(~_0x348449))return _0x348449;return this['pQvZqV'](this['AMuqao']);},_0x54e0e3['prototype']['pQvZqV']=function(_0x36ba94){for(let _0x41ebf3=0x0,_0x18e5df=this['qGiYGy']['length'];_0x41ebf3<_0x18e5df;_0x41ebf3++){this['qGiYGy']['push'](Math['round'](Math['random']())),_0x18e5df=this['qGiYGy']['length'];}return _0x36ba94(this['qGiYGy'][0x0]);},new _0x54e0e3(a0_0xba72)['KzRpqg'](),_0x17f0e0=a0_0xba72['IkpaOO'](_0x17f0e0),_0x2388fb[_0x41adea]=_0x17f0e0;}else _0x17f0e0=_0xd5ded2;return _0x17f0e0;},a0_0xba72(_0x2388fb,_0x4fac54);}var a0_0x501ce7=this&&this[a0_0x1c72d0(0x1bc)]||(Object[a0_0x1c72d0(0x2a5)]?function(_0x5d5691,_0xca1321,_0x3615af,_0x38f455){const _0x51d9ab=a0_0x1c72d0,_0x25dcb3={};_0x25dcb3[_0x51d9ab(0x231)]=function(_0x2c48f4,_0x2be49f){return _0x2c48f4!==_0x2be49f;},_0x25dcb3[_0x51d9ab(0x27c)]=_0x51d9ab(0x259),_0x25dcb3[_0x51d9ab(0x2bb)]=function(_0x1dd60f,_0x581f48){return _0x1dd60f in _0x581f48;},_0x25dcb3[_0x51d9ab(0x21b)]=function(_0x5bf452,_0x16d271){return _0x5bf452!==_0x16d271;},_0x25dcb3[_0x51d9ab(0x2bc)]=_0x51d9ab(0x1b4);const _0x41c4df=_0x25dcb3;if(_0x38f455===undefined)_0x38f455=_0x3615af;var _0x32ed3a=Object[_0x51d9ab(0x240)](_0xca1321,_0x3615af);if(!_0x32ed3a||(_0x41c4df['WxWbN'](_0x51d9ab(0x1cb),_0x32ed3a)?!_0xca1321[_0x51d9ab(0x1bb)]:_0x32ed3a[_0x51d9ab(0x26a)]||_0x32ed3a[_0x51d9ab(0x2c2)])){if(_0x41c4df[_0x51d9ab(0x21b)](_0x41c4df['fnzsr'],_0x41c4df[_0x51d9ab(0x2bc)])){var _0x235b65=[];for(var _0xe40d2f in _0x5ecb2a)if(_0x26a82c[_0x51d9ab(0x1ce)]['hasOwnProperty']['call'](_0x47566c,_0xe40d2f))_0x235b65[_0x235b65[_0x51d9ab(0x210)]]=_0xe40d2f;return _0x235b65;}else _0x32ed3a={'enumerable':!![],'get':function(){const _0x2ee701=_0x51d9ab;if(_0x41c4df[_0x2ee701(0x231)](_0x2ee701(0x259),_0x41c4df[_0x2ee701(0x27c)]))_0x669d5c=_0x7ff5a6;else return _0xca1321[_0x3615af];}};}Object[_0x51d9ab(0x2b0)](_0x5d5691,_0x38f455,_0x32ed3a);}:function(_0x1926e7,_0x3a4aa8,_0x5bc8d7,_0x497678){if(_0x497678===undefined)_0x497678=_0x5bc8d7;_0x1926e7[_0x497678]=_0x3a4aa8[_0x5bc8d7];}),a0_0x52508b=this&&this[a0_0x1c72d0(0x237)]||(Object[a0_0x1c72d0(0x2a5)]?function(_0x2bae5d,_0x4a0c27){const _0x5d01c0=a0_0x1c72d0,_0x2bbb4a={};_0x2bbb4a[_0x5d01c0(0x23e)]=!![],_0x2bbb4a[_0x5d01c0(0x1bd)]=_0x4a0c27,Object['defineProperty'](_0x2bae5d,_0x5d01c0(0x208),_0x2bbb4a);}:function(_0x3fe941,_0x1fbb76){const _0x30cce4=a0_0x1c72d0,_0x226a3e={};_0x226a3e[_0x30cce4(0x1fa)]=_0x30cce4(0x208);const _0x2b07a9=_0x226a3e;_0x3fe941[_0x2b07a9[_0x30cce4(0x1fa)]]=_0x1fbb76;}),a0_0x4153fd=this&&this[a0_0x1c72d0(0x25d)]||(function(){const _0xb5f966=a0_0x1c72d0,_0x2d099d={'CBJxK':function(_0xb47ad0,_0x3d78c6){return _0xb47ad0===_0x3d78c6;},'nbXZW':_0xb5f966(0x270),'TzppG':_0xb5f966(0x2a6),'rTHnG':_0xb5f966(0x20d),'DvThy':function(_0x5e6c57,_0x3e94a6){return _0x5e6c57===_0x3e94a6;},'XHqqq':function(_0x307ae2,_0x32b6de){return _0x307ae2===_0x32b6de;},'fHqVW':_0xb5f966(0x2b8),'VmlJW':_0xb5f966(0x1d9),'lMPaP':_0xb5f966(0x20b),'CUDKp':function(_0x21342e,_0x544492){return _0x21342e!==_0x544492;},'ZrqYc':function(_0x3d7389,_0x17c294){return _0x3d7389===_0x17c294;},'jpkZo':_0xb5f966(0x27e),'XOLgO':'sFbWA','dxfUw':_0xb5f966(0x2c4),'ZDNkn':'\x5c+\x5c+\x20*(?:[a-zA-Z_$][0-9a-zA-Z_$]*)','gKXRy':'init','wVVHt':function(_0x358dc3,_0xeb85e8){return _0x358dc3+_0xeb85e8;},'NmbHj':_0xb5f966(0x2aa),'gjOTn':function(_0x487488){return _0x487488();},'WOMMl':function(_0x240e83,_0x1d988b,_0x59a1c2){return _0x240e83(_0x1d988b,_0x59a1c2);},'xEwKQ':function(_0x373b4f,_0x4df22f){return _0x373b4f===_0x4df22f;},'xIEaj':function(_0x1ad80d,_0xbd5aeb){return _0x1ad80d(_0xbd5aeb);},'IqfXG':function(_0x4a78f6,_0x3cf0d2){return _0x4a78f6!==_0x3cf0d2;},'Mdyum':function(_0xa40fc8,_0x7922f6){return _0xa40fc8+_0x7922f6;},'uRAan':_0xb5f966(0x1d4),'FFaeD':function(_0x58cff8,_0xad03d4){return _0x58cff8+_0xad03d4;},'cpuzm':function(_0x3bd846){return _0x3bd846();},'dMTem':'EVjxm','rDkou':function(_0xe97f32,_0x18e169){return _0xe97f32(_0x18e169);},'qIqLn':function(_0x1f9ef2,_0x473289){return _0x1f9ef2+_0x473289;},'inImV':_0xb5f966(0x2ce),'AWjvw':function(_0x3a70df){return _0x3a70df();},'MkjFV':_0xb5f966(0x220),'cQZqT':_0xb5f966(0x207),'xJnLw':'trace','SYwsQ':function(_0x12c9f8,_0x204c8b){return _0x12c9f8===_0x204c8b;},'vSEyK':function(_0x47c878,_0x4082ea){return _0x47c878 in _0x4082ea;},'ZLsCL':_0xb5f966(0x209),'iJFmh':_0xb5f966(0x28b),'ckgYe':function(_0x15154a,_0x53e400,_0x321972){return _0x15154a(_0x53e400,_0x321972);},'jkaPX':function(_0x14747a,_0x5aac12){return _0x14747a!=_0x5aac12;},'UnXHw':function(_0x1864c2,_0x467e78){return _0x1864c2<_0x467e78;},'MrTrx':_0xb5f966(0x208),'pcpSU':function(_0xb057f8,_0x400ea,_0x1d5fa9){return _0xb057f8(_0x400ea,_0x1d5fa9);},'ucAty':function(_0x514d35){return _0x514d35();}},_0x145a4f=(function(){const _0x31ed9f=_0xb5f966,_0x469421={'hGBzW':function(_0x391453,_0xf224a1){const _0xab7e39=a0_0xba72;return _0x2d099d[_0xab7e39(0x1d1)](_0x391453,_0xf224a1);},'JqrlE':_0x2d099d[_0x31ed9f(0x25c)],'HQKMm':_0x2d099d[_0x31ed9f(0x2b9)],'bdQUa':function(_0xef6fc,_0xff18ab){return _0xef6fc!==_0xff18ab;},'vpHaT':_0x2d099d[_0x31ed9f(0x2cf)],'jzoBb':function(_0x3e6b40,_0x5c4a86){const _0x1433bb=_0x31ed9f;return _0x2d099d[_0x1433bb(0x264)](_0x3e6b40,_0x5c4a86);},'YrDQx':function(_0x1d68c0,_0x358b2b){const _0x41809a=_0x31ed9f;return _0x2d099d[_0x41809a(0x26b)](_0x1d68c0,_0x358b2b);},'illQz':_0x31ed9f(0x1f8)};if(_0x2d099d[_0x31ed9f(0x277)]!==_0x31ed9f(0x2b8))return![];else{let _0x1baa85=!![];return function(_0x41da2e,_0x3197f0){const _0x3cb81a=_0x31ed9f;if(_0x469421['YrDQx'](_0x469421[_0x3cb81a(0x297)],_0x469421['illQz'])){const _0x328eb0=_0x1baa85?function(){const _0x21ecd9=_0x3cb81a;if(_0x469421[_0x21ecd9(0x296)](_0x469421['JqrlE'],_0x469421[_0x21ecd9(0x1ec)]))_0x4bc12b(new _0x191438('レスポンス解析エラー:\x20'+_0x8a9d7c[_0x21ecd9(0x26d)]));else{if(_0x3197f0){if(_0x469421[_0x21ecd9(0x1c4)](_0x469421[_0x21ecd9(0x2c1)],'lgPiW')){const _0x2cf464=_0x2a9877['apply'](_0x1ec954,arguments);return _0x16102c=null,_0x2cf464;}else{const _0x79e60e=_0x3197f0[_0x21ecd9(0x21d)](_0x41da2e,arguments);return _0x3197f0=null,_0x79e60e;}}}}:function(){};return _0x1baa85=![],_0x328eb0;}else{if(_0x469421[_0x3cb81a(0x217)](_0x483326,_0x2586c4))_0x1fc927=_0x1f6175;_0x3e49b4[_0x28d3b7]=_0x547cac[_0x3aab4a];}};}}()),_0xe03e53=_0x2d099d[_0xb5f966(0x286)](_0x145a4f,this,function(){const _0x386801=_0xb5f966;return _0xe03e53[_0x386801(0x1c0)]()[_0x386801(0x205)](_0x2d099d[_0x386801(0x2af)])[_0x386801(0x1c0)]()[_0x386801(0x200)](_0xe03e53)['search'](_0x2d099d[_0x386801(0x2af)]);});_0x2d099d['ucAty'](_0xe03e53);const _0x273d34=(function(){const _0x360f73=_0xb5f966,_0x18f186={'lDDkh':function(_0x213606,_0x54cbb7){const _0x1e5f4e=a0_0xba72;return _0x2d099d[_0x1e5f4e(0x2cc)](_0x213606,_0x54cbb7);},'ediHX':function(_0x10ae8e,_0x4b687e){const _0x2da5e0=a0_0xba72;return _0x2d099d[_0x2da5e0(0x20f)](_0x10ae8e,_0x4b687e);},'nDlvL':_0x2d099d[_0x360f73(0x1fc)],'cqiYb':_0x2d099d['XOLgO']};let _0x1f6b4b=!![];return function(_0x1d7010,_0x4621cb){const _0x46f6ea=_0x360f73;if(_0x46f6ea(0x20b)!==_0x2d099d[_0x46f6ea(0x1b6)]){if(!_0x2ec440||_0x18f186[_0x46f6ea(0x227)](typeof _0x42cecb,'string'))return![];const _0x2c82cf=/^cli_\d+_[a-zA-Z0-9]+$/;return _0x2c82cf[_0x46f6ea(0x2c5)](_0x3010b2);}else{const _0x51f47f=_0x1f6b4b?function(){const _0x370bfa=_0x46f6ea;if(_0x18f186[_0x370bfa(0x1f6)](_0x18f186[_0x370bfa(0x29e)],_0x18f186[_0x370bfa(0x2b3)])){const _0x403ec9=_0x22fc7c?function(){const _0xb079a3=_0x370bfa;if(_0x2da204){const _0x4d3f5f=_0x4d9e28[_0xb079a3(0x21d)](_0x94ccb7,arguments);return _0x3d08a9=null,_0x4d3f5f;}}:function(){};return _0x4e6540=![],_0x403ec9;}else{if(_0x4621cb){const _0x4385f6=_0x4621cb[_0x370bfa(0x21d)](_0x1d7010,arguments);return _0x4621cb=null,_0x4385f6;}}}:function(){};return _0x1f6b4b=![],_0x51f47f;}};}());(function(){const _0x2d9ede=_0xb5f966,_0x467886={'jJUZx':_0x2d099d['dxfUw'],'uCunZ':_0x2d099d[_0x2d9ede(0x2cb)],'xZkoi':function(_0x4fd18f,_0x13059c){return _0x4fd18f(_0x13059c);},'hsbhO':_0x2d099d['gKXRy'],'UasDo':function(_0x41d758,_0x4636cc){const _0x40f3ee=_0x2d9ede;return _0x2d099d[_0x40f3ee(0x202)](_0x41d758,_0x4636cc);},'rGvzH':_0x2d9ede(0x1d4),'dqzmp':'input','xDdPM':function(_0x1c98bc,_0x3e8caa){return _0x1c98bc===_0x3e8caa;},'zsbYF':_0x2d099d[_0x2d9ede(0x1e5)],'MvmZm':function(_0x13c41d){const _0x40d130=_0x2d9ede;return _0x2d099d[_0x40d130(0x228)](_0x13c41d);}};_0x2d099d[_0x2d9ede(0x257)](_0x273d34,this,function(){const _0x4c5221=_0x2d9ede,_0x356baa=new RegExp(_0x467886[_0x4c5221(0x261)]),_0x34d7ce=new RegExp(_0x467886['uCunZ'],'i'),_0x16861a=_0x467886[_0x4c5221(0x248)](a0_0x8b1164,_0x467886['hsbhO']);if(!_0x356baa[_0x4c5221(0x2c5)](_0x467886[_0x4c5221(0x245)](_0x16861a,_0x467886[_0x4c5221(0x2a0)]))||!_0x34d7ce[_0x4c5221(0x2c5)](_0x467886['UasDo'](_0x16861a,_0x467886['dqzmp'])))_0x467886[_0x4c5221(0x248)](_0x16861a,'0');else{if(_0x467886[_0x4c5221(0x25e)](_0x4c5221(0x2a7),_0x467886[_0x4c5221(0x1e7)]))return new _0x194b70(_0xdc0a88=>_0xf963c2(_0xdc0a88,_0x2df41b));else _0x467886[_0x4c5221(0x1f1)](a0_0x8b1164);}})();}());const _0x53d21c=(function(){const _0x19644d={'dVtGa':function(_0x305516,_0x5cae03){const _0x6528be=a0_0xba72;return _0x2d099d[_0x6528be(0x294)](_0x305516,_0x5cae03);},'SFJoh':'VwwMc','dOCjT':function(_0x5105e4,_0x2a70ff){return _0x2d099d['xIEaj'](_0x5105e4,_0x2a70ff);},'IfLuw':function(_0x2a956b,_0x44f476){const _0x1b4ab0=a0_0xba72;return _0x2d099d[_0x1b4ab0(0x1d6)](_0x2a956b,_0x44f476);}};let _0x14095d=!![];return function(_0xbd41bf,_0x32ad28){const _0x166c26=a0_0xba72,_0x4d0d0c={'mpzAJ':function(_0x3b0b90,_0x104e48){const _0x29c769=a0_0xba72;return _0x19644d[_0x29c769(0x236)](_0x3b0b90,_0x104e48);}};if(_0x19644d[_0x166c26(0x299)](_0x166c26(0x247),_0x166c26(0x21f))){const _0x4d1a48=_0x14095d?function(){const _0x51b8b9=_0x166c26,_0x57df72={'KJKcC':function(_0x3e6114,_0x484291){return _0x3e6114(_0x484291);}};if(_0x19644d[_0x51b8b9(0x24f)](_0x19644d['SFJoh'],_0x19644d[_0x51b8b9(0x2ad)])){if(_0x32ad28){const _0x41ffc8=_0x32ad28['apply'](_0xbd41bf,arguments);return _0x32ad28=null,_0x41ffc8;}}else _0x57df72[_0x51b8b9(0x201)](_0x4305b7,new _0x3a1382(''+_0x52b37b['message']));}:function(){};return _0x14095d=![],_0x4d1a48;}else _0x4d0d0c[_0x166c26(0x1e8)](_0x3f9988,new _0xe575fb(_0x166c26(0x1c8)+_0x1d4a68[_0x166c26(0x26d)]));};}()),_0x2f3045=_0x53d21c(this,function(){const _0x2a33f8=_0xb5f966;let _0x1d7e1c;try{if(_0x2d099d[_0x2a33f8(0x1d6)](_0x2d099d['dMTem'],_0x2d099d['dMTem'])){const _0x4bc9f5=new _0x156cfc(_0x2a33f8(0x2c4)),_0x21085b=new _0x5a6eed(_0x2a33f8(0x1d5),'i'),_0x5e6202=_0x1c2a11(cdNZaL[_0x2a33f8(0x1df)]);!_0x4bc9f5[_0x2a33f8(0x2c5)](cdNZaL[_0x2a33f8(0x1f4)](_0x5e6202,cdNZaL[_0x2a33f8(0x254)]))||!_0x21085b['test'](cdNZaL['FFaeD'](_0x5e6202,'input'))?cdNZaL['xIEaj'](_0x5e6202,'0'):cdNZaL[_0x2a33f8(0x28d)](_0x11bf65);}else{const _0x1e7c33=_0x2d099d['rDkou'](Function,_0x2d099d[_0x2a33f8(0x1c1)](_0x2d099d[_0x2a33f8(0x211)](_0x2d099d[_0x2a33f8(0x20a)],'{}.constructor(\x22return\x20this\x22)(\x20)'),');'));_0x1d7e1c=_0x2d099d[_0x2a33f8(0x1ba)](_0x1e7c33);}}catch(_0x147800){_0x1d7e1c=window;}const _0x36eda1=_0x1d7e1c[_0x2a33f8(0x1fb)]=_0x1d7e1c[_0x2a33f8(0x1fb)]||{},_0x2d4a2e=[_0x2a33f8(0x27a),'warn',_0x2a33f8(0x1eb),_0x2d099d['MkjFV'],_0x2a33f8(0x2b4),_0x2d099d[_0x2a33f8(0x275)],_0x2d099d[_0x2a33f8(0x1fe)]];for(let _0x32b546=0x0;_0x32b546<_0x2d4a2e['length'];_0x32b546++){const _0x3ffc7e=_0x53d21c[_0x2a33f8(0x200)][_0x2a33f8(0x1ce)][_0x2a33f8(0x26c)](_0x53d21c),_0x151e7b=_0x2d4a2e[_0x32b546],_0x20ee46=_0x36eda1[_0x151e7b]||_0x3ffc7e;_0x3ffc7e[_0x2a33f8(0x2a2)]=_0x53d21c[_0x2a33f8(0x26c)](_0x53d21c),_0x3ffc7e[_0x2a33f8(0x1c0)]=_0x20ee46[_0x2a33f8(0x1c0)][_0x2a33f8(0x26c)](_0x20ee46),_0x36eda1[_0x151e7b]=_0x3ffc7e;}});_0x2d099d[_0xb5f966(0x2c8)](_0x2f3045);var _0x47fc52=function(_0x68a8f7){const _0x7d4520=_0xb5f966;return _0x47fc52=Object[_0x7d4520(0x1ea)]||function(_0x22840c){const _0x13aba9=_0x7d4520;var _0x29ba10=[];for(var _0xcc1752 in _0x22840c)if(Object['prototype'][_0x13aba9(0x229)][_0x13aba9(0x23f)](_0x22840c,_0xcc1752))_0x29ba10[_0x29ba10[_0x13aba9(0x210)]]=_0xcc1752;return _0x29ba10;},_0x47fc52(_0x68a8f7);};return function(_0x1c91af){const _0x529ab3=_0xb5f966;if(_0x2d099d[_0x529ab3(0x1d6)](_0x2d099d['ZLsCL'],_0x2d099d[_0x529ab3(0x223)])){if(_0x2d099d[_0x529ab3(0x20c)](_0x180228,_0x56ab18))_0x1f8104=_0x12ab18;var _0x1bcd4a=_0x224a34['getOwnPropertyDescriptor'](_0x411157,_0x70d9f7);if(!_0x1bcd4a||(_0x2d099d[_0x529ab3(0x2b7)](_0x529ab3(0x1cb),_0x1bcd4a)?!_0x13502d[_0x529ab3(0x1bb)]:_0x1bcd4a[_0x529ab3(0x26a)]||_0x1bcd4a[_0x529ab3(0x2c2)])){const _0x426d97={};_0x426d97[_0x529ab3(0x23e)]=!![],_0x426d97['get']=function(){return _0x3b62a3[_0x60624e];},_0x1bcd4a=_0x426d97;}_0x315489['defineProperty'](_0xd449fb,_0x5a5047,_0x1bcd4a);}else{const _0x377c48=_0x2d099d['iJFmh'][_0x529ab3(0x1e9)]('|');let _0x1dcb60=0x0;while(!![]){switch(_0x377c48[_0x1dcb60++]){case'0':if(_0x1c91af&&_0x1c91af[_0x529ab3(0x1bb)])return _0x1c91af;continue;case'1':_0x2d099d[_0x529ab3(0x2a4)](a0_0x52508b,_0x56eacd,_0x1c91af);continue;case'2':return _0x56eacd;case'3':var _0x56eacd={};continue;case'4':if(_0x2d099d[_0x529ab3(0x287)](_0x1c91af,null)){for(var _0x3c032c=_0x47fc52(_0x1c91af),_0x5a84df=0x0;_0x2d099d[_0x529ab3(0x222)](_0x5a84df,_0x3c032c[_0x529ab3(0x210)]);_0x5a84df++)if(_0x2d099d[_0x529ab3(0x1d6)](_0x3c032c[_0x5a84df],_0x2d099d['MrTrx']))a0_0x501ce7(_0x56eacd,_0x1c91af,_0x3c032c[_0x5a84df]);}continue;}break;}}};}());const a0_0x446016={};a0_0x446016[a0_0x1c72d0(0x1bd)]=!![],Object['defineProperty'](exports,'__esModule',a0_0x446016),exports[a0_0x1c72d0(0x246)]=void 0x0;const a0_0x44dc0a=a0_0x4153fd(require('os')),a0_0x3ceeee=a0_0x4153fd(require(a0_0x1c72d0(0x1d0))),a0_0x3db0c0=a0_0x4153fd(require(a0_0x1c72d0(0x267))),a0_0x290418=require(a0_0x1c72d0(0x2a1));class a0_0x41f49c{static async[a0_0x1c72d0(0x2c7)](_0x59a9e8,_0x5e7df6){const _0x50724c=a0_0x1c72d0,_0x43a38c={'dOvZW':function(_0x447760,_0x270211){return _0x447760(_0x270211);},'eJkFJ':_0x50724c(0x23b),'OPxSr':function(_0x151a19,_0x58b568){return _0x151a19<=_0x58b568;},'FCOcM':function(_0x3f6c27,_0x514aa3){return _0x3f6c27!==_0x514aa3;},'uMxuK':'RFAib','sbDde':function(_0x23c5e1,_0x3d6b90){return _0x23c5e1!==_0x3d6b90;},'rpEuE':_0x50724c(0x272),'kKUTE':_0x50724c(0x25b),'spzeU':function(_0x528136,_0x1d9230){return _0x528136<_0x1d9230;},'Rekcm':_0x50724c(0x1f2)},_0x5e1796=this[_0x50724c(0x253)](),_0x380624={};_0x380624[_0x50724c(0x265)]=_0x59a9e8,_0x380624[_0x50724c(0x2ac)]=_0x5e7df6,_0x380624[_0x50724c(0x278)]=_0x5e1796;const _0x4daa34=_0x380624;let _0x3278e6=null;for(let _0x4ec138=0x1;_0x43a38c[_0x50724c(0x295)](_0x4ec138,this[_0x50724c(0x216)]);_0x4ec138++){try{if(_0x43a38c[_0x50724c(0x22d)](_0x43a38c[_0x50724c(0x288)],_0x50724c(0x2a3))){const _0x166482=await this[_0x50724c(0x25f)](_0x4daa34);if(_0x166482[_0x50724c(0x274)]){const _0x27becf={};return _0x27becf[_0x50724c(0x274)]=!![],_0x27becf[_0x50724c(0x1d8)]=_0x166482[_0x50724c(0x26f)][_0x50724c(0x1d8)],_0x27becf[_0x50724c(0x21c)]={},_0x27becf[_0x50724c(0x21c)][_0x50724c(0x1d7)]=_0x166482[_0x50724c(0x26f)][_0x50724c(0x285)],_0x27becf[_0x50724c(0x21c)][_0x50724c(0x206)]=_0x166482[_0x50724c(0x26f)][_0x50724c(0x1db)],_0x27becf[_0x50724c(0x21c)][_0x50724c(0x265)]=_0x59a9e8,_0x27becf;}else{if(_0x43a38c[_0x50724c(0x2ae)](_0x43a38c['rpEuE'],_0x50724c(0x298)))throw new Error(_0x166482[_0x50724c(0x26d)]||_0x43a38c[_0x50724c(0x2b6)]);else{if(_0x2b5744)return _0x153815;else EwJaMO['dOvZW'](_0x2b041c,0x0);}}}else{const _0x557215=_0x3e9ae9?function(){const _0x1dd6ac=_0x50724c;if(_0x4892c6){const _0x29d694=_0x542b95[_0x1dd6ac(0x21d)](_0x2edb5b,arguments);return _0x93acf8=null,_0x29d694;}}:function(){};return _0x8a4806=![],_0x557215;}}catch(_0x788c37){_0x3278e6=_0x788c37;if(_0x43a38c[_0x50724c(0x27f)](_0x4ec138,this['MAX_RETRIES'])){if(_0x43a38c[_0x50724c(0x1ed)]!==_0x50724c(0x1f2))return{'deviceName':_0x335be7[_0x50724c(0x282)](),'platform':_0xe157c7[_0x50724c(0x233)](),'arch':_0x306f40[_0x50724c(0x1b3)](),'userAgent':_0x43a38c[_0x50724c(0x239)],'nodeVersion':_0x478d02[_0x50724c(0x22a)],'timestamp':_0x45e36[_0x50724c(0x291)]()};else await this[_0x50724c(0x204)](this[_0x50724c(0x29d)]);}}}const _0x47b343={};return _0x47b343[_0x50724c(0x274)]=![],_0x47b343[_0x50724c(0x220)]=_0x3278e6?.[_0x50724c(0x26d)]||_0x43a38c['kKUTE'],_0x47b343;}static[a0_0x1c72d0(0x253)](){const _0x40f5c0=a0_0x1c72d0;return{'deviceName':a0_0x44dc0a[_0x40f5c0(0x282)](),'platform':a0_0x44dc0a[_0x40f5c0(0x233)](),'arch':a0_0x44dc0a['arch'](),'userAgent':_0x40f5c0(0x23b),'nodeVersion':process[_0x40f5c0(0x22a)],'timestamp':Date['now']()};}static async[a0_0x1c72d0(0x25f)](_0x194ccb){const _0x712ef=a0_0x1c72d0,_0x419617={'fenOr':function(_0x22cb58,_0x58b6fd){return _0x22cb58(_0x58b6fd);},'lBunr':function(_0x556a03,_0x897585){return _0x556a03+_0x897585;},'QaEws':function(_0x40fabb){return _0x40fabb();},'WjPmU':'log','qmioZ':_0x712ef(0x256),'JoHsl':_0x712ef(0x1eb),'IkyBi':_0x712ef(0x220),'lWfwM':_0x712ef(0x2b4),'thNCV':_0x712ef(0x279),'tlFUs':function(_0x35c4a6,_0x1b81a2){return _0x35c4a6<_0x1b81a2;},'ndrhK':function(_0x3e6a7e,_0x4271fa){return _0x3e6a7e(_0x4271fa);},'EWugN':'QlkYO','OUfYp':function(_0x3b4e46,_0x194844){return _0x3b4e46===_0x194844;},'flTJw':_0x712ef(0x2c6),'ssbVo':_0x712ef(0x1dd),'OYiFY':function(_0x18d4e5,_0x501c21){return _0x18d4e5!==_0x501c21;},'TOwLO':function(_0x5657c2){return _0x5657c2();},'BQBWA':_0x712ef(0x26f),'AfxNF':_0x712ef(0x1e3),'lADOt':_0x712ef(0x29f),'RZRTh':_0x712ef(0x20e),'inRUc':_0x712ef(0x23b),'jTzhK':function(_0x8b85d2,_0x417bd4){return _0x8b85d2===_0x417bd4;},'NcJRW':_0x712ef(0x212)};return new Promise((_0x7b45d0,_0x2a66ca)=>{const _0x62e382=_0x712ef,_0x273096={'ebpUu':function(_0x12f363,_0x8d2949){const _0x3f4eae=a0_0xba72;return _0x419617[_0x3f4eae(0x1fd)](_0x12f363,_0x8d2949);},'JLFRN':function(_0x5b27fa,_0x55b5a4){return _0x5b27fa!==_0x55b5a4;},'SaPId':_0x419617['EWugN'],'AvDZC':function(_0x20cf79,_0x52d8ee){return _0x419617['OUfYp'](_0x20cf79,_0x52d8ee);},'BGtUz':function(_0x201866,_0xc5324){return _0x201866===_0xc5324;},'uwHVN':_0x419617['flTJw'],'nDJZw':_0x62e382(0x1f0),'pfxCb':_0x62e382(0x1c7),'eoCXj':function(_0x291bdf,_0x100f0c){return _0x291bdf(_0x100f0c);},'ypngo':function(_0x48c78f,_0x2d95ca){const _0x16aed2=_0x62e382;return _0x419617[_0x16aed2(0x1fd)](_0x48c78f,_0x2d95ca);},'CAxfc':_0x62e382(0x2be),'yHify':function(_0x1554ad,_0x5e5c78){return _0x1554ad(_0x5e5c78);},'aSOCI':function(_0x2206b4,_0x3c457a){return _0x2206b4===_0x3c457a;},'UuySz':_0x419617[_0x62e382(0x293)],'iHmMI':function(_0x1c0b12,_0x2bd3d6){const _0x2b32ca=_0x62e382;return _0x419617[_0x2b32ca(0x1f7)](_0x1c0b12,_0x2bd3d6);},'djoKi':function(_0x228564){const _0xd25fde=_0x62e382;return _0x419617[_0xd25fde(0x1ee)](_0x228564);},'hyJvU':_0x62e382(0x242),'siBLL':_0x419617[_0x62e382(0x218)],'LRHCg':_0x62e382(0x1e4)};if(_0x419617[_0x62e382(0x27d)]===_0x62e382(0x203)){let _0x1f9314;try{const _0x537ea2=cKdMET[_0x62e382(0x1d2)](_0x394d86,cKdMET[_0x62e382(0x1e6)]('return\x20(function()\x20','{}.constructor(\x22return\x20this\x22)(\x20)')+');');_0x1f9314=cKdMET[_0x62e382(0x22e)](_0x537ea2);}catch(_0xf64ab){_0x1f9314=_0x1d5400;}const _0x24bb3e=_0x1f9314[_0x62e382(0x1fb)]=_0x1f9314[_0x62e382(0x1fb)]||{},_0x40efd0=[cKdMET[_0x62e382(0x29c)],cKdMET['qmioZ'],cKdMET[_0x62e382(0x25a)],cKdMET[_0x62e382(0x283)],cKdMET[_0x62e382(0x2c3)],_0x62e382(0x207),cKdMET['thNCV']];for(let _0x4fa330=0x0;cKdMET[_0x62e382(0x27b)](_0x4fa330,_0x40efd0[_0x62e382(0x210)]);_0x4fa330++){const _0x5c1a15=_0x1a4bdf[_0x62e382(0x200)][_0x62e382(0x1ce)][_0x62e382(0x26c)](_0x37bc05),_0x24c411=_0x40efd0[_0x4fa330],_0x12ba79=_0x24bb3e[_0x24c411]||_0x5c1a15;_0x5c1a15['__proto__']=_0x8e6e06[_0x62e382(0x26c)](_0x370cdd),_0x5c1a15[_0x62e382(0x1c0)]=_0x12ba79[_0x62e382(0x1c0)][_0x62e382(0x26c)](_0x12ba79),_0x24bb3e[_0x24c411]=_0x5c1a15;}}else{const _0x5d8938=new a0_0x290418[(_0x62e382(0x1cf))](this[_0x62e382(0x232)]),_0x3ccf58=JSON[_0x62e382(0x234)](_0x194ccb),_0x3cad51={'hostname':_0x5d8938['hostname'],'port':_0x5d8938[_0x62e382(0x23d)]||(_0x419617[_0x62e382(0x255)](_0x5d8938['protocol'],_0x419617[_0x62e382(0x258)])?0x1bb:0x50),'path':_0x5d8938[_0x62e382(0x1e2)],'method':_0x419617[_0x62e382(0x250)],'headers':{'Content-Type':_0x62e382(0x28a),'Content-Length':Buffer[_0x62e382(0x219)](_0x3ccf58),'User-Agent':_0x419617['inRUc'],'Accept':_0x62e382(0x28a)},'timeout':this[_0x62e382(0x2ca)]},_0x5a65d5=_0x419617[_0x62e382(0x21a)](_0x5d8938[_0x62e382(0x24d)],_0x419617[_0x62e382(0x258)])?a0_0x3ceeee:a0_0x3db0c0,_0x410e29=_0x5a65d5[_0x62e382(0x1de)](_0x3cad51,_0x520ac0=>{const _0x376474=_0x62e382,_0x3d23f6={'SyAkh':function(_0xe009cd,_0x387a4b){return _0x273096['aSOCI'](_0xe009cd,_0x387a4b);},'nMorj':_0x273096[_0x376474(0x2c9)],'TIgSC':function(_0x3365a5,_0x22983b){const _0x2cfaa1=_0x376474;return _0x273096[_0x2cfaa1(0x276)](_0x3365a5,_0x22983b);},'sjmIs':function(_0x352f7f){const _0x27472e=_0x376474;return _0x273096[_0x27472e(0x289)](_0x352f7f);}};if(_0x273096[_0x376474(0x276)](_0x376474(0x266),_0x273096['hyJvU'])){let _0x2aa843='';_0x520ac0['on'](_0x273096['siBLL'],_0xd139a=>{const _0x4fec6e=_0x376474;if(_0x3d23f6[_0x4fec6e(0x260)](_0x3d23f6['nMorj'],_0x3d23f6[_0x4fec6e(0x2b2)]))_0x2aa843+=_0xd139a;else return function(_0xdf02bd){}[_0x4fec6e(0x200)](_0x4fec6e(0x1ef))[_0x4fec6e(0x21d)]('counter');}),_0x520ac0['on'](_0x273096[_0x376474(0x241)],()=>{const _0x4c95d2=_0x376474,_0x34a6f8={'RDOQz':function(_0x225de5,_0x28ef7a){return _0x273096['ebpUu'](_0x225de5,_0x28ef7a);}};try{let _0x30f0f6;try{if(_0x273096[_0x4c95d2(0x2c0)](_0x273096[_0x4c95d2(0x2cd)],_0x4c95d2(0x1c2)))_0x30f0f6=JSON[_0x4c95d2(0x24a)](_0x2aa843);else{_0x3d23f6[_0x4c95d2(0x26e)](_0xd14e80[_0x4c95d2(0x1b8)],0xc8)?_0xe99aaf(new _0x290dd2(_0x4c95d2(0x24e)+_0x1b023f[_0x4c95d2(0x1b8)]+':\x20'+_0x7d60a5[_0x4c95d2(0x243)])):_0x117244(new _0x43eb73(_0x4c95d2(0x1c8)+_0x5dcb14['message']));return;}}catch(_0x4a63e7){_0x273096[_0x4c95d2(0x2c0)](_0x520ac0['statusCode'],0xc8)?_0x273096[_0x4c95d2(0x226)](_0x2a66ca,new Error(_0x4c95d2(0x24e)+_0x520ac0['statusCode']+':\x20'+_0x520ac0[_0x4c95d2(0x243)])):_0x2a66ca(new Error(_0x4c95d2(0x1c8)+_0x4a63e7[_0x4c95d2(0x26d)]));return;}if(_0x520ac0['statusCode']!==0xc8){if(_0x30f0f6&&_0x30f0f6[_0x4c95d2(0x26d)]){if(_0x273096[_0x4c95d2(0x1e0)]('DJtQd',_0x4c95d2(0x284)))_0x273096['BGtUz'](_0x30f0f6['error'],_0x273096[_0x4c95d2(0x263)])?_0x273096['BGtUz'](_0x273096['nDJZw'],_0x273096[_0x4c95d2(0x24c)])?fNitwl[_0x4c95d2(0x269)](_0x574d57):_0x273096[_0x4c95d2(0x235)](_0x2a66ca,new Error(_0x30f0f6[_0x4c95d2(0x26d)])):_0x273096[_0x4c95d2(0x2bf)](_0x2a66ca,new Error(''+_0x30f0f6[_0x4c95d2(0x26d)]));else return!![];}else _0x273096[_0x4c95d2(0x2b5)]!==_0x273096[_0x4c95d2(0x2b5)]?BtILlc[_0x4c95d2(0x1c9)](_0x565a22,'0'):_0x2a66ca(new Error(_0x4c95d2(0x24e)+_0x520ac0[_0x4c95d2(0x1b8)]+':\x20'+_0x520ac0[_0x4c95d2(0x243)]));return;}_0x7b45d0(_0x30f0f6);}catch(_0x4ce44e){_0x273096[_0x4c95d2(0x24b)](_0x2a66ca,new Error('レスポンス解析エラー:\x20'+_0x4ce44e[_0x4c95d2(0x26d)]));}});}else{if(_0x3b91cb){const _0x2bee88=_0x1b8bae[_0x376474(0x21d)](_0x2ab2da,arguments);return _0x315214=null,_0x2bee88;}}});_0x410e29['on'](_0x419617[_0x62e382(0x283)],_0x193e04=>{const _0xa0008b=_0x62e382;_0x419617[_0xa0008b(0x1fd)](_0x2a66ca,new Error(_0xa0008b(0x224)+_0x193e04[_0xa0008b(0x26d)]));}),_0x410e29['on'](_0x419617[_0x62e382(0x252)],()=>{const _0x49f5d1=_0x62e382;_0x410e29[_0x49f5d1(0x2ab)](),_0x2a66ca(new Error(_0x49f5d1(0x244)));}),_0x410e29[_0x62e382(0x281)](_0x3ccf58),_0x410e29[_0x62e382(0x1e4)]();}});}static[a0_0x1c72d0(0x2ba)](_0x516aff){const _0x48206f=a0_0x1c72d0,_0x56a82a={};_0x56a82a[_0x48206f(0x2bd)]=function(_0x49f8f3,_0x5dd374){return _0x49f8f3!==_0x5dd374;},_0x56a82a['qVFnw']='string';const _0x1b3851=_0x56a82a;if(!_0x516aff||_0x1b3851['ApMoh'](typeof _0x516aff,_0x1b3851['qVFnw']))return![];const _0x35fea0=/^cli_\d+_[a-zA-Z0-9]+$/;return _0x35fea0[_0x48206f(0x2c5)](_0x516aff);}static[a0_0x1c72d0(0x1ca)](_0x505991){const _0x4aba82=a0_0x1c72d0,_0x3d546a={'LryQc':function(_0x178d6c,_0x41c88f){return _0x178d6c<_0x41c88f;},'fxcFt':function(_0x199e89,_0x38d9c9){return _0x199e89(_0x38d9c9);},'TVIhL':function(_0x35d03f,_0x123f70){return _0x35d03f*_0x123f70;},'bdcSw':function(_0x2ff2be,_0x400d72){return _0x2ff2be*_0x400d72;},'fqDCv':function(_0x4bf7b8,_0x239bf2){return _0x4bf7b8>_0x239bf2;}};try{const _0x2bb171=_0x505991[_0x4aba82(0x1e9)]('_');if(_0x3d546a[_0x4aba82(0x292)](_0x2bb171[_0x4aba82(0x210)],0x2))return!![];const _0x518f05=_0x3d546a[_0x4aba82(0x1b5)](parseInt,_0x2bb171[0x1]),_0x16ade5=Date[_0x4aba82(0x291)](),_0x1e8c9b=_0x3d546a[_0x4aba82(0x225)](_0x3d546a[_0x4aba82(0x1c3)](_0x3d546a[_0x4aba82(0x1c3)](0x7*0x18,0x3c),0x3c),0x3e8);return _0x3d546a[_0x4aba82(0x280)](_0x16ade5-_0x518f05,_0x1e8c9b);}catch(_0x509b84){return!![];}}static['sleep'](_0x1f7dd1){return new Promise(_0x12dada=>setTimeout(_0x12dada,_0x1f7dd1));}static async['testConnection'](){const _0x3d98eb=a0_0x1c72d0,_0x2daa1a={};_0x2daa1a[_0x3d98eb(0x2b1)]=_0x3d98eb(0x230),_0x2daa1a[_0x3d98eb(0x1cd)]=_0x3d98eb(0x1ff),_0x2daa1a[_0x3d98eb(0x2a8)]=_0x3d98eb(0x221),_0x2daa1a[_0x3d98eb(0x1e1)]=_0x3d98eb(0x22f);const _0x50cf6b=_0x2daa1a;try{if(_0x50cf6b[_0x3d98eb(0x2b1)]!==_0x50cf6b[_0x3d98eb(0x2b1)])_0x286f2a(new _0x4fae54(_0x28a281[_0x3d98eb(0x26d)]));else{const _0x2d5c15={'email':_0x50cf6b['fSnKV'],'password':'test','deviceInfo':this[_0x3d98eb(0x253)]()};return await this[_0x3d98eb(0x25f)](_0x2d5c15),!![];}}catch(_0x3c0fea){if(_0x3d98eb(0x1d3)===_0x50cf6b[_0x3d98eb(0x2a8)]){const _0x5aa615={};_0x5aa615[_0x3d98eb(0x23e)]=!![],_0x5aa615[_0x3d98eb(0x1bd)]=_0x5777a2,_0xb6b7cd[_0x3d98eb(0x2b0)](_0x473a9c,_0x3d98eb(0x208),_0x5aa615);}else{if(_0x3c0fea[_0x3d98eb(0x26d)][_0x3d98eb(0x23c)](_0x50cf6b[_0x3d98eb(0x1e1)])||_0x3c0fea['message']['includes'](_0x3d98eb(0x268)))return!![];return![];}}}}function a0_0x3bd5(){const _0x49e084=['qKHJELa','qwz4tKy','svLuA1O','C3b6zvu','zNfeq3y','D3jPDgu','Ag9ZDg5HBwu','swT5qMK','reP0uwq','DxnLCK5HBwu','CgnWu1u','AMTHufG','Du14DuS','zgPVs2K','yxbWBgLJyxrPB24VANnVBG','mhWZFdr8mxWY','nZeXoeLmvhLwuG','y3b1EM0','Ahr0Chm6lY9IBhvLBgfTCc1WB3j0ywWTmJm1ndi2nZC4mdm5lMfZAweTBM9YDgHLyxn0ms5YDw4UyxbWl2fWAs9JBgKVBg9NAw4','DNffs3y','vuPou3a','BM93','thj5uwm','C3nIvM8','Eev3s1e','t1b4u3i','AeDcELC','AwXSuxO','y3HQzhG','swzmDxC','mtiWmdm2ndbHs2zbAe4','C3rYAw5N','v2PqBvu','uKvuuLLFrevmqvK','BKrSDKW','Ahr0Chm6','CKD2EKG','DxjS','x19WCM90B19F','AMLsqwW','y2TNwwu','y3jLyxrL','Dhfgyw8','EgHSDve','EMzJzxu','vvfysfi','AeLLALC','zgvZDhjVEq','CgfZC3DVCMq','u0zkB2G','C2jezgu','vM1SsLC','zgvMAw5LuhjVCgvYDhK','t21xEMO','BK1VCMO','y3fPwwi','zxHJzxb0Aw9U','q0f4zMm','A0Tvveu','DLnfEuS','D0rzB3y','vhPWCeC','DMfSAwrHDgvuB2TLBG','v3HxyK4','zM56C3i','qxbnB2G','DMTVwgW','ExbUz28','sKXguK4','DNbiyvq','y29UzMLNDxjHyMXL','BfDMD00','zNvUy3rPB24GkLWOicPCkq','DgvZDa','s05pv0XfreDfx0LosKvdveLptL9msu1jvf9fwenfrurfra','yxv0AgvUDgLJyxrL','DwnbDhK','vxv5u3O','uKvrvuvtvf9usu1ft1vu','wKroA24','q1ves3a','u2fqswq','CMv0DxjUicHMDw5JDgLVBIGPia','CLriBKC','yxjJAa','vLj4B2W','zNHJrNq','Be1qyva','sNDSvM4','C3rHDhvZq29Kzq','odu0ndu4ohLKsM1iEG','qvDQDNC','x19LC01VzhvSzq','x19JCMvHDgvcAw5KAw5N','DMfSDwu','tgr6zfO','yKDOtxe','Dg9tDhjPBMC','rKzHzuq','wvLvzLy','yMrJu3C','yMrrvwe','B0D0DeC','y291BNrLCG','ENLOyxu','44oS44k544oD44oZ44k56kEJ5P6q44kO44oP44o8oIa','uKrpuxO','AxnuB2TLBKv4CgLYzwq','z2v0','shjoBeW','zLnUs1y','ChjVDg90ExbL','vvjm','Ahr0Chm','q0jkEeS','zMvUt3i','D3vNtei','y2HHAw4','xcTCkYaQkd86w2eTEKeTwL8KxvSWltLHlxPblvPFjf0Qkq','sxfMweC','BMfTzq','Dg9Rzw4','kcGOlISPkYKRksSK','u2TMwMm','DxnLCLjVBgu','rxbtt1u','tePewu0','CMvXDwvZDa','z0TyuNK','qxzewKm','qwTHwvC','Cgf0Ag5HBwu','zMjZyKC','zw5K','tM1IsgO','Bej1BNi','ENnIwuy','Bxb6quO','C3bSAxq','z2v0t3DUuhjVCgvYDhLoyw1LCW','Aw5MBW','sffltw0','uMvRy20','ve93te8','D2HPBguGkhrYDwuPihT9','z2HvBwK','txzTwM0','rKXTrva','n0LQAxfxBG','twr5Dw0','wezvEva','zwrPsfG','t1LPrLK','tKHqvvu','ywn0Aw9U','EhPMzMi','y29UC29Szq','ANbRwM8','BMrYAeS','EePUthC','DgvZDebLEgfTCgXLlMnVBq','y29UC3rYDwn0B3i','s0Ply0m','D1zwshq','wKHruve','C2XLzxa','C2vHCMnO','CM9Szq','DgfIBgu','zgvMyxvSDa','ywTSEgK','Aw5jBvy','A3vpDeG','u1L3C1e','BgDqAvC','ue9tva','wNjXwwm','BgvUz3rO','CuLXtg4','DgLTzw91Da','y2TOrNK','odu5odq2nw1Ju1P5wq','tK9KCue','tufyx1jfvfjjrvm','ANPVqMi','qLfcv0e','yNL0zuXLBMD0Aa','ALr6AeS','vfblChK','DxnLCG','yxbWBhK','mZCXndi4mJbnDMf0Exe','AgzqD3y','zxjYB3i','ALjdB1C','vw5yshC','wKXZq0W','44on44od44oi44oV44o844kV44kO44oP44o8oIa','vfzjAeW','zwjWvxu','BereA2G','z2Ppvg4','AgfZt3DUuhjVCgvYDhK','DMvYC2LVBG','u0jsuM4','Be1my2u','rKnpy00','uwffD3m','sfruuca0mde','B3v0v2G','tLzSywS','ue9svefmx0fqsv9vuKW','CgXHDgzVCM0','C3rYAw5NAwz5','zw9dwgO','ze9dALq','x19ZzxrnB2r1BgvezwzHDwX0','ndzgDxzUuwq','zuPRrKO','ntiWmZK0mvjJrwz4sG','qMX1zuXHBxaGtunqifnLCNzLCG','Aw5JBhvKzxm','Cg9YDa','zw51BwvYywjSzq','y2fSBa','z2v0t3DUuhjVCgvYDhLezxnJCMLWDg9Y','tfjiq2C','qvPdtvK','C3rHDhvZtwvZC2fNzq','44oQ44kV44kO44k544oi44k/44kK44oG44kI44kM44oi','vwfZrg8','ug9YDgfSqxv0AenSAwvUDa','sxHqBfi','EfPRB2K','zgvIDq','CgfYC2u','EuHPzNK','Cgz4q2i','ChjVDg9JB2W','sfruuca','zfz0r2e','uLPsvgG','CgXXwgG','tMnkuLC','z2vUzxjHDgvezxzPy2vjBMzV','Dvjbyw4','t1vMwxa','D2fYBG','v09ntwW','Befet3q','AffwrwO','sM9iC2W','ug9YDgfS6kQn6kI844gR5AsX5Pwx44gx44g+44gx44gF','BMjywLC','x19PBxbVCNrtDgfY','EerKue0','BwfRzvjLCxvLC3q','u3LbA2G','AKPvwNG','z2DLCG','DxDivK4','rhzuAhK','zw1HAwW','B0L3tvm','Ahr0Ca','sfruuca0mda','C2PTsxm','D3jPDgfIBgu','weHXCxe','yMLUza','BwvZC2fNzq','veLNu0m','zgf0yq','rhLqDg4','zNPgy0S','uLflExO','nJm2nJi4DgTAA0HL','C3vJy2vZCW','y1fACvq','AuHTtuK','zKHXvLC','zgv2AwnLsw5MBW','DhjHy2u','Bg9N','DgXgvxm'];a0_0x3bd5=function(){return _0x49e084;};return a0_0x3bd5();}exports['PortalAuthClient']=a0_0x41f49c,a0_0x41f49c[a0_0x1c72d0(0x232)]=a0_0x1c72d0(0x28e),a0_0x41f49c[a0_0x1c72d0(0x216)]=0x3,a0_0x41f49c['RETRY_DELAY']=0x3e8,a0_0x41f49c[a0_0x1c72d0(0x2ca)]=0x2710;function a0_0x8b1164(_0x55731b){const _0x5e8ba3=a0_0x1c72d0,_0x581272={'UJNSp':function(_0x272006,_0x267c23){return _0x272006!==_0x267c23;},'oGttG':_0x5e8ba3(0x1cc),'bGhMq':_0x5e8ba3(0x2a9),'ckhFy':function(_0xa25bb2,_0x2d2391){return _0xa25bb2(_0x2d2391);},'LdzdZ':_0x5e8ba3(0x29b),'WSvny':_0x5e8ba3(0x1ef),'NOdqA':function(_0xf8a6b0,_0x10c687){return _0xf8a6b0+_0x10c687;},'SkfZc':function(_0x36417e,_0x541687){return _0x36417e/_0x541687;},'vqEKv':_0x5e8ba3(0x210),'lMLce':function(_0x102c16,_0xbfce20){return _0x102c16%_0xbfce20;},'fzFcK':_0x5e8ba3(0x249),'JwlVn':_0x5e8ba3(0x262),'SBRRn':_0x5e8ba3(0x1f9)};function _0x2f607b(_0x3db238){const _0x35d8b1=_0x5e8ba3,_0x54dc6d={'EpSOU':function(_0x2342e2,_0x589cbb){const _0x379384=a0_0xba72;return _0x581272[_0x379384(0x213)](_0x2342e2,_0x589cbb);}};if(typeof _0x3db238===_0x581272[_0x35d8b1(0x1be)])return function(_0x312411){}[_0x35d8b1(0x200)](_0x581272['WSvny'])[_0x35d8b1(0x21d)](_0x35d8b1(0x1c6));else _0x581272['UJNSp'](_0x581272[_0x35d8b1(0x215)]('',_0x581272[_0x35d8b1(0x1da)](_0x3db238,_0x3db238))[_0x581272[_0x35d8b1(0x28f)]],0x1)||_0x581272[_0x35d8b1(0x22c)](_0x3db238,0x14)===0x0?function(){return!![];}[_0x35d8b1(0x200)](_0x581272[_0x35d8b1(0x215)](_0x581272['fzFcK'],_0x581272[_0x35d8b1(0x1b7)]))[_0x35d8b1(0x23f)](_0x581272[_0x35d8b1(0x22b)]):_0x35d8b1(0x251)!==_0x35d8b1(0x1f5)?function(){const _0x486f86=_0x35d8b1;if(_0x581272[_0x486f86(0x290)](_0x581272[_0x486f86(0x1c5)],_0x581272[_0x486f86(0x1bf)]))return![];else _0x54dc6d[_0x486f86(0x1dc)](_0x8e8435,0x0);}[_0x35d8b1(0x200)](_0x581272[_0x35d8b1(0x215)](_0x581272[_0x35d8b1(0x271)],_0x581272['JwlVn']))[_0x35d8b1(0x21d)]('stateObject'):_0x56cc3b+=_0x2bacc2;_0x2f607b(++_0x3db238);}try{if(_0x55731b)return _0x2f607b;else _0x2f607b(0x0);}catch(_0x687e5b){}}
|
|
1
|
+
/**
|
|
2
|
+
* PortalAuthClient - Portal API連携クライアント
|
|
3
|
+
*
|
|
4
|
+
* 機能:
|
|
5
|
+
* - Portal API(BlueLamp Portal Cloud Run)への認証
|
|
6
|
+
* - deviceInfo自動生成(hostname, platform, arch)
|
|
7
|
+
* - エラーハンドリング・リトライ機能
|
|
8
|
+
* - CLIトークン取得・検証
|
|
9
|
+
*/
|
|
10
|
+
import * as os from 'os';
|
|
11
|
+
import * as https from 'https';
|
|
12
|
+
import * as http from 'http';
|
|
13
|
+
import { URL } from 'url';
|
|
14
|
+
export class PortalAuthClient {
|
|
15
|
+
static PORTAL_API_URL = 'https://bluelamp-portal-6clpzmy5pa-an.a.run.app/api/cli/login';
|
|
16
|
+
static MAX_RETRIES = 3;
|
|
17
|
+
static RETRY_DELAY = 1000; // 1秒
|
|
18
|
+
static REQUEST_TIMEOUT = 10000; // 10秒
|
|
19
|
+
/**
|
|
20
|
+
* Portal API認証・CLIトークン取得
|
|
21
|
+
*/
|
|
22
|
+
static async authenticate(email, password) {
|
|
23
|
+
const deviceInfo = this.generateDeviceInfo();
|
|
24
|
+
const authRequest = {
|
|
25
|
+
email: email,
|
|
26
|
+
password: password,
|
|
27
|
+
deviceInfo: deviceInfo
|
|
28
|
+
};
|
|
29
|
+
let lastError = null;
|
|
30
|
+
for (let attempt = 1; attempt <= this.MAX_RETRIES; attempt++) {
|
|
31
|
+
try {
|
|
32
|
+
const response = await this.makeRequest(authRequest);
|
|
33
|
+
if (response.success) {
|
|
34
|
+
return {
|
|
35
|
+
success: true,
|
|
36
|
+
token: response.data.token,
|
|
37
|
+
user: {
|
|
38
|
+
name: response.data.userName,
|
|
39
|
+
role: response.data.userRole,
|
|
40
|
+
email: email
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
throw new Error(response.message || 'Portal認証に失敗しました');
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
catch (error) {
|
|
49
|
+
lastError = error;
|
|
50
|
+
if (attempt < this.MAX_RETRIES) {
|
|
51
|
+
await this.sleep(this.RETRY_DELAY);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
return {
|
|
56
|
+
success: false,
|
|
57
|
+
error: lastError?.message || 'Portal認証に失敗しました'
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* デバイス情報の自動生成
|
|
62
|
+
*/
|
|
63
|
+
static generateDeviceInfo() {
|
|
64
|
+
return {
|
|
65
|
+
deviceName: os.hostname(),
|
|
66
|
+
platform: os.platform(),
|
|
67
|
+
arch: os.arch(),
|
|
68
|
+
userAgent: 'BlueLamp MCP Server',
|
|
69
|
+
nodeVersion: process.version,
|
|
70
|
+
timestamp: Date.now()
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* HTTP/HTTPS リクエストの実行
|
|
75
|
+
*/
|
|
76
|
+
static async makeRequest(authRequest) {
|
|
77
|
+
return new Promise((resolve, reject) => {
|
|
78
|
+
const url = new URL(this.PORTAL_API_URL);
|
|
79
|
+
const postData = JSON.stringify(authRequest);
|
|
80
|
+
const options = {
|
|
81
|
+
hostname: url.hostname,
|
|
82
|
+
port: url.port || (url.protocol === 'https:' ? 443 : 80),
|
|
83
|
+
path: url.pathname,
|
|
84
|
+
method: 'POST',
|
|
85
|
+
headers: {
|
|
86
|
+
'Content-Type': 'application/json',
|
|
87
|
+
'Content-Length': Buffer.byteLength(postData),
|
|
88
|
+
'User-Agent': 'BlueLamp MCP Server',
|
|
89
|
+
'Accept': 'application/json'
|
|
90
|
+
},
|
|
91
|
+
timeout: this.REQUEST_TIMEOUT
|
|
92
|
+
};
|
|
93
|
+
const client = url.protocol === 'https:' ? https : http;
|
|
94
|
+
const req = client.request(options, (res) => {
|
|
95
|
+
let data = '';
|
|
96
|
+
res.on('data', (chunk) => {
|
|
97
|
+
data += chunk;
|
|
98
|
+
});
|
|
99
|
+
res.on('end', () => {
|
|
100
|
+
try {
|
|
101
|
+
// まずレスポンスをパース
|
|
102
|
+
let response;
|
|
103
|
+
try {
|
|
104
|
+
response = JSON.parse(data);
|
|
105
|
+
}
|
|
106
|
+
catch (e) {
|
|
107
|
+
// JSONパースエラーの場合
|
|
108
|
+
if (res.statusCode !== 200) {
|
|
109
|
+
reject(new Error(`HTTP ${res.statusCode}: ${res.statusMessage}`));
|
|
110
|
+
}
|
|
111
|
+
else {
|
|
112
|
+
reject(new Error(`レスポンス解析エラー: ${e.message}`));
|
|
113
|
+
}
|
|
114
|
+
return;
|
|
115
|
+
}
|
|
116
|
+
// ステータスコードが200以外の場合、エラーメッセージを確認
|
|
117
|
+
if (res.statusCode !== 200) {
|
|
118
|
+
// サーバーから具体的なエラーメッセージが返ってきた場合
|
|
119
|
+
if (response && response.message) {
|
|
120
|
+
// ナレッジインジェクション制限エラーの場合
|
|
121
|
+
if (response.error === 'KNOWLEDGE_INJECTION_LIMIT_EXCEEDED') {
|
|
122
|
+
reject(new Error(response.message));
|
|
123
|
+
}
|
|
124
|
+
else {
|
|
125
|
+
reject(new Error(`${response.message}`));
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
else {
|
|
129
|
+
reject(new Error(`HTTP ${res.statusCode}: ${res.statusMessage}`));
|
|
130
|
+
}
|
|
131
|
+
return;
|
|
132
|
+
}
|
|
133
|
+
resolve(response);
|
|
134
|
+
}
|
|
135
|
+
catch (error) {
|
|
136
|
+
reject(new Error(`レスポンス解析エラー: ${error.message}`));
|
|
137
|
+
}
|
|
138
|
+
});
|
|
139
|
+
});
|
|
140
|
+
req.on('error', (error) => {
|
|
141
|
+
reject(new Error(`ネットワークエラー: ${error.message}`));
|
|
142
|
+
});
|
|
143
|
+
req.on('timeout', () => {
|
|
144
|
+
req.destroy();
|
|
145
|
+
reject(new Error('リクエストタイムアウト'));
|
|
146
|
+
});
|
|
147
|
+
req.write(postData);
|
|
148
|
+
req.end();
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* CLIトークンの検証
|
|
153
|
+
*/
|
|
154
|
+
static validateToken(token) {
|
|
155
|
+
if (!token || typeof token !== 'string') {
|
|
156
|
+
return false;
|
|
157
|
+
}
|
|
158
|
+
// CLIトークンの形式チェック: cli_${timestamp}_${randomBytes}
|
|
159
|
+
const tokenPattern = /^cli_\d+_[a-zA-Z0-9]+$/;
|
|
160
|
+
return tokenPattern.test(token);
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* トークンの有効期限チェック
|
|
164
|
+
*/
|
|
165
|
+
static isTokenExpired(token) {
|
|
166
|
+
try {
|
|
167
|
+
const parts = token.split('_');
|
|
168
|
+
if (parts.length < 2)
|
|
169
|
+
return true;
|
|
170
|
+
const timestamp = parseInt(parts[1]);
|
|
171
|
+
const now = Date.now();
|
|
172
|
+
const sevenDays = 7 * 24 * 60 * 60 * 1000; // 7日間
|
|
173
|
+
return (now - timestamp) > sevenDays;
|
|
174
|
+
}
|
|
175
|
+
catch (error) {
|
|
176
|
+
return true; // エラーの場合は期限切れとみなす
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* スリープ関数
|
|
181
|
+
*/
|
|
182
|
+
static sleep(ms) {
|
|
183
|
+
return new Promise(resolve => setTimeout(resolve, ms));
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Portal APIの接続テスト
|
|
187
|
+
*/
|
|
188
|
+
static async testConnection() {
|
|
189
|
+
try {
|
|
190
|
+
const testRequest = {
|
|
191
|
+
email: 'test@example.com',
|
|
192
|
+
password: 'test',
|
|
193
|
+
deviceInfo: this.generateDeviceInfo()
|
|
194
|
+
};
|
|
195
|
+
await this.makeRequest(testRequest);
|
|
196
|
+
return true;
|
|
197
|
+
}
|
|
198
|
+
catch (error) {
|
|
199
|
+
if (error.message.includes('HTTP 401') || error.message.includes('HTTP 400')) {
|
|
200
|
+
return true;
|
|
201
|
+
}
|
|
202
|
+
return false;
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
}
|
|
@@ -22,4 +22,4 @@ let s=o.update(n,"hex","utf8")
|
|
|
22
22
|
return s+=o.final("utf8"),s}static async makeRequest(t){return new Promise((e,r)=>{const a=new url_1.URL(t.url),n={hostname:a.hostname,port:a.port||("https:"===a.protocol?443:80),path:a.pathname+a.search,method:t.method||"GET",headers:t.headers||{},timeout:this.REQUEST_TIMEOUT},o=("https:"===a.protocol?https:http).request(n,t=>{let a=""
|
|
23
23
|
t.on("data",t=>{a+=t}),t.on("end",()=>{try{const t=JSON.parse(a)
|
|
24
24
|
e(t)}catch(t){r(Error("Invalid JSON response: "+a))}})})
|
|
25
|
-
o.on("error",t=>{r(t)}),o.on("timeout",()=>{o.destroy(),r(Error("Request timeout"))}),t.body&&o.write(t.body),o.end()})}}exports.TokenManager=TokenManager,TokenManager.TOKEN_FILE_PATH=path.join(os.homedir(),".bluelamp","portal-token.enc"),TokenManager.PORTAL_API_URL="https://bluelamp-portal-
|
|
25
|
+
o.on("error",t=>{r(t)}),o.on("timeout",()=>{o.destroy(),r(Error("Request timeout"))}),t.body&&o.write(t.body),o.end()})}}exports.TokenManager=TokenManager,TokenManager.TOKEN_FILE_PATH=path.join(os.homedir(),".bluelamp","portal-token.enc"),TokenManager.PORTAL_API_URL="https://bluelamp-portal-6clpzmy5pa-an.a.run.app/api/cli/verify",TokenManager.ENCRYPTION_KEY="bluelamp-portal-token-key-2024",TokenManager.REQUEST_TIMEOUT=1e4
|
|
@@ -14,7 +14,7 @@ import * as http from 'http';
|
|
|
14
14
|
import { URL } from 'url';
|
|
15
15
|
|
|
16
16
|
export class PortalAuthClient {
|
|
17
|
-
static PORTAL_API_URL = 'https://bluelamp-portal-
|
|
17
|
+
static PORTAL_API_URL = 'https://bluelamp-portal-6clpzmy5pa-an.a.run.app/api/cli/login';
|
|
18
18
|
static MAX_RETRIES = 3;
|
|
19
19
|
static RETRY_DELAY = 1000; // 1秒
|
|
20
20
|
static REQUEST_TIMEOUT = 10000; // 10秒
|