@ranger-testing/ranger-cli 2.5.4-alpha.a70fc60-4 → 2.5.4-alpha.a98f848-6
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/build/cli.js +1 -1
- package/build/commands/addEnv.js +1 -1
- package/build/commands/authEncrypt.js +1 -1
- package/build/commands/clean.js +1 -1
- package/build/commands/config.js +1 -1
- package/build/commands/env.js +1 -1
- package/build/commands/feature.js +1 -1
- package/build/commands/hook.js +1 -1
- package/build/commands/hooks/autoPrompt.js +1 -1
- package/build/commands/hooks/disable.js +1 -1
- package/build/commands/hooks/enable.js +1 -1
- package/build/commands/hooks/exitPlanMode.js +1 -1
- package/build/commands/hooks/index.js +1 -1
- package/build/commands/hooks/output.js +1 -1
- package/build/commands/hooks/planReminder.js +1 -1
- package/build/commands/hooks/planStart.js +1 -1
- package/build/commands/hooks/postEdit.js +1 -1
- package/build/commands/hooks/preCompact.js +1 -1
- package/build/commands/hooks/sessionEnd.js +1 -1
- package/build/commands/hooks/sessionStart.js +1 -1
- package/build/commands/hooks/stopHook.js +1 -1
- package/build/commands/index.js +1 -1
- package/build/commands/login.js +1 -1
- package/build/commands/mcpBootstrap.js +1 -1
- package/build/commands/migrateProfile.js +1 -1
- package/build/commands/setup/claude.js +1 -1
- package/build/commands/setup/opencode.js +1 -1
- package/build/commands/setupCi.js +1 -1
- package/build/commands/skillup.js +1 -1
- package/build/commands/start.js +1 -1
- package/build/commands/status.js +1 -1
- package/build/commands/update.js +1 -1
- package/build/commands/updateEnv.js +1 -1
- package/build/commands/useEnv.js +1 -1
- package/build/commands/utils/activeProfile.js +1 -1
- package/build/commands/utils/agentEnv.js +1 -1
- package/build/commands/utils/browserSessionsApi.js +1 -1
- package/build/commands/utils/claudeConfig.js +1 -1
- package/build/commands/utils/claudeOverrideSettings.js +1 -1
- package/build/commands/utils/claudePlugin.js +1 -1
- package/build/commands/utils/cloudProfile.js +1 -1
- package/build/commands/utils/cloudProfileSession.js +1 -1
- package/build/commands/utils/crypto.js +1 -1
- package/build/commands/utils/desirePathLog.js +1 -1
- package/build/commands/utils/deviceAuth.js +1 -1
- package/build/commands/utils/environment.js +1 -1
- package/build/commands/utils/featureApi.js +1 -1
- package/build/commands/utils/fixWebmDuration.js +1 -1
- package/build/commands/utils/gitTracked.js +1 -1
- package/build/commands/utils/keychain.js +1 -1
- package/build/commands/utils/localAgentInstallationsApi.js +1 -1
- package/build/commands/utils/matchAuthEnvironment.js +1 -1
- package/build/commands/utils/mcpImageBase64.js +1 -1
- package/build/commands/utils/model.js +1 -1
- package/build/commands/utils/opencodeConfig.js +1 -1
- package/build/commands/utils/playwrightCli.js +1 -1
- package/build/commands/utils/profileMessages.js +1 -1
- package/build/commands/utils/profileSetupBanner.js +1 -1
- package/build/commands/utils/projectsConfig.js +1 -1
- package/build/commands/utils/rangerConfig.js +1 -1
- package/build/commands/utils/rangerRoot.js +1 -1
- package/build/commands/utils/resolveProfileContext.js +1 -1
- package/build/commands/utils/resolveProfileUrl.js +1 -1
- package/build/commands/utils/retry.js +1 -1
- package/build/commands/utils/sessionCache.js +1 -1
- package/build/commands/utils/settings.js +1 -1
- package/build/commands/utils/skillContent.js +1 -1
- package/build/commands/utils/skills.js +1 -1
- package/build/commands/utils/stitchWebmFiles.js +1 -1
- package/build/commands/utils/telemetry.js +1 -1
- package/build/commands/utils/tokenRefresh.js +1 -1
- package/build/commands/utils/traceSnapshotMapper.js +1 -1
- package/build/commands/utils/userApi.js +1 -1
- package/build/commands/utils/version.js +1 -1
- package/build/commands/verifyFeature.js +1 -1
- package/build/commands/verifyFeatureCli.js +1 -1
- package/build/skills/ranger/SKILL.md +17 -3
- package/build/skills/ranger/create.md +6 -0
- package/build/skills/ranger/verify.md +23 -3
- package/package.json +1 -1
package/build/commands/login.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0xf81aba,_0x22891f){const _0x5e9b89=_0x238d,_0x5eb7b2=_0xf81aba();while(!![]){try{const _0x5de80a=-parseInt(_0x5e9b89(0x14f))/0x1+-parseInt(_0x5e9b89(0x14b))/0x2+-parseInt(_0x5e9b89(0x148))/0x3+parseInt(_0x5e9b89(0x150))/0x4*(parseInt(_0x5e9b89(0x146))/0x5)+-parseInt(_0x5e9b89(0x152))/0x6+-parseInt(_0x5e9b89(0x14a))/0x7*(parseInt(_0x5e9b89(0x14c))/0x8)+parseInt(_0x5e9b89(0x151))/0x9;if(_0x5de80a===_0x22891f)break;else _0x5eb7b2['push'](_0x5eb7b2['shift']());}catch(_0x515ed9){_0x5eb7b2['push'](_0x5eb7b2['shift']());}}}(_0x92ae,0x3bb90));function _0x92ae(){const _0x27beac=['10Nfzxag','rOPOj','388524eKHaVi','isTTY','7znfSUX','54780CQltYE','2460248CTQFJm','user','stdin','141930WsMkll','5392gnNFqi','11833857fRsrBS','2799516RvrCkC','log'];_0x92ae=function(){return _0x27beac;};return _0x92ae();}import{runDeviceAuthFlow}from'./utils/deviceAuth.js';import{getCurrentUser}from'./utils/userApi.js';import{getMcpAuthOrigin,mcpBootstrap}from'./mcpBootstrap.js';function _0x238d(_0x1af4c6,_0x7764e0){_0x1af4c6=_0x1af4c6-0x145;const _0x92ae40=_0x92ae();let _0x238d68=_0x92ae40[_0x1af4c6];return _0x238d68;}export async function login(){const _0x396ca0=_0x238d,_0x2a44fe={'ouWQT':function(_0x3b6e57){return _0x3b6e57();},'rOPOj':'Login\x20requires\x20an\x20interactive\x20terminal.\x20In\x20CI,\x20use:\x20ranger\x20setup\x20[token]\x20or\x20set\x20RANGER_CLI_TOKEN.','Xqlfc':function(_0x33776c,_0x547df0){return _0x33776c(_0x547df0);},'bveZt':'\x0a✅\x20API\x20key\x20stored\x20successfully'},_0x3d184c=await _0x2a44fe['ouWQT'](getMcpAuthOrigin);if(_0x3d184c){console['log']('Re-authenticating\x20via\x20MCP\x20bootstrap...'),await mcpBootstrap();return;}const _0xfa3586=process[_0x396ca0(0x14e)]['isTTY']&&process['stdout'][_0x396ca0(0x149)];if(!_0xfa3586)throw new Error(_0x2a44fe[_0x396ca0(0x147)]);try{const _0x2c310d=await runDeviceAuthFlow(),_0x2d24b2=await _0x2a44fe['Xqlfc'](getCurrentUser,_0x2c310d);_0x2d24b2['success']?console['log']('\x0a✅\x20Logged\x20in\x20to\x20'+_0x2d24b2[_0x396ca0(0x14d)]['organizationName']):console[_0x396ca0(0x145)](_0x2a44fe['bveZt']);}catch(_0x14a839){throw new Error('Login\x20failed:\x20'+(_0x14a839 instanceof Error?_0x14a839['message']:_0x14a839));}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function _0xcbe0(_0x58c7a9,_0x2295bb){_0x58c7a9=_0x58c7a9-0x90;const _0x4cf07a=_0x4cf0();let _0xcbe072=_0x4cf07a[_0x58c7a9];return _0xcbe072;}const _0x391073=_0xcbe0;(function(_0x233b86,_0x15ba89){const _0x8a1d7a=_0xcbe0,_0x25002e=_0x233b86();while(!![]){try{const _0x51e156=-parseInt(_0x8a1d7a(0xef))/0x1*(parseInt(_0x8a1d7a(0xba))/0x2)+-parseInt(_0x8a1d7a(0xa9))/0x3+-parseInt(_0x8a1d7a(0x9d))/0x4+-parseInt(_0x8a1d7a(0xae))/0x5*(parseInt(_0x8a1d7a(0xd2))/0x6)+parseInt(_0x8a1d7a(0xc0))/0x7*(-parseInt(_0x8a1d7a(0xa4))/0x8)+parseInt(_0x8a1d7a(0xfd))/0x9+parseInt(_0x8a1d7a(0x102))/0xa;if(_0x51e156===_0x15ba89)break;else _0x25002e['push'](_0x25002e['shift']());}catch(_0x1686cc){_0x25002e['push'](_0x25002e['shift']());}}}(_0x4cf0,0xcf611));import{mkdir,writeFile,readFile}from'fs/promises';import{join}from'path';import{homedir}from'os';import{createServer}from'http';import{randomBytes,createHash}from'crypto';import{getMcpAuthUrl}from'./utils/environment.js';const CALLBACK_PORT=0x4d78,TOKEN_CACHE_PATH=join(homedir(),_0x391073(0xfb),'mcp-oauth-tokens.json'),AUTH_ORIGIN_PATH=join(homedir(),'.ranger',_0x391073(0xb4));export async function getMcpAuthOrigin(){const _0x24f43a=_0x391073,_0x2599df={'sDWtc':_0x24f43a(0xbb)};try{const _0x59dac6=(await readFile(AUTH_ORIGIN_PATH,_0x2599df['sDWtc']))['trim']();return _0x59dac6||null;}catch{return null;}}export async function mcpBootstrap(){const _0x4ffc58=_0x391073,_0xe7771b={'xfzcX':function(_0x529028){return _0x529028();},'yYILu':_0x4ffc58(0xb8),'BumzN':function(_0x297e59,_0x276e2c){return _0x297e59+_0x276e2c;},'bkjJh':_0x4ffc58(0xc4),'uyDgz':function(_0x1ccdc9,_0x5903c5){return _0x1ccdc9(_0x5903c5);},'CduhE':function(_0x43a92c,_0x370131,_0x2b5bcf){return _0x43a92c(_0x370131,_0x2b5bcf);}},_0xb0e1a1=_0xe7771b['xfzcX'](getMcpAuthUrl);currentOrigin=_0xb0e1a1;const _0x27bae7=process[_0x4ffc58(0x100)]['isTTY']??![];console['log'](_0x4ffc58(0xe3)+_0xb0e1a1+'\x0a');const _0x48a5fe=await tryUnauthenticated(_0xb0e1a1);let _0x2c19a1=null;if(_0x48a5fe===_0xe7771b['yYILu'])_0x2c19a1='';else{_0x2c19a1=await loadCachedToken();if(!_0x2c19a1){if(!_0x27bae7)throw new Error(_0xe7771b['BumzN'](_0x4ffc58(0xf7),_0xe7771b[_0x4ffc58(0xaf)]));_0x2c19a1=await _0xe7771b[_0x4ffc58(0x104)](oauthFlow,_0xb0e1a1);}}await _0xe7771b[_0x4ffc58(0x9e)](callGetCliToken,_0xb0e1a1,_0x2c19a1);}async function tryUnauthenticated(_0x87b3a5){const _0xb32990=_0x391073,_0x59bea6={'jlpMV':function(_0x54c6f9,_0x39fae6,_0x1bb04b){return _0x54c6f9(_0x39fae6,_0x1bb04b);},'xtqdi':'POST','vorwr':'application/json','MEPLN':_0xb32990(0xe5),'RANtW':'2025-03-26','CfouD':_0xb32990(0xa0)},_0x5d028a=await _0x59bea6['jlpMV'](fetch,_0x87b3a5,{'method':_0x59bea6['xtqdi'],'headers':{'Content-Type':_0x59bea6[_0xb32990(0x105)],'Accept':_0xb32990(0xe0)},'body':JSON[_0xb32990(0x113)]({'jsonrpc':_0x59bea6['MEPLN'],'id':0x1,'method':_0xb32990(0xde),'params':{'protocolVersion':_0x59bea6[_0xb32990(0x98)],'capabilities':{},'clientInfo':{'name':'ranger-cli','version':_0xb32990(0xff)}}})});if(_0x5d028a['ok'])return await _0x5d028a['text'](),_0xb32990(0xb8);if(_0x5d028a[_0xb32990(0x9c)]===0x191)return await _0x5d028a[_0xb32990(0x111)](),_0x59bea6[_0xb32990(0x95)];const _0x513269=await _0x5d028a['text']();throw new Error('MCP\x20server\x20returned\x20HTTP\x20'+_0x5d028a['status']+':\x20'+_0x513269);}class OAuthTimeoutError extends Error{constructor(_0x6911eb){const _0x560e6c={'yMlaz':'OAuthTimeoutError'};super(_0x6911eb),this['name']=_0x560e6c['yMlaz'];}}async function oauthFlow(_0x40b77d){const _0x3fa914=_0x391073,_0x3c94b9={'LnVez':function(_0x5e9276,_0x4f8f0e){return _0x5e9276(_0x4f8f0e);},'rUSaV':function(_0x9816a0,_0x1e9b8c){return _0x9816a0 instanceof _0x1e9b8c;}};try{return await _0x3c94b9['LnVez'](oauthFlowAttempt,_0x40b77d);}catch(_0x48e66a){if(_0x3c94b9['rUSaV'](_0x48e66a,OAuthTimeoutError)&&await loadCachedClient())return console[_0x3fa914(0xb2)](_0x3fa914(0x118)),await clearCachedClient(),await _0x3c94b9['LnVez'](oauthFlowAttempt,_0x40b77d);throw _0x48e66a;}}async function oauthFlowAttempt(_0x4e2b59){const _0x459f2b=_0x391073,_0x1360ac={'bYXJT':function(_0x49c850,_0x52895c){return _0x49c850(_0x52895c);},'hZOMf':'No\x20authorization_servers\x20in\x20protected\x20resource\x20metadata','JupIa':function(_0x44a764){return _0x44a764();},'Cebaw':'Registering\x20OAuth\x20client...','eBqcc':function(_0x3adb5e,_0x3b8b1b,_0x5ae985){return _0x3adb5e(_0x3b8b1b,_0x5ae985);},'zRWPv':'application/json','bTORP':'authorization_code','xHuhy':'refresh_token','bsmPW':'code','OdyOs':'none','DuAxT':'Authorization\x20server\x20does\x20not\x20support\x20dynamic\x20client\x20registration\x20and\x20no\x20cached\x20client\x20found','ReCiw':function(_0x4d1d71,_0x7595e3){return _0x4d1d71(_0x7595e3);},'OdBBW':'base64url','mvMVv':_0x459f2b(0x117),'kwhvJ':'response_type','RbtVK':_0x459f2b(0x107),'bOIBQ':_0x459f2b(0xd9),'ZDWrX':_0x459f2b(0x109),'KVRRY':'resource','CkXHB':'\x0aOpening\x20browser\x20for\x20authentication...','vyIrY':function(_0x41227b,_0x55e936){return _0x41227b(_0x55e936);},'ELVRb':_0x459f2b(0xda),'DXXqF':'POST','qVKGp':_0x459f2b(0xf5)},_0x55ba5c=_0x4e2b59['replace'](/\/mcp$/,'');process['stdout'][_0x459f2b(0xab)](_0x459f2b(0x10e));const _0x4e82a6=await _0x1360ac['bYXJT'](fetch,_0x55ba5c+'/.well-known/oauth-protected-resource');if(!_0x4e82a6['ok'])throw new Error('Could\x20not\x20fetch\x20protected\x20resource\x20metadata\x20from\x20MCP\x20server');const _0x236442=await _0x4e82a6['json'](),_0x2c08b1=_0x236442['authorization_servers']?.[0x0];if(!_0x2c08b1)throw new Error(_0x1360ac[_0x459f2b(0xad)]);console['log']('\x20'+_0x2c08b1);const _0x2464a5=await _0x1360ac[_0x459f2b(0x96)](fetchAuthServerMetadata,_0x2c08b1);let _0x214a9c,_0x5c2b8f;const _0x4c4085=await _0x1360ac['JupIa'](loadCachedClient);if(_0x4c4085)_0x214a9c=_0x4c4085[_0x459f2b(0x11b)],_0x5c2b8f=_0x4c4085['clientSecret'];else{if(_0x2464a5['registration_endpoint']){process[_0x459f2b(0x100)][_0x459f2b(0xab)](_0x1360ac['Cebaw']);const _0x16f3e6=await _0x1360ac['eBqcc'](fetch,_0x2464a5[_0x459f2b(0xeb)],{'method':_0x459f2b(0xc8),'headers':{'Content-Type':_0x1360ac[_0x459f2b(0x110)]},'body':JSON[_0x459f2b(0x113)]({'client_name':_0x459f2b(0xb1),'redirect_uris':['http://localhost:'+CALLBACK_PORT+_0x459f2b(0xd1)],'grant_types':[_0x1360ac[_0x459f2b(0xac)],_0x1360ac[_0x459f2b(0xe1)]],'response_types':[_0x1360ac[_0x459f2b(0xc1)]],'token_endpoint_auth_method':_0x1360ac[_0x459f2b(0x99)]})});if(!_0x16f3e6['ok']){const _0x482c50=await _0x16f3e6['text']();throw new Error(_0x459f2b(0x120)+_0x482c50);}const _0x38847b=await _0x16f3e6['json']();_0x214a9c=_0x38847b[_0x459f2b(0x115)],_0x5c2b8f=_0x38847b[_0x459f2b(0xda)],await _0x1360ac[_0x459f2b(0xb3)](saveCachedClient,_0x214a9c,_0x5c2b8f),console['log']('\x20done');}else throw new Error(_0x1360ac[_0x459f2b(0xc7)]);}const _0x3ba211=_0x1360ac['ReCiw'](randomBytes,0x20)[_0x459f2b(0xb0)](_0x1360ac['OdBBW']),_0xc4216=_0x1360ac['ReCiw'](createHash,_0x1360ac[_0x459f2b(0xa7)])[_0x459f2b(0x91)](_0x3ba211)['digest'](_0x459f2b(0xc5)),_0x3f3e03=randomBytes(0x10)[_0x459f2b(0xb0)]('hex'),_0x163eb5=new URL(_0x2464a5[_0x459f2b(0xb5)]);_0x163eb5['searchParams'][_0x459f2b(0x11e)](_0x1360ac[_0x459f2b(0x97)],_0x459f2b(0xd8)),_0x163eb5[_0x459f2b(0x11d)][_0x459f2b(0x11e)](_0x459f2b(0x115),_0x214a9c),_0x163eb5[_0x459f2b(0x11d)]['set'](_0x1360ac[_0x459f2b(0xce)],'http://localhost:'+CALLBACK_PORT+_0x459f2b(0xd1)),_0x163eb5['searchParams']['set'](_0x1360ac['bOIBQ'],_0xc4216),_0x163eb5[_0x459f2b(0x11d)][_0x459f2b(0x11e)](_0x1360ac['ZDWrX'],'S256'),_0x163eb5['searchParams']['set'](_0x459f2b(0x101),_0x3f3e03);_0x236442['resource']&&_0x163eb5[_0x459f2b(0x11d)]['set'](_0x1360ac[_0x459f2b(0xcd)],_0x236442['resource']);console['log'](_0x1360ac['CkXHB']),console['log']('If\x20the\x20browser\x20doesn\x27t\x20open,\x20visit:\x0a'+_0x163eb5[_0x459f2b(0xb0)]()+'\x0a'),await _0x1360ac[_0x459f2b(0xf2)](openBrowser,_0x163eb5[_0x459f2b(0xb0)]());const _0x5d881f=await _0x1360ac['bYXJT'](waitForCallback,_0x3f3e03);process['stdout'][_0x459f2b(0xab)]('Exchanging\x20authorization\x20code...');const _0x420d1c=new URLSearchParams({'grant_type':_0x1360ac['bTORP'],'code':_0x5d881f,'redirect_uri':_0x459f2b(0xaa)+CALLBACK_PORT+_0x459f2b(0xd1),'client_id':_0x214a9c,'code_verifier':_0x3ba211});_0x5c2b8f&&_0x420d1c[_0x459f2b(0x11e)](_0x1360ac['ELVRb'],_0x5c2b8f);_0x236442['resource']&&_0x420d1c[_0x459f2b(0x11e)](_0x1360ac[_0x459f2b(0xcd)],_0x236442[_0x459f2b(0xf0)]);const _0xc24f2e=await _0x1360ac['eBqcc'](fetch,_0x2464a5[_0x459f2b(0xc2)],{'method':_0x1360ac[_0x459f2b(0xbe)],'headers':{'Content-Type':_0x1360ac[_0x459f2b(0x9a)]},'body':_0x420d1c});if(!_0xc24f2e['ok']){const _0x30cf78=await _0xc24f2e['text']();throw new Error('Token\x20exchange\x20failed:\x20'+_0x30cf78);}const _0x35ae8e=await _0xc24f2e['json']();return console['log'](_0x459f2b(0xdf)),await saveCachedToken(_0x35ae8e[_0x459f2b(0xd3)],_0x35ae8e[_0x459f2b(0xd4)],_0x35ae8e[_0x459f2b(0xf4)]),_0x35ae8e['access_token'];}async function callGetCliToken(_0x45b657,_0x434dfd){const _0x595b87=_0x391073,_0x3e7857={'dvzZf':_0x595b87(0xc8),'qNVuQ':function(_0x52a4cf,_0x153aff){return _0x52a4cf(_0x153aff);},'UkUlD':'application/json','jtijU':_0x595b87(0x94),'bAche':function(_0x218533,_0x2e5e18){return _0x218533(_0x2e5e18);},'XmeCB':'2.0','NGEDm':_0x595b87(0xfc),'XPlhh':function(_0xa5fdd5,_0x387277,_0x30cc71){return _0xa5fdd5(_0x387277,_0x30cc71);},'rekBv':'notifications/initialized','xQIdW':function(_0x1723a3,_0x9ff7bb){return _0x1723a3(_0x9ff7bb);},'JfVjD':'\x20done','OdjFZ':'Could\x20not\x20extract\x20token\x20from\x20MCP\x20response','pKSZd':'refresh.txt','UFiSz':function(_0xd39f6f,_0x3212da,_0x553761,_0x267342){return _0xd39f6f(_0x3212da,_0x553761,_0x267342);},'ZoLYc':'auth-origin.txt'},_0x32077d={'Content-Type':_0x3e7857['UkUlD'],'Accept':_0x595b87(0xe0)};_0x434dfd&&(_0x32077d[_0x595b87(0xd7)]=_0x595b87(0xdc)+_0x434dfd);const _0xe9d8e7=async _0x5d3fdf=>{const _0x4f74be=_0x595b87,_0x23eac7=await fetch(_0x45b657,{'method':_0x3e7857['dvzZf'],'headers':_0x32077d,'body':JSON[_0x4f74be(0x113)](_0x5d3fdf)});if(!_0x23eac7['ok']){const _0x29d0cd=await _0x23eac7[_0x4f74be(0x111)]();throw new Error('HTTP\x20'+_0x23eac7['status']+':\x20'+_0x29d0cd);}return _0x3e7857['qNVuQ'](parseResponse,_0x23eac7);};process[_0x595b87(0x100)]['write'](_0x3e7857[_0x595b87(0xe7)]);const _0x51103a=await _0x3e7857['bAche'](_0xe9d8e7,{'jsonrpc':_0x3e7857[_0x595b87(0x121)],'id':0x1,'method':'initialize','params':{'protocolVersion':_0x3e7857['NGEDm'],'capabilities':{},'clientInfo':{'name':_0x595b87(0xe4),'version':_0x595b87(0xff)}}});if(_0x51103a['error'])throw new Error('MCP\x20initialize\x20failed:\x20'+(_0x51103a['error'][_0x595b87(0xc6)]??JSON['stringify'](_0x51103a[_0x595b87(0x103)])));console['log'](_0x595b87(0xdf)),await _0x3e7857['XPlhh'](fetch,_0x45b657,{'method':'POST','headers':_0x32077d,'body':JSON[_0x595b87(0x113)]({'jsonrpc':_0x595b87(0xe5),'method':_0x3e7857[_0x595b87(0xc3)]})})['then'](_0x36bdb0=>_0x36bdb0['text']()),process['stdout']['write']('Requesting\x20CLI\x20token...');const _0x186bd6=await _0x3e7857[_0x595b87(0xbd)](_0xe9d8e7,{'jsonrpc':_0x595b87(0xe5),'id':0x2,'method':'tools/call','params':{'name':'get_cli_token','arguments':{}}});if(_0x186bd6[_0x595b87(0x103)])throw new Error('get_cli_token\x20failed:\x20'+(_0x186bd6[_0x595b87(0x103)][_0x595b87(0xc6)]??JSON[_0x595b87(0x113)](_0x186bd6['error'])));console['log'](_0x3e7857['JfVjD']);const _0x134d8b=_0x3e7857['bAche'](extractToken,_0x186bd6[_0x595b87(0xf6)]);if(!_0x134d8b){console['error'](_0x595b87(0xcb)),console['error'](JSON[_0x595b87(0x113)](_0x186bd6[_0x595b87(0xf6)],null,0x2));throw new Error(_0x3e7857['OdjFZ']);}const _0x456b81=_0x3e7857['XPlhh'](join,homedir(),_0x595b87(0xfb)),_0x380207=_0x3e7857['XPlhh'](join,_0x456b81,_0x3e7857[_0x595b87(0xa5)]);await _0x3e7857['XPlhh'](mkdir,_0x456b81,{'recursive':!![]}),await writeFile(_0x380207,_0x134d8b,{'mode':0x180}),await _0x3e7857[_0x595b87(0xa3)](writeFile,_0x3e7857['XPlhh'](join,_0x456b81,_0x3e7857[_0x595b87(0xb9)]),_0x45b657,{'mode':0x180}),console[_0x595b87(0xb2)]('\x0aToken\x20written\x20to\x20'+_0x380207),console['log'](_0x595b87(0x11a));}async function fetchAuthServerMetadata(_0x138fd4){const _0x43d840=_0x391073,_0x5c6ebd=_0x138fd4+_0x43d840(0xf8),_0x7eab1b=await fetch(_0x5c6ebd);if(!_0x7eab1b['ok'])throw new Error(_0x43d840(0x106)+_0x5c6ebd+':\x20'+_0x7eab1b['status']);return _0x7eab1b[_0x43d840(0xee)]();}function waitForCallback(_0x2fe31d){const _0x320c45=_0x391073,_0xb8a446={'UBvTr':_0x320c45(0xa2),'TOKKK':_0x320c45(0x123),'cNsWk':function(_0x37d997,_0x3c9094){return _0x37d997!==_0x3c9094;},'pHFbG':'text/html'};return new Promise((_0x3a6e5a,_0xeac951)=>{const _0x20d76c=_0x320c45,_0x400f6d={'HdoMU':_0xb8a446[_0x20d76c(0x108)],'bfmXZ':_0x20d76c(0x103),'EqHsg':function(_0x3ce39e,_0x4f4b25){return _0x3ce39e(_0x4f4b25);},'Onjmx':function(_0x1a326f,_0x1fceb3){return _0xb8a446['cNsWk'](_0x1a326f,_0x1fceb3);},'JQlyN':_0xb8a446[_0x20d76c(0x10f)]},_0xda7d1a=setTimeout(()=>{const _0x52105b=_0x20d76c;_0xfea2ee[_0x52105b(0xe2)](),_0xeac951(new OAuthTimeoutError(_0xb8a446[_0x52105b(0xd6)]));},0x1d4c0),_0xfea2ee=createServer((_0x4979f0,_0xb58ae7)=>{const _0x39a93f=_0x20d76c,_0x118e4a=new URL(_0x4979f0['url']??'/','http://localhost:'+CALLBACK_PORT);if(_0x118e4a['pathname']!=='/callback'){_0xb58ae7[_0x39a93f(0xe8)](0x194),_0xb58ae7['end'](_0x400f6d[_0x39a93f(0x93)]);return;}const _0x5f083c=_0x118e4a[_0x39a93f(0x11d)][_0x39a93f(0x116)]('code'),_0x114042=_0x118e4a[_0x39a93f(0x11d)]['get']('state'),_0x3457e1=_0x118e4a[_0x39a93f(0x11d)][_0x39a93f(0x116)](_0x400f6d[_0x39a93f(0xb6)]);if(_0x3457e1){const _0x5e2cc0=_0x118e4a[_0x39a93f(0x11d)]['get']('error_description')??_0x3457e1;_0xb58ae7['writeHead'](0xc8,{'Content-Type':'text/html'}),_0xb58ae7[_0x39a93f(0x10a)](_0x39a93f(0x11c)+_0x5e2cc0+_0x39a93f(0xea)),clearTimeout(_0xda7d1a),_0xfea2ee['close'](),_0x400f6d[_0x39a93f(0xfa)](_0xeac951,new Error('OAuth\x20error:\x20'+_0x5e2cc0));return;}if(!_0x5f083c||_0x400f6d['Onjmx'](_0x114042,_0x2fe31d)){_0xb58ae7[_0x39a93f(0xe8)](0x190,{'Content-Type':_0x400f6d[_0x39a93f(0xe9)]}),_0xb58ae7['end']('<html><body><h2>Invalid\x20callback</h2><p>Missing\x20code\x20or\x20state\x20mismatch.</p></body></html>');return;}_0xb58ae7['writeHead'](0xc8,{'Content-Type':_0x400f6d[_0x39a93f(0xe9)]}),_0xb58ae7[_0x39a93f(0x10a)]('<html><body><h2>Authenticated!</h2><p>You\x20can\x20close\x20this\x20window\x20and\x20return\x20to\x20the\x20terminal.</p></body></html>'),_0x400f6d['EqHsg'](clearTimeout,_0xda7d1a),_0xfea2ee[_0x39a93f(0xe2)](),_0x3a6e5a(_0x5f083c);});_0xfea2ee[_0x20d76c(0xc9)](CALLBACK_PORT,'127.0.0.1');});}async function openBrowser(_0x1ec832){const _0x343f76=_0x391073,_0x2e8b8f={'RRZnP':'child_process','eNYSU':'start','FPwdA':function(_0x5d807f,_0x41ed48){return _0x5d807f(_0x41ed48);}},{exec:_0x10c016}=await import(_0x2e8b8f[_0x343f76(0xed)]),_0x1c73aa=process['platform']==='darwin'?_0x343f76(0xf3):process[_0x343f76(0x90)]==='win32'?_0x2e8b8f[_0x343f76(0x9f)]:_0x343f76(0x122);_0x2e8b8f['FPwdA'](_0x10c016,_0x1c73aa+'\x20\x22'+_0x1ec832+'\x22');}let currentOrigin='';async function loadCachedToken(){const _0x5d06d1=_0x391073,_0x4b5b40={'lkUlS':function(_0x566509,_0x309643){return _0x566509!==_0x309643;},'XMvjH':function(_0x11caeb,_0x35809b){return _0x11caeb>_0x35809b;}};try{const _0x528502=JSON[_0x5d06d1(0xec)](await readFile(TOKEN_CACHE_PATH,'utf-8'));if(_0x528502['origin']&&_0x4b5b40[_0x5d06d1(0x112)](_0x528502[_0x5d06d1(0x92)],currentOrigin))return null;if(_0x528502[_0x5d06d1(0xdd)]&&_0x4b5b40['XMvjH'](Date['now'](),_0x528502[_0x5d06d1(0xdd)]))return null;return _0x528502[_0x5d06d1(0xf9)]??null;}catch{return null;}}async function saveCachedToken(_0x1ae3c2,_0x3fdb2e,_0x5672ef){const _0x473d66=_0x391073,_0x5d1e37={'vRVNW':function(_0x240cb9){return _0x240cb9();},'VCHzS':function(_0x2b64d8,_0x568654,_0x35a309){return _0x2b64d8(_0x568654,_0x35a309);},'GAJAK':function(_0x1e6e0d,_0x3820f5,_0x422f34){return _0x1e6e0d(_0x3820f5,_0x422f34);},'QWvpI':function(_0x5a2322){return _0x5a2322();},'UYKnx':function(_0x548c20,_0x81bf86,_0x29841e,_0x274f63){return _0x548c20(_0x81bf86,_0x29841e,_0x274f63);}},_0x498869=await _0x5d1e37[_0x473d66(0x9b)](loadCachedData),_0x4a6a7f={..._0x498869,'origin':currentOrigin,'accessToken':_0x1ae3c2,'refreshToken':_0x3fdb2e??_0x498869?.[_0x473d66(0xa6)],'expiresAt':_0x5672ef?Date[_0x473d66(0xdb)]()+_0x5672ef*0x3e8:undefined};await _0x5d1e37['VCHzS'](mkdir,_0x5d1e37[_0x473d66(0xe6)](join,_0x5d1e37['QWvpI'](homedir),'.ranger'),{'recursive':!![]}),await _0x5d1e37['UYKnx'](writeFile,TOKEN_CACHE_PATH,JSON['stringify'](_0x4a6a7f),{'mode':0x180});}async function loadCachedClient(){const _0x6bf70b=_0x391073,_0x41395a={'BJQJJ':function(_0x61faf6,_0xdbea2f){return _0x61faf6!==_0xdbea2f;}},_0xb52d87=await loadCachedData();if(_0xb52d87?.['origin']&&_0x41395a['BJQJJ'](_0xb52d87['origin'],currentOrigin))return null;return _0xb52d87?.[_0x6bf70b(0x11b)]?{'clientId':_0xb52d87['clientId'],'clientSecret':_0xb52d87['clientSecret']}:null;}async function clearCachedClient(){const _0x2aeb14=_0x391073,_0xe3538b={'zuJGh':function(_0x337222){return _0x337222();}},_0x2e2c5f=await _0xe3538b[_0x2aeb14(0xbc)](loadCachedData);if(!_0x2e2c5f)return;const {clientId:_0x4c2f3d,clientSecret:_0x2b732f,..._0x421b67}=_0x2e2c5f;await writeFile(TOKEN_CACHE_PATH,JSON['stringify'](_0x421b67),{'mode':0x180});}async function saveCachedClient(_0x553ffa,_0x5140e5){const _0x41c635=_0x391073,_0x574fee={'xhugZ':'.ranger'},_0x17a176=await loadCachedData(),_0x2a87ed={..._0x17a176,'origin':currentOrigin,'accessToken':_0x17a176?.['accessToken']??'','clientId':_0x553ffa,'clientSecret':_0x5140e5};await mkdir(join(homedir(),_0x574fee[_0x41c635(0x119)]),{'recursive':!![]}),await writeFile(TOKEN_CACHE_PATH,JSON['stringify'](_0x2a87ed),{'mode':0x180});}function _0x4cf0(){const _0x290a53=['14610609PAliYX','match','1.0.0','stdout','state','25384880GIwJqU','error','uyDgz','vorwr','Could\x20not\x20fetch\x20auth\x20server\x20metadata\x20from\x20','redirect_uri','TOKKK','code_challenge_method','end','jyqxT','KLpqz','string','Discovering\x20authorization\x20server...','pHFbG','zRWPv','text','lkUlS','stringify','content-type','client_id','get','sha256','\x0aCached\x20OAuth\x20client\x20may\x20be\x20stale\x20—\x20clearing\x20and\x20retrying...\x0a','xhugZ','Run\x20`ranger\x20status`\x20to\x20verify\x20authentication.\x0a','clientId','<html><body><h2>Authentication\x20failed</h2><p>','searchParams','set','startsWith','Client\x20registration\x20failed:\x20','XmeCB','xdg-open','Not\x20found','platform','update','origin','HdoMU','Initializing\x20MCP\x20session...','CfouD','bYXJT','kwhvJ','RANtW','OdyOs','qVKGp','vRVNW','status','4855356DpbGql','CduhE','eNYSU','needs-oauth','token','OAuth\x20callback\x20timed\x20out\x20after\x202\x20minutes','UFiSz','8UjyPOq','pKSZd','refreshToken','mvMVv','Server\x20returned\x20error:\x20','535953PJJarH','http://localhost:','write','bTORP','hZOMf','5TfsGev','bkjJh','toString','Ranger\x20CLI','log','eBqcc','auth-origin.txt','authorization_endpoint','bfmXZ','No\x20JSON-RPC\x20response\x20found\x20in\x20SSE\x20stream','proxied','ZoLYc','8jzextT','utf-8','zuJGh','xQIdW','DXXqF','split','4397827FatJJg','bsmPW','token_endpoint','rekBv','Run\x20`ranger\x20setup\x20--mcp-bootstrap`\x20interactively\x20first.','base64url','message','DuAxT','POST','listen','content','\x0aUnexpected\x20response\x20structure:','MTReb','KVRRY','RbtVK','slice','isError','/callback','2134854cUHsvn','access_token','refresh_token','data:','UBvTr','Authorization','code','code_challenge','client_secret','now','Bearer\x20','expiresAt','initialize','\x20done','application/json,\x20text/event-stream','xHuhy','close','\x0aConnecting\x20to\x20MCP\x20auth\x20server:\x20','ranger-cli','2.0','GAJAK','jtijU','writeHead','JQlyN','</p><p>You\x20can\x20close\x20this\x20window.</p></body></html>','registration_endpoint','parse','RRZnP','json','233976yrozCQ','resource','type','vyIrY','open','expires_in','application/x-www-form-urlencoded','result','MCP\x20server\x20requires\x20authentication\x20but\x20running\x20in\x20non-interactive\x20mode.\x0a','/.well-known/oauth-authorization-server','accessToken','EqHsg','.ranger','2025-03-26'];_0x4cf0=function(){return _0x290a53;};return _0x4cf0();}async function loadCachedData(){const _0x517265=_0x391073;try{return JSON['parse'](await readFile(TOKEN_CACHE_PATH,_0x517265(0xbb)));}catch{return null;}}async function parseResponse(_0x4a63d5){const _0x304359=_0x391073,_0x4abc3e={'qAVgU':_0x304359(0x114),'lWaNy':_0x304359(0xb7)},_0x193440=_0x4a63d5['headers']['get'](_0x4abc3e['qAVgU'])??'';if(_0x193440['includes']('text/event-stream')){const _0x4222b9=await _0x4a63d5['text']();for(const _0x26ecd9 of _0x4222b9[_0x304359(0xbf)]('\x0a')){const _0x3224d2=_0x26ecd9['trim']();if(_0x3224d2[_0x304359(0x11f)]('data:')){const _0xe3d530=_0x3224d2[_0x304359(0xcf)](_0x304359(0xd5)['length'])['trim']();if(!_0xe3d530)continue;try{const _0x1763c1=JSON['parse'](_0xe3d530);if(_0x1763c1['id']!==undefined||_0x1763c1[_0x304359(0x103)])return _0x1763c1;}catch{}}}throw new Error(_0x4abc3e['lWaNy']);}return _0x4a63d5[_0x304359(0xee)]();}function extractToken(_0x2f34f4){const _0x2ad4c0=_0x391073,_0x380156={'MTReb':_0x2ad4c0(0x10d),'KLpqz':'Unknown\x20error','jyqxT':_0x2ad4c0(0x111),'oGPBa':function(_0x529f77,_0x51f59d){return _0x529f77===_0x51f59d;}};if(!_0x2f34f4)return null;const _0x3081dc=_0x2f34f4['structuredContent'];if(_0x3081dc?.[_0x2ad4c0(0xa1)]&&typeof _0x3081dc[_0x2ad4c0(0xa1)]===_0x380156['MTReb'])return _0x3081dc[_0x2ad4c0(0xa1)];if(_0x2f34f4[_0x2ad4c0(0xd0)]){const _0x40aeb3=_0x2f34f4['content'];throw new Error(_0x2ad4c0(0xa8)+(_0x40aeb3?.[0x0]?.['text']??_0x380156[_0x2ad4c0(0x10c)]));}const _0x3adf23=_0x2f34f4[_0x2ad4c0(0xca)];if(_0x3adf23)for(const _0x2c0490 of _0x3adf23){if(_0x2c0490[_0x2ad4c0(0xf1)]===_0x380156[_0x2ad4c0(0x10b)]&&_0x2c0490['text']){try{const _0x2cfb1d=JSON[_0x2ad4c0(0xec)](_0x2c0490['text']);if(_0x380156['oGPBa'](typeof _0x2cfb1d?.[_0x2ad4c0(0xa1)],_0x380156[_0x2ad4c0(0xcc)]))return _0x2cfb1d[_0x2ad4c0(0xa1)];}catch{}const _0x496956=_0x2c0490['text'][_0x2ad4c0(0xfe)](/(rngr_[A-Za-z0-9_-]+)/);if(_0x496956)return _0x496956[0x1];}}return null;}
|
|
1
|
+
const _0x33e646=_0x360a;(function(_0x2bf082,_0x21a859){const _0x247b97=_0x360a,_0x39b6f5=_0x2bf082();while(!![]){try{const _0x1056a3=-parseInt(_0x247b97(0xf6))/0x1+parseInt(_0x247b97(0xa6))/0x2+-parseInt(_0x247b97(0xf4))/0x3+-parseInt(_0x247b97(0x107))/0x4*(-parseInt(_0x247b97(0xb5))/0x5)+-parseInt(_0x247b97(0xd2))/0x6*(parseInt(_0x247b97(0x10f))/0x7)+parseInt(_0x247b97(0xeb))/0x8*(parseInt(_0x247b97(0xb9))/0x9)+parseInt(_0x247b97(0x11e))/0xa;if(_0x1056a3===_0x21a859)break;else _0x39b6f5['push'](_0x39b6f5['shift']());}catch(_0x56752e){_0x39b6f5['push'](_0x39b6f5['shift']());}}}(_0x24cd,0x1ea2f));import{mkdir,writeFile,readFile}from'fs/promises';import{join}from'path';import{homedir}from'os';import{createServer}from'http';import{randomBytes,createHash}from'crypto';function _0x360a(_0x664f5b,_0x371fd7){_0x664f5b=_0x664f5b-0x92;const _0x24cd2d=_0x24cd();let _0x360aaf=_0x24cd2d[_0x664f5b];return _0x360aaf;}import{getMcpAuthUrl}from'./utils/environment.js';const CALLBACK_PORT=0x4d78,TOKEN_CACHE_PATH=join(homedir(),'.ranger',_0x33e646(0xa9)),AUTH_ORIGIN_PATH=join(homedir(),_0x33e646(0x10c),_0x33e646(0x94));export async function getMcpAuthOrigin(){const _0xa99247={'kxrDq':'utf-8'};try{const _0x237620=(await readFile(AUTH_ORIGIN_PATH,_0xa99247['kxrDq']))['trim']();return _0x237620||null;}catch{return null;}}export async function mcpBootstrap(){const _0xa8252e=_0x33e646,_0x1488ee={'AltQc':function(_0xca1eb5){return _0xca1eb5();},'vFKze':function(_0x5721ee,_0x443216){return _0x5721ee(_0x443216);},'iuoud':'MCP\x20server\x20requires\x20authentication\x20but\x20running\x20in\x20non-interactive\x20mode.\x0a','nnaVt':_0xa8252e(0xbb),'TXgpX':function(_0x1077c9,_0x18fd13,_0x3f2161){return _0x1077c9(_0x18fd13,_0x3f2161);}},_0x14f168=_0x1488ee[_0xa8252e(0xac)](getMcpAuthUrl);currentOrigin=_0x14f168;const _0x32505d=process['stdout'][_0xa8252e(0xd3)]??![];console[_0xa8252e(0xc0)](_0xa8252e(0xdf)+_0x14f168+'\x0a');const _0x274e10=await _0x1488ee['vFKze'](tryUnauthenticated,_0x14f168);let _0x591435=null;if(_0x274e10===_0xa8252e(0x92))_0x591435='';else{_0x591435=await loadCachedToken();if(!_0x591435){if(!_0x32505d)throw new Error(_0x1488ee[_0xa8252e(0xb4)]+_0x1488ee['nnaVt']);_0x591435=await oauthFlow(_0x14f168);}}await _0x1488ee['TXgpX'](callGetCliToken,_0x14f168,_0x591435);}async function tryUnauthenticated(_0x39c591){const _0x57a61d=_0x33e646,_0x114c05={'LOszx':function(_0x52e479,_0x23935c,_0x181e3d){return _0x52e479(_0x23935c,_0x181e3d);},'KNEmX':_0x57a61d(0xda),'inhSu':'initialize','YShop':_0x57a61d(0xa2),'OAtkb':'proxied','Raiel':_0x57a61d(0xd8)},_0x5b9697=await _0x114c05[_0x57a61d(0xd6)](fetch,_0x39c591,{'method':'POST','headers':{'Content-Type':_0x57a61d(0xaa),'Accept':_0x114c05[_0x57a61d(0x9d)]},'body':JSON[_0x57a61d(0xde)]({'jsonrpc':_0x57a61d(0xb2),'id':0x1,'method':_0x114c05['inhSu'],'params':{'protocolVersion':'2025-03-26','capabilities':{},'clientInfo':{'name':'ranger-cli','version':_0x114c05['YShop']}}})});if(_0x5b9697['ok'])return await _0x5b9697['text'](),_0x114c05[_0x57a61d(0x93)];if(_0x5b9697['status']===0x191)return await _0x5b9697[_0x57a61d(0xb3)](),_0x114c05['Raiel'];const _0x57cd57=await _0x5b9697[_0x57a61d(0xb3)]();throw new Error(_0x57a61d(0x111)+_0x5b9697[_0x57a61d(0x9f)]+':\x20'+_0x57cd57);}class OAuthTimeoutError extends Error{constructor(_0x351a64){const _0x54970f=_0x33e646,_0x38ef5f={'kaZwt':_0x54970f(0xc9)};super(_0x351a64),this[_0x54970f(0xc1)]=_0x38ef5f[_0x54970f(0xd9)];}}async function oauthFlow(_0x5ebe9d){const _0x5cb643=_0x33e646,_0x5bb1e2={'BPGHV':function(_0x1c22f9){return _0x1c22f9();},'IDpPb':function(_0x249279){return _0x249279();}};try{return await oauthFlowAttempt(_0x5ebe9d);}catch(_0x3e6a07){if(_0x3e6a07 instanceof OAuthTimeoutError&&await _0x5bb1e2[_0x5cb643(0xd1)](loadCachedClient))return console['log']('\x0aCached\x20OAuth\x20client\x20may\x20be\x20stale\x20—\x20clearing\x20and\x20retrying...\x0a'),await _0x5bb1e2['IDpPb'](clearCachedClient),await oauthFlowAttempt(_0x5ebe9d);throw _0x3e6a07;}}async function oauthFlowAttempt(_0x4d1e84){const _0xa67b0a=_0x33e646,_0xaeb12={'frUqn':'Discovering\x20authorization\x20server...','kqTvp':function(_0x590080,_0x3cd657){return _0x590080(_0x3cd657);},'IRnNZ':'No\x20authorization_servers\x20in\x20protected\x20resource\x20metadata','gbTkz':function(_0x340df2,_0x5a0b08){return _0x340df2(_0x5a0b08);},'AkmFL':_0xa67b0a(0x122),'JckHq':function(_0x2794c9,_0x2c1e28,_0x17f8cb){return _0x2794c9(_0x2c1e28,_0x17f8cb);},'XlvoA':_0xa67b0a(0xe1),'FBrfS':_0xa67b0a(0xaa),'sxVvg':'authorization_code','LximK':'code','xFgUF':_0xa67b0a(0xbd),'kFjOs':'sha256','RhpDT':'base64url','vyvft':_0xa67b0a(0xbe),'NaiJI':_0xa67b0a(0xe8),'bwuyE':'redirect_uri','VuVms':_0xa67b0a(0xef),'dzMuk':'S256','LUfJT':_0xa67b0a(0xb1),'RncZh':function(_0x28be58,_0x2450b5){return _0x28be58(_0x2450b5);},'mwbKR':function(_0x4b7400,_0x1a93d8){return _0x4b7400(_0x1a93d8);},'pkpgx':_0xa67b0a(0x112),'ItmCK':'application/x-www-form-urlencoded','wyeUz':_0xa67b0a(0x120)},_0x4c3292=_0x4d1e84['replace'](/\/mcp$/,'');process[_0xa67b0a(0x118)]['write'](_0xaeb12['frUqn']);const _0x5b0967=await _0xaeb12[_0xa67b0a(0xd5)](fetch,_0x4c3292+_0xa67b0a(0xcd));if(!_0x5b0967['ok'])throw new Error('Could\x20not\x20fetch\x20protected\x20resource\x20metadata\x20from\x20MCP\x20server');const _0x204728=await _0x5b0967['json'](),_0x22e64d=_0x204728['authorization_servers']?.[0x0];if(!_0x22e64d)throw new Error(_0xaeb12[_0xa67b0a(0xcc)]);console['log']('\x20'+_0x22e64d);const _0x2aeaff=await _0xaeb12['gbTkz'](fetchAuthServerMetadata,_0x22e64d);let _0x80fcc3,_0x1565f6;const _0x42c9c3=await loadCachedClient();if(_0x42c9c3)_0x80fcc3=_0x42c9c3[_0xa67b0a(0x116)],_0x1565f6=_0x42c9c3[_0xa67b0a(0x97)];else{if(_0x2aeaff['registration_endpoint']){process['stdout']['write'](_0xaeb12['AkmFL']);const _0x367564=await _0xaeb12['JckHq'](fetch,_0x2aeaff['registration_endpoint'],{'method':_0xaeb12[_0xa67b0a(0x11c)],'headers':{'Content-Type':_0xaeb12['FBrfS']},'body':JSON['stringify']({'client_name':'Ranger\x20CLI','redirect_uris':['http://localhost:'+CALLBACK_PORT+_0xa67b0a(0x98)],'grant_types':[_0xaeb12['sxVvg'],_0xa67b0a(0x110)],'response_types':[_0xaeb12[_0xa67b0a(0xfb)]],'token_endpoint_auth_method':_0xaeb12[_0xa67b0a(0xe0)]})});if(!_0x367564['ok']){const _0x1e0bf5=await _0x367564[_0xa67b0a(0xb3)]();throw new Error('Client\x20registration\x20failed:\x20'+_0x1e0bf5);}const _0x2518e9=await _0x367564['json']();_0x80fcc3=_0x2518e9[_0xa67b0a(0xc5)],_0x1565f6=_0x2518e9[_0xa67b0a(0xba)],await saveCachedClient(_0x80fcc3,_0x1565f6),console[_0xa67b0a(0xc0)]('\x20done');}else throw new Error('Authorization\x20server\x20does\x20not\x20support\x20dynamic\x20client\x20registration\x20and\x20no\x20cached\x20client\x20found');}const _0x21042a=_0xaeb12['gbTkz'](randomBytes,0x20)[_0xa67b0a(0xe6)](_0xa67b0a(0xdd)),_0x798a1=_0xaeb12['gbTkz'](createHash,_0xaeb12['kFjOs'])[_0xa67b0a(0x11a)](_0x21042a)['digest'](_0xaeb12['RhpDT']),_0x55319a=randomBytes(0x10)[_0xa67b0a(0xe6)](_0xaeb12[_0xa67b0a(0xe2)]),_0x428262=new URL(_0x2aeaff['authorization_endpoint']);_0x428262[_0xa67b0a(0xe4)]['set'](_0xaeb12[_0xa67b0a(0xbf)],'code'),_0x428262['searchParams']['set']('client_id',_0x80fcc3),_0x428262['searchParams'][_0xa67b0a(0x9e)](_0xaeb12[_0xa67b0a(0xd0)],'http://localhost:'+CALLBACK_PORT+'/callback'),_0x428262['searchParams']['set'](_0xaeb12['VuVms'],_0x798a1),_0x428262[_0xa67b0a(0xe4)]['set']('code_challenge_method',_0xaeb12[_0xa67b0a(0xa7)]),_0x428262[_0xa67b0a(0xe4)][_0xa67b0a(0x9e)](_0xaeb12['LUfJT'],_0x55319a);_0x204728[_0xa67b0a(0xa3)]&&_0x428262[_0xa67b0a(0xe4)]['set'](_0xa67b0a(0xa3),_0x204728[_0xa67b0a(0xa3)]);console[_0xa67b0a(0xc0)]('\x0aOpening\x20browser\x20for\x20authentication...'),console['log'](_0xa67b0a(0xc8)+_0x428262[_0xa67b0a(0xe6)]()+'\x0a'),await _0xaeb12['RncZh'](openBrowser,_0x428262['toString']());const _0x1c6639=await _0xaeb12[_0xa67b0a(0xa8)](waitForCallback,_0x55319a);process['stdout'][_0xa67b0a(0x11b)](_0xaeb12['pkpgx']);const _0x2f429c=new URLSearchParams({'grant_type':_0xaeb12[_0xa67b0a(0xe5)],'code':_0x1c6639,'redirect_uri':'http://localhost:'+CALLBACK_PORT+'/callback','client_id':_0x80fcc3,'code_verifier':_0x21042a});_0x1565f6&&_0x2f429c['set']('client_secret',_0x1565f6);_0x204728[_0xa67b0a(0xa3)]&&_0x2f429c[_0xa67b0a(0x9e)]('resource',_0x204728['resource']);const _0x229def=await fetch(_0x2aeaff['token_endpoint'],{'method':_0xaeb12['XlvoA'],'headers':{'Content-Type':_0xaeb12[_0xa67b0a(0xfe)]},'body':_0x2f429c});if(!_0x229def['ok']){const _0x199280=await _0x229def['text']();throw new Error(_0xa67b0a(0xb7)+_0x199280);}const _0xc7e284=await _0x229def['json']();return console[_0xa67b0a(0xc0)](_0xaeb12[_0xa67b0a(0xf7)]),await saveCachedToken(_0xc7e284[_0xa67b0a(0x9b)],_0xc7e284[_0xa67b0a(0x110)],_0xc7e284[_0xa67b0a(0xe3)]),_0xc7e284['access_token'];}async function callGetCliToken(_0x4fe2db,_0x443c9c){const _0x40cf06=_0x33e646,_0x1cb4a4={'FmPxg':_0x40cf06(0xaa),'wBAHX':'application/json,\x20text/event-stream','iehdh':'Authorization','ioBab':'initialize','LsgoU':_0x40cf06(0x119),'ssKKJ':'1.0.0','TfeEL':_0x40cf06(0x120),'EEFjX':function(_0x4f8c08,_0x201e34,_0x4929e0){return _0x4f8c08(_0x201e34,_0x4929e0);},'EQMZj':_0x40cf06(0xb2),'EHwuu':'Requesting\x20CLI\x20token...','LxcQV':'tools/call','OxcMH':'get_cli_token','NgfyC':function(_0x36b698,_0x56ec5d){return _0x36b698(_0x56ec5d);},'HtOng':function(_0x1400f9){return _0x1400f9();},'RmiQO':'.ranger','EgaeY':'refresh.txt','VlJLu':function(_0x11e45d,_0x18e34a,_0x28dc2c,_0x1a939d){return _0x11e45d(_0x18e34a,_0x28dc2c,_0x1a939d);},'uNmLU':'auth-origin.txt','gslEW':'Run\x20`ranger\x20status`\x20to\x20verify\x20authentication.\x0a'},_0x1cacf2={'Content-Type':_0x1cb4a4['FmPxg'],'Accept':_0x1cb4a4[_0x40cf06(0x117)]};_0x443c9c&&(_0x1cacf2[_0x1cb4a4[_0x40cf06(0x10d)]]=_0x40cf06(0x96)+_0x443c9c);const _0x2ab012=async _0x2f85f0=>{const _0x5d260a=_0x40cf06,_0x1f4851=await fetch(_0x4fe2db,{'method':'POST','headers':_0x1cacf2,'body':JSON[_0x5d260a(0xde)](_0x2f85f0)});if(!_0x1f4851['ok']){const _0x477932=await _0x1f4851[_0x5d260a(0xb3)]();throw new Error('HTTP\x20'+_0x1f4851[_0x5d260a(0x9f)]+':\x20'+_0x477932);}return parseResponse(_0x1f4851);};process['stdout']['write'](_0x40cf06(0x10e));const _0x1b3e9b=await _0x2ab012({'jsonrpc':'2.0','id':0x1,'method':_0x1cb4a4[_0x40cf06(0xec)],'params':{'protocolVersion':_0x40cf06(0x100),'capabilities':{},'clientInfo':{'name':_0x1cb4a4[_0x40cf06(0xcb)],'version':_0x1cb4a4['ssKKJ']}}});if(_0x1b3e9b['error'])throw new Error('MCP\x20initialize\x20failed:\x20'+(_0x1b3e9b['error'][_0x40cf06(0xc7)]??JSON[_0x40cf06(0xde)](_0x1b3e9b[_0x40cf06(0x11d)])));console['log'](_0x1cb4a4['TfeEL']),await _0x1cb4a4[_0x40cf06(0xdb)](fetch,_0x4fe2db,{'method':_0x40cf06(0xe1),'headers':_0x1cacf2,'body':JSON[_0x40cf06(0xde)]({'jsonrpc':_0x1cb4a4['EQMZj'],'method':'notifications/initialized'})})['then'](_0x53c84f=>_0x53c84f['text']()),process['stdout'][_0x40cf06(0x11b)](_0x1cb4a4['EHwuu']);const _0x592c2a=await _0x2ab012({'jsonrpc':_0x1cb4a4['EQMZj'],'id':0x2,'method':_0x1cb4a4['LxcQV'],'params':{'name':_0x1cb4a4['OxcMH'],'arguments':{}}});if(_0x592c2a[_0x40cf06(0x11d)])throw new Error(_0x40cf06(0xb8)+(_0x592c2a[_0x40cf06(0x11d)][_0x40cf06(0xc7)]??JSON[_0x40cf06(0xde)](_0x592c2a[_0x40cf06(0x11d)])));console[_0x40cf06(0xc0)](_0x40cf06(0x120));const _0x5130c9=_0x1cb4a4['NgfyC'](extractToken,_0x592c2a['result']);if(!_0x5130c9){console['error']('\x0aUnexpected\x20response\x20structure:'),console['error'](JSON[_0x40cf06(0xde)](_0x592c2a['result'],null,0x2));throw new Error('Could\x20not\x20extract\x20token\x20from\x20MCP\x20response');}const _0x46363f=join(_0x1cb4a4[_0x40cf06(0x105)](homedir),_0x1cb4a4['RmiQO']),_0x37707a=join(_0x46363f,_0x1cb4a4[_0x40cf06(0x95)]);await mkdir(_0x46363f,{'recursive':!![]}),await _0x1cb4a4[_0x40cf06(0xa1)](writeFile,_0x37707a,_0x5130c9,{'mode':0x180}),await writeFile(_0x1cb4a4[_0x40cf06(0xdb)](join,_0x46363f,_0x1cb4a4['uNmLU']),_0x4fe2db,{'mode':0x180}),console['log'](_0x40cf06(0x108)+_0x37707a),console['log'](_0x1cb4a4[_0x40cf06(0x10b)]);}async function fetchAuthServerMetadata(_0x55d019){const _0x3c74d0=_0x33e646,_0x11ab0a={'KNoYo':function(_0x1b9b15,_0x5b6ed3){return _0x1b9b15(_0x5b6ed3);}},_0x10f541=_0x55d019+'/.well-known/oauth-authorization-server',_0x46c3d3=await _0x11ab0a['KNoYo'](fetch,_0x10f541);if(!_0x46c3d3['ok'])throw new Error('Could\x20not\x20fetch\x20auth\x20server\x20metadata\x20from\x20'+_0x10f541+':\x20'+_0x46c3d3[_0x3c74d0(0x9f)]);return _0x46c3d3['json']();}function waitForCallback(_0x5207da){const _0x65aac6=_0x33e646,_0xa5608f={'oVGEx':'OAuth\x20callback\x20timed\x20out\x20after\x202\x20minutes','uoeJV':'/callback','NDheK':_0x65aac6(0xe9),'jJnSW':_0x65aac6(0xf8),'awwcy':'state','eYxZx':'error','aIZSA':'text/html','DYJxR':function(_0x54c3e0,_0x3bbc67){return _0x54c3e0(_0x3bbc67);},'Bxevp':function(_0x17223e,_0x1220ab){return _0x17223e!==_0x1220ab;},'QxsIu':'<html><body><h2>Invalid\x20callback</h2><p>Missing\x20code\x20or\x20state\x20mismatch.</p></body></html>','EhPLd':function(_0x53bf55,_0x4e0a2c){return _0x53bf55(_0x4e0a2c);}};return new Promise((_0x451174,_0x4cc7a8)=>{const _0x369100=_0x65aac6,_0xc6638b=setTimeout(()=>{const _0x18e4b6=_0x360a;_0x300fdb[_0x18e4b6(0x109)](),_0x4cc7a8(new OAuthTimeoutError(_0xa5608f[_0x18e4b6(0xca)]));},0x1d4c0),_0x300fdb=_0xa5608f['EhPLd'](createServer,(_0x3a2821,_0x6575f)=>{const _0x20d287=_0x360a,_0x3e6f97=new URL(_0x3a2821[_0x20d287(0x9a)]??'/','http://localhost:'+CALLBACK_PORT);if(_0x3e6f97[_0x20d287(0x101)]!==_0xa5608f['uoeJV']){_0x6575f[_0x20d287(0x113)](0x194),_0x6575f['end'](_0xa5608f['NDheK']);return;}const _0x3c0f9d=_0x3e6f97['searchParams'][_0x20d287(0xab)](_0xa5608f[_0x20d287(0xf5)]),_0x43b313=_0x3e6f97[_0x20d287(0xe4)][_0x20d287(0xab)](_0xa5608f[_0x20d287(0xad)]),_0x5f55ac=_0x3e6f97[_0x20d287(0xe4)][_0x20d287(0xab)](_0xa5608f['eYxZx']);if(_0x5f55ac){const _0x327012=_0x3e6f97['searchParams']['get']('error_description')??_0x5f55ac;_0x6575f['writeHead'](0xc8,{'Content-Type':_0xa5608f['aIZSA']}),_0x6575f['end']('<html><body><h2>Authentication\x20failed</h2><p>'+_0x327012+_0x20d287(0x114)),_0xa5608f['DYJxR'](clearTimeout,_0xc6638b),_0x300fdb['close'](),_0x4cc7a8(new Error(_0x20d287(0xa0)+_0x327012));return;}if(!_0x3c0f9d||_0xa5608f['Bxevp'](_0x43b313,_0x5207da)){_0x6575f[_0x20d287(0x113)](0x190,{'Content-Type':'text/html'}),_0x6575f[_0x20d287(0xe7)](_0xa5608f['QxsIu']);return;}_0x6575f[_0x20d287(0x113)](0xc8,{'Content-Type':_0xa5608f[_0x20d287(0xc2)]}),_0x6575f[_0x20d287(0xe7)]('<html><body><h2>Authenticated!</h2><p>You\x20can\x20close\x20this\x20window\x20and\x20return\x20to\x20the\x20terminal.</p></body></html>'),_0xa5608f[_0x20d287(0xa4)](clearTimeout,_0xc6638b),_0x300fdb['close'](),_0x451174(_0x3c0f9d);});_0x300fdb[_0x369100(0xcf)](CALLBACK_PORT,'127.0.0.1');});}async function openBrowser(_0x580d7e){const _0x3792ef=_0x33e646,_0x220a2b={'lAnKT':function(_0x4d3aba,_0x468b51){return _0x4d3aba===_0x468b51;},'wewTl':_0x3792ef(0xed),'wpdrU':_0x3792ef(0xc4),'YRJTa':function(_0x13b65e,_0x5affcf){return _0x13b65e(_0x5affcf);}},{exec:_0x4cc763}=await import(_0x3792ef(0x102)),_0x5d5489=_0x220a2b['lAnKT'](process[_0x3792ef(0xc6)],_0x220a2b[_0x3792ef(0xd4)])?_0x3792ef(0xc3):process['platform']==='win32'?_0x220a2b['wpdrU']:'xdg-open';_0x220a2b['YRJTa'](_0x4cc763,_0x5d5489+'\x20\x22'+_0x580d7e+'\x22');}let currentOrigin='';async function loadCachedToken(){const _0x5a3dda=_0x33e646,_0x48cf1f={'ZGBrS':function(_0x2a55c7,_0x46bf4f,_0x103f65){return _0x2a55c7(_0x46bf4f,_0x103f65);},'HRfRa':'utf-8','AHnDV':function(_0x462933,_0x4ace29){return _0x462933>_0x4ace29;}};try{const _0x136708=JSON['parse'](await _0x48cf1f[_0x5a3dda(0xa5)](readFile,TOKEN_CACHE_PATH,_0x48cf1f[_0x5a3dda(0xf1)]));if(_0x136708[_0x5a3dda(0xb0)]&&_0x136708['origin']!==currentOrigin)return null;if(_0x136708[_0x5a3dda(0xf3)]&&_0x48cf1f[_0x5a3dda(0x115)](Date[_0x5a3dda(0xfc)](),_0x136708['expiresAt']))return null;return _0x136708['accessToken']??null;}catch{return null;}}async function saveCachedToken(_0x4b344a,_0x1b31e4,_0x4fa049){const _0x332822=_0x33e646,_0x21af2f={'qLvsP':function(_0x3d1732,_0x3699ac){return _0x3d1732+_0x3699ac;},'SJonP':function(_0x401922,_0x7335b6,_0x261072){return _0x401922(_0x7335b6,_0x261072);},'fXSDM':function(_0x251b03,_0x18116e,_0x2c223e){return _0x251b03(_0x18116e,_0x2c223e);}},_0x43d92f=await loadCachedData(),_0x2ca19d={..._0x43d92f,'origin':currentOrigin,'accessToken':_0x4b344a,'refreshToken':_0x1b31e4??_0x43d92f?.[_0x332822(0xea)],'expiresAt':_0x4fa049?_0x21af2f['qLvsP'](Date[_0x332822(0xfc)](),_0x4fa049*0x3e8):undefined};await _0x21af2f[_0x332822(0xf2)](mkdir,_0x21af2f[_0x332822(0xce)](join,homedir(),'.ranger'),{'recursive':!![]}),await writeFile(TOKEN_CACHE_PATH,JSON[_0x332822(0xde)](_0x2ca19d),{'mode':0x180});}async function loadCachedClient(){const _0x28fddc=_0x33e646,_0x5cae18=await loadCachedData();if(_0x5cae18?.['origin']&&_0x5cae18['origin']!==currentOrigin)return null;return _0x5cae18?.['clientId']?{'clientId':_0x5cae18[_0x28fddc(0x116)],'clientSecret':_0x5cae18[_0x28fddc(0x97)]}:null;}async function clearCachedClient(){const _0x1bf72a=await loadCachedData();if(!_0x1bf72a)return;const {clientId:_0x3170c5,clientSecret:_0x4b78f7,..._0x3809e4}=_0x1bf72a;await writeFile(TOKEN_CACHE_PATH,JSON['stringify'](_0x3809e4),{'mode':0x180});}async function saveCachedClient(_0x51e5a9,_0x34dac5){const _0x501f47=_0x33e646,_0x78ab63={'ftNGG':function(_0x5a5dc2){return _0x5a5dc2();},'IFTou':function(_0x5e5130){return _0x5e5130();}},_0x148e91=await _0x78ab63[_0x501f47(0xbc)](loadCachedData),_0x1021c3={..._0x148e91,'origin':currentOrigin,'accessToken':_0x148e91?.['accessToken']??'','clientId':_0x51e5a9,'clientSecret':_0x34dac5};await mkdir(join(_0x78ab63[_0x501f47(0xf0)](homedir),'.ranger'),{'recursive':!![]}),await writeFile(TOKEN_CACHE_PATH,JSON[_0x501f47(0xde)](_0x1021c3),{'mode':0x180});}async function loadCachedData(){const _0x35935d=_0x33e646,_0x17405d={'wdAQD':function(_0x4aa0c5,_0x59b450,_0x53b627){return _0x4aa0c5(_0x59b450,_0x53b627);},'Wadcp':'utf-8'};try{return JSON[_0x35935d(0x10a)](await _0x17405d[_0x35935d(0xfd)](readFile,TOKEN_CACHE_PATH,_0x17405d['Wadcp']));}catch{return null;}}async function parseResponse(_0x41cc38){const _0x571b46=_0x33e646,_0x441cf5={'wtoNb':'content-type','uHfcW':_0x571b46(0x103),'nCmRt':_0x571b46(0xf9)},_0x30764f=_0x41cc38[_0x571b46(0x9c)][_0x571b46(0xab)](_0x441cf5[_0x571b46(0xdc)])??'';if(_0x30764f[_0x571b46(0x104)](_0x441cf5['uHfcW'])){const _0x4b1e3e=await _0x41cc38[_0x571b46(0xb3)]();for(const _0x31a9e4 of _0x4b1e3e['split']('\x0a')){const _0xbf2615=_0x31a9e4['trim']();if(_0xbf2615['startsWith']('data:')){const _0x35e52a=_0xbf2615[_0x571b46(0x106)](_0x571b46(0x121)['length'])[_0x571b46(0xd7)]();if(!_0x35e52a)continue;try{const _0xe6b561=JSON['parse'](_0x35e52a);if(_0xe6b561['id']!==undefined||_0xe6b561[_0x571b46(0x11d)])return _0xe6b561;}catch{}}}throw new Error(_0x441cf5['nCmRt']);}return _0x41cc38[_0x571b46(0x11f)]();}function extractToken(_0x4227ff){const _0x188538=_0x33e646,_0x2696de={'jdwas':function(_0x526fab,_0x470698){return _0x526fab===_0x470698;},'RZYch':'string','TQfcn':_0x188538(0xff),'hpvbS':_0x188538(0xb3)};if(!_0x4227ff)return null;const _0x847faa=_0x4227ff[_0x188538(0xae)];if(_0x847faa?.[_0x188538(0xb6)]&&_0x2696de['jdwas'](typeof _0x847faa['token'],_0x2696de['RZYch']))return _0x847faa['token'];if(_0x4227ff['isError']){const _0xdccfab=_0x4227ff[_0x188538(0x99)];throw new Error(_0x188538(0xfa)+(_0xdccfab?.[0x0]?.['text']??_0x2696de[_0x188538(0xaf)]));}const _0x4bd9ba=_0x4227ff['content'];if(_0x4bd9ba)for(const _0x119383 of _0x4bd9ba){if(_0x2696de['jdwas'](_0x119383['type'],_0x2696de['hpvbS'])&&_0x119383[_0x188538(0xb3)]){try{const _0x4953ad=JSON[_0x188538(0x10a)](_0x119383['text']);if(typeof _0x4953ad?.[_0x188538(0xb6)]==='string')return _0x4953ad[_0x188538(0xb6)];}catch{}const _0x5cbae2=_0x119383['text'][_0x188538(0xee)](/(rngr_[A-Za-z0-9_-]+)/);if(_0x5cbae2)return _0x5cbae2[0x1];}}return null;}function _0x24cd(){const _0x3ac438=['refreshToken','62368wZPvxn','ioBab','darwin','match','code_challenge','IFTou','HRfRa','SJonP','expiresAt','49299lcpKRA','jJnSW','50162TfiYBr','wyeUz','code','No\x20JSON-RPC\x20response\x20found\x20in\x20SSE\x20stream','Server\x20returned\x20error:\x20','LximK','now','wdAQD','ItmCK','Unknown\x20error','2025-03-26','pathname','child_process','text/event-stream','includes','HtOng','slice','6904YlUiji','\x0aToken\x20written\x20to\x20','close','parse','gslEW','.ranger','iehdh','Initializing\x20MCP\x20session...','7BUJgmY','refresh_token','MCP\x20server\x20returned\x20HTTP\x20','Exchanging\x20authorization\x20code...','writeHead','</p><p>You\x20can\x20close\x20this\x20window.</p></body></html>','AHnDV','clientId','wBAHX','stdout','ranger-cli','update','write','XlvoA','error','974800oxSYLp','json','\x20done','data:','Registering\x20OAuth\x20client...','proxied','OAtkb','auth-origin.txt','EgaeY','Bearer\x20','clientSecret','/callback','content','url','access_token','headers','KNEmX','set','status','OAuth\x20error:\x20','VlJLu','1.0.0','resource','DYJxR','ZGBrS','166214zwqEoQ','dzMuk','mwbKR','mcp-oauth-tokens.json','application/json','get','AltQc','awwcy','structuredContent','TQfcn','origin','state','2.0','text','iuoud','40oiDkbW','token','Token\x20exchange\x20failed:\x20','get_cli_token\x20failed:\x20','90nYWTYC','client_secret','Run\x20`ranger\x20setup\x20--mcp-bootstrap`\x20interactively\x20first.','ftNGG','none','hex','NaiJI','log','name','aIZSA','open','start','client_id','platform','message','If\x20the\x20browser\x20doesn\x27t\x20open,\x20visit:\x0a','OAuthTimeoutError','oVGEx','LsgoU','IRnNZ','/.well-known/oauth-protected-resource','fXSDM','listen','bwuyE','BPGHV','481638LksmWq','isTTY','wewTl','kqTvp','LOszx','trim','needs-oauth','kaZwt','application/json,\x20text/event-stream','EEFjX','wtoNb','base64url','stringify','\x0aConnecting\x20to\x20MCP\x20auth\x20server:\x20','xFgUF','POST','vyvft','expires_in','searchParams','sxVvg','toString','end','response_type','Not\x20found'];_0x24cd=function(){return _0x3ac438;};return _0x24cd();}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(_0x1d360d,_0xbcb618){const _0x1c9650=_0x44ea,_0x2d52df=_0x1d360d();while(!![]){try{const _0x24e6a1=-parseInt(_0x1c9650(0x184))/0x1+parseInt(_0x1c9650(0x17d))/0x2+-parseInt(_0x1c9650(0x153))/0x3*(-parseInt(_0x1c9650(0x14f))/0x4)+parseInt(_0x1c9650(0x168))/0x5+parseInt(_0x1c9650(0x15a))/0x6+-parseInt(_0x1c9650(0x18e))/0x7+-parseInt(_0x1c9650(0x159))/0x8*(parseInt(_0x1c9650(0x190))/0x9);if(_0x24e6a1===_0xbcb618)break;else _0x2d52df['push'](_0x2d52df['shift']());}catch(_0x4509a2){_0x2d52df['push'](_0x2d52df['shift']());}}}(_0x3557,0x9b2c0));import{readFile,rm}from'fs/promises';import{existsSync}from'fs';import{join}from'path';import _0x36ebad from'inquirer';import{getEnvNames}from'./env.js';import{getEnvDir,loadSettings}from'./utils/settings.js';import{getRangerDir}from'./utils/rangerRoot.js';import{ApiError,createCloudProfile,fetchAuthConfig,saveCloudProfileCredentials,uploadCloudProfileSession}from'./utils/cloudProfile.js';import{matchAuthEnvironment}from'./utils/matchAuthEnvironment.js';import{readProjectsConfig,setProfileOverride,writeProjectsConfig}from'./utils/projectsConfig.js';function _0x44ea(_0x9c4f7a,_0x3b120b){_0x9c4f7a=_0x9c4f7a-0x146;const _0x355778=_0x3557();let _0x44eabb=_0x355778[_0x9c4f7a];return _0x44eabb;}function _0x3557(){const _0x3bb184=['KKnvA','message','iUnZa','oicGK','profileName','\x20→\x20cloud\x20(env:\x20','1205929ZyPStj','trackPhaseEnd','envKey','\x20local\x20director','mXDSl','stdout',',\x20baseUrl\x20override\x20→\x20projects.json)','yes','utf-8','isTTY','4090709ktzbTW','dryRun','900603GuFQsD','_warnings','some','authJsonPath',':\x20failed\x20to\x20save\x20credentials\x20(','Could\x20not\x20fetch\x20auth\x20config\x20(','domains','4|0|2|3|1','\x20\x20git\x20rm\x20-r\x20--cached\x20.ranger/','padEnd','ies','TELRT','skip','PbCky','no\x20baseUrl\x20in\x20settings.json','Provide\x20a\x20profile\x20name\x20or\x20--all.\x0a\x20\x20Example:\x20ranger\x20profile\x20migrate\x20--all\x20--dry-run','\x20profile','4fIlzRm','env','origin','push','2309082ewLnRm','jqsdZ','local\x20profile\x20directory\x20not\x20found',':\x20--save-creds\x20requested,\x20but\x20RANGER_TEST_USERNAME/PASSWORD\x20not\x20set\x20in\x20env.','baseUrl','migrate','8WojQYW','4931868XuZEhq',':\x20failed\x20to\x20write\x20projects.json\x20override\x20(',':\x20cloud\x20profile\x20with\x20this\x20name\x20already\x20exists.\x20Skipping.','\x20\x20⚠\x20','no\x20matching\x20auth\x20env','length','No\x20local\x20profiles\x20found\x20to\x20migrate.','status','Warning:\x20.ranger/\x20is\x20tracked\x20in\x20this\x20git\x20repo.','BfuZj','Continuing\x20with\x20migration...','environments','projects','reason','548980aDVhAK','join','settings','\x20migrated','preserveBaseUrl','all','\x20skipped','kind','yguzc','\x20failed','Ihhdr','Deleted\x20','CWCpg','TYEEv',':\x20session\x20upload\x20failed\x20(','\x20migrated\x20to\x20cloud\x20(env:\x20','GYUhV','DIxuT','Aborted.','log','\x20\x20echo\x20\x27.ranger/\x27\x20>>\x20.gitignore','1648998ZFCXGD'];_0x3557=function(){return _0x3bb184;};return _0x3557();}import{isPathGitTracked}from'./utils/gitTracked.js';function formatPlanLine(_0xa05d1f){const _0x29f314=_0x44ea,_0x456720={'PlQHj':'skip'};if(_0xa05d1f['kind']===_0x456720['PlQHj'])return'\x20\x20'+_0xa05d1f['profileName'][_0x29f314(0x147)](0x1e)+'\x20→\x20skip\x20('+_0xa05d1f['reason']+')';if(_0xa05d1f[_0x29f314(0x16c)]&&_0xa05d1f['baseUrl'])return'\x20\x20'+_0xa05d1f[_0x29f314(0x182)]['padEnd'](0x1e)+_0x29f314(0x183)+_0xa05d1f['envKey']+',\x20preserving\x20baseUrl\x20'+_0xa05d1f[_0x29f314(0x157)]+'\x20as\x20project\x20override)';if(_0xa05d1f[_0x29f314(0x157)])return'\x20\x20'+_0xa05d1f[_0x29f314(0x182)][_0x29f314(0x147)](0x1e)+_0x29f314(0x183)+_0xa05d1f[_0x29f314(0x186)]+',\x20matches\x20'+_0xa05d1f[_0x29f314(0x157)]+')';return'\x20\x20'+_0xa05d1f['profileName'][_0x29f314(0x147)](0x1e)+'\x20→\x20cloud\x20(env:\x20'+_0xa05d1f['envKey']+')';}function shouldWarnGitTrackedOnce(_0x1467f2){const _0x54e732=_0x44ea,_0x601987=readProjectsConfig(),_0x553481=_0x601987[_0x54e732(0x166)][_0x1467f2]??={},_0x53846e=_0x553481[_0x54e732(0x191)]??={},_0x8edd37=_0x53846e['gitTrackedRanger'],_0xf5c18c=new Date(),_0x3c8878=_0xf5c18c['toISOString']()['slice'](0x0,0xa);if(_0x8edd37===_0x3c8878)return![];return _0x53846e['gitTrackedRanger']=_0x3c8878,writeProjectsConfig(_0x601987),!![];}export async function migrateProfile(_0x3b58a2,_0x213f41){const _0x3fe15d=_0x44ea,_0x1e4af7={'yguzc':function(_0x18ff84,_0x1cdf07){return _0x18ff84===_0x1cdf07;},'fgJAT':function(_0x5c91b0,_0x48c38a){return _0x5c91b0 instanceof _0x48c38a;},'WmLJR':'No\x20cloud\x20profile\x20auth\x20config\x20found\x20for\x20this\x20org.\x20Migration\x20requires\x20at\x20least\x20one\x20configured\x20auth\x20environment.','BfuZj':function(_0x237210){return _0x237210();},'CZJYw':_0x3fe15d(0x160),'CWCpg':function(_0x2097c4,_0x49ebdb){return _0x2097c4(_0x49ebdb);},'PbCky':_0x3fe15d(0x14a),'DAEzE':_0x3fe15d(0x14c),'uUPql':function(_0x9bf860,_0x2df369,_0x42928a){return _0x9bf860(_0x2df369,_0x42928a);},'KKnvA':_0x3fe15d(0x15e),'GYUhV':_0x3fe15d(0x157),'emDib':function(_0x2bd103,_0x864fbb,_0x4f9636){return _0x2bd103(_0x864fbb,_0x4f9636);},'Hawqv':'migrate','TYEEv':'confirm','TkAwv':_0x3fe15d(0x197),'jqsdZ':_0x3fe15d(0x146),'mXDSl':_0x3fe15d(0x17c),'azSlL':'profile.migrate.started','irayU':'profile.migrate.skipped','TELRT':function(_0x20e47a,_0x22b506,_0x2f6f5b){return _0x20e47a(_0x22b506,_0x2f6f5b);},'qVarW':function(_0x115a76,_0xbaa573){return _0x115a76&&_0xbaa573;},'DIxuT':function(_0x9e5a39,_0x2f7335){return _0x9e5a39 instanceof _0x2f7335;},'IMrDU':function(_0x5851df,_0x1bc619,_0x11d1ce,_0xe0287e,_0x5f3298){return _0x5851df(_0x1bc619,_0x11d1ce,_0xe0287e,_0x5f3298);},'MEYEu':'profile.migrate.failed','iUnZa':function(_0x421abb,_0x3ab66e){return _0x421abb(_0x3ab66e);},'rBRuc':function(_0x146bc7,_0x3e2fa4){return _0x146bc7>_0x3e2fa4;},'qQnCI':function(_0x58bccc,_0x4caf0c){return _0x58bccc>_0x4caf0c;},'Ihhdr':_0x3fe15d(0x148),'oicGK':function(_0x49b957,_0x4e79d){return _0x49b957+_0x4e79d;}};if(!_0x3b58a2[_0x3fe15d(0x182)]&&!_0x3b58a2['all'])throw new Error(_0x3fe15d(0x14d));let _0x35d6ac;try{_0x35d6ac=await fetchAuthConfig();}catch(_0x53cbd9){throw new Error(_0x3fe15d(0x195)+(_0x1e4af7['fgJAT'](_0x53cbd9,Error)?_0x53cbd9['message']:String(_0x53cbd9))+').\x20Run:\x20ranger\x20setup');}if(!_0x35d6ac||!_0x35d6ac[_0x3fe15d(0x165)]||Object['keys'](_0x35d6ac[_0x3fe15d(0x165)])[_0x3fe15d(0x15f)]===0x0)throw new Error(_0x1e4af7['WmLJR']);const _0x283e76=[];if(_0x3b58a2[_0x3fe15d(0x16d)]){const {envNames:_0x201b67,envTypes:_0x247b63}=await _0x1e4af7[_0x3fe15d(0x163)](getEnvNames);for(const _0x55898a of _0x201b67){if(_0x247b63[_0x55898a]==='ci')continue;_0x283e76['push'](_0x55898a);}}else _0x3b58a2['profileName']&&_0x283e76['push'](_0x3b58a2[_0x3fe15d(0x182)]);if(_0x1e4af7['yguzc'](_0x283e76[_0x3fe15d(0x15f)],0x0)){console[_0x3fe15d(0x17b)](_0x1e4af7['CZJYw']);return;}const _0x105201=[];for(const _0x542d48 of _0x283e76){const _0x189777=getEnvDir(_0x542d48);if(!_0x1e4af7[_0x3fe15d(0x174)](existsSync,_0x189777)){_0x105201[_0x3fe15d(0x152)]({'kind':'skip','profileName':_0x542d48,'reason':_0x3fe15d(0x155)});continue;}const _0x103ad8=await loadSettings(_0x542d48),_0xcd4564=_0x103ad8['baseUrl'];if(!_0xcd4564){_0x105201[_0x3fe15d(0x152)]({'kind':_0x1e4af7[_0x3fe15d(0x14b)],'profileName':_0x542d48,'reason':_0x1e4af7['DAEzE']});continue;}const _0x390e8b=_0x1e4af7['uUPql'](matchAuthEnvironment,_0xcd4564,_0x35d6ac);if(!_0x390e8b){_0x105201['push']({'kind':_0x1e4af7[_0x3fe15d(0x14b)],'profileName':_0x542d48,'reason':_0x1e4af7[_0x3fe15d(0x17e)]});continue;}const _0x20d0fe=_0x35d6ac[_0x3fe15d(0x165)][_0x390e8b],_0x4bb71e=_0x20d0fe?.[_0x3fe15d(0x196)]??[],_0x1df2d1=_0x4bb71e[_0x3fe15d(0x192)](_0x537513=>{const _0x281afd=_0x3fe15d;try{return _0x1e4af7['yguzc'](new URL(_0x537513)['origin'],new URL(_0xcd4564)[_0x281afd(0x151)]);}catch{return![];}}),_0x1c8afc={};for(const [_0x231d6f,_0x2ceb6d]of Object['entries'](_0x103ad8)){if(_0x231d6f===_0x1e4af7[_0x3fe15d(0x178)])continue;if(_0x1e4af7[_0x3fe15d(0x170)](_0x2ceb6d,undefined))continue;_0x1c8afc[_0x231d6f]=_0x2ceb6d;}!_0x1df2d1&&(_0x1c8afc[_0x3fe15d(0x157)]=_0xcd4564);const _0x20c720=_0x1e4af7['emDib'](join,_0x189777,'auth.json'),_0x586572=existsSync(_0x20c720);_0x105201[_0x3fe15d(0x152)]({'kind':_0x1e4af7['Hawqv'],'profileName':_0x542d48,'envKey':_0x390e8b,'baseUrl':_0xcd4564,'preserveBaseUrl':!_0x1df2d1,'settings':_0x1c8afc,'authJsonPath':_0x586572?_0x20c720:null});}console['log']('Plan:');for(const _0x46398c of _0x105201){console['log'](_0x1e4af7['CWCpg'](formatPlanLine,_0x46398c));}if(_0x3b58a2[_0x3fe15d(0x18f)]){console['log']('Nothing\x20migrated.\x20Run\x20without\x20--dry-run\x20to\x20apply.');return;}const _0x471fc4=_0x1e4af7[_0x3fe15d(0x174)](Boolean,process['stdin']['isTTY']&&process[_0x3fe15d(0x189)][_0x3fe15d(0x18d)]),_0x1ea732=_0x105201[_0x3fe15d(0x192)](_0x35e67d=>_0x35e67d[_0x3fe15d(0x16f)]===_0x3fe15d(0x158));if(_0x1ea732&&_0x471fc4&&!_0x3b58a2[_0x3fe15d(0x18b)]){const {proceed:_0x108d55}=await _0x36ebad['prompt']([{'type':_0x1e4af7[_0x3fe15d(0x175)],'name':'proceed','message':'Proceed?','default':![]}]);if(!_0x108d55){console[_0x3fe15d(0x17b)](_0x3fe15d(0x17a));return;}}const _0x279233=_0x1e4af7['BfuZj'](getRangerDir);let _0x447cf2=![];if(existsSync(_0x279233))try{_0x447cf2=await isPathGitTracked(_0x279233);}catch{_0x447cf2=![];}if(_0x447cf2&&shouldWarnGitTrackedOnce(process['cwd']())){const _0x358b3d=_0x1e4af7['TkAwv']['split']('|');let _0x559d57=0x0;while(!![]){switch(_0x358b3d[_0x559d57++]){case'0':console[_0x3fe15d(0x17b)]('After\x20migration,\x20uncommit\x20it:');continue;case'1':console['log'](_0x3fe15d(0x164));continue;case'2':console['log'](_0x1e4af7[_0x3fe15d(0x154)]);continue;case'3':console['log'](_0x1e4af7[_0x3fe15d(0x188)]);continue;case'4':console['log'](_0x3fe15d(0x162));continue;}break;}}let _0x399593=0x0,_0xc18db3=0x0,_0x267560=0x0,_0x48c993=0x0;for(const _0x3e4841 of _0x105201){if(_0x3e4841['kind']===_0x1e4af7['PbCky']){_0x48c993++,_0x213f41?.[_0x3fe15d(0x185)]('profile.migrate.skipped',{'profileName':_0x3e4841['profileName'],'reason':_0x3e4841[_0x3fe15d(0x167)]});continue;}_0x213f41?.['trackPhaseStart'](_0x1e4af7['azSlL'],{'profileName':_0x3e4841[_0x3fe15d(0x182)],'envKey':_0x3e4841[_0x3fe15d(0x186)]});try{try{await createCloudProfile(_0x3e4841[_0x3fe15d(0x182)],_0x3e4841['envKey'],_0x3e4841[_0x3fe15d(0x16a)]);}catch(_0x289ac8){if(_0x289ac8 instanceof ApiError&&_0x289ac8[_0x3fe15d(0x161)]===0x199){console[_0x3fe15d(0x17b)]('\x20\x20⚠\x20'+_0x3e4841[_0x3fe15d(0x182)]+_0x3fe15d(0x15c)),_0x48c993++,_0x213f41?.['trackPhaseEnd'](_0x1e4af7['irayU'],{'profileName':_0x3e4841[_0x3fe15d(0x182)],'reason':'name_conflict'});continue;}throw _0x289ac8;}let _0x28b1c0=![],_0x1b57f6=![];if(_0x3e4841[_0x3fe15d(0x193)])try{const _0x3c22f=await _0x1e4af7['uUPql'](readFile,_0x3e4841['authJsonPath'],_0x3fe15d(0x18c)),_0x3a44f3=JSON['parse'](_0x3c22f);await _0x1e4af7[_0x3fe15d(0x149)](uploadCloudProfileSession,_0x3e4841[_0x3fe15d(0x182)],_0x3a44f3),_0x28b1c0=!![];}catch(_0x827adb){_0x1b57f6=!![],console[_0x3fe15d(0x17b)](_0x3fe15d(0x15d)+_0x3e4841[_0x3fe15d(0x182)]+_0x3fe15d(0x176)+(_0x827adb instanceof Error?_0x827adb[_0x3fe15d(0x17f)]:_0x1e4af7[_0x3fe15d(0x174)](String,_0x827adb))+').\x20Cloud\x20profile\x20created;\x20local\x20auth.json\x20left\x20in\x20place.');}let _0x23c8b0=![];if(_0x3b58a2['saveCreds']){const _0x2afc00=process[_0x3fe15d(0x150)]['RANGER_TEST_USERNAME'],_0x2d0bde=process[_0x3fe15d(0x150)]['RANGER_TEST_PASSWORD'];if(_0x1e4af7['qVarW'](_0x2afc00,_0x2d0bde))try{await saveCloudProfileCredentials(_0x3e4841['profileName'],_0x2afc00,_0x2d0bde),_0x23c8b0=!![];}catch(_0x5cd6d4){console['log']('\x20\x20⚠\x20'+_0x3e4841['profileName']+_0x3fe15d(0x194)+(_0x1e4af7[_0x3fe15d(0x179)](_0x5cd6d4,Error)?_0x5cd6d4[_0x3fe15d(0x17f)]:String(_0x5cd6d4))+').');}else console['log']('\x20\x20⚠\x20'+_0x3e4841[_0x3fe15d(0x182)]+_0x3fe15d(0x156));}if(_0x3e4841[_0x3fe15d(0x16c)]&&_0x3e4841[_0x3fe15d(0x157)])try{_0x1e4af7['IMrDU'](setProfileOverride,process['cwd'](),_0x3e4841['profileName'],_0x1e4af7['GYUhV'],_0x3e4841[_0x3fe15d(0x157)]);}catch(_0x48f5ad){console['log'](_0x3fe15d(0x15d)+_0x3e4841[_0x3fe15d(0x182)]+_0x3fe15d(0x15b)+(_0x1e4af7['DIxuT'](_0x48f5ad,Error)?_0x48f5ad[_0x3fe15d(0x17f)]:String(_0x48f5ad))+').');}const _0x5dd4cf=getEnvDir(_0x3e4841['profileName']);if(!_0x1b57f6&&existsSync(_0x5dd4cf))try{await rm(_0x5dd4cf,{'recursive':!![],'force':!![]}),_0xc18db3++;}catch(_0x1c348a){console[_0x3fe15d(0x17b)](_0x3fe15d(0x15d)+_0x3e4841['profileName']+':\x20failed\x20to\x20delete\x20local\x20dir\x20'+_0x5dd4cf+'\x20('+(_0x1c348a instanceof Error?_0x1c348a[_0x3fe15d(0x17f)]:String(_0x1c348a))+').');}_0x399593++,_0x3e4841[_0x3fe15d(0x16c)]&&_0x3e4841[_0x3fe15d(0x157)]?console[_0x3fe15d(0x17b)]('\x20\x20✓\x20'+_0x3e4841[_0x3fe15d(0x182)]+_0x3fe15d(0x177)+_0x3e4841['envKey']+_0x3fe15d(0x18a)):console[_0x3fe15d(0x17b)]('\x20\x20✓\x20'+_0x3e4841[_0x3fe15d(0x182)]+_0x3fe15d(0x177)+_0x3e4841[_0x3fe15d(0x186)]+')'),_0x213f41?.[_0x3fe15d(0x185)]('profile.migrate.succeeded',{'profileName':_0x3e4841[_0x3fe15d(0x182)],'envKey':_0x3e4841['envKey'],'wasGitTracked':_0x447cf2,'hadSession':_0x28b1c0,'savedCreds':_0x23c8b0});}catch(_0x2241ee){_0x267560++,console['log']('\x20\x20✗\x20'+_0x3e4841['profileName']+'\x20failed:\x20'+(_0x1e4af7['fgJAT'](_0x2241ee,Error)?_0x2241ee[_0x3fe15d(0x17f)]:String(_0x2241ee))),_0x213f41?.[_0x3fe15d(0x185)](_0x1e4af7['MEYEu'],{'profileName':_0x3e4841['profileName'],'error':_0x1e4af7['fgJAT'](_0x2241ee,Error)?_0x2241ee['message']:_0x1e4af7[_0x3fe15d(0x180)](String,_0x2241ee)});}}const _0x349a9d=[];if(_0x1e4af7['rBRuc'](_0x399593,0x0))_0x349a9d[_0x3fe15d(0x152)](_0x399593+_0x3fe15d(0x14e)+(_0x399593===0x1?'':'s')+_0x3fe15d(0x16b));if(_0x1e4af7['qQnCI'](_0xc18db3,0x0))_0x349a9d[_0x3fe15d(0x152)](_0x3fe15d(0x173)+_0xc18db3+_0x3fe15d(0x187)+(_0xc18db3===0x1?'y':_0x1e4af7[_0x3fe15d(0x172)]));if(_0x48c993>0x0)_0x349a9d['push'](_0x48c993+_0x3fe15d(0x16e));if(_0x267560>0x0)_0x349a9d[_0x3fe15d(0x152)](_0x267560+_0x3fe15d(0x171));if(_0x1e4af7['rBRuc'](_0x349a9d[_0x3fe15d(0x15f)],0x0))console[_0x3fe15d(0x17b)](_0x1e4af7[_0x3fe15d(0x181)](_0x349a9d[_0x3fe15d(0x169)]('.\x20'),'.'));}
|
|
1
|
+
(function(_0x5ddd12,_0x8ae4f3){const _0x57bffc=_0x555e,_0x38776e=_0x5ddd12();while(!![]){try{const _0x8125b2=-parseInt(_0x57bffc(0x209))/0x1+-parseInt(_0x57bffc(0x201))/0x2+-parseInt(_0x57bffc(0x21d))/0x3+-parseInt(_0x57bffc(0x229))/0x4*(parseInt(_0x57bffc(0x1f3))/0x5)+-parseInt(_0x57bffc(0x20a))/0x6+parseInt(_0x57bffc(0x205))/0x7*(-parseInt(_0x57bffc(0x237))/0x8)+-parseInt(_0x57bffc(0x1f9))/0x9*(-parseInt(_0x57bffc(0x215))/0xa);if(_0x8125b2===_0x8ae4f3)break;else _0x38776e['push'](_0x38776e['shift']());}catch(_0x545f33){_0x38776e['push'](_0x38776e['shift']());}}}(_0x944b,0xa0250));import{readFile,rm}from'fs/promises';import{existsSync}from'fs';import{join}from'path';function _0x555e(_0x4fb284,_0x3c5147){_0x4fb284=_0x4fb284-0x1e6;const _0x944bb2=_0x944b();let _0x555ed8=_0x944bb2[_0x4fb284];return _0x555ed8;}import _0x5e3661 from'inquirer';import{getEnvNames}from'./env.js';import{getEnvDir,loadSettings}from'./utils/settings.js';function _0x944b(){const _0x243c25=['profileName','zbWtS','some','stdout','Ygabw','status','\x20→\x20skip\x20(','54323920GVjnbZ','tePaL','fnmLk','\x20\x20⚠\x20','No\x20local\x20profiles\x20found\x20to\x20migrate.','\x20migrated\x20to\x20cloud\x20(env:\x20','log','MGLzZ','3620454HsWQBd','znybd','envKey','all','RANGER_TEST_PASSWORD','QsmAD','push','isTTY','split','\x20→\x20cloud\x20(env:\x20','no\x20matching\x20auth\x20env','preserveBaseUrl','2261412tBLxQy','trackPhaseEnd','Aborted.','\x20profile','profile.migrate.started','message',',\x20baseUrl\x20override\x20→\x20projects.json)','3|4|2|0|1','_warnings','skip','sJbBi','authJsonPath','Kfwnw',').\x20Cloud\x20profile\x20created;\x20local\x20auth.json\x20left\x20in\x20place.','3743216WtNrsf','XaysF','PjEwN',',\x20matches\x20','UIYDV',',\x20preserving\x20baseUrl\x20','ies','\x20as\x20project\x20override)',':\x20failed\x20to\x20delete\x20local\x20dir\x20',':\x20session\x20upload\x20failed\x20(','Warning:\x20.ranger/\x20is\x20tracked\x20in\x20this\x20git\x20repo.','\x20failed','environments','MLkVp','utf-8','10yxTmKF','stdin','tyovw','\x20\x20echo\x20\x27.ranger/\x27\x20>>\x20.gitignore','padEnd','zxFbN','9vjvLDr','join','\x20skipped','cwd','baseUrl','kind','Continuing\x20with\x20migration...','wlCgW','1946964grsmDs','proceed','RANGER_TEST_USERNAME','XVIOn','14PPbeSF','profile.migrate.failed','HXilf','oZiwB','308249KKseUI','1328286YZPTeB','Provide\x20a\x20profile\x20name\x20or\x20--all.\x0a\x20\x20Example:\x20ranger\x20profile\x20migrate\x20--all\x20--dry-run','gitTrackedRanger','GWGsK'];_0x944b=function(){return _0x243c25;};return _0x944b();}import{getRangerDir}from'./utils/rangerRoot.js';import{ApiError,createCloudProfile,fetchAuthConfig,saveCloudProfileCredentials,uploadCloudProfileSession}from'./utils/cloudProfile.js';import{matchAuthEnvironment}from'./utils/matchAuthEnvironment.js';import{readProjectsConfig,setProfileOverride,writeProjectsConfig}from'./utils/projectsConfig.js';import{isPathGitTracked}from'./utils/gitTracked.js';function formatPlanLine(_0x505b71){const _0xb40350=_0x555e;if(_0x505b71['kind']===_0xb40350(0x232))return'\x20\x20'+_0x505b71[_0xb40350(0x20e)]['padEnd'](0x1e)+_0xb40350(0x214)+_0x505b71['reason']+')';if(_0x505b71[_0xb40350(0x228)]&&_0x505b71['baseUrl'])return'\x20\x20'+_0x505b71[_0xb40350(0x20e)][_0xb40350(0x1f7)](0x1e)+'\x20→\x20cloud\x20(env:\x20'+_0x505b71['envKey']+_0xb40350(0x1e9)+_0x505b71['baseUrl']+_0xb40350(0x1eb);if(_0x505b71[_0xb40350(0x1fd)])return'\x20\x20'+_0x505b71[_0xb40350(0x20e)]['padEnd'](0x1e)+_0xb40350(0x226)+_0x505b71[_0xb40350(0x21f)]+_0xb40350(0x1e7)+_0x505b71[_0xb40350(0x1fd)]+')';return'\x20\x20'+_0x505b71[_0xb40350(0x20e)]['padEnd'](0x1e)+'\x20→\x20cloud\x20(env:\x20'+_0x505b71[_0xb40350(0x21f)]+')';}function shouldWarnGitTrackedOnce(_0x4e72c8){const _0x2d4013=_0x555e,_0x47bcc1={'znybd':function(_0x10f7c1){return _0x10f7c1();},'XsQPc':function(_0x3a4825,_0x409c91){return _0x3a4825===_0x409c91;},'XaysF':function(_0x4bcaf4,_0xefe37a){return _0x4bcaf4(_0xefe37a);}},_0x501332=_0x47bcc1[_0x2d4013(0x21e)](readProjectsConfig),_0x4551ea=_0x501332['projects'][_0x4e72c8]??={},_0x5bd18e=_0x4551ea[_0x2d4013(0x231)]??={},_0x1c6a02=_0x5bd18e['gitTrackedRanger'],_0x3f8fa8=new Date(),_0x5a6191=_0x3f8fa8['toISOString']()['slice'](0x0,0xa);if(_0x47bcc1['XsQPc'](_0x1c6a02,_0x5a6191))return![];return _0x5bd18e[_0x2d4013(0x20c)]=_0x5a6191,_0x47bcc1[_0x2d4013(0x238)](writeProjectsConfig,_0x501332),!![];}export async function migrateProfile(_0x8e54a0,_0x4d0a02){const _0x22f0dc=_0x555e,_0x37225b={'tePaL':function(_0x35090b,_0x4f9bca){return _0x35090b===_0x4f9bca;},'EyKiw':_0x22f0dc(0x20b),'zxFbN':function(_0x275ba4){return _0x275ba4();},'MGLzZ':function(_0x208ca9,_0x4ebdd3){return _0x208ca9(_0x4ebdd3);},'oZiwB':'local\x20profile\x20directory\x20not\x20found','zbWtS':function(_0x1269ef,_0x4f50ad){return _0x1269ef(_0x4f50ad);},'HXilf':_0x22f0dc(0x232),'Ygabw':'baseUrl','WTBUT':'auth.json','QsmAD':function(_0x23962b,_0x98e0ef){return _0x23962b(_0x98e0ef);},'yNQAz':'Nothing\x20migrated.\x20Run\x20without\x20--dry-run\x20to\x20apply.','sJbBi':_0x22f0dc(0x202),'QmwRH':'Proceed?','fnmLk':function(_0x33303c){return _0x33303c();},'DuEpu':function(_0x547bc7,_0x38e3a7){return _0x547bc7(_0x38e3a7);},'GWGsK':_0x22f0dc(0x1ff),'fnMcO':'\x20\x20git\x20rm\x20-r\x20--cached\x20.ranger/','PjEwN':function(_0x2dcef5,_0x41563b,_0x372a5f,_0x1d95ff){return _0x2dcef5(_0x41563b,_0x372a5f,_0x1d95ff);},'UIYDV':function(_0x57df90,_0x48861f){return _0x57df90 instanceof _0x48861f;},'MLkVp':function(_0x48dd8a,_0x1bf03d,_0x195d04){return _0x48dd8a(_0x1bf03d,_0x195d04);},'XVIOn':function(_0x1833f4,_0x25114c,_0x5b3a71){return _0x1833f4(_0x25114c,_0x5b3a71);},'fngnw':_0x22f0dc(0x206),'wlCgW':function(_0x3025d0,_0x22e524){return _0x3025d0 instanceof _0x22e524;},'Kfwnw':function(_0x1b23f,_0x57fe8c){return _0x1b23f===_0x57fe8c;},'tyovw':function(_0x32476f,_0x57aeef){return _0x32476f>_0x57aeef;}};if(!_0x8e54a0['profileName']&&!_0x8e54a0[_0x22f0dc(0x220)])throw new Error(_0x37225b['EyKiw']);let _0x30b7df;try{_0x30b7df=await _0x37225b[_0x22f0dc(0x1f8)](fetchAuthConfig);}catch(_0x29fa05){throw new Error('Could\x20not\x20fetch\x20auth\x20config\x20('+(_0x29fa05 instanceof Error?_0x29fa05['message']:String(_0x29fa05))+').\x20Run:\x20ranger\x20setup');}if(!_0x30b7df||!_0x30b7df['environments']||Object['keys'](_0x30b7df[_0x22f0dc(0x1f0)])['length']===0x0)throw new Error('No\x20cloud\x20profile\x20auth\x20config\x20found\x20for\x20this\x20org.\x20Migration\x20requires\x20at\x20least\x20one\x20configured\x20auth\x20environment.');const _0x4ad5e1=[];if(_0x8e54a0[_0x22f0dc(0x220)]){const {envNames:_0x187307,envTypes:_0x51d2fc}=await _0x37225b[_0x22f0dc(0x1f8)](getEnvNames);for(const _0x49ff29 of _0x187307){if(_0x37225b[_0x22f0dc(0x216)](_0x51d2fc[_0x49ff29],'ci'))continue;_0x4ad5e1[_0x22f0dc(0x223)](_0x49ff29);}}else _0x8e54a0['profileName']&&_0x4ad5e1[_0x22f0dc(0x223)](_0x8e54a0[_0x22f0dc(0x20e)]);if(_0x37225b['tePaL'](_0x4ad5e1['length'],0x0)){console[_0x22f0dc(0x21b)](_0x22f0dc(0x219));return;}const _0xd3acaf=[];for(const _0x4a2e00 of _0x4ad5e1){const _0x4fe9ec=_0x37225b['MGLzZ'](getEnvDir,_0x4a2e00);if(!existsSync(_0x4fe9ec)){_0xd3acaf['push']({'kind':'skip','profileName':_0x4a2e00,'reason':_0x37225b[_0x22f0dc(0x208)]});continue;}const _0x312c39=await _0x37225b[_0x22f0dc(0x20f)](loadSettings,_0x4a2e00),_0x5e4ec9=_0x312c39['baseUrl'];if(!_0x5e4ec9){_0xd3acaf[_0x22f0dc(0x223)]({'kind':_0x37225b[_0x22f0dc(0x207)],'profileName':_0x4a2e00,'reason':'no\x20baseUrl\x20in\x20settings.json'});continue;}const _0x5e45c8=matchAuthEnvironment(_0x5e4ec9,_0x30b7df);if(!_0x5e45c8){_0xd3acaf[_0x22f0dc(0x223)]({'kind':_0x22f0dc(0x232),'profileName':_0x4a2e00,'reason':_0x22f0dc(0x227)});continue;}const _0x43b494=_0x30b7df[_0x22f0dc(0x1f0)][_0x5e45c8],_0xf7c5d2=_0x43b494?.['domains']??[],_0x13c7f7=_0xf7c5d2['some'](_0x3a8fe8=>{const _0x3d8863=_0x22f0dc;try{return _0x37225b[_0x3d8863(0x216)](new URL(_0x3a8fe8)['origin'],new URL(_0x5e4ec9)['origin']);}catch{return![];}}),_0x48164d={};for(const [_0x564fbe,_0x43a693]of Object['entries'](_0x312c39)){if(_0x37225b[_0x22f0dc(0x216)](_0x564fbe,_0x37225b[_0x22f0dc(0x212)]))continue;if(_0x43a693===undefined)continue;_0x48164d[_0x564fbe]=_0x43a693;}!_0x13c7f7&&(_0x48164d['baseUrl']=_0x5e4ec9);const _0x501d99=join(_0x4fe9ec,_0x37225b['WTBUT']),_0x21d107=_0x37225b[_0x22f0dc(0x222)](existsSync,_0x501d99);_0xd3acaf['push']({'kind':'migrate','profileName':_0x4a2e00,'envKey':_0x5e45c8,'baseUrl':_0x5e4ec9,'preserveBaseUrl':!_0x13c7f7,'settings':_0x48164d,'authJsonPath':_0x21d107?_0x501d99:null});}console['log']('Plan:');for(const _0xd831fe of _0xd3acaf){console[_0x22f0dc(0x21b)](formatPlanLine(_0xd831fe));}if(_0x8e54a0['dryRun']){console[_0x22f0dc(0x21b)](_0x37225b['yNQAz']);return;}const _0x17c9a7=Boolean(process[_0x22f0dc(0x1f4)][_0x22f0dc(0x224)]&&process[_0x22f0dc(0x211)][_0x22f0dc(0x224)]),_0x319104=_0xd3acaf[_0x22f0dc(0x210)](_0x3f419d=>_0x3f419d[_0x22f0dc(0x1fe)]==='migrate');if(_0x319104&&_0x17c9a7&&!_0x8e54a0['yes']){const {proceed:_0x54e28c}=await _0x5e3661['prompt']([{'type':'confirm','name':_0x37225b[_0x22f0dc(0x233)],'message':_0x37225b['QmwRH'],'default':![]}]);if(!_0x54e28c){console[_0x22f0dc(0x21b)](_0x22f0dc(0x22b));return;}}const _0x2d47d6=_0x37225b[_0x22f0dc(0x217)](getRangerDir);let _0x522a58=![];if(existsSync(_0x2d47d6))try{_0x522a58=await _0x37225b['MGLzZ'](isPathGitTracked,_0x2d47d6);}catch{_0x522a58=![];}if(_0x522a58&&_0x37225b['DuEpu'](shouldWarnGitTrackedOnce,process[_0x22f0dc(0x1fc)]())){const _0x36df03=_0x22f0dc(0x230)[_0x22f0dc(0x225)]('|');let _0x3e840d=0x0;while(!![]){switch(_0x36df03[_0x3e840d++]){case'0':console[_0x22f0dc(0x21b)](_0x22f0dc(0x1f6));continue;case'1':console['log'](_0x37225b[_0x22f0dc(0x20d)]);continue;case'2':console[_0x22f0dc(0x21b)](_0x37225b['fnMcO']);continue;case'3':console['log'](_0x22f0dc(0x1ee));continue;case'4':console['log']('After\x20migration,\x20uncommit\x20it:');continue;}break;}}let _0x4da287=0x0,_0x3d2cd1=0x0,_0x13753a=0x0,_0x595edd=0x0;for(const _0x2a1546 of _0xd3acaf){if(_0x2a1546['kind']===_0x37225b['HXilf']){_0x595edd++,_0x4d0a02?.['trackPhaseEnd']('profile.migrate.skipped',{'profileName':_0x2a1546[_0x22f0dc(0x20e)],'reason':_0x2a1546['reason']});continue;}_0x4d0a02?.['trackPhaseStart'](_0x22f0dc(0x22d),{'profileName':_0x2a1546['profileName'],'envKey':_0x2a1546['envKey']});try{try{await _0x37225b[_0x22f0dc(0x1e6)](createCloudProfile,_0x2a1546['profileName'],_0x2a1546['envKey'],{'settings':_0x2a1546['settings']});}catch(_0x49b9c5){if(_0x37225b[_0x22f0dc(0x1e8)](_0x49b9c5,ApiError)&&_0x49b9c5[_0x22f0dc(0x213)]===0x199){console['log'](_0x22f0dc(0x218)+_0x2a1546[_0x22f0dc(0x20e)]+':\x20cloud\x20profile\x20with\x20this\x20name\x20already\x20exists.\x20Skipping.'),_0x595edd++,_0x4d0a02?.[_0x22f0dc(0x22a)]('profile.migrate.skipped',{'profileName':_0x2a1546[_0x22f0dc(0x20e)],'reason':'name_conflict'});continue;}throw _0x49b9c5;}let _0x410a3a=![],_0x3c589d=![];if(_0x2a1546['authJsonPath'])try{const _0x435563=await _0x37225b[_0x22f0dc(0x1f1)](readFile,_0x2a1546[_0x22f0dc(0x234)],_0x22f0dc(0x1f2)),_0x5a49ef=JSON['parse'](_0x435563);await _0x37225b[_0x22f0dc(0x204)](uploadCloudProfileSession,_0x2a1546[_0x22f0dc(0x20e)],_0x5a49ef),_0x410a3a=!![];}catch(_0xc19ad6){_0x3c589d=!![],console['log']('\x20\x20⚠\x20'+_0x2a1546[_0x22f0dc(0x20e)]+_0x22f0dc(0x1ed)+(_0xc19ad6 instanceof Error?_0xc19ad6[_0x22f0dc(0x22e)]:_0x37225b['zbWtS'](String,_0xc19ad6))+_0x22f0dc(0x236));}let _0x402e0c=![];if(_0x8e54a0['saveCreds']){const _0x4c2c82=process['env'][_0x22f0dc(0x203)],_0x16f080=process['env'][_0x22f0dc(0x221)];if(_0x4c2c82&&_0x16f080)try{await saveCloudProfileCredentials(_0x2a1546[_0x22f0dc(0x20e)],_0x4c2c82,_0x16f080),_0x402e0c=!![];}catch(_0x234846){console[_0x22f0dc(0x21b)]('\x20\x20⚠\x20'+_0x2a1546[_0x22f0dc(0x20e)]+':\x20failed\x20to\x20save\x20credentials\x20('+(_0x234846 instanceof Error?_0x234846[_0x22f0dc(0x22e)]:String(_0x234846))+').');}else console[_0x22f0dc(0x21b)](_0x22f0dc(0x218)+_0x2a1546[_0x22f0dc(0x20e)]+':\x20--save-creds\x20requested,\x20but\x20RANGER_TEST_USERNAME/PASSWORD\x20not\x20set\x20in\x20env.');}if(_0x2a1546['preserveBaseUrl']&&_0x2a1546[_0x22f0dc(0x1fd)])try{setProfileOverride(process['cwd'](),_0x2a1546['profileName'],_0x37225b['Ygabw'],_0x2a1546['baseUrl']);}catch(_0x2e59b5){console['log'](_0x22f0dc(0x218)+_0x2a1546[_0x22f0dc(0x20e)]+':\x20failed\x20to\x20write\x20projects.json\x20override\x20('+(_0x37225b[_0x22f0dc(0x1e8)](_0x2e59b5,Error)?_0x2e59b5[_0x22f0dc(0x22e)]:_0x37225b[_0x22f0dc(0x21c)](String,_0x2e59b5))+').');}const _0x5c4e66=getEnvDir(_0x2a1546['profileName']);if(!_0x3c589d&&existsSync(_0x5c4e66))try{await rm(_0x5c4e66,{'recursive':!![],'force':!![]}),_0x3d2cd1++;}catch(_0x59ccef){console['log'](_0x22f0dc(0x218)+_0x2a1546['profileName']+_0x22f0dc(0x1ec)+_0x5c4e66+'\x20('+(_0x59ccef instanceof Error?_0x59ccef[_0x22f0dc(0x22e)]:String(_0x59ccef))+').');}_0x4da287++,_0x2a1546['preserveBaseUrl']&&_0x2a1546[_0x22f0dc(0x1fd)]?console['log']('\x20\x20✓\x20'+_0x2a1546[_0x22f0dc(0x20e)]+_0x22f0dc(0x21a)+_0x2a1546[_0x22f0dc(0x21f)]+_0x22f0dc(0x22f)):console['log']('\x20\x20✓\x20'+_0x2a1546['profileName']+_0x22f0dc(0x21a)+_0x2a1546[_0x22f0dc(0x21f)]+')'),_0x4d0a02?.['trackPhaseEnd']('profile.migrate.succeeded',{'profileName':_0x2a1546['profileName'],'envKey':_0x2a1546[_0x22f0dc(0x21f)],'wasGitTracked':_0x522a58,'hadSession':_0x410a3a,'savedCreds':_0x402e0c});}catch(_0x1edbd0){_0x13753a++,console[_0x22f0dc(0x21b)]('\x20\x20✗\x20'+_0x2a1546['profileName']+'\x20failed:\x20'+(_0x1edbd0 instanceof Error?_0x1edbd0['message']:String(_0x1edbd0))),_0x4d0a02?.['trackPhaseEnd'](_0x37225b['fngnw'],{'profileName':_0x2a1546[_0x22f0dc(0x20e)],'error':_0x37225b[_0x22f0dc(0x200)](_0x1edbd0,Error)?_0x1edbd0[_0x22f0dc(0x22e)]:String(_0x1edbd0)});}}const _0x25df55=[];if(_0x4da287>0x0)_0x25df55[_0x22f0dc(0x223)](_0x4da287+_0x22f0dc(0x22c)+(_0x37225b['Kfwnw'](_0x4da287,0x1)?'':'s')+'\x20migrated');if(_0x37225b['tyovw'](_0x3d2cd1,0x0))_0x25df55[_0x22f0dc(0x223)]('Deleted\x20'+_0x3d2cd1+'\x20local\x20director'+(_0x37225b[_0x22f0dc(0x235)](_0x3d2cd1,0x1)?'y':_0x22f0dc(0x1ea)));if(_0x37225b[_0x22f0dc(0x1f5)](_0x595edd,0x0))_0x25df55['push'](_0x595edd+_0x22f0dc(0x1fb));if(_0x13753a>0x0)_0x25df55[_0x22f0dc(0x223)](_0x13753a+_0x22f0dc(0x1ef));if(_0x25df55['length']>0x0)console['log'](_0x25df55[_0x22f0dc(0x1fa)]('.\x20')+'.');}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function
|
|
1
|
+
function _0x1cd7(_0x15ba47,_0x488b78){_0x15ba47=_0x15ba47-0x65;const _0x3a79bd=_0x3a79();let _0x1cd7fd=_0x3a79bd[_0x15ba47];return _0x1cd7fd;}(function(_0xdf3985,_0x5bb67f){const _0x58cd07=_0x1cd7,_0x55c482=_0xdf3985();while(!![]){try{const _0x5a84b1=parseInt(_0x58cd07(0x80))/0x1*(parseInt(_0x58cd07(0x96))/0x2)+parseInt(_0x58cd07(0x6d))/0x3*(parseInt(_0x58cd07(0x7d))/0x4)+parseInt(_0x58cd07(0x68))/0x5+parseInt(_0x58cd07(0x6f))/0x6*(parseInt(_0x58cd07(0x78))/0x7)+parseInt(_0x58cd07(0x86))/0x8+parseInt(_0x58cd07(0x7a))/0x9+-parseInt(_0x58cd07(0x6e))/0xa;if(_0x5a84b1===_0x5bb67f)break;else _0x55c482['push'](_0x55c482['shift']());}catch(_0x94d95b){_0x55c482['push'](_0x55c482['shift']());}}}(_0x3a79,0x2769e));function _0x3a79(){const _0x48e820=['ENLvA','output','error','hISfL','145576SJVrQD','add','❌\x20Failed\x20to\x20add\x20marketplace:','BTBOJ','prompt','\x20\x20claude\x20plugin\x20install\x20ranger@trailhead\x20--scope\x20','cGEyx','ranger','wantsSkillup','Project\x20(shared\x20with\x20team\x20via\x20git)','Hdrtp','LqQkc','marketplace','project','\x20\x20claude\x20plugin\x20marketplace\x20add\x20ranger-testing/trailhead','BNLBZ','591340OopAkF','sbAla','umoAM','XkXqP','✓\x20Marketplace\x20already\x20added','plugin','BSfFx','AtVpg','includes','SKILL.md','success','1170285gaPtwc','✓\x20Ranger\x20skills\x20already\x20installed','✓\x20Claude\x20Code\x20plugin\x20enabled','already\x20enabled','NYOjQ','45xtMwRE','7648390cpCYGj','12HaRjWF','ASdHN','qcOwW','\x0aInstalling\x20Claude\x20Code\x20plugin\x20(','ranger@trailhead','✓\x20Claude\x20Code\x20plugin\x20already\x20installed','OSskZ','bOuhB','qZiqK','870373pazTqP','✓\x20Claude\x20Code\x20plugin\x20installed\x20successfully','797445xmOnVe','user','Would\x20you\x20like\x20to\x20install\x20skills?','10952XenOVe','log','ranger-testing/trailhead','1UuQGMO','push'];_0x3a79=function(){return _0x48e820;};return _0x3a79();}import{join}from'path';import{existsSync}from'fs';import _0x1c47b4 from'inquirer';import{skillup}from'../skillup.js';import{runClaudeCommand,isMarketplaceAdded,isPluginInstalled}from'../utils/claudePlugin.js';import{getProjectRoot,getSkillsDir}from'../utils/claudeConfig.js';export async function ensureClaudePlugin(_0x2e6c8a){const _0x945853=_0x1cd7,_0x4eb91d={'vaisJ':function(_0x4e74e5,_0x4c39fb){return _0x4e74e5(_0x4c39fb);},'umoAM':_0x945853(0x73),'OSskZ':_0x945853(0x74),'uUYTw':function(_0x301b75){return _0x301b75();},'hISfL':'.claude','XkXqP':'\x0a📦\x20Claude\x20Code\x20Plugin\x0a','FBacQ':'Where\x20should\x20the\x20plugin\x20be\x20installed?','sbAla':_0x945853(0x7b),'AtVpg':'trailhead','uRfCT':_0x945853(0x92),'ynZTI':'install','Hdrtp':'❌\x20Failed\x20to\x20install\x20plugin:','BNLBZ':'\x0aYou\x20can\x20install\x20manually\x20with:','QnfrO':_0x945853(0x79),'xtFeK':'enable','BSfFx':'project','qKiPB':'--scope','cGEyx':function(_0x196c0a,_0x512a67,_0x20cd25){return _0x196c0a(_0x512a67,_0x20cd25);},'NYOjQ':_0x945853(0x6b),'NPLDE':'⚠\x20Failed\x20to\x20enable\x20plugin:'},_0x327489=await _0x4eb91d['vaisJ'](isPluginInstalled,_0x4eb91d[_0x945853(0x98)]);if(_0x327489)return console[_0x945853(0x7e)](_0x4eb91d[_0x945853(0x75)]),![];const _0x5ecb7b=existsSync(join(_0x4eb91d['uUYTw'](getProjectRoot),_0x4eb91d[_0x945853(0x85)]));let _0x1d5f67;if(_0x2e6c8a)_0x1d5f67=_0x2e6c8a;else{if(_0x5ecb7b)_0x1d5f67=_0x945853(0x93);else{console['log'](_0x4eb91d[_0x945853(0x99)]);const _0xe76e59=await _0x1c47b4['prompt']([{'type':'list','name':'pluginScope','message':_0x4eb91d['FBacQ'],'choices':[{'name':'User\x20(available\x20in\x20all\x20your\x20projects)','value':_0x4eb91d[_0x945853(0x97)]},{'name':_0x945853(0x8f),'value':_0x945853(0x93)}],'default':_0x4eb91d['sbAla']}]);_0x1d5f67=_0xe76e59['pluginScope'];}}console['log'](_0x945853(0x72)+_0x1d5f67+'\x20level)...\x0a');const _0x35cd2d=await isMarketplaceAdded(_0x4eb91d[_0x945853(0x9d)]);let _0x3d3578=_0x35cd2d;if(_0x35cd2d)console['log'](_0x945853(0x9a));else{const _0x475ad9=await runClaudeCommand(['plugin',_0x4eb91d['uRfCT'],_0x945853(0x87),_0x945853(0x7f)]);!_0x475ad9['success']?(console[_0x945853(0x84)](_0x945853(0x88),_0x475ad9[_0x945853(0x84)]),console['log']('\x0aYou\x20can\x20install\x20manually\x20with:'),console[_0x945853(0x7e)](_0x945853(0x94)),console[_0x945853(0x7e)](_0x945853(0x8b)+_0x1d5f67)):_0x3d3578=!![];}if(_0x3d3578){const _0x5b5772=await runClaudeCommand([_0x945853(0x9b),_0x4eb91d['ynZTI'],_0x4eb91d[_0x945853(0x98)],'--scope',_0x1d5f67]);if(!_0x5b5772[_0x945853(0x67)])console[_0x945853(0x84)](_0x4eb91d[_0x945853(0x90)],_0x5b5772[_0x945853(0x84)]),console['log'](_0x4eb91d[_0x945853(0x95)]),console[_0x945853(0x7e)]('\x20\x20claude\x20plugin\x20install\x20ranger@trailhead\x20--scope\x20'+_0x1d5f67);else{console[_0x945853(0x7e)](_0x4eb91d['QnfrO']);const _0x82e564=[_0x945853(0x9b),_0x4eb91d['xtFeK'],_0x945853(0x73)];_0x1d5f67===_0x4eb91d['BSfFx']&&_0x82e564[_0x945853(0x81)](_0x4eb91d['qKiPB'],_0x4eb91d[_0x945853(0x9c)]);const _0x342f4d=await _0x4eb91d[_0x945853(0x8c)](runClaudeCommand,_0x82e564,{'captureOutput':!![]}),_0x2d040c=_0x342f4d[_0x945853(0x83)]?.[_0x945853(0x65)](_0x4eb91d[_0x945853(0x6c)]);!_0x342f4d['success']&&!_0x2d040c?console['error'](_0x4eb91d['NPLDE'],_0x342f4d['error']):console[_0x945853(0x7e)](_0x945853(0x6a));}}return!![];}export async function ensureClaudeSkills(_0x44d371){const _0x2423a8=_0x1cd7,_0x567dc6={'GLAbi':function(_0x50597e,_0x4dced1){return _0x50597e(_0x4dced1);},'ENLvA':_0x2423a8(0x7b),'jtpzg':'SKILL.md','ASdHN':function(_0x3bb66f,_0x33845a,_0x4d3ba9,_0x3dc35d){return _0x3bb66f(_0x33845a,_0x4d3ba9,_0x3dc35d);},'bOuhB':function(_0x8ae42,_0xb23d4f){return _0x8ae42(_0xb23d4f);},'OkVaO':_0x2423a8(0x93),'yXJZY':'ranger','qZiqK':function(_0x20aefe,_0x4952f6){return _0x20aefe||_0x4952f6;},'LqQkc':_0x2423a8(0x69),'mxVBt':function(_0x14ecca,_0x5097b9){return _0x14ecca(_0x5097b9);},'xNDAw':function(_0x4a45ac,_0x5a67f2,_0x5b2a0f){return _0x4a45ac(_0x5a67f2,_0x5b2a0f);},'qcOwW':'.claude','BTBOJ':'confirm','uofjK':_0x2423a8(0x8e),'oHceY':function(_0xe5166b,_0x4cfbc0){return _0xe5166b(_0x4cfbc0);}},_0x3dfdde=_0x567dc6['GLAbi'](existsSync,join(getSkillsDir(_0x567dc6[_0x2423a8(0x82)]),_0x2423a8(0x8d),_0x567dc6['jtpzg'])),_0x3c5d9e=existsSync(_0x567dc6[_0x2423a8(0x70)](join,_0x567dc6[_0x2423a8(0x76)](getSkillsDir,_0x567dc6['OkVaO']),_0x567dc6['yXJZY'],_0x2423a8(0x66)));if(_0x567dc6[_0x2423a8(0x77)](_0x3dfdde,_0x3c5d9e))return console['log'](_0x567dc6[_0x2423a8(0x91)]),![];const _0x4d1ba4=_0x567dc6['mxVBt'](existsSync,_0x567dc6['xNDAw'](join,getProjectRoot(),_0x567dc6[_0x2423a8(0x71)]));let _0x515b9c=!![];if(_0x44d371)await skillup({'autoInstall':_0x44d371,'suppressUsage':!![]});else{if(_0x4d1ba4)await skillup({'autoInstall':_0x567dc6['OkVaO'],'suppressUsage':!![]});else{const _0x4d0fd1=await _0x1c47b4[_0x2423a8(0x8a)]([{'type':_0x567dc6[_0x2423a8(0x89)],'name':_0x567dc6['uofjK'],'message':_0x2423a8(0x7c),'default':!![]}]);_0x515b9c=_0x4d0fd1[_0x2423a8(0x8e)],_0x515b9c&&await _0x567dc6['oHceY'](skillup,{'suppressUsage':!![]});}}return _0x515b9c;}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x11493b,_0x4f35ae){const _0x1de5c9=_0x2be2,_0x358380=_0x11493b();while(!![]){try{const _0x4181b6=-parseInt(_0x1de5c9(0xe0))/0x1*(-parseInt(_0x1de5c9(0xe5))/0x2)+parseInt(_0x1de5c9(0xd4))/0x3*(-parseInt(_0x1de5c9(0xf4))/0x4)+parseInt(_0x1de5c9(0xdc))/0x5+parseInt(_0x1de5c9(0xe8))/0x6+parseInt(_0x1de5c9(0xde))/0x7*(-parseInt(_0x1de5c9(0xd5))/0x8)+parseInt(_0x1de5c9(0xdd))/0x9+parseInt(_0x1de5c9(0xf1))/0xa;if(_0x4181b6===_0x4f35ae)break;else _0x358380['push'](_0x358380['shift']());}catch(_0xa0e6e5){_0x358380['push'](_0x358380['shift']());}}}(_0x15aa,0x85715));function _0x15aa(){const _0x6da918=['⚠\x20Failed\x20to\x20read\x20opencode.json.\x20Please\x20add\x20the\x20plugin\x20manually.','4SPinNu','log','stringify','3209862vGvcuo','16QQbsKW','includes','error','pluginScope','prompt','list','QJMFm','4962835dmpBis','1070388FuUbQa','3824961diDuhH','OpwRF','437755ycMLid','parse','Tevbh','hQBQi','project','2qXwCDt','EySOC','user','3036720BKaOEe','gCTqM','opencode.json','evRpp','xAuwt','ZTosO','plugin','jmNDO','ITjiy','6540070XdEPdT','utf-8'];_0x15aa=function(){return _0x6da918;};return _0x15aa();}import{join}from'path';function _0x2be2(_0x239c0c,_0x1980a8){_0x239c0c=_0x239c0c-0xd2;const _0x15aa46=_0x15aa();let _0x2be2f4=_0x15aa46[_0x239c0c];return _0x2be2f4;}import{existsSync}from'fs';import{mkdir,readFile,writeFile}from'fs/promises';import _0x6c5d65 from'inquirer';import{getOpencodeConfigDir}from'../utils/opencodeConfig.js';export async function ensureOpencodePluginConfig(_0x499cd5){const _0x20cf90=_0x2be2,_0x21aaca={'ITjiy':function(_0xa1f69e,_0x12f43e,_0x51e632){return _0xa1f69e(_0x12f43e,_0x51e632);},'rgews':function(_0x484e33,_0x54cc68){return _0x484e33(_0x54cc68);},'OpwRF':_0x20cf90(0xea),'JzMUH':'project','hQBQi':'\x0a📦\x20OpenCode\x20Plugin\x0a','evRpp':_0x20cf90(0xda),'JoNUp':_0x20cf90(0xd8),'KRzkt':'Where\x20should\x20the\x20plugin\x20be\x20installed?','ybmJW':'User\x20(available\x20in\x20all\x20your\x20projects)','JvEvU':_0x20cf90(0xe7),'QJMFm':'Project\x20(shared\x20with\x20team\x20via\x20git)','Tevbh':'@ranger-testing/opencode-plugin','EySOC':'https://opencode.ai/config.json','xAuwt':function(_0x2c0ebb,_0x3fb43a){return _0x2c0ebb(_0x3fb43a);},'SqPKE':_0x20cf90(0xf2),'ZTosO':_0x20cf90(0xf3),'gCTqM':function(_0x139448,_0x309673,_0x4a5b33){return _0x139448(_0x309673,_0x4a5b33);},'jmNDO':function(_0x4ad2c7,_0xc41bb3,_0x2e2191){return _0x4ad2c7(_0xc41bb3,_0x2e2191);}},_0x4d69dc=existsSync(_0x21aaca[_0x20cf90(0xf0)](join,_0x21aaca['rgews'](getOpencodeConfigDir,_0x20cf90(0xe4)),_0x21aaca[_0x20cf90(0xdf)]));let _0x3908af;if(_0x499cd5)_0x3908af=_0x499cd5;else{if(_0x4d69dc)_0x3908af=_0x21aaca['JzMUH'];else{console['log'](_0x21aaca[_0x20cf90(0xe3)]);const _0x50383d=await _0x6c5d65[_0x20cf90(0xd9)]([{'type':_0x21aaca[_0x20cf90(0xeb)],'name':_0x21aaca['JoNUp'],'message':_0x21aaca['KRzkt'],'choices':[{'name':_0x21aaca['ybmJW'],'value':_0x21aaca['JvEvU']},{'name':_0x21aaca[_0x20cf90(0xdb)],'value':_0x20cf90(0xe4)}],'default':_0x20cf90(0xe7)}]);_0x3908af=_0x50383d['pluginScope'];}}const _0x474f88=join(getOpencodeConfigDir(_0x3908af),_0x20cf90(0xea)),_0x251096=_0x21aaca[_0x20cf90(0xe2)],_0xf69e61=_0x21aaca[_0x20cf90(0xe6)];let _0x1f5846={};if(_0x21aaca[_0x20cf90(0xec)](existsSync,_0x474f88))try{const _0x221a24=await readFile(_0x474f88,_0x21aaca['SqPKE']);_0x1f5846=JSON[_0x20cf90(0xe1)](_0x221a24);}catch(_0x4a526e){return console[_0x20cf90(0xd7)](_0x21aaca[_0x20cf90(0xed)]),{'configured':![],'scope':_0x3908af,'error':'Failed\x20to\x20read\x20opencode.json','details':_0x4a526e};}const _0x32f0e3=Array['isArray'](_0x1f5846[_0x20cf90(0xee)])?_0x1f5846[_0x20cf90(0xee)]:[];if(_0x32f0e3[_0x20cf90(0xd6)](_0x251096))return console['log']('✓\x20OpenCode\x20plugin\x20already\x20configured'),{'configured':![],'scope':_0x3908af};return _0x1f5846['$schema']=_0x1f5846['$schema']||_0xf69e61,_0x1f5846['plugin']=[..._0x32f0e3,_0x251096],await _0x21aaca[_0x20cf90(0xe9)](mkdir,getOpencodeConfigDir(_0x3908af),{'recursive':!![]}),await _0x21aaca[_0x20cf90(0xef)](writeFile,_0x474f88,JSON[_0x20cf90(0xd3)](_0x1f5846,null,0x2)+'\x0a'),console[_0x20cf90(0xd2)]('✓\x20OpenCode\x20plugin\x20configured'),{'configured':!![],'scope':_0x3908af};}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function _0x5d46(){const _0x266669=['You\x20can\x20install\x20manually:\x20claude\x20plugin\x20install\x20ranger@trailhead\x20--scope\x20project','project','name','VGUAT','auth','GuusU','dir_setup','Failed\x20to\x20install\x20plugin:','ranger-testing/trailhead','1545752EomiPM','9zvxPkd','PyNkZ','log','OeShw','✓\x20Active\x20profile:\x20','AZJct','Or\x20specify\x20a\x20profile\x20name\x20with\x20--profile\x20and\x20--base-url\x20to\x20create\x20one.','path','.\x20Use\x20--profile\x20to\x20specify\x20which\x20one.','9457vBESXg','UQyXD','--scope','xlhkY','QhOSq','1194XbXkeJ','✓\x20Skipping\x20Chromium\x20check\x20(--skip-chromium)','rSpJL','yyHPY','error','OpVhf','FYGMe','Failed\x20to\x20add\x20marketplace:','✓\x20Claude\x20Code\x20plugin\x20already\x20installed','idTFC','561937sNBIiI','SSODK','profile_activate','filter','\x22:\x20','✓\x20Created\x20profile\x20settings:\x20baseUrl=','pniiV','✓\x20Encrypted\x20auth\x20verified\x20(will\x20decrypt\x20at\x20runtime)','trackPhaseEnd','4205410ecAGaZ','rQobz','XcFco','join','\x0a🔧\x20Ranger\x20CI\x20Setup\x0a','81471AizoiS','chromium','success','\x0a✅\x20Ranger\x20CI\x20setup\x20complete!\x0a','1919580lPKdhp','xHYIY','trackPhaseStart','kwKFl','\x22\x20has\x20no\x20settings.json.\x20Use\x20--base-url\x20to\x20configure\x20it.','10569824trfAsK','skipChromium','baseUrl'];_0x5d46=function(){return _0x266669;};return _0x5d46();}(function(_0x2db84e,_0x334f95){const _0x385d17=_0x1441,_0x34a916=_0x2db84e();while(!![]){try{const _0xebfba2=-parseInt(_0x385d17(0x1c2))/0x1+-parseInt(_0x385d17(0x1a9))/0x2+-parseInt(_0x385d17(0x1d0))/0x3+-parseInt(_0x385d17(0x1d4))/0x4+parseInt(_0x385d17(0x1cb))/0x5+parseInt(_0x385d17(0x1b8))/0x6*(parseInt(_0x385d17(0x1b3))/0x7)+parseInt(_0x385d17(0x1d9))/0x8*(parseInt(_0x385d17(0x1aa))/0x9);if(_0xebfba2===_0x334f95)break;else _0x34a916['push'](_0x34a916['shift']());}catch(_0x266069){_0x34a916['push'](_0x34a916['shift']());}}}(_0x5d46,0x8fdee));import{mkdir,readFile,readdir}from'fs/promises';import{join}from'path';import{existsSync}from'fs';import{authenticate,ensureRangerDir,ensureChromium,writeRangerGitignore}from'./start.js';import{skillup}from'./skillup.js';import{getRangerDir}from'./utils/rangerRoot.js';import{writeActiveProfileName}from'./utils/activeProfile.js';import{saveSettings}from'./utils/settings.js';import{decrypt}from'./utils/crypto.js';import{getToken}from'./utils/keychain.js';import{runClaudeCommand,isMarketplaceAdded,isPluginInstalled}from'./utils/claudePlugin.js';function _0x1441(_0x19a6cc,_0x3d2e97){_0x19a6cc=_0x19a6cc-0x1a9;const _0x5d46a8=_0x5d46();let _0x144181=_0x5d46a8[_0x19a6cc];return _0x144181;}async function findCiProfile(_0x595ce3){const _0x3b42f5=_0x1441,_0x2305f1={'jeFTu':function(_0xee078,_0x9e8ee9,_0x46f2b9){return _0xee078(_0x9e8ee9,_0x46f2b9);},'EKKCk':function(_0x5d572c,_0x38013e){return _0x5d572c(_0x38013e);},'GuusU':'No\x20CI\x20profiles\x20found.\x20Create\x20one\x20first\x20with:\x20ranger\x20profile\x20add\x20<name>\x20--ci\x0a','adwhZ':function(_0x175595,_0xd4eb5f){return _0x175595===_0xd4eb5f;},'yyHPY':function(_0x5b6989,_0x43485){return _0x5b6989+_0x43485;},'OeShw':_0x3b42f5(0x1b0),'XcFco':function(_0x4da0c2,_0x16a517){return _0x4da0c2===_0x16a517;}},_0x1596dc=getRangerDir(),_0x32c265=_0x2305f1['jeFTu'](join,_0x1596dc,'ci');if(_0x595ce3){const _0x511cfe=join(_0x32c265,_0x595ce3);return{'name':_0x595ce3,'path':_0x511cfe};}if(!_0x2305f1['EKKCk'](existsSync,_0x32c265))throw new Error(_0x2305f1[_0x3b42f5(0x1e1)]+'Or\x20specify\x20a\x20profile\x20name\x20with\x20--profile\x20and\x20--base-url\x20to\x20create\x20one.');const _0x37933b=await _0x2305f1['jeFTu'](readdir,_0x32c265,{'withFileTypes':!![]}),_0x38e7ff=_0x37933b[_0x3b42f5(0x1c5)](_0x4692e5=>_0x4692e5['isDirectory']())['map'](_0x46d7b1=>_0x46d7b1[_0x3b42f5(0x1de)]);if(_0x2305f1['adwhZ'](_0x38e7ff['length'],0x0))throw new Error(_0x2305f1[_0x3b42f5(0x1bb)]('No\x20CI\x20profiles\x20found\x20in\x20.ranger/ci/.\x20Create\x20one\x20first\x20with:\x20ranger\x20profile\x20add\x20<name>\x20--ci\x0a',_0x2305f1[_0x3b42f5(0x1ad)]));if(_0x2305f1[_0x3b42f5(0x1cd)](_0x38e7ff['length'],0x1)){const _0x135e6e=_0x38e7ff[0x0];return console['log']('Auto-detected\x20CI\x20profile:\x20'+_0x135e6e),{'name':_0x135e6e,'path':join(_0x32c265,_0x135e6e)};}throw new Error('Multiple\x20CI\x20profiles\x20found:\x20'+_0x38e7ff[_0x3b42f5(0x1ce)](',\x20')+_0x3b42f5(0x1b2));}async function installPluginNonInteractive(){const _0x1c92e6=_0x1441,_0x36696b={'eRSsa':function(_0x21d99c,_0x3b8335){return _0x21d99c(_0x3b8335);},'dMlmG':_0x1c92e6(0x1c0),'PyNkZ':'Installing\x20Claude\x20Code\x20plugin\x20(project\x20level)...','spVFd':'trailhead','idTFC':'✓\x20Marketplace\x20already\x20added','CzcKQ':'marketplace','hNUZF':_0x1c92e6(0x1e4),'Vnebr':'You\x20can\x20install\x20manually:\x20claude\x20plugin\x20marketplace\x20add\x20ranger-testing/trailhead','PIxBG':function(_0x531e7b,_0x549378){return _0x531e7b(_0x549378);},'AZJct':'plugin','kwKFl':'install','tYRFE':_0x1c92e6(0x1e3),'NUSnT':_0x1c92e6(0x1dc)},_0x372853=await _0x36696b['eRSsa'](isPluginInstalled,'ranger@trailhead');if(_0x372853)return console[_0x1c92e6(0x1ac)](_0x36696b['dMlmG']),![];console[_0x1c92e6(0x1ac)](_0x36696b[_0x1c92e6(0x1ab)]);const _0x93f4bd=await isMarketplaceAdded(_0x36696b['spVFd']);let _0x775041=_0x93f4bd;if(_0x93f4bd)console[_0x1c92e6(0x1ac)](_0x36696b[_0x1c92e6(0x1c1)]);else{const _0x24c40a=await runClaudeCommand(['plugin',_0x36696b['CzcKQ'],'add',_0x36696b['hNUZF']]);!_0x24c40a[_0x1c92e6(0x1d2)]?(console['error'](_0x1c92e6(0x1bf),_0x24c40a[_0x1c92e6(0x1bc)]),console['log'](_0x36696b['Vnebr'])):_0x775041=!![];}if(_0x775041){const _0x46e260=await _0x36696b['PIxBG'](runClaudeCommand,[_0x36696b[_0x1c92e6(0x1af)],_0x36696b[_0x1c92e6(0x1d7)],'ranger@trailhead',_0x1c92e6(0x1b5),_0x1c92e6(0x1dd)]);!_0x46e260['success']?(console['error'](_0x36696b['tYRFE'],_0x46e260[_0x1c92e6(0x1bc)]),console['log'](_0x36696b['NUSnT'])):console['log']('✓\x20Claude\x20Code\x20plugin\x20installed');}return!![];}export async function setupCi(_0x5dee6d,_0x3462c4,_0x3dad9e){const _0x197b83=_0x1441,_0xacd56b={'rQobz':function(_0x434ee4){return _0x434ee4();},'pniiV':function(_0x141b4a,_0x4b79a6){return _0x141b4a(_0x4b79a6);},'UQyXD':function(_0x4aec5d,_0x1e7ace,_0x368f54){return _0x4aec5d(_0x1e7ace,_0x368f54);},'qJHet':_0x197b83(0x1e2),'VGUAT':_0x197b83(0x1b9),'rSpJL':function(_0xac7a3e){return _0xac7a3e();},'FYYpN':_0x197b83(0x1d1),'SSODK':_0x197b83(0x1c4),'KPCaM':'settings.json','xlhkY':'auth.json','OpVhf':function(_0x2e5cf4,_0x555684){return _0x2e5cf4(_0x555684);},'QhOSq':function(_0x3cffff,_0x478fd9){return _0x3cffff(_0x478fd9);},'ERyDd':_0x197b83(0x1c9),'xHYIY':function(_0x1afe95,_0x2e27fd){return _0x1afe95 instanceof _0x2e27fd;},'qWZkA':'\x20\x20No\x20auth\x20state\x20found\x20(app\x20may\x20not\x20require\x20authentication)','FYGMe':'skills'};console['log'](_0x197b83(0x1cf)),_0x3dad9e?.[_0x197b83(0x1d6)](_0x197b83(0x1e0)),await authenticate(_0x5dee6d),_0x3dad9e?.['trackPhaseEnd']('auth'),_0x3dad9e?.[_0x197b83(0x1d6)]('dir_setup');const {path:_0x1c5278,installed:_0xe2d708}=await _0xacd56b[_0x197b83(0x1cc)](ensureRangerDir);await writeRangerGitignore(_0x1c5278);const _0x338ddd=join(_0x1c5278,'sessions');!_0xacd56b['pniiV'](existsSync,_0x338ddd)&&await _0xacd56b['UQyXD'](mkdir,_0x338ddd,{'recursive':!![]});_0x3dad9e?.['trackPhaseEnd'](_0xacd56b['qJHet'],{'installed':_0xe2d708}),_0x3dad9e?.['trackPhaseStart'](_0x197b83(0x1d1));let _0x42b393=![];_0x3462c4?.['skipChromium']?console['log'](_0xacd56b[_0x197b83(0x1df)]):_0x42b393=await _0xacd56b[_0x197b83(0x1ba)](ensureChromium);_0x3dad9e?.['trackPhaseEnd'](_0xacd56b['FYYpN'],{'installed':_0x42b393,'skipped':!!_0x3462c4?.[_0x197b83(0x1da)]}),_0x3dad9e?.[_0x197b83(0x1d6)](_0xacd56b[_0x197b83(0x1c3)]);const _0x2bac1f=await findCiProfile(_0x3462c4?.['profile']);let _0x3ff09e=![];_0x3462c4?.[_0x197b83(0x1db)]&&(await mkdir(_0x2bac1f[_0x197b83(0x1b1)],{'recursive':!![]}),await saveSettings(_0x2bac1f['name'],{'baseUrl':_0x3462c4[_0x197b83(0x1db)],'headless':!![]}),console['log'](_0x197b83(0x1c7)+_0x3462c4['baseUrl']),_0x3ff09e=!![]);const _0xcf3678=_0xacd56b[_0x197b83(0x1b4)](join,_0x2bac1f[_0x197b83(0x1b1)],_0xacd56b['KPCaM']);if(!_0xacd56b[_0x197b83(0x1c8)](existsSync,_0xcf3678)&&!_0x3ff09e)throw new Error('CI\x20profile\x20\x22'+_0x2bac1f['name']+_0x197b83(0x1d8));const _0x4de52a=join(_0x2bac1f[_0x197b83(0x1b1)],_0xacd56b[_0x197b83(0x1b6)]),_0x5cee8d=_0xacd56b[_0x197b83(0x1b4)](join,_0x2bac1f[_0x197b83(0x1b1)],'auth.json.enc'),_0x3198ec=_0xacd56b[_0x197b83(0x1bd)](existsSync,_0x4de52a),_0x231991=existsSync(_0x5cee8d);if(_0x231991)try{const _0x14c8ea=await _0xacd56b[_0x197b83(0x1cc)](getToken);if(!_0x14c8ea)throw new Error('No\x20API\x20token\x20available\x20for\x20decryption');const _0x115ee7=await _0xacd56b['QhOSq'](readFile,_0x5cee8d);decrypt(_0x115ee7,_0x14c8ea),console['log'](_0xacd56b['ERyDd']);}catch(_0x2e1971){const _0x12a0e2=_0xacd56b[_0x197b83(0x1d5)](_0x2e1971,Error)?_0x2e1971['message']:_0xacd56b[_0x197b83(0x1b7)](String,_0x2e1971);throw new Error('Failed\x20to\x20verify\x20encrypted\x20auth\x20for\x20profile\x20\x22'+_0x2bac1f['name']+_0x197b83(0x1c6)+_0x12a0e2);}else _0x3198ec?console['log']('✓\x20Auth\x20state\x20found'):console['log'](_0xacd56b['qWZkA']);await writeActiveProfileName(_0x2bac1f[_0x197b83(0x1de)]),console[_0x197b83(0x1ac)](_0x197b83(0x1ae)+_0x2bac1f['name']),_0x3dad9e?.['trackPhaseEnd'](_0xacd56b['SSODK'],{'profileName':_0x2bac1f[_0x197b83(0x1de)],'hasAuth':_0x3198ec,'hasEncryptedAuth':_0x231991,'createdSettings':_0x3ff09e}),_0x3dad9e?.['trackPhaseStart']('plugin');const _0x4ca5b6=await _0xacd56b[_0x197b83(0x1cc)](installPluginNonInteractive);_0x3dad9e?.[_0x197b83(0x1ca)]('plugin',{'installed':_0x4ca5b6}),_0x3dad9e?.['trackPhaseStart'](_0xacd56b[_0x197b83(0x1be)]),await skillup({'autoInstall':_0x197b83(0x1dd)}),_0x3dad9e?.[_0x197b83(0x1ca)]('skills'),console[_0x197b83(0x1ac)](_0x197b83(0x1d3));}
|
|
1
|
+
(function(_0x4f73f2,_0x594af9){const _0x516f9c=_0x19bc,_0x27715c=_0x4f73f2();while(!![]){try{const _0x524249=-parseInt(_0x516f9c(0x146))/0x1*(parseInt(_0x516f9c(0x131))/0x2)+parseInt(_0x516f9c(0x11d))/0x3*(parseInt(_0x516f9c(0x134))/0x4)+parseInt(_0x516f9c(0x105))/0x5*(-parseInt(_0x516f9c(0x141))/0x6)+parseInt(_0x516f9c(0x107))/0x7*(parseInt(_0x516f9c(0x13f))/0x8)+parseInt(_0x516f9c(0x12d))/0x9*(-parseInt(_0x516f9c(0x129))/0xa)+-parseInt(_0x516f9c(0x145))/0xb*(parseInt(_0x516f9c(0x13c))/0xc)+parseInt(_0x516f9c(0x11e))/0xd;if(_0x524249===_0x594af9)break;else _0x27715c['push'](_0x27715c['shift']());}catch(_0x408896){_0x27715c['push'](_0x27715c['shift']());}}}(_0x5ae8,0xabba4));import{mkdir,readFile,readdir}from'fs/promises';import{join}from'path';import{existsSync}from'fs';import{authenticate,ensureRangerDir,ensureChromium,writeRangerGitignore}from'./start.js';import{skillup}from'./skillup.js';function _0x19bc(_0x517a0c,_0x173c12){_0x517a0c=_0x517a0c-0xf9;const _0x5ae87e=_0x5ae8();let _0x19bc7f=_0x5ae87e[_0x517a0c];return _0x19bc7f;}function _0x5ae8(){const _0x413045=['kBUYT','✓\x20Claude\x20Code\x20plugin\x20installed','12776FyiJrG','YCZlN','619350RzUjYG','path','VDIVF','baseUrl','12827881ldYThq','12qIxCpd','RCSSJ','mTlLc','\x22\x20has\x20no\x20settings.json.\x20Use\x20--base-url\x20to\x20configure\x20it.','✓\x20Auth\x20state\x20found','You\x20can\x20install\x20manually:\x20claude\x20plugin\x20install\x20ranger@trailhead\x20--scope\x20project','No\x20CI\x20profiles\x20found.\x20Create\x20one\x20first\x20with:\x20ranger\x20profile\x20add\x20<name>\x20--ci\x0a','install','QoINW','✓\x20Created\x20profile\x20settings:\x20baseUrl=','Multiple\x20CI\x20profiles\x20found:\x20','error','Or\x20specify\x20a\x20profile\x20name\x20with\x20--profile\x20and\x20--base-url\x20to\x20create\x20one.','5VDzPqR','GBRpS','1022bGZkIv','ZDXCZ','log','Auto-detected\x20CI\x20profile:\x20','settings.json','plugin','No\x20CI\x20profiles\x20found\x20in\x20.ranger/ci/.\x20Create\x20one\x20first\x20with:\x20ranger\x20profile\x20add\x20<name>\x20--ci\x0a','success','VjwhC','RFgcY','HFoTw','No\x20API\x20token\x20available\x20for\x20decryption','DGIpm','mWJlN','isDirectory','trackPhaseEnd','trackPhaseStart','seNLY','✓\x20Encrypted\x20auth\x20verified\x20(will\x20decrypt\x20at\x20runtime)','DyoxF','ranger@trailhead','sygIB','2649CUySYP','22620481RpEuuA','sjNaT','RppZN','\x20\x20No\x20auth\x20state\x20found\x20(app\x20may\x20not\x20require\x20authentication)','bhiLx','chromium','auth','iDpGf','Ffghn','add','ranger-testing/trailhead','539420KmeQjP','Installing\x20Claude\x20Code\x20plugin\x20(project\x20level)...','✓\x20Active\x20profile:\x20','profile','63setPQg','Failed\x20to\x20add\x20marketplace:','skipChromium','marketplace','72676XzQBxK','IEqeR','TejcL','3684ZlqsOU','✓\x20Marketplace\x20already\x20added','wiQbM','name','✓\x20Skipping\x20Chromium\x20check\x20(--skip-chromium)','You\x20can\x20install\x20manually:\x20claude\x20plugin\x20marketplace\x20add\x20ranger-testing/trailhead','BmArc','message','12BrNMom'];_0x5ae8=function(){return _0x413045;};return _0x5ae8();}import{getRangerDir}from'./utils/rangerRoot.js';import{writeActiveProfileName}from'./utils/activeProfile.js';import{saveSettings}from'./utils/settings.js';import{decrypt}from'./utils/crypto.js';import{getToken}from'./utils/keychain.js';import{runClaudeCommand,isMarketplaceAdded,isPluginInstalled}from'./utils/claudePlugin.js';async function findCiProfile(_0x14eb00){const _0x571f91=_0x19bc,_0x373451={'kBUYT':function(_0x4a5606,_0xc7aaaf,_0x3a4312){return _0x4a5606(_0xc7aaaf,_0x3a4312);},'EMOwC':function(_0x9bce6d,_0x4ff814){return _0x9bce6d(_0x4ff814);},'QCCob':function(_0x564145,_0x3ee949){return _0x564145+_0x3ee949;},'StpEN':_0x571f91(0xfe),'RppZN':_0x571f91(0x10d)},_0x2bb1f3=getRangerDir(),_0x4eef20=_0x373451['kBUYT'](join,_0x2bb1f3,'ci');if(_0x14eb00){const _0x7af39b=_0x373451[_0x571f91(0x13d)](join,_0x4eef20,_0x14eb00);return{'name':_0x14eb00,'path':_0x7af39b};}if(!_0x373451['EMOwC'](existsSync,_0x4eef20))throw new Error(_0x373451['QCCob'](_0x373451['StpEN'],_0x571f91(0x104)));const _0x5436fa=await readdir(_0x4eef20,{'withFileTypes':!![]}),_0x4f6ae0=_0x5436fa['filter'](_0x1e5736=>_0x1e5736[_0x571f91(0x115)]())['map'](_0x1f9a37=>_0x1f9a37[_0x571f91(0x137)]);if(_0x4f6ae0['length']===0x0)throw new Error(_0x373451[_0x571f91(0x120)]+'Or\x20specify\x20a\x20profile\x20name\x20with\x20--profile\x20and\x20--base-url\x20to\x20create\x20one.');if(_0x4f6ae0['length']===0x1){const _0x2b20e6=_0x4f6ae0[0x0];return console[_0x571f91(0x109)](_0x571f91(0x10a)+_0x2b20e6),{'name':_0x2b20e6,'path':join(_0x4eef20,_0x2b20e6)};}throw new Error(_0x571f91(0x102)+_0x4f6ae0['join'](',\x20')+'.\x20Use\x20--profile\x20to\x20specify\x20which\x20one.');}async function installPluginNonInteractive(){const _0x57aba8=_0x19bc,_0x372112={'IEqeR':function(_0x38e00d,_0x53cd86){return _0x38e00d(_0x53cd86);},'HFoTw':_0x57aba8(0x11b),'DyoxF':'trailhead','sygIB':function(_0x3ccd1d,_0x4b0fa1){return _0x3ccd1d(_0x4b0fa1);},'ZglTL':_0x57aba8(0x127),'wiQbM':_0x57aba8(0x12e),'kAhzz':_0x57aba8(0x139),'seNLY':function(_0x486e4b,_0x3eb94e){return _0x486e4b(_0x3eb94e);},'emqrj':_0x57aba8(0xff),'zmljj':'--scope','VDIVF':'project','aVeKR':'Failed\x20to\x20install\x20plugin:','UnOsB':_0x57aba8(0x13e)},_0x43b65a=await _0x372112[_0x57aba8(0x132)](isPluginInstalled,_0x372112[_0x57aba8(0x111)]);if(_0x43b65a)return console['log']('✓\x20Claude\x20Code\x20plugin\x20already\x20installed'),![];console[_0x57aba8(0x109)](_0x57aba8(0x12a));const _0x3454da=await _0x372112['IEqeR'](isMarketplaceAdded,_0x372112[_0x57aba8(0x11a)]);let _0x581d80=_0x3454da;if(_0x3454da)console['log'](_0x57aba8(0x135));else{const _0x4d5383=await _0x372112[_0x57aba8(0x11c)](runClaudeCommand,[_0x57aba8(0x10c),_0x57aba8(0x130),_0x372112['ZglTL'],_0x57aba8(0x128)]);!_0x4d5383[_0x57aba8(0x10e)]?(console[_0x57aba8(0x103)](_0x372112[_0x57aba8(0x136)],_0x4d5383['error']),console[_0x57aba8(0x109)](_0x372112['kAhzz'])):_0x581d80=!![];}if(_0x581d80){const _0x23a949=await _0x372112[_0x57aba8(0x118)](runClaudeCommand,['plugin',_0x372112['emqrj'],'ranger@trailhead',_0x372112['zmljj'],_0x372112[_0x57aba8(0x143)]]);!_0x23a949['success']?(console[_0x57aba8(0x103)](_0x372112['aVeKR'],_0x23a949['error']),console['log'](_0x57aba8(0xfd))):console['log'](_0x372112['UnOsB']);}return!![];}export async function setupCi(_0x1705cc,_0x5b365c,_0x3a8c5d){const _0x562a3a=_0x19bc,_0x401f71={'YCZlN':_0x562a3a(0x124),'vIZsp':'dir_setup','RFgcY':function(_0x6ffad6){return _0x6ffad6();},'VjwhC':function(_0x143314,_0xa4ad54){return _0x143314(_0xa4ad54);},'bhiLx':function(_0x5f55cf,_0x525781,_0x494f60){return _0x5f55cf(_0x525781,_0x494f60);},'mTlLc':'sessions','GBRpS':function(_0x4109cf,_0x4f7792){return _0x4109cf(_0x4f7792);},'gElkq':_0x562a3a(0x138),'DGIpm':function(_0x3eec6c){return _0x3eec6c();},'RCSSJ':_0x562a3a(0x123),'KVWxq':'profile_activate','BmArc':function(_0x5b58fb,_0x1ebb12,_0x5eb558){return _0x5b58fb(_0x1ebb12,_0x5eb558);},'LrvXI':function(_0x40bff0,_0x155c08,_0x3b1495){return _0x40bff0(_0x155c08,_0x3b1495);},'kVrln':function(_0x291a4d,_0x4ca2ac,_0x1ed51d){return _0x291a4d(_0x4ca2ac,_0x1ed51d);},'ReOjr':'auth.json.enc','TejcL':function(_0x1616dd,_0x17d3a5){return _0x1616dd(_0x17d3a5);},'mWJlN':function(_0x4c11db,_0x4b156c){return _0x4c11db(_0x4b156c);},'sjNaT':function(_0x18522f,_0x5083eb){return _0x18522f(_0x5083eb);},'WSpjO':_0x562a3a(0x119),'TPmLw':function(_0x41da32,_0x4f4d14){return _0x41da32 instanceof _0x4f4d14;},'Ffghn':function(_0xbe2771,_0x1bfa72){return _0xbe2771(_0x1bfa72);},'MfdCp':_0x562a3a(0xfc),'iDpGf':_0x562a3a(0x121),'ysxtS':'plugin','ZDXCZ':'project','QoINW':'skills'};console['log']('\x0a🔧\x20Ranger\x20CI\x20Setup\x0a'),_0x3a8c5d?.[_0x562a3a(0x117)](_0x401f71[_0x562a3a(0x140)]),await authenticate(_0x1705cc),_0x3a8c5d?.[_0x562a3a(0x116)](_0x401f71[_0x562a3a(0x140)]),_0x3a8c5d?.['trackPhaseStart'](_0x401f71['vIZsp']);const {path:_0x39081c,installed:_0x3a33d6}=await _0x401f71[_0x562a3a(0x110)](ensureRangerDir);await _0x401f71[_0x562a3a(0x10f)](writeRangerGitignore,_0x39081c);const _0x4fbf85=_0x401f71['bhiLx'](join,_0x39081c,_0x401f71[_0x562a3a(0xfa)]);!_0x401f71[_0x562a3a(0x106)](existsSync,_0x4fbf85)&&await _0x401f71[_0x562a3a(0x122)](mkdir,_0x4fbf85,{'recursive':!![]});_0x3a8c5d?.[_0x562a3a(0x116)]('dir_setup',{'installed':_0x3a33d6}),_0x3a8c5d?.['trackPhaseStart'](_0x562a3a(0x123));let _0x3fad67=![];_0x5b365c?.[_0x562a3a(0x12f)]?console['log'](_0x401f71['gElkq']):_0x3fad67=await _0x401f71[_0x562a3a(0x113)](ensureChromium);_0x3a8c5d?.['trackPhaseEnd'](_0x401f71[_0x562a3a(0xf9)],{'installed':_0x3fad67,'skipped':!!_0x5b365c?.['skipChromium']}),_0x3a8c5d?.[_0x562a3a(0x117)](_0x401f71['KVWxq']);const _0xd96ac7=await _0x401f71[_0x562a3a(0x10f)](findCiProfile,_0x5b365c?.[_0x562a3a(0x12c)]);let _0x3d1e67=![];_0x5b365c?.[_0x562a3a(0x144)]&&(await _0x401f71[_0x562a3a(0x13a)](mkdir,_0xd96ac7['path'],{'recursive':!![]}),await saveSettings(_0xd96ac7['name'],{'baseUrl':_0x5b365c['baseUrl'],'headless':!![]}),console[_0x562a3a(0x109)](_0x562a3a(0x101)+_0x5b365c[_0x562a3a(0x144)]),_0x3d1e67=!![]);const _0x215441=_0x401f71['LrvXI'](join,_0xd96ac7[_0x562a3a(0x142)],_0x562a3a(0x10b));if(!existsSync(_0x215441)&&!_0x3d1e67)throw new Error('CI\x20profile\x20\x22'+_0xd96ac7['name']+_0x562a3a(0xfb));const _0x53fd40=join(_0xd96ac7['path'],'auth.json'),_0x553bd5=_0x401f71['kVrln'](join,_0xd96ac7[_0x562a3a(0x142)],_0x401f71['ReOjr']),_0x41b79b=_0x401f71[_0x562a3a(0x133)](existsSync,_0x53fd40),_0x4a763d=_0x401f71[_0x562a3a(0x114)](existsSync,_0x553bd5);if(_0x4a763d)try{const _0x5f9b35=await getToken();if(!_0x5f9b35)throw new Error(_0x562a3a(0x112));const _0x5ab592=await _0x401f71[_0x562a3a(0x11f)](readFile,_0x553bd5);decrypt(_0x5ab592,_0x5f9b35),console[_0x562a3a(0x109)](_0x401f71['WSpjO']);}catch(_0x5025c5){const _0x1dad9c=_0x401f71['TPmLw'](_0x5025c5,Error)?_0x5025c5[_0x562a3a(0x13b)]:_0x401f71[_0x562a3a(0x126)](String,_0x5025c5);throw new Error('Failed\x20to\x20verify\x20encrypted\x20auth\x20for\x20profile\x20\x22'+_0xd96ac7['name']+'\x22:\x20'+_0x1dad9c);}else _0x41b79b?console['log'](_0x401f71['MfdCp']):console[_0x562a3a(0x109)](_0x401f71[_0x562a3a(0x125)]);await _0x401f71['Ffghn'](writeActiveProfileName,_0xd96ac7['name']),console[_0x562a3a(0x109)](_0x562a3a(0x12b)+_0xd96ac7[_0x562a3a(0x137)]),_0x3a8c5d?.['trackPhaseEnd'](_0x401f71['KVWxq'],{'profileName':_0xd96ac7['name'],'hasAuth':_0x41b79b,'hasEncryptedAuth':_0x4a763d,'createdSettings':_0x3d1e67}),_0x3a8c5d?.[_0x562a3a(0x117)](_0x401f71['ysxtS']);const _0x46e383=await installPluginNonInteractive();_0x3a8c5d?.[_0x562a3a(0x116)](_0x401f71['ysxtS'],{'installed':_0x46e383}),_0x3a8c5d?.[_0x562a3a(0x117)]('skills'),await skillup({'autoInstall':_0x401f71[_0x562a3a(0x108)]}),_0x3a8c5d?.['trackPhaseEnd'](_0x401f71[_0x562a3a(0x100)]),console[_0x562a3a(0x109)]('\x0a✅\x20Ranger\x20CI\x20setup\x20complete!\x0a');}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x3c46b0,_0x248e5f){const _0x56f61b=_0x5626,_0x145d51=_0x3c46b0();while(!![]){try{const _0x20e454=-parseInt(_0x56f61b(0x17b))/0x1+-parseInt(_0x56f61b(0x15e))/0x2+parseInt(_0x56f61b(0x166))/0x3+parseInt(_0x56f61b(0x156))/0x4+-parseInt(_0x56f61b(0x152))/0x5+parseInt(_0x56f61b(0x171))/0x6*(-parseInt(_0x56f61b(0x153))/0x7)+parseInt(_0x56f61b(0x169))/0x8;if(_0x20e454===_0x248e5f)break;else _0x145d51['push'](_0x145d51['shift']());}catch(_0x1e3d5c){_0x145d51['push'](_0x145d51['shift']());}}}(_0x214a,0xc6eeb));import{basename}from'path';import _0x155df3 from'inquirer';import{getToken}from'./utils/keychain.js';import{installSkill}from'./utils/skills.js';import{getCurrentVersion}from'./utils/version.js';import{getClaudeConfigDir,getProjectRoot}from'./utils/claudeConfig.js';function _0x5626(_0x3cc4aa,_0x499858){_0x3cc4aa=_0x3cc4aa-0x152;const _0x214a9b=_0x214a();let _0x562648=_0x214a9b[_0x3cc4aa];return _0x562648;}function _0x214a(){const _0x243d88=['All\x20projects\x20(','2063208ZdnMSq','\x0a🎯\x20Ranger\x20Skill\x20Setup\x0a','\x20successfully!\x0a','\x20\x20Failed\x20to\x20install\x20ranger\x20skill:','/skills/','user-level','To\x20use:','/.opencode/skills/','1813494JWvVxF','autoInstall','log','32320248rfnklN','stdout','ZBYgg','Jhhwy','list','\x20<your-api-token>','installLevel','Where\x20should\x20skills\x20be\x20installed?','174gubfnE','Bqynt','project','SZRtr','StwSp','\x0a✅\x20Installed\x20','oFcjG','vWHEe','opencode','kTZuw','968724QFVhnd','AmytF','4312060dAfeDT','343973Htiddy','This\x20project\x20only\x20(','\x20\x201.\x20Get\x20your\x20API\x20token\x20from\x20https://dashboard.ranger.net/cli','1832276iVIJsD','XdSXf','platform','\x20skill','warn','user','ranger'];_0x214a=function(){return _0x243d88;};return _0x214a();}import{getOpencodeConfigDir}from'./utils/opencodeConfig.js';export async function skillup(_0x558bdb={}){const _0x1a99f6=_0x5626,_0x11dffb={'uUFBb':function(_0x41715c){return _0x41715c();},'uCjDt':'3|0|1|4|2|5','xnsep':function(_0x1b63a6,_0x2d7c87){return _0x1b63a6===_0x2d7c87;},'tBZlS':'\x20--opencode','WLrXo':function(_0x4b0038,_0x5bb64d){return _0x4b0038(_0x5bb64d);},'mhCOm':_0x1a99f6(0x179),'kTZuw':_0x1a99f6(0x16d),'ESRTu':_0x1a99f6(0x170),'StwSp':_0x1a99f6(0x15b),'Bqynt':_0x1a99f6(0x173),'Jhhwy':'\x0a📦\x20Installing\x20skills...\x0a','SJtdR':function(_0x13ffa8,_0x56558d,_0x582452){return _0x13ffa8(_0x56558d,_0x582452);},'vWHEe':_0x1a99f6(0x15c),'AmytF':_0x1a99f6(0x161),'XdSXf':function(_0x48c7f4,_0x177582){return _0x48c7f4 instanceof _0x177582;},'oFcjG':function(_0x309648,_0x3f3e3c){return _0x309648>_0x3f3e3c;},'lrOco':_0x1a99f6(0x163),'SZRtr':'project-level','ZBYgg':_0x1a99f6(0x164),'TtSaG':'\x20\x20-\x20Start\x20OpenCode\x20and\x20run\x20the\x20`ranger_enable`\x20tool\x20to\x20enable\x20hooks.'};console['log'](_0x1a99f6(0x15f));const _0x27e271=_0x558bdb[_0x1a99f6(0x158)]??'claude',_0x4af41c=await _0x11dffb['uUFBb'](getToken);if(!_0x4af41c){const _0x394a4c=_0x11dffb['uCjDt']['split']('|');let _0x1d14f0=0x0;while(!![]){switch(_0x394a4c[_0x1d14f0++]){case'0':console[_0x1a99f6(0x168)]('To\x20get\x20started:');continue;case'1':console['log'](_0x1a99f6(0x155));continue;case'2':console[_0x1a99f6(0x168)]('\x20\x203.\x20Run:\x20ranger\x20skillup'+(_0x11dffb['xnsep'](_0x27e271,_0x1a99f6(0x179))?_0x11dffb['tBZlS']:'')+'\x0a');continue;case'3':console[_0x1a99f6(0x168)]('❌\x20No\x20Ranger\x20API\x20token\x20found.\x0a');continue;case'4':console[_0x1a99f6(0x168)]('\x20\x202.\x20Run:\x20ranger\x20setup'+(_0x27e271===_0x1a99f6(0x179)?'\x20--opencode':'')+_0x1a99f6(0x16e));continue;case'5':return;}break;}}console['log']('✓\x20Found\x20API\x20token');const _0x4d2f45=getProjectRoot(),_0x27b39a=_0x11dffb['WLrXo'](basename,_0x4d2f45),_0x55938f=_0x27e271===_0x11dffb['mhCOm']?_0x11dffb['WLrXo'](getOpencodeConfigDir,'user')+'/skills/':_0x11dffb['uUFBb'](getClaudeConfigDir)+_0x1a99f6(0x162),_0x53655e=_0x11dffb['xnsep'](_0x27e271,'opencode')?_0x4d2f45+_0x1a99f6(0x165):_0x4d2f45+'/.claude/skills/',_0x589c68=process['stdin']['isTTY']&&process[_0x1a99f6(0x16a)]['isTTY'];let _0x323b05;if(_0x558bdb[_0x1a99f6(0x167)])_0x323b05=_0x558bdb['autoInstall'];else{if(_0x589c68){const _0xd3207d=await _0x155df3['prompt']([{'type':_0x11dffb[_0x1a99f6(0x17a)],'name':_0x1a99f6(0x16f),'message':_0x11dffb['ESRTu'],'choices':[{'name':_0x1a99f6(0x15d)+_0x55938f+')','value':_0x11dffb['StwSp']},{'name':_0x1a99f6(0x154)+_0x53655e+')','value':_0x11dffb['Bqynt']}]}]);_0x323b05=_0xd3207d[_0x1a99f6(0x16f)];}else _0x323b05=_0x11dffb[_0x1a99f6(0x172)],console[_0x1a99f6(0x168)]('Non-interactive\x20mode:\x20Installing\x20skills\x20at\x20project\x20level\x20('+_0x53655e+')');}let _0x3e2716=0x0;const _0x1aa797=getCurrentVersion();console['log'](_0x11dffb[_0x1a99f6(0x16c)]);try{const _0x107558=await _0x11dffb['SJtdR'](installSkill,_0x11dffb[_0x1a99f6(0x178)],{'cliVersion':_0x1aa797,'level':_0x323b05,'platform':_0x27e271});_0x107558&&_0x3e2716++;}catch(_0x9c92b7){console[_0x1a99f6(0x15a)](_0x11dffb[_0x1a99f6(0x17c)],_0x11dffb[_0x1a99f6(0x157)](_0x9c92b7,Error)?_0x9c92b7['message']:_0x9c92b7);}if(_0x11dffb[_0x1a99f6(0x177)](_0x3e2716,0x0)){const _0x117b69=_0x323b05===_0x11dffb[_0x1a99f6(0x175)]?_0x11dffb['lrOco']:_0x11dffb[_0x1a99f6(0x174)];console['log'](_0x1a99f6(0x176)+_0x3e2716+'\x20'+_0x117b69+_0x1a99f6(0x159)+(_0x3e2716>0x1?'s':'')+_0x1a99f6(0x160)),!_0x558bdb['suppressUsage']&&(console[_0x1a99f6(0x168)](_0x11dffb[_0x1a99f6(0x16b)]),_0x27e271==='opencode'?console['log'](_0x11dffb['TtSaG']):console[_0x1a99f6(0x168)]('\x20\x20-\x20Open\x20Claude\x20Code\x20in\x20plan\x20mode\x20and\x20run\x20/ranger:enable.\x20Plan\x20out\x20a\x20UI\x20feature\x20with\x20Ranger\x20and\x20watch\x20Ranger\x20test\x20it\x20for\x20you!'));}else console[_0x1a99f6(0x168)]('\x0a⚠️\x20\x20No\x20skills\x20were\x20installed.\x0a');}
|
package/build/commands/start.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const _0xc5da9b=_0x348d;(function(_0x4d5613,_0x317877){const _0x334d65=_0x348d,_0x10495f=_0x4d5613();while(!![]){try{const _0xc9d0c3=parseInt(_0x334d65(0x1db))/0x1*(-parseInt(_0x334d65(0x190))/0x2)+-parseInt(_0x334d65(0x1b2))/0x3+-parseInt(_0x334d65(0x1a9))/0x4*(parseInt(_0x334d65(0x18c))/0x5)+-parseInt(_0x334d65(0x1d1))/0x6+-parseInt(_0x334d65(0x1cd))/0x7*(parseInt(_0x334d65(0x18a))/0x8)+-parseInt(_0x334d65(0x1a3))/0x9+-parseInt(_0x334d65(0x1ef))/0xa*(-parseInt(_0x334d65(0x1fc))/0xb);if(_0xc9d0c3===_0x317877)break;else _0x10495f['push'](_0x10495f['shift']());}catch(_0x2d8d7e){_0x10495f['push'](_0x10495f['shift']());}}}(_0x5756,0xc9035));import{mkdir,writeFile}from'fs/promises';import{join}from'path';import{existsSync}from'fs';import{createRequire}from'module';import{spawn}from'child_process';import _0x48c491 from'inquirer';import{getToken,storeToken}from'./utils/keychain.js';import{getCurrentUser}from'./utils/userApi.js';import{chromium}from'playwright';import{addEnv}from'./addEnv.js';function _0x5756(){const _0x59336d=['--with-deps','withDeps','trackPhaseError','2JXCDSG','Could\x20not\x20determine\x20local\x20Playwright\x20version.\x20Install\x20Playwright\x20Chromium\x20using\x20fallback\x20version\x20','skipAuth','Validating\x20API\x20token...','auth,\x20you\x20can\x20log\x20in\x20and\x20we\x27ll\x20save\x20the\x20session\x20state\x20for\x20Ranger\x20to','plugin','url','playwright@','prompt','tNXow','Authentication\x20failed:\x20','/ranger:enable','pfdkl','to\x20access\x20your\x20app.\x20If\x20the\x20part\x20of\x20your\x20app\x20you\x20want\x20to\x20test\x20is\x20behind','log','\x0aagent\x20like\x20usual.\x20Claude\x20will\x20create\x20a\x20feature\x20review\x20with','YQEiE','.\x20Please\x20check\x20your\x20API\x20token\x20and\x20try\x20again.','⚠\x20No\x20git\x20repository\x20found.\x20Run\x20`ranger\x20profile\x20add\x20local`\x20from\x20your\x20project\x20directory.','14791932Pqcoog','RgeAD','KqxqR','success','\x20\x20Failed\x20to\x20install\x20OpenCode\x20skill:','with\x20scenarios\x20describing\x20what\x20to\x20verify\x20and\x20then\x20run\x20browser','213572HfqjJJ','FSeMe','auth','MxgHF','skipped','fpfJz','NyGUD','wantsProfile','Make\x20sure\x20your\x20app\x20is\x20running\x20before\x20you\x20start.\x0a','4840605DeHpkf','git_check','user','provided_token','inherit','jLnhm','VzjHc','chromium','\x0aSkipping\x20profile\x20setup\x20(--skip-auth).\x20Run\x20`ranger\x20setup`\x20with\x20auth\x20to\x20add\x20a\x20profile\x20later.\x0a','You\x20will\x20need\x20to\x20install\x20it\x20before\x20using\x20Ranger:','fSRef','allowInsecureLocalhost','install','scope','\x0ascenarios\x20describing\x20what\x20to\x20verify\x20and\x20then\x20run\x20browser','organizationName','\x0a✅\x20Ranger\x20setup\x20complete!\x0a','NukDd','RMZKz','local','\x0aA\x20profile\x20gives\x20Ranger\x27s\x20browser\x20agent\x20information\x20about\x20how','bYNOt','The\x20required\x20version\x20(','error','OVLTV','force','HDkMQ','4563965arPIzO','rFLYA','rewHC','zuLjS','3626658AodRFL','You\x27ll\x20need\x20the\x20app\x20to\x20be\x20running\x20to\x20set\x20up\x20the\x20profile.','Non-interactive\x20mode:\x20No\x20--scope\x20provided,\x20defaulting\x20to\x20user.','\x20(fallback\x20version)','fnZTg','Failed\x20to\x20connect\x20to\x20MCP\x20server:\x20','1.58.2','rmSEY','HUzDi','lfmAw','926119qSDFic','\x1b[1m','isTTY','trackPhaseStart','✓\x20Created\x20.ranger/\x20directory','cKvaF','✓\x20Skipping\x20Chromium\x20check\x20(--skip-chromium)','\x0a🚀\x20Ranger\x20Setup\x0a','TtMLF','stdout','ranger\x20profile\x20add\x20local','\x0aNon-interactive\x20mode:\x20Auto-installing\x20Playwright\x20Chromium\x20','Non-interactive\x20mode:\x20Skipping\x20profile\x20setup.\x20To\x20set\x20up\x20a\x20profile,\x20pass\x20--url\x20or\x20run\x20later:','Failed\x20to\x20validate\x20provisioned\x20API\x20key:\x20','\x0aIn\x20Claude\x20Code,\x20run\x20','opencode','No\x20git\x20repository\x20found','existing_token','or\x20use\x20--scope\x20user\x20to\x20install\x20at\x20the\x20user\x20level\x20without\x20a\x20project.','stdin','10cugypG','uPKjS','HQBvU','✓\x20Exported\x20credentials\x20for\x20CI','message','oCdec','\x0a✅\x20You\x27re\x20ready\x20to\x20start\x20using\x20Ranger\x20Feature\x20Review.','trackPhaseEnd','confirm','profile','skills','ranger','ticZY','82525377FAAwbv','No\x20git\x20repository\x20found.\x20Please\x20run\x20`ranger\x20setup`\x20from\x20inside\x20your\x20project\x20directory,\x0a','ADOCE','FPgul','Would\x20you\x20like\x20to\x20set\x20up\x20the\x20profile\x20now?','\x0a❌\x20Profile\x20setup\x20failed:','\x20and\x20prompt\x20the\x20coding','use\x20until\x20the\x20session\x20expires.\x0a','16RXJqlj','heGoC','55CXpDzz'];_0x5756=function(){return _0x59336d;};return _0x5756();}import{getRangerDir,getRangerHomeDir,findGitRoot}from'./utils/rangerRoot.js';import{runDeviceAuthFlow}from'./utils/deviceAuth.js';import{findExistingEnv}from'./utils/settings.js';import{getCurrentVersion}from'./utils/version.js';import{ensureClaudePlugin,ensureClaudeSkills}from'./setup/claude.js';import{ensureOpencodePluginConfig}from'./setup/opencode.js';import{installSkill}from'./utils/skills.js';const require=createRequire(import.meta.url);export const PLAYWRIGHT_CHROMIUM_INSTALL_FALLBACK_VERSION=_0xc5da9b(0x1d7);const bold=_0x4e022b=>_0xc5da9b(0x1dc)+_0x4e022b+'\x1b[0m';export function getPlaywrightVersion(){const _0x449662={'Dfayk':function(_0x364042,_0x3cab0d){return _0x364042(_0x3cab0d);}};try{const _0xf9513b=require['resolve']('playwright/package.json'),_0x5a20ce=_0x449662['Dfayk'](require,_0xf9513b);return _0x5a20ce['version'];}catch{return null;}}export function installChromiumBinary(_0x480907,_0x31cda7=![]){const _0x301238=_0xc5da9b,_0x4c26e7={'heGoC':function(_0x8bdd27){return _0x8bdd27();},'ticZY':function(_0x433e01,_0x3b2ee5){return _0x433e01(_0x3b2ee5);},'RCcTP':_0x301238(0x18d),'eTvgm':_0x301238(0x1b9),'cKvaF':'npx','cuxsP':function(_0x1589a7,_0x26f964){return _0x1589a7===_0x26f964;},'mJdyw':'win32','VzjHc':_0x301238(0x1c9)};return new Promise((_0x17e7ad,_0x47c58d)=>{const _0x40ebca=_0x301238,_0x3ce4fa={'fRZZV':function(_0x2c02dc,_0x37c063){return _0x2c02dc===_0x37c063;},'rFLYA':function(_0xb2f4f0){const _0x2e83b7=_0x348d;return _0x4c26e7[_0x2e83b7(0x18b)](_0xb2f4f0);},'zuLjS':function(_0x377523,_0x3a865f){const _0xa4b5ee=_0x348d;return _0x4c26e7[_0xa4b5ee(0x1fb)](_0x377523,_0x3a865f);}},_0x52624b=[_0x40ebca(0x197)+_0x480907,_0x40ebca(0x1be),..._0x31cda7?[_0x4c26e7['RCcTP']]:[],_0x4c26e7['eTvgm']],_0x1e0539=spawn(_0x4c26e7[_0x40ebca(0x1e0)],_0x52624b,{'stdio':['ignore','inherit',_0x40ebca(0x1b6)],'shell':_0x4c26e7['cuxsP'](process['platform'],_0x4c26e7['mJdyw'])});_0x1e0539['on']('close',_0x2e4b7e=>{const _0x32cc65=_0x40ebca;_0x3ce4fa['fRZZV'](_0x2e4b7e,0x0)?_0x3ce4fa[_0x32cc65(0x1ce)](_0x17e7ad):_0x3ce4fa[_0x32cc65(0x1d0)](_0x47c58d,new Error('Installation\x20failed\x20with\x20exit\x20code\x20'+_0x2e4b7e));}),_0x1e0539['on'](_0x4c26e7[_0x40ebca(0x1b8)],_0x23a2fe=>{_0x47c58d(_0x23a2fe);});});}export async function authenticate(_0x48737f){const _0x32c0ca=_0xc5da9b,_0x34566d={'ADgoW':_0x32c0ca(0x1ec),'HUzDi':function(_0x14f8b2){return _0x14f8b2();},'nbkyN':'device_auth','MxgHF':'✓\x20Stored\x20credentials\x20locally'};if(!_0x48737f){const _0x266e08=await getToken();if(_0x266e08){const _0x5d4e2d=await getCurrentUser(_0x266e08);if(_0x5d4e2d['success'])return console['log']('✓\x20Already\x20authenticated\x20to\x20'+_0x5d4e2d[_0x32c0ca(0x1b4)][_0x32c0ca(0x1c1)]),{'token':_0x266e08,'method':_0x34566d['ADgoW']};}try{_0x48737f=await _0x34566d[_0x32c0ca(0x1d9)](runDeviceAuthFlow);}catch(_0x163513){throw new Error(_0x32c0ca(0x19a)+(_0x163513 instanceof Error?_0x163513[_0x32c0ca(0x1f3)]:_0x163513));}const _0x1e31ff=await getCurrentUser(_0x48737f);if(!_0x1e31ff[_0x32c0ca(0x1a6)])throw new Error(_0x32c0ca(0x1e8)+_0x1e31ff[_0x32c0ca(0x1c9)]);return console['log']('✓\x20Authenticated\x20to\x20'+_0x1e31ff['user']['organizationName']),{'token':_0x48737f,'method':_0x34566d['nbkyN']};}console[_0x32c0ca(0x19e)](_0x32c0ca(0x193));const _0x4e1ea6=await getCurrentUser(_0x48737f);if(!_0x4e1ea6[_0x32c0ca(0x1a6)]){if(_0x4e1ea6['status'])throw new Error('Authentication\x20failed:\x20'+_0x4e1ea6[_0x32c0ca(0x1c9)]+_0x32c0ca(0x1a1));else throw new Error(_0x32c0ca(0x1d6)+_0x4e1ea6['error']+'.\x20Please\x20check\x20your\x20network\x20connection\x20and\x20server\x20URL.');}return console[_0x32c0ca(0x19e)]('✓\x20Authenticated\x20to\x20'+_0x4e1ea6['user']['organizationName']),await storeToken(_0x48737f),console[_0x32c0ca(0x19e)](process['env']['GITHUB_ENV']?_0x32c0ca(0x1f2):_0x34566d[_0x32c0ca(0x1ac)]),{'token':_0x48737f,'method':_0x32c0ca(0x1b5)};}export async function ensureRangerDir(_0x72482f){const _0x4257f5=_0xc5da9b,_0x7e1e9c={'kYvLW':_0x4257f5(0x1b4),'mswSS':function(_0x404c20){return _0x404c20();},'cshdB':function(_0xfef1a8,_0x4f349b,_0x1dc2ee){return _0xfef1a8(_0x4f349b,_0x1dc2ee);},'lcmne':'.ranger','fpfJz':function(_0x542ccf){return _0x542ccf();},'UxPob':function(_0x3960db,_0x58bdef){return _0x3960db(_0x58bdef);},'waVto':function(_0x49618b,_0x46c5a2,_0x5e97b0){return _0x49618b(_0x46c5a2,_0x5e97b0);}};let _0x4c6358;if(_0x72482f===_0x7e1e9c['kYvLW'])_0x4c6358=getRangerHomeDir();else{const _0x16babd=_0x7e1e9c['mswSS'](findGitRoot);_0x4c6358=_0x16babd?_0x7e1e9c['cshdB'](join,_0x16babd,_0x7e1e9c['lcmne']):_0x7e1e9c[_0x4257f5(0x1ae)](getRangerDir);}return!_0x7e1e9c['UxPob'](existsSync,_0x4c6358)?(await _0x7e1e9c['waVto'](mkdir,_0x4c6358,{'recursive':!![]}),console['log'](_0x4257f5(0x1df)),{'path':_0x4c6358,'installed':!![]}):(console['log']('✓\x20.ranger/\x20directory\x20already\x20exists'),{'path':_0x4c6358,'installed':![]});}export async function ensureChromium(_0x5679bf=![]){const _0x531ac1=_0xc5da9b,_0x51cce5={'Knqej':function(_0xb7be3a,_0x1cd418){return _0xb7be3a(_0x1cd418);},'pjkvF':_0x531ac1(0x1d4),'HDkMQ':function(_0x3ea635,_0x37b01a,_0x21eafd){return _0x3ea635(_0x37b01a,_0x21eafd);},'TVJno':'\x0a✓\x20Playwright\x20Chromium\x20installed\x20successfully','SnABa':'\x0a❌\x20Failed\x20to\x20install\x20Chromium:','OVLTV':function(_0x217745,_0x5486f4){return _0x217745 instanceof _0x5486f4;},'FSeMe':'You\x20can\x20install\x20it\x20manually\x20by\x20running:','szcjI':'\x0a⚠\x20Skipping\x20Chromium\x20installation.'};let _0x1323ce=![];try{const _0x28f0dc=chromium['executablePath']();_0x1323ce=_0x51cce5['Knqej'](existsSync,_0x28f0dc);}catch{_0x1323ce=![];}if(_0x1323ce)return console[_0x531ac1(0x19e)]('✓\x20Playwright\x20Chromium\x20browser\x20found'),![];const _0xc1c535=getPlaywrightVersion(),_0x3532c0=_0xc1c535??PLAYWRIGHT_CHROMIUM_INSTALL_FALLBACK_VERSION,_0x3ecb32=!_0xc1c535,_0x545213=process['stdin'][_0x531ac1(0x1dd)]&&process[_0x531ac1(0x1e4)][_0x531ac1(0x1dd)];let _0x21682f=!![];if(_0x545213){const {install:_0xf83906}=await _0x48c491['prompt']([{'type':'confirm','name':'install','message':_0x3ecb32?_0x531ac1(0x191)+_0x3532c0+'\x20now?':_0x531ac1(0x1c8)+_0x3532c0+')\x20of\x20the\x20Playwright\x20Chromium\x20browser\x20is\x20not\x20installed.\x20Install\x20it\x20now?','default':!![]}]);_0x21682f=_0xf83906;}else console['log'](_0x531ac1(0x1e6)+_0x3532c0+(_0x3ecb32?_0x51cce5['pjkvF']:'')+'...');if(_0x21682f){console[_0x531ac1(0x19e)]('\x0aInstalling\x20Chromium\x20browser...\x0a');try{await _0x51cce5[_0x531ac1(0x1cc)](installChromiumBinary,_0x3532c0,_0x5679bf),console['log'](_0x51cce5['TVJno']);}catch(_0x1c93ba){console['error'](_0x51cce5['SnABa'],_0x51cce5[_0x531ac1(0x1ca)](_0x1c93ba,Error)?_0x1c93ba['message']:_0x1c93ba),console[_0x531ac1(0x19e)](_0x51cce5[_0x531ac1(0x1aa)]),console['log']('\x20\x20npx\x20playwright@'+_0x3532c0+'\x20install\x20chromium');}}else console['log'](_0x51cce5['szcjI']),console[_0x531ac1(0x19e)](_0x531ac1(0x1bb)),console['log']('\x20\x20npx\x20playwright@'+_0x3532c0+'\x20install\x20chromium');return!![];}export async function writeRangerGitignore(_0xb1b317){const _0xf70164=_0xc5da9b,_0x1bb47b={'KqxqR':function(_0x9425e8,_0x50bc08,_0x275e31){return _0x9425e8(_0x50bc08,_0x275e31);},'NyGUD':'✓\x20Created\x20.ranger/.gitignore'},_0x31a3e1=_0x1bb47b[_0xf70164(0x1a5)](join,_0xb1b317,'.gitignore'),_0x224a3f='\x0a\x0a#\x20Ignore\x20local-only\x20directories\x0alocal/\x0asessions/\x0abug-bashes/\x0areports/\x0afeedback-images/\x0a\x0aactive-profile.txt\x0aactive-feature.txt\x0a.gitignore\x0a\x0a#\x20Ignore\x20plaintext\x20auth\x20files\x20(encrypted\x20.enc\x20files\x20are\x20safe\x20to\x20commit)\x0a**/auth.json\x0a';await writeFile(_0x31a3e1,_0x224a3f),console['log'](_0x1bb47b[_0xf70164(0x1af)]);}function printProfileSetupLaterInstructions(){const _0x42b7fd=_0xc5da9b,_0x305627={'uCcEI':_0x42b7fd(0x1e5)};console['log']('\x0aIn\x20order\x20for\x20Ranger\x20to\x20verify\x20your\x20work,\x20you\x27ll\x20need\x20to\x20set\x20up\x20a\x20profile\x20later\x20with:'),console['log']('\x20\x20'+bold(_0x305627['uCcEI'])),console['log'](_0x42b7fd(0x1b1));}export async function ensureLocalEnv(_0x5b787f,_0x286ea0){const _0x21102b=_0xc5da9b,_0xc2b040={'nWETn':function(_0x3493ba){return _0x3493ba();},'YQEiE':_0x21102b(0x1a2),'tNXow':function(_0x234acf,_0xcc429c){return _0x234acf===_0xcc429c;},'ZfGTF':function(_0x44efca,_0x4b7ae5,_0x9fc83b){return _0x44efca(_0x4b7ae5,_0x9fc83b);},'jLnhm':_0x21102b(0x1c6),'rewHC':_0x21102b(0x194),'tSaqz':_0x21102b(0x189),'QfBoy':_0x21102b(0x1f7),'uPKjS':_0x21102b(0x186),'ZHmxw':function(_0x595470){return _0x595470();}};if(!_0xc2b040['nWETn'](findGitRoot))return console['log'](_0xc2b040[_0x21102b(0x1a0)]),{'ready':![],'skipped':!![]};const _0xd8e2a1=_0xc2b040[_0x21102b(0x199)](_0x5b787f?.[_0x21102b(0x1bf)],_0x21102b(0x1b4))?getRangerHomeDir():undefined;if(_0xc2b040['ZfGTF'](findExistingEnv,_0x21102b(0x1c5),{'locations':[_0x21102b(0x1c5)],'rangerDir':_0xd8e2a1}))return console['log']('✓\x20Local\x20profile\x20already\x20exists'),{'ready':!![],'skipped':![]};const _0x5c08f0=process[_0x21102b(0x1ee)][_0x21102b(0x1dd)]&&process['stdout'][_0x21102b(0x1dd)];if(_0x5c08f0&&!_0x5b787f?.['url']){console[_0x21102b(0x19e)](_0xc2b040[_0x21102b(0x1b7)]),console[_0x21102b(0x19e)](_0x21102b(0x19d)),console[_0x21102b(0x19e)](_0xc2b040[_0x21102b(0x1cf)]),console['log'](_0xc2b040['tSaqz']),console['log'](_0x21102b(0x1d2));const {wantsProfile:_0x489518}=await _0x48c491[_0x21102b(0x198)]([{'type':_0xc2b040['QfBoy'],'name':_0x21102b(0x1b0),'message':_0xc2b040[_0x21102b(0x1f0)],'default':!![]}]);if(!_0x489518)return _0xc2b040['nWETn'](printProfileSetupLaterInstructions),{'ready':![],'skipped':!![]};}try{return await addEnv(_0x21102b(0x1c5),{'url':_0x5b787f?.['url'],'force':_0x5b787f?.['force'],'allowInsecureLocalhost':_0x5b787f?.[_0x21102b(0x1bd)],'scope':_0x5b787f?.[_0x21102b(0x1bf)]},_0x286ea0),{'ready':!![],'skipped':![]};}catch(_0x48bead){return console['error'](_0x21102b(0x187),_0x48bead instanceof Error?_0x48bead[_0x21102b(0x1f3)]:_0x48bead),_0xc2b040['ZHmxw'](printProfileSetupLaterInstructions),{'ready':![],'skipped':![]};}}function _0x348d(_0x26e6b7,_0x2b3620){_0x26e6b7=_0x26e6b7-0x183;const _0x5756b4=_0x5756();let _0x348d79=_0x5756b4[_0x26e6b7];return _0x348d79;}export async function start(_0x218159,_0x510947,_0x178d41){const _0x45c284=_0xc5da9b,_0x7cad77={'eJPMq':_0x45c284(0x1e2),'BGmWu':_0x45c284(0x1d3),'bYNOt':'user','HQBvU':_0x45c284(0x1b3),'kyyaY':function(_0x155cbc,_0x240d31){return _0x155cbc&&_0x240d31;},'aAOnD':_0x45c284(0x183),'aVUOp':_0x45c284(0x1ed),'RgeAD':function(_0xdc7f44,_0x511818){return _0xdc7f44(_0x511818);},'kYFhR':function(_0x110a6d){return _0x110a6d();},'RMZKz':function(_0x299026,_0x3ce072){return _0x299026(_0x3ce072);},'fSRef':'✓\x20Skipping\x20authentication\x20(--skip-auth)','fnZTg':'auth','NukDd':'chromium','AZEJq':_0x45c284(0x1e1),'Jlicy':_0x45c284(0x1c2),'ADOCE':_0x45c284(0x195),'gDUBX':function(_0x5164db,_0x48ea28,_0x5343dd){return _0x5164db(_0x48ea28,_0x5343dd);},'mMBBw':_0x45c284(0x1fa),'rQusG':'opencode','lfmAw':_0x45c284(0x1a7),'FPgul':'skills','rmSEY':function(_0x4909ef,_0xd15a00){return _0x4909ef(_0xd15a00);},'pfdkl':_0x45c284(0x1e7),'aIntX':_0x45c284(0x1f8),'oCdec':_0x45c284(0x1a8),'MEnlX':'verification\x20to\x20check\x20its\x20work\x20as\x20it\x20builds.','vMQxN':_0x45c284(0x19b),'TtMLF':function(_0x47f8c6,_0xaadc6a){return _0x47f8c6+_0xaadc6a;}};console[_0x45c284(0x19e)](_0x7cad77['eJPMq']);const _0x4cd57c=process['stdin'][_0x45c284(0x1dd)]&&process['stdout'][_0x45c284(0x1dd)];!_0x4cd57c&&!_0x510947?.[_0x45c284(0x1bf)]&&(console['log'](_0x7cad77['BGmWu']),_0x510947={..._0x510947,'scope':_0x7cad77[_0x45c284(0x1c7)]});const _0x3ce0eb=_0x510947?.['scope']===_0x45c284(0x1b4);_0x178d41?.[_0x45c284(0x1de)](_0x7cad77[_0x45c284(0x1f1)]);const _0x1d01ff=findGitRoot();if(_0x7cad77['kyyaY'](!_0x1d01ff,!_0x3ce0eb)){await _0x178d41?.[_0x45c284(0x18f)](_0x7cad77['HQBvU'],new Error(_0x45c284(0x1eb)));throw new Error(_0x7cad77['aAOnD']+_0x7cad77['aVUOp']);}_0x178d41?.[_0x45c284(0x1f6)](_0x7cad77['HQBvU']);const _0x3613c4=!_0x7cad77[_0x45c284(0x1a4)](existsSync,_0x7cad77['kYFhR'](getRangerDir)),{path:_0x39f011}=await _0x7cad77[_0x45c284(0x1c4)](ensureRangerDir,_0x3ce0eb?_0x7cad77['bYNOt']:undefined);if(_0x510947?.[_0x45c284(0x192)])console['log'](_0x7cad77[_0x45c284(0x1bc)]),_0x178d41?.['trackPhaseEnd'](_0x7cad77['fnZTg'],{'isFirstRun':_0x3613c4,'method':_0x45c284(0x1ad)});else{_0x178d41?.['trackPhaseStart'](_0x7cad77[_0x45c284(0x1d5)]);const _0x4f9976=await _0x7cad77[_0x45c284(0x1c4)](authenticate,_0x218159);_0x178d41?.['trackPhaseEnd'](_0x45c284(0x1ab),{'isFirstRun':_0x3613c4,'method':_0x4f9976['method']});}_0x178d41?.['trackPhaseStart'](_0x7cad77['NukDd']);_0x510947?.['skipChromium']?console['log'](_0x7cad77['AZEJq']):await ensureChromium(_0x510947?.[_0x45c284(0x18e)]);_0x178d41?.[_0x45c284(0x1f6)](_0x7cad77[_0x45c284(0x1c3)],{'isFirstRun':_0x3613c4,'skipped':!!_0x510947?.['skipChromium']});!_0x3ce0eb&&await writeRangerGitignore(_0x39f011);console[_0x45c284(0x19e)](_0x7cad77['Jlicy']);const _0x2cbc1a=_0x510947?.['scope'],_0x51d0d3=_0x510947?.[_0x45c284(0x1ea)]??![];let _0x24b5a7=null;_0x51d0d3?(_0x178d41?.['trackPhaseStart'](_0x7cad77['ADOCE']),_0x24b5a7=await _0x7cad77[_0x45c284(0x1a4)](ensureOpencodePluginConfig,_0x2cbc1a),_0x178d41?.['trackPhaseEnd'](_0x7cad77[_0x45c284(0x184)],{'isFirstRun':_0x3613c4,'opencode':!![]})):(_0x178d41?.['trackPhaseStart'](_0x7cad77['ADOCE']),await ensureClaudePlugin(_0x2cbc1a),_0x178d41?.['trackPhaseEnd'](_0x7cad77[_0x45c284(0x184)],{'isFirstRun':_0x3613c4}));if(_0x51d0d3&&_0x24b5a7){_0x178d41?.['trackPhaseStart']('skills');try{await _0x7cad77['gDUBX'](installSkill,_0x7cad77['mMBBw'],{'level':_0x24b5a7[_0x45c284(0x1bf)],'cliVersion':_0x7cad77['kYFhR'](getCurrentVersion),'platform':_0x7cad77['rQusG']}),_0x178d41?.[_0x45c284(0x1f6)](_0x45c284(0x1f9),{'isFirstRun':_0x3613c4,'opencode':!![]});}catch(_0xff92fd){console['warn'](_0x7cad77[_0x45c284(0x1da)],_0xff92fd instanceof Error?_0xff92fd[_0x45c284(0x1f3)]:_0xff92fd),_0x178d41?.[_0x45c284(0x1f6)](_0x7cad77['FPgul'],{'isFirstRun':_0x3613c4,'opencode':!![],'failed':!![]});}}else _0x178d41?.[_0x45c284(0x1de)]('skills'),await _0x7cad77[_0x45c284(0x1d8)](ensureClaudeSkills,_0x2cbc1a),_0x178d41?.[_0x45c284(0x1f6)](_0x7cad77[_0x45c284(0x185)],{'isFirstRun':_0x3613c4});if(_0x510947?.['skipAuth'])console['log'](_0x45c284(0x1ba));else{if(!_0x4cd57c&&!_0x510947?.[_0x45c284(0x196)])console['log'](_0x7cad77[_0x45c284(0x19c)]),console[_0x45c284(0x19e)]('\x20\x20'+bold('ranger\x20profile\x20add\x20local')+'\x0a');else{_0x178d41?.[_0x45c284(0x1de)](_0x45c284(0x1f8));const _0xb5b338=await ensureLocalEnv({'url':_0x510947?.['url'],'force':_0x510947?.[_0x45c284(0x1cb)],'allowInsecureLocalhost':_0x510947?.[_0x45c284(0x1bd)],'scope':_0x510947?.['scope']===_0x7cad77[_0x45c284(0x1c7)]?_0x7cad77['bYNOt']:undefined},_0x178d41);_0x178d41?.[_0x45c284(0x1f6)](_0x7cad77['aIntX'],{'isFirstRun':_0x3613c4,'profileReady':_0xb5b338['ready'],'userSkipped':_0xb5b338['skipped']}),_0xb5b338['ready']&&console['log'](_0x45c284(0x1f5));}}if(_0x51d0d3)console['log']('\x0aIn\x20OpenCode,\x20enable\x20Ranger\x20hooks\x20(run\x20the\x20`ranger_enable`\x20tool)'),console['log']('and\x20prompt\x20the\x20agent\x20like\x20usual.\x20Ranger\x20will\x20create\x20a\x20feature\x20review'),console['log'](_0x7cad77[_0x45c284(0x1f4)]),console['log'](_0x7cad77['MEnlX']);else{const _0xdc52a2=bold(_0x7cad77['vMQxN']);console['log'](_0x7cad77[_0x45c284(0x1e3)](_0x45c284(0x1e9)+_0xdc52a2+_0x45c284(0x188)+_0x45c284(0x19f),_0x45c284(0x1c0))+'\x0averification\x20to\x20check\x20its\x20work\x20as\x20it\x20builds.');}}
|
|
1
|
+
const _0x6622a8=_0x4fe4;(function(_0x212ebb,_0x44dad2){const _0x1c7b7b=_0x4fe4,_0x4defaf=_0x212ebb();while(!![]){try{const _0x56f30c=parseInt(_0x1c7b7b(0x148))/0x1*(-parseInt(_0x1c7b7b(0x153))/0x2)+-parseInt(_0x1c7b7b(0xf4))/0x3+parseInt(_0x1c7b7b(0x125))/0x4*(-parseInt(_0x1c7b7b(0x12d))/0x5)+parseInt(_0x1c7b7b(0x101))/0x6*(-parseInt(_0x1c7b7b(0x13b))/0x7)+parseInt(_0x1c7b7b(0x12e))/0x8+parseInt(_0x1c7b7b(0x145))/0x9+parseInt(_0x1c7b7b(0x147))/0xa;if(_0x56f30c===_0x44dad2)break;else _0x4defaf['push'](_0x4defaf['shift']());}catch(_0x3a822a){_0x4defaf['push'](_0x4defaf['shift']());}}}(_0x2e8e,0x30706));import{mkdir,writeFile}from'fs/promises';import{join}from'path';import{existsSync}from'fs';import{createRequire}from'module';import{spawn}from'child_process';import _0x1b6e77 from'inquirer';import{getToken,storeToken}from'./utils/keychain.js';import{getCurrentUser}from'./utils/userApi.js';import{chromium}from'playwright';import{addEnv}from'./addEnv.js';import{getRangerDir,getRangerHomeDir,findGitRoot}from'./utils/rangerRoot.js';import{runDeviceAuthFlow}from'./utils/deviceAuth.js';import{findExistingEnv}from'./utils/settings.js';import{getCurrentVersion}from'./utils/version.js';import{ensureClaudePlugin,ensureClaudeSkills}from'./setup/claude.js';import{ensureOpencodePluginConfig}from'./setup/opencode.js';function _0x2e8e(){const _0x16ea15=['git_check','\x0a✅\x20Ranger\x20setup\x20complete!\x0a','kWTjS','\x0averification\x20to\x20check\x20its\x20work\x20as\x20it\x20builds.','existing_token','pEPnC','profile','XWnuI','jRAYq','force','No\x20git\x20repository\x20found','✓\x20Playwright\x20Chromium\x20browser\x20found','✓\x20Stored\x20credentials\x20locally','\x20and\x20','Installation\x20failed\x20with\x20exit\x20code\x20','229284LyzUDB',')\x20of\x20the\x20Playwright\x20Chromium\x20browser\x20is\x20not\x20installed.\x20Install\x20it\x20now?','isTTY','\x20install\x20chromium','\x0aagent\x20like\x20usual.\x20Claude\x20will\x20create\x20a\x20feature\x20review\x20with','jKDHA','Could\x20not\x20determine\x20local\x20Playwright\x20version.\x20Install\x20Playwright\x20Chromium\x20using\x20fallback\x20version\x20','You\x20can\x20install\x20it\x20manually\x20by\x20running:','digBI','install','MoqfW','stdout','local','42540XPUiTs','confirm','PNpPM','✓\x20Already\x20authenticated\x20to\x20','LtTBK','aOlod','AZZLA','log','organizationName','1.58.2','JHsTa','Authentication\x20failed:\x20','\x0aInstalling\x20Chromium\x20browser...\x0a','stdin','user','close','trackPhaseStart','GDVSL','✓\x20Local\x20profile\x20already\x20exists','iZSIL','evIkM','stMAt','opencode','resolve','\x0aIn\x20Claude\x20Code,\x20run\x20','skipChromium','ranger','\x20now?','playwright@','skipped','Failed\x20to\x20connect\x20to\x20MCP\x20server:\x20','LSLzH','\x20(fallback\x20version)','Failed\x20to\x20validate\x20provisioned\x20API\x20key:\x20','✓\x20Authenticated\x20to\x20','scope','12236aUWblM','sNsKE','RANGER_TEST_USERNAME','zZfja','\x20for\x20explicit\x20profile\x20management).','\x0aIn\x20OpenCode,\x20enable\x20Ranger\x20hooks\x20(run\x20the\x20`ranger_enable`\x20tool)','PmotB','GkNit','405xJaNSJ','2248824CIQumc','iAgWs','.\x20Please\x20check\x20your\x20API\x20token\x20and\x20try\x20again.','✓\x20Created\x20.ranger/.gitignore','provided_token','\x0a❌\x20Profile\x20setup\x20failed:','✓\x20Exported\x20credentials\x20for\x20CI','error','ranger\x20profile\x20add','pgNJa','version','eEQfd','plugin','154UmVWhO','iQjUG','Zvyls','\x20directory\x20already\x20exists','ready','message','\x20and\x20prompt\x20the\x20coding','success','auth','RANGER_TEST_PASSWORD','2438820dGWGMd','\x0a🚀\x20Ranger\x20Setup\x0a','3020590SDVcyp','175549HfSjHu','JsBxH','inherit','\x20directory','url','trackPhaseEnd','.\x20Please\x20check\x20your\x20network\x20connection\x20and\x20server\x20URL.','tdkml','✓\x20Skipping\x20authentication\x20(--skip-auth)','--with-deps','✓\x20Created\x20','2PceoOH','ignore','platform','VficC','NofEv','mwPQa'];_0x2e8e=function(){return _0x16ea15;};return _0x2e8e();}import{installSkill}from'./utils/skills.js';const require=createRequire(import.meta.url);export const PLAYWRIGHT_CHROMIUM_INSTALL_FALLBACK_VERSION=_0x6622a8(0x10a);function _0x4fe4(_0x399a76,_0xf64eec){_0x399a76=_0x399a76-0xe8;const _0x2e8efe=_0x2e8e();let _0x4fe4b3=_0x2e8efe[_0x399a76];return _0x4fe4b3;}const bold=_0x153ffa=>'\x1b[1m'+_0x153ffa+'\x1b[0m';export function getPlaywrightVersion(){const _0xca4257=_0x6622a8,_0x801f30={'cBWnq':function(_0x8f1e48,_0x3ae8c6){return _0x8f1e48(_0x3ae8c6);}};try{const _0x11f3e1=require[_0xca4257(0x118)]('playwright/package.json'),_0xfaf32f=_0x801f30['cBWnq'](require,_0x11f3e1);return _0xfaf32f[_0xca4257(0x138)];}catch{return null;}}export function installChromiumBinary(_0x56c5a4,_0x57f2e0=![]){const _0x126d36=_0x6622a8,_0x4b31c7={'sNsKE':function(_0x29baeb,_0x102b2f){return _0x29baeb(_0x102b2f);},'GkNit':_0x126d36(0x151),'zZfja':'chromium','LSLzH':_0x126d36(0x154),'stMAt':_0x126d36(0x14a),'vDSEq':function(_0x4a07ac,_0x5a5ae7){return _0x4a07ac===_0x5a5ae7;},'QqtqD':_0x126d36(0x110),'XWnuI':_0x126d36(0x135)};return new Promise((_0x3b892f,_0x1fa3c2)=>{const _0x516d54=_0x126d36,_0x3e015d={'NUMpV':function(_0x2ede39,_0x2b849f){return _0x2ede39===_0x2b849f;},'wGxoE':function(_0xbc3931){return _0xbc3931();},'ogZXv':function(_0x146ffc,_0x300006){return _0x146ffc(_0x300006);},'MkvVd':function(_0x4c4fa9,_0x4b5f5c){const _0x28663a=_0x4fe4;return _0x4b31c7[_0x28663a(0x126)](_0x4c4fa9,_0x4b5f5c);}},_0x55842e=[_0x516d54(0x11d)+_0x56c5a4,_0x516d54(0xfd),..._0x57f2e0?[_0x4b31c7[_0x516d54(0x12c)]]:[],_0x4b31c7[_0x516d54(0x128)]],_0x3a6be3=spawn('npx',_0x55842e,{'stdio':[_0x4b31c7[_0x516d54(0x120)],_0x4b31c7['stMAt'],_0x4b31c7[_0x516d54(0x116)]],'shell':_0x4b31c7['vDSEq'](process[_0x516d54(0x155)],'win32')});_0x3a6be3['on'](_0x4b31c7['QqtqD'],_0x5d7b7d=>{const _0x39aa79=_0x516d54;_0x3e015d['NUMpV'](_0x5d7b7d,0x0)?_0x3e015d['wGxoE'](_0x3b892f):_0x3e015d['ogZXv'](_0x1fa3c2,new Error(_0x39aa79(0xf3)+_0x5d7b7d));}),_0x3a6be3['on'](_0x4b31c7[_0x516d54(0xec)],_0x129116=>{_0x3e015d['MkvVd'](_0x1fa3c2,_0x129116);});});}export async function authenticate(_0x1e3f87){const _0x28b03a=_0x6622a8,_0x5c45cd={'lbakf':function(_0x41fa74){return _0x41fa74();},'JsBxH':function(_0x2b75b1,_0x5ebf7b){return _0x2b75b1(_0x5ebf7b);},'xQYxj':function(_0x59637a,_0x5be6de){return _0x59637a(_0x5be6de);},'zNDdr':_0x28b03a(0xf1),'evIkM':_0x28b03a(0x132)};if(!_0x1e3f87){const _0x437d57=await _0x5c45cd['lbakf'](getToken);if(_0x437d57){const _0x3c1712=await getCurrentUser(_0x437d57);if(_0x3c1712['success'])return console['log'](_0x28b03a(0x104)+_0x3c1712['user']['organizationName']),{'token':_0x437d57,'method':_0x28b03a(0xe9)};}try{_0x1e3f87=await _0x5c45cd['lbakf'](runDeviceAuthFlow);}catch(_0x3cddef){throw new Error(_0x28b03a(0x10c)+(_0x3cddef instanceof Error?_0x3cddef['message']:_0x3cddef));}const _0x19fafc=await _0x5c45cd[_0x28b03a(0x149)](getCurrentUser,_0x1e3f87);if(!_0x19fafc['success'])throw new Error(_0x28b03a(0x122)+_0x19fafc[_0x28b03a(0x135)]);return console[_0x28b03a(0x108)]('✓\x20Authenticated\x20to\x20'+_0x19fafc['user'][_0x28b03a(0x109)]),{'token':_0x1e3f87,'method':'device_auth'};}console[_0x28b03a(0x108)]('Validating\x20API\x20token...');const _0x254cb5=await getCurrentUser(_0x1e3f87);if(!_0x254cb5[_0x28b03a(0x142)]){if(_0x254cb5['status'])throw new Error(_0x28b03a(0x10c)+_0x254cb5[_0x28b03a(0x135)]+_0x28b03a(0x130));else throw new Error(_0x28b03a(0x11f)+_0x254cb5[_0x28b03a(0x135)]+_0x28b03a(0x14e));}return console['log'](_0x28b03a(0x123)+_0x254cb5['user'][_0x28b03a(0x109)]),await _0x5c45cd['xQYxj'](storeToken,_0x1e3f87),console[_0x28b03a(0x108)](process['env']['GITHUB_ENV']?_0x28b03a(0x134):_0x5c45cd['zNDdr']),{'token':_0x1e3f87,'method':_0x5c45cd[_0x28b03a(0x115)]};}export async function ensureRangerDir(_0x340617){const _0x5c741a=_0x6622a8,_0x4f5ec7={'FUEqf':'user','fmoqg':'~/.ranger/','PmotB':function(_0x5566e1,_0x2a3264){return _0x5566e1===_0x2a3264;},'iXoBy':function(_0x30b01f){return _0x30b01f();},'lektr':function(_0x4f0f83,_0x3ae4ab,_0x20c723){return _0x4f0f83(_0x3ae4ab,_0x20c723);}};let _0x1ad234;const _0x2e3088=_0x340617===_0x4f5ec7['FUEqf']?_0x4f5ec7['fmoqg']:'.ranger/';if(_0x4f5ec7[_0x5c741a(0x12b)](_0x340617,_0x4f5ec7['FUEqf']))_0x1ad234=_0x4f5ec7['iXoBy'](getRangerHomeDir);else{const _0x2fb6df=findGitRoot();_0x1ad234=_0x2fb6df?_0x4f5ec7['lektr'](join,_0x2fb6df,'.ranger'):getRangerDir();}return!existsSync(_0x1ad234)?(await mkdir(_0x1ad234,{'recursive':!![]}),console['log'](_0x5c741a(0x152)+_0x2e3088+_0x5c741a(0x14b)),{'path':_0x1ad234,'installed':!![]}):(console['log']('✓\x20'+_0x2e3088+_0x5c741a(0x13e)),{'path':_0x1ad234,'installed':![]});}export async function ensureChromium(_0x39d312=![]){const _0x551c75=_0x6622a8,_0x3c7d9a={'GDVSL':_0x551c75(0xf0),'jRAYq':function(_0x3fb99e){return _0x3fb99e();},'DVSgA':function(_0x93d61e,_0x475db9){return _0x93d61e??_0x475db9;},'aOlod':function(_0x352848,_0x4f7514,_0x5d952a){return _0x352848(_0x4f7514,_0x5d952a);},'JHsTa':function(_0x3d8a68,_0x21e778){return _0x3d8a68 instanceof _0x21e778;},'Svcst':_0x551c75(0xfb)};let _0x33870e=![];try{const _0x5a9fa2=chromium['executablePath']();_0x33870e=existsSync(_0x5a9fa2);}catch{_0x33870e=![];}if(_0x33870e)return console['log'](_0x3c7d9a[_0x551c75(0x112)]),![];const _0x382284=_0x3c7d9a[_0x551c75(0xed)](getPlaywrightVersion),_0x4416a6=_0x3c7d9a['DVSgA'](_0x382284,PLAYWRIGHT_CHROMIUM_INSTALL_FALLBACK_VERSION),_0x42f2de=!_0x382284,_0x566520=process['stdin'][_0x551c75(0xf6)]&&process['stdout'][_0x551c75(0xf6)];let _0x5edfcf=!![];if(_0x566520){const {install:_0x5d06dc}=await _0x1b6e77['prompt']([{'type':_0x551c75(0x102),'name':'install','message':_0x42f2de?_0x551c75(0xfa)+_0x4416a6+_0x551c75(0x11c):'The\x20required\x20version\x20('+_0x4416a6+_0x551c75(0xf5),'default':!![]}]);_0x5edfcf=_0x5d06dc;}else console['log']('\x0aNon-interactive\x20mode:\x20Auto-installing\x20Playwright\x20Chromium\x20'+_0x4416a6+(_0x42f2de?_0x551c75(0x121):'')+'...');if(_0x5edfcf){console['log'](_0x551c75(0x10d));try{await _0x3c7d9a[_0x551c75(0x106)](installChromiumBinary,_0x4416a6,_0x39d312),console[_0x551c75(0x108)]('\x0a✓\x20Playwright\x20Chromium\x20installed\x20successfully');}catch(_0x5b74ce){console[_0x551c75(0x135)]('\x0a❌\x20Failed\x20to\x20install\x20Chromium:',_0x3c7d9a[_0x551c75(0x10b)](_0x5b74ce,Error)?_0x5b74ce['message']:_0x5b74ce),console['log'](_0x3c7d9a['Svcst']),console['log']('\x20\x20npx\x20playwright@'+_0x4416a6+_0x551c75(0xf7));}}else console['log']('\x0a⚠\x20Skipping\x20Chromium\x20installation.'),console[_0x551c75(0x108)]('You\x20will\x20need\x20to\x20install\x20it\x20before\x20using\x20Ranger:'),console['log']('\x20\x20npx\x20playwright@'+_0x4416a6+_0x551c75(0xf7));return!![];}export async function writeRangerGitignore(_0x18e037){const _0x41ec17=_0x6622a8,_0x423e80={'jKDHA':'.gitignore','pEPnC':_0x41ec17(0x131)},_0x21e76f=join(_0x18e037,_0x423e80[_0x41ec17(0xf9)]),_0x4b1f4b='\x0a\x0a#\x20Ignore\x20local-only\x20directories\x0alocal/\x0asessions/\x0abug-bashes/\x0areports/\x0afeedback-images/\x0a\x0aactive-profile.txt\x0aactive-feature.txt\x0a.gitignore\x0a\x0a#\x20Ignore\x20plaintext\x20auth\x20files\x20(encrypted\x20.enc\x20files\x20are\x20safe\x20to\x20commit)\x0a**/auth.json\x0a';await writeFile(_0x21e76f,_0x4b1f4b),console['log'](_0x423e80[_0x41ec17(0xea)]);}export async function ensureLocalEnv(_0x2ed23a,_0x1fc1be){const _0x1d1b89=_0x6622a8,_0x43017b={'IzQeI':function(_0x491be6){return _0x491be6();},'AZZLA':function(_0x498fe0,_0x2a717a){return _0x498fe0!==_0x2a717a;},'gesqr':'user','mNucx':function(_0x2de94c,_0x4b9eb8){return _0x2de94c===_0x4b9eb8;},'lkcSx':_0x1d1b89(0x100),'piGXx':function(_0x57ea2c,_0x258826){return _0x57ea2c instanceof _0x258826;}};if(!_0x43017b['IzQeI'](findGitRoot)&&_0x43017b[_0x1d1b89(0x107)](_0x2ed23a?.['scope'],_0x43017b['gesqr']))return console['log']('⚠\x20No\x20git\x20repository\x20found.\x20Re-run\x20with\x20`--scope\x20user`\x20to\x20store\x20the\x20profile\x20at\x20~/.ranger/.'),{'ready':![],'skipped':!![]};const _0x58fdaf=_0x43017b['mNucx'](_0x2ed23a?.['scope'],_0x43017b['gesqr'])?getRangerHomeDir():undefined;if(findExistingEnv(_0x43017b['lkcSx'],{'locations':['local'],'rangerDir':_0x58fdaf}))return console[_0x1d1b89(0x108)](_0x1d1b89(0x113)),{'ready':!![],'skipped':![]};try{return await addEnv('local',{'url':_0x2ed23a?.[_0x1d1b89(0x14c)],'force':_0x2ed23a?.['force'],'allowInsecureLocalhost':_0x2ed23a?.['allowInsecureLocalhost'],'scope':_0x2ed23a?.[_0x1d1b89(0x124)]},_0x1fc1be),{'ready':!![],'skipped':![]};}catch(_0x2a00a1){return console[_0x1d1b89(0x135)](_0x1d1b89(0x133),_0x43017b['piGXx'](_0x2a00a1,Error)?_0x2a00a1[_0x1d1b89(0x140)]:_0x2a00a1),{'ready':![],'skipped':![]};}}export async function start(_0x39f48b,_0x35d168,_0x2273dd){const _0x971fad=_0x6622a8,_0x4a1899={'SnwcM':function(_0x1b9b13,_0x25fd4b){return _0x1b9b13===_0x25fd4b;},'MoqfW':_0x971fad(0x10f),'kWTjS':'git_check','jzRSB':'No\x20git\x20repository\x20found\x20for\x20--scope\x20project.\x20Re-run\x20without\x20`--scope\x20project`\x20to\x20install\x20at\x20user\x20scope.','eEQfd':function(_0x247124,_0x18e320){return _0x247124(_0x18e320);},'VficC':function(_0x3650a0){return _0x3650a0();},'wjZcL':function(_0x5d62a2,_0x32833c){return _0x5d62a2(_0x32833c);},'Zvyls':_0x971fad(0x11e),'digBI':_0x971fad(0x143),'rupXZ':'chromium','iAgWs':'✓\x20Skipping\x20Chromium\x20check\x20(--skip-chromium)','gSArs':function(_0x46da5a,_0x1a9596){return _0x46da5a(_0x1a9596);},'tdkml':'plugin','PNpPM':function(_0x2d898e,_0x5ee69a){return _0x2d898e(_0x5ee69a);},'lEwet':function(_0x856731,_0x542097){return _0x856731(_0x542097);},'NofEv':function(_0x3eddc3,_0x33e9ad){return _0x3eddc3&&_0x33e9ad;},'iQjUG':function(_0xfd7791,_0x1c0b7f,_0x5b5161){return _0xfd7791(_0x1c0b7f,_0x5b5161);},'EyMxr':_0x971fad(0x11b),'bGIoM':'opencode','izJwH':function(_0x24440,_0x2d6fcd){return _0x24440 instanceof _0x2d6fcd;},'UkUiH':'skills','LtTBK':function(_0x16ba41,_0x2afc2d){return _0x16ba41(_0x2afc2d);},'Yehxc':'\x0aSkipping\x20profile\x20setup\x20(--skip-auth).\x20Run\x20`ranger\x20setup`\x20with\x20auth\x20to\x20add\x20a\x20profile\x20later.\x0a','mwPQa':function(_0x47caa0,_0x30c58f){return _0x47caa0(_0x30c58f);},'tGAKl':_0x971fad(0x127),'iZSIL':_0x971fad(0x144),'iaHll':function(_0x4770ae,_0x18ed69){return _0x4770ae(_0x18ed69);},'wsXir':'verification\x20to\x20check\x20its\x20work\x20as\x20it\x20builds.','vWLHB':'/ranger:enable','pgNJa':function(_0x5afb3e,_0x463ea5){return _0x5afb3e+_0x463ea5;}};console[_0x971fad(0x108)](_0x971fad(0x146));const _0x590546=process[_0x971fad(0x10e)][_0x971fad(0xf6)]&&process[_0x971fad(0xff)][_0x971fad(0xf6)];!_0x35d168?.[_0x971fad(0x124)]&&(_0x35d168={..._0x35d168,'scope':_0x971fad(0x10f)});const _0x262da2=_0x4a1899['SnwcM'](_0x35d168?.[_0x971fad(0x124)],_0x4a1899[_0x971fad(0xfe)]);_0x2273dd?.['trackPhaseStart'](_0x4a1899[_0x971fad(0x15b)]);if(!_0x262da2&&!findGitRoot()){await _0x2273dd?.['trackPhaseError']('git_check',new Error(_0x971fad(0xef)));throw new Error(_0x4a1899['jzRSB']);}_0x2273dd?.[_0x971fad(0x14d)](_0x971fad(0x159));const _0x3edff8=_0x262da2?!_0x4a1899[_0x971fad(0x139)](existsSync,_0x4a1899[_0x971fad(0x156)](getRangerHomeDir)):!_0x4a1899['wjZcL'](existsSync,getRangerDir()),{path:_0x1a8593}=await ensureRangerDir(_0x262da2?'user':undefined);if(_0x35d168?.['skipAuth'])console[_0x971fad(0x108)](_0x971fad(0x150)),_0x2273dd?.[_0x971fad(0x14d)]('auth',{'isFirstRun':_0x3edff8,'method':_0x4a1899[_0x971fad(0x13d)]});else{_0x2273dd?.['trackPhaseStart'](_0x4a1899['digBI']);const _0x136bc3=await authenticate(_0x39f48b);_0x2273dd?.['trackPhaseEnd'](_0x4a1899[_0x971fad(0xfc)],{'isFirstRun':_0x3edff8,'method':_0x136bc3['method']});}_0x2273dd?.[_0x971fad(0x111)](_0x4a1899['rupXZ']);_0x35d168?.[_0x971fad(0x11a)]?console['log'](_0x4a1899[_0x971fad(0x12f)]):await _0x4a1899['wjZcL'](ensureChromium,_0x35d168?.['withDeps']);_0x2273dd?.['trackPhaseEnd']('chromium',{'isFirstRun':_0x3edff8,'skipped':!!_0x35d168?.[_0x971fad(0x11a)]});!_0x262da2&&await _0x4a1899['gSArs'](writeRangerGitignore,_0x1a8593);console[_0x971fad(0x108)](_0x971fad(0x15a));const _0x1de66d=_0x35d168?.['scope'],_0x9e002a=_0x35d168?.[_0x971fad(0x117)]??![];let _0x5a9486=null;_0x9e002a?(_0x2273dd?.['trackPhaseStart'](_0x4a1899[_0x971fad(0x14f)]),_0x5a9486=await _0x4a1899[_0x971fad(0x103)](ensureOpencodePluginConfig,_0x1de66d),_0x2273dd?.['trackPhaseEnd'](_0x4a1899[_0x971fad(0x14f)],{'isFirstRun':_0x3edff8,'opencode':!![]})):(_0x2273dd?.[_0x971fad(0x111)](_0x971fad(0x13a)),await _0x4a1899['lEwet'](ensureClaudePlugin,_0x1de66d),_0x2273dd?.[_0x971fad(0x14d)](_0x4a1899[_0x971fad(0x14f)],{'isFirstRun':_0x3edff8}));if(_0x4a1899[_0x971fad(0x157)](_0x9e002a,_0x5a9486)){_0x2273dd?.[_0x971fad(0x111)]('skills');try{await _0x4a1899[_0x971fad(0x13c)](installSkill,_0x4a1899['EyMxr'],{'level':_0x5a9486['scope'],'cliVersion':getCurrentVersion(),'platform':_0x4a1899['bGIoM']}),_0x2273dd?.['trackPhaseEnd']('skills',{'isFirstRun':_0x3edff8,'opencode':!![]});}catch(_0x54a5b7){console['warn']('\x20\x20Failed\x20to\x20install\x20OpenCode\x20skill:',_0x4a1899['izJwH'](_0x54a5b7,Error)?_0x54a5b7['message']:_0x54a5b7),_0x2273dd?.['trackPhaseEnd'](_0x4a1899['UkUiH'],{'isFirstRun':_0x3edff8,'opencode':!![],'failed':!![]});}}else _0x2273dd?.['trackPhaseStart'](_0x4a1899['UkUiH']),await _0x4a1899[_0x971fad(0x105)](ensureClaudeSkills,_0x1de66d),_0x2273dd?.[_0x971fad(0x14d)](_0x4a1899['UkUiH'],{'isFirstRun':_0x3edff8});if(_0x35d168?.['skipAuth'])console[_0x971fad(0x108)](_0x4a1899['Yehxc']);else{if(_0x35d168?.['url']){_0x2273dd?.['trackPhaseStart']('profile');const _0x3c30c2=await ensureLocalEnv({'url':_0x35d168['url'],'force':_0x35d168?.[_0x971fad(0xee)],'allowInsecureLocalhost':_0x35d168?.['allowInsecureLocalhost'],'scope':_0x4a1899['SnwcM'](_0x35d168?.[_0x971fad(0x124)],_0x4a1899['MoqfW'])?_0x4a1899['MoqfW']:undefined},_0x2273dd);_0x2273dd?.['trackPhaseEnd'](_0x971fad(0xeb),{'isFirstRun':_0x3edff8,'profileReady':_0x3c30c2[_0x971fad(0x13f)],'userSkipped':_0x3c30c2['skipped']});}else console[_0x971fad(0x108)]('\x0aTo\x20verify\x20with\x20a\x20browser:\x20set\x20'+_0x4a1899[_0x971fad(0x158)](bold,_0x4a1899['tGAKl'])+_0x971fad(0xf2)+bold(_0x4a1899[_0x971fad(0x114)])),console['log']('\x20\x20(or\x20use\x20'+_0x4a1899['iaHll'](bold,_0x971fad(0x136))+_0x971fad(0x129));}if(_0x9e002a)console['log'](_0x971fad(0x12a)),console['log']('and\x20prompt\x20the\x20agent\x20like\x20usual.\x20Ranger\x20will\x20create\x20a\x20feature\x20review'),console['log']('with\x20scenarios\x20describing\x20what\x20to\x20verify\x20and\x20then\x20run\x20browser'),console['log'](_0x4a1899['wsXir']);else{const _0x48e077=bold(_0x4a1899['vWLHB']);console[_0x971fad(0x108)](_0x4a1899[_0x971fad(0x137)](_0x971fad(0x119)+_0x48e077+_0x971fad(0x141)+_0x971fad(0xf8),'\x0ascenarios\x20describing\x20what\x20to\x20verify\x20and\x20then\x20run\x20browser')+_0x971fad(0xe8));}}
|