@drocketxx/pm2me 1.1.22 → 1.1.23

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.
@@ -5,11 +5,11 @@ npm run build`},null,512),[[Be,o.value.buildScript]])]),i("div",h0,[i("div",m0,[
5
5
  `;try{const k=await(await fetch("/api/system/update",{method:"POST",headers:{Authorization:`Bearer ${localStorage.getItem("pm2me_token")}`,"Content-Type":"application/json"}})).json();if(S.value+=(k.output||k.error||"Update initiated")+`
6
6
  `,k.success){S.value+=`
7
7
  Waiting for service to restart...
8
- `;let G=0;const de=60,le=async()=>{try{const se=await fetch("/api/system/version-check",{headers:{Authorization:`Bearer ${localStorage.getItem("pm2me_token")}`}});if(se.ok){const Ce=await se.json();return S.value+=`✓ Service restarted successfully!
8
+ `;let G=0;const de=60,le=async()=>{G++;try{const se=await fetch("/api/system/version-check",{headers:{Authorization:`Bearer ${localStorage.getItem("pm2me_token")}`},signal:AbortSignal.timeout(5e3)});if(se.ok){const Ce=await se.json();return S.value+=`
9
+ ✓ Service restarted successfully!
9
10
  `,S.value+=`✓ New version: v${Ce.current}
10
- `,S.value+=`
11
- Reloading UI in 2 seconds...`,setTimeout(()=>{window.location.reload()},2e3),!0}}catch{}return G++,G>=de?(S.value+=`
12
- ⚠ Timeout waiting for service. Please refresh manually.`,y.value=!1,!1):(S.value+=".",setTimeout(le,3e3),!1)};setTimeout(le,5e3)}else y.value=!1}catch(W){S.value+=`
11
+ `,S.value+="✓ Reloading UI...",window.location.reload(),!0}}catch{S.value+="."}return G>=de?(S.value+=`
12
+ Timeout waiting for service. Please refresh manually.`,y.value=!1,!1):(setTimeout(le,3e3),!1)};le()}else y.value=!1}catch(W){S.value+=`
13
13
  Error: ${W.message}`,y.value=!1}}};return Gt(async()=>{ie(),D(),await C(),B(),Q()}),rs(()=>{E&&E.disconnect()}),(W,k)=>(w(),_("div",ym,[k[56]||(k[56]=i("h1",{class:"text-3xl font-bold text-white tracking-tight mb-8"},"Settings",-1)),i("div",wm,[k[37]||(k[37]=rt('<div class="p-6 border-b border-slate-700"><h2 class="text-xl font-bold text-white flex items-center"><svg class="w-6 h-6 mr-2 text-blue-400" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.065 2.572c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.572 1.065c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.065-2.572c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z"></path><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 12a3 3 0 11-6 0 3 3 0 016 0z"></path></svg> System Configurations </h2><p class="text-sm text-slate-400 mt-1">Configure Webhooks and Integrations</p></div>',1)),i("div",_m,[i("div",null,[k[9]||(k[9]=i("label",{class:"block text-sm font-medium text-slate-300 mb-2"},"Connected GitHub Accounts",-1)),i("div",km,[(w(!0),_(ve,null,ze(s.value,G=>(w(),_("div",{key:G.id,class:"flex items-center justify-between p-3 bg-slate-900 border border-slate-700 rounded-lg"},[i("div",Cm,[i("img",{src:G.avatarUrl,alt:G.username,class:"w-8 h-8 rounded-full border border-slate-600"},null,8,Sm),i("span",Em,"@"+N(G.username),1)]),i("button",{type:"button",onClick:de=>ae(G.id),class:"text-sm text-red-400 hover:text-red-300 transition-colors"},"Disconnect",8,$m)]))),128)),s.value.length===0?(w(),_("p",Am,"No accounts connected yet.")):J("",!0)]),k[10]||(k[10]=i("label",{class:"block text-sm font-medium text-slate-300 mb-2"},"Add New Account (Personal Access Token)",-1)),i("div",Tm,[ke(i("input",{type:"password","onUpdate:modelValue":k[0]||(k[0]=G=>l.value=G),class:"flex-1 bg-slate-900 border border-slate-600 rounded-lg px-4 py-2.5 text-white focus:ring-2 focus:ring-blue-500 focus:border-transparent outline-none transition-all",placeholder:"ghp_xxxxxxxxxxxxxxxxxxxx"},null,512),[[Be,l.value]]),i("button",{type:"button",onClick:te,disabled:o.value,class:"px-5 py-2.5 bg-slate-700 hover:bg-slate-600 text-slate-200 rounded-lg transition-colors border border-slate-600 disabled:opacity-50 whitespace-nowrap font-medium flex items-center"},[o.value?(w(),_("svg",Rm,[...k[8]||(k[8]=[i("circle",{class:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor","stroke-width":"4"},null,-1),i("path",{class:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"},null,-1)])])):J("",!0),o.value?(w(),_("span",Om,"Testing...")):(w(),_("span",Bm,"Connect"))],8,Mm)]),k[11]||(k[11]=i("p",{class:"mt-1 text-xs text-slate-500"},"Used to fetch repositories and branches automatically when deploying. ",-1))]),k[31]||(k[31]=i("hr",{class:"border-slate-700"},null,-1)),i("div",null,[i("div",Pm,[k[13]||(k[13]=i("label",{class:"block text-sm font-medium text-slate-300"},"GitHub Webhook URL",-1)),i("button",{onClick:k[1]||(k[1]=G=>z(U.value,"URL")),class:"text-xs text-blue-400 hover:text-blue-300 flex items-center transition-colors"},[k[12]||(k[12]=i("svg",{class:"w-3.5 h-3.5 mr-1",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[i("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M8 5H6a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2v-1M8 5a2 2 0 002 2h2a2 2 0 002-2M8 5a2 2 0 012-2h2a2 2 0 012 2m0 0h2a2 2 0 012 2v3m2 4H10m0 0l3-3m-3 3l3 3"})],-1)),K(" "+N(a.value==="URL"?"Copied!":"Copy URL"),1)])]),i("div",Nm,[i("input",{type:"text",value:U.value,readonly:"",class:"w-full bg-slate-900/50 border border-slate-700 rounded-lg px-4 py-2.5 text-slate-400 text-sm font-mono outline-none transition-all cursor-default",placeholder:"Calculating..."},null,8,Im)]),k[14]||(k[14]=i("p",{class:"mt-1 text-[11px] text-slate-500 italic"},"Provide this URL to your GitHub repository's Webhook settings.",-1))]),i("div",null,[i("div",Lm,[k[17]||(k[17]=i("label",{class:"block text-sm font-medium text-slate-300"},"GitHub Webhook Secret",-1)),i("div",jm,[i("button",{onClick:I,class:"text-xs text-emerald-400 hover:text-emerald-300 flex items-center transition-colors"},[...k[15]||(k[15]=[i("svg",{class:"w-3.5 h-3.5 mr-1",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[i("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15"})],-1),K(" Generate ",-1)])]),i("button",{onClick:k[2]||(k[2]=G=>z(t.value.webhookSecret,"Secret")),class:"text-xs text-blue-400 hover:text-blue-300 flex items-center transition-colors"},[k[16]||(k[16]=i("svg",{class:"w-3.5 h-3.5 mr-1",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[i("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M8 5H6a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2v-1M8 5a2 2 0 002 2h2a2 2 0 002-2M8 5a2 2 0 012-2h2a2 2 0 012 2m0 0h2a2 2 0 012 2v3m2 4H10m0 0l3-3m-3 3l3 3"})],-1)),K(" "+N(a.value==="Secret"?"Copied!":"Copy Secret"),1)])])]),i("div",Dm,[ke(i("input",{type:c.value?"text":"password","onUpdate:modelValue":k[3]||(k[3]=G=>t.value.webhookSecret=G),class:"w-full bg-slate-900 border border-slate-600 rounded-lg px-4 py-2.5 text-white focus:ring-2 focus:ring-blue-500 focus:border-transparent outline-none transition-all pr-12",placeholder:"Secret for verifying GitHub payloads"},null,8,Vm),[[yu,t.value.webhookSecret]]),i("button",{onClick:k[4]||(k[4]=G=>c.value=!c.value),class:"absolute right-3 top-1/2 -translate-y-1/2 text-slate-500 hover:text-slate-300 p-1"},[c.value?(w(),_("svg",Hm,[...k[18]||(k[18]=[i("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M13.875 18.825A10.05 10.05 0 0112 19c-4.478 0-8.268-2.943-9.543-7a9.97 9.97 0 011.563-3.029m5.858.908a3 3 0 114.243 4.243M9.878 9.878l4.242 4.242M9.882 9.882L9.881 9.882M9.882 9.882A3.001 3.001 0 0014.15 14.15l-4.268-4.268zm7.665 7.665l2.484 2.484M15.904 15.904a10.023 10.023 0 01-3.904 1.096m-4.06-1.121A10.053 10.053 0 013 12c.5-2.015 1.581-3.76 3.061-5.061m10.878 10.878l-4.243-4.243m4.243 4.243L19 19m-4.732-4.732l-4.242-4.242M4.732 4.732L2 2"},null,-1)])])):(w(),_("svg",Fm,[...k[19]||(k[19]=[i("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M15 12a3 3 0 11-6 0 3 3 0 016 0z"},null,-1),i("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M2.458 12C3.732 7.943 7.523 5 12 5c4.478 0 8.268 2.943 9.542 7-1.274 4.057-5.064 7-9.542 7-4.477 0-8.268-2.943-9.542-7z"},null,-1)])]))])]),i("div",Um,[k[26]||(k[26]=i("h3",{class:"text-sm font-bold text-blue-400 flex items-center"},[i("svg",{class:"w-4 h-4 mr-2",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[i("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"})]),K(" How to setup GitHub Webhook ")],-1)),i("ol",zm,[k[21]||(k[21]=i("li",null,"Open your repository on GitHub.",-1)),k[22]||(k[22]=i("li",null,[K("Go to "),i("span",{class:"text-slate-200"},"Settings"),K(" > "),i("span",{class:"text-slate-200"},"Webhooks"),K(" > "),i("span",{class:"text-slate-200"},"Add webhook"),K(". ")],-1)),i("li",null,[k[20]||(k[20]=K("Payload URL: ",-1)),i("span",Wm,N(U.value),1)]),k[23]||(k[23]=i("li",null,[K("Content type: "),i("span",{class:"text-orange-400 font-bold"},"application/json")],-1)),k[24]||(k[24]=i("li",null,[K("Secret: "),i("span",{class:"text-slate-200"},"Paste your Webhook Secret above")],-1)),k[25]||(k[25]=i("li",null,[K("Which events: "),i("span",{class:"text-slate-200"},"Just the push event"),K(".")],-1))]),k[27]||(k[27]=i("p",{class:"text-[10px] text-slate-500 italic"},"This allows PM2Me to automatically deploy your apps when you push code.",-1))])]),k[32]||(k[32]=i("hr",{class:"border-slate-700"},null,-1)),i("div",null,[k[28]||(k[28]=i("label",{class:"block text-sm font-medium text-slate-300 mb-2"},"Discord Webhook URL",-1)),ke(i("input",{type:"url","onUpdate:modelValue":k[5]||(k[5]=G=>t.value.discordWebhook=G),class:"w-full bg-slate-900 border border-slate-600 rounded-lg px-4 py-2.5 text-white focus:ring-2 focus:ring-blue-500 focus:border-transparent outline-none transition-all",placeholder:"https://discord.com/api/webhooks/..."},null,512),[[Be,t.value.discordWebhook]])]),k[33]||(k[33]=i("hr",{class:"border-slate-700"},null,-1)),i("div",qm,[i("div",null,[k[29]||(k[29]=i("label",{class:"block text-sm font-medium text-slate-300 mb-2"},"Telegram Bot Token",-1)),ke(i("input",{type:"password","onUpdate:modelValue":k[6]||(k[6]=G=>t.value.telegramBotToken=G),class:"w-full bg-slate-900 border border-slate-600 rounded-lg px-4 py-2.5 text-white focus:ring-2 focus:ring-blue-500 focus:border-transparent outline-none transition-all",placeholder:"123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11"},null,512),[[Be,t.value.telegramBotToken]])]),i("div",null,[k[30]||(k[30]=i("label",{class:"block text-sm font-medium text-slate-300 mb-2"},"Telegram Chat ID",-1)),ke(i("input",{type:"text","onUpdate:modelValue":k[7]||(k[7]=G=>t.value.telegramChatId=G),class:"w-full bg-slate-900 border border-slate-600 rounded-lg px-4 py-2.5 text-white focus:ring-2 focus:ring-blue-500 focus:border-transparent outline-none transition-all",placeholder:"-1001234567890"},null,512),[[Be,t.value.telegramChatId]])])])]),i("div",Km,[i("button",{onClick:X,disabled:n.value,class:"px-6 py-2.5 bg-gradient-to-r from-blue-600 to-indigo-600 hover:from-blue-500 hover:to-indigo-500 text-white font-medium rounded-lg transition-all shadow-lg flex items-center disabled:opacity-70"},[n.value?(w(),_("svg",Jm,[...k[34]||(k[34]=[i("circle",{class:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor","stroke-width":"4"},null,-1),i("path",{class:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"},null,-1)])])):(w(),_("svg",Ym,[...k[35]||(k[35]=[i("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M5 13l4 4L19 7"},null,-1)])])),k[36]||(k[36]=K(" Save Settings ",-1))],8,Gm)])]),i("div",Xm,[i("div",Qm,[k[40]||(k[40]=i("div",null,[i("h2",{class:"text-xl font-bold text-white flex items-center gap-2"},[i("svg",{class:"w-5 h-5 text-blue-400",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[i("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15"})]),K(" App Version ")]),i("p",{class:"text-sm text-slate-400 mt-1"},"Check for updates and manage the PM2Me version")],-1)),i("button",{onClick:Q,disabled:h.value,class:"flex items-center gap-2 px-4 py-2 rounded-xl text-sm font-medium bg-slate-700 hover:bg-slate-600 text-slate-300 transition-all disabled:opacity-50"},[(w(),_("svg",{class:oe(["w-4 h-4",{"animate-spin":h.value}]),fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[...k[38]||(k[38]=[i("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15"},null,-1)])],2)),k[39]||(k[39]=K(" Check for Update ",-1))],8,Zm)]),i("div",e1,[i("div",t1,[i("div",s1,[k[41]||(k[41]=i("p",{class:"text-xs text-slate-500 mb-1"},"Current Version",-1)),i("p",n1,"v"+N(u.value.current||"..."),1)]),i("div",o1,[k[42]||(k[42]=i("p",{class:"text-xs text-slate-500 mb-1"},"Latest Release",-1)),i("p",{class:oe(["text-lg font-bold font-mono",u.value.hasUpdate?"text-amber-400":"text-emerald-400"])},N(u.value.latest?"v"+u.value.latest:"-"),3)]),i("div",r1,[u.value.hasUpdate?(w(),_("span",i1,[...k[43]||(k[43]=[i("svg",{class:"w-4 h-4",fill:"currentColor",viewBox:"0 0 20 20"},[i("path",{"fill-rule":"evenodd",d:"M8.257 3.099c.765-1.36 2.722-1.36 3.486 0l5.58 9.92c.75 1.334-.213 2.98-1.742 2.98H4.42c-1.53 0-2.493-1.646-1.743-2.98l5.58-9.92zM11 13a1 1 0 11-2 0 1 1 0 012 0zm-1-8a1 1 0 00-1 1v3a1 1 0 002 0V6a1 1 0 00-1-1z","clip-rule":"evenodd"})],-1),K(" Update available! ",-1)])])):u.value.latest?(w(),_("span",l1,[...k[44]||(k[44]=[i("svg",{class:"w-4 h-4",fill:"currentColor",viewBox:"0 0 20 20"},[i("path",{"fill-rule":"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z","clip-rule":"evenodd"})],-1),K(" Up to date ",-1)])])):b.value?(w(),_("span",a1," No releases found on GitHub ")):(w(),_("span",c1,"Not checked"))])]),u.value.changelog?(w(),_("div",u1,[k[45]||(k[45]=i("p",{class:"text-xs text-slate-500 mb-2 font-medium uppercase tracking-wider"},"Release Notes",-1)),i("pre",d1,N(u.value.changelog),1),u.value.releaseUrl?(w(),_("a",{key:0,href:u.value.releaseUrl,target:"_blank",class:"inline-flex items-center gap-1 mt-2 text-xs text-blue-400 hover:text-blue-300"}," View on GitHub → ",8,f1)):J("",!0)])):J("",!0),u.value.hasUpdate?(w(),_("div",p1,[i("button",{onClick:L,disabled:y.value,class:"flex items-center gap-2 px-5 py-2.5 rounded-xl text-sm font-semibold bg-blue-600 hover:bg-blue-500 text-white transition-all disabled:opacity-50"},[y.value?(w(),_("svg",m1,[...k[46]||(k[46]=[i("circle",{class:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor","stroke-width":"4"},null,-1),i("path",{class:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"},null,-1)])])):(w(),_("svg",g1,[...k[47]||(k[47]=[i("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M4 16v1a3 3 0 003 3h10a3 3 0 003-3v-1m-4-4l-4 4m0 0l-4-4m4 4V4"},null,-1)])])),K(" "+N(y.value?"Updating...":"Update Now"),1)],8,h1),k[48]||(k[48]=i("p",{class:"text-xs text-slate-500"},"Server will restart after update",-1))])):J("",!0),S.value?(w(),_("div",v1,N(S.value),1)):J("",!0)])]),i("div",b1,[i("div",x1,[k[50]||(k[50]=i("div",null,[i("h2",{class:"text-xl font-bold text-white flex items-center"},[i("svg",{class:"w-6 h-6 mr-2 text-emerald-400",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[i("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z"})]),K(" Webhook History ")]),i("p",{class:"text-sm text-slate-400 mt-1"},"Last 50 recorded events (Push, Ping, etc.)")],-1)),i("button",{onClick:C,class:"p-2 text-slate-400 hover:text-white transition-colors",title:"Refresh Logs"},[(w(),_("svg",{class:oe(["w-5 h-5",{"animate-spin":r.value}]),fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[...k[49]||(k[49]=[i("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15"},null,-1)])],2))])]),i("div",y1,[i("table",w1,[k[55]||(k[55]=i("thead",{class:"bg-slate-900/50 text-slate-400 text-xs font-medium uppercase tracking-wider"},[i("tr",null,[i("th",{class:"px-6 py-3 border-b border-slate-700"},"Time"),i("th",{class:"px-6 py-3 border-b border-slate-700"},"Event"),i("th",{class:"px-6 py-3 border-b border-slate-700"},"Repository"),i("th",{class:"px-6 py-3 border-b border-slate-700"},"Status"),i("th",{class:"px-6 py-3 border-b border-slate-700"},"Details")])],-1)),i("tbody",_1,[(w(!0),_(ve,null,ze(p.value,G=>(w(),_("tr",{key:G.id,class:"hover:bg-slate-700/30 transition-colors text-sm"},[i("td",k1,N(j(G.timestamp)),1),i("td",C1,[i("span",{class:oe(["px-2 py-0.5 rounded text-[10px] font-bold uppercase",G.eventType==="push"?"bg-blue-500/20 text-blue-400":"bg-slate-700 text-slate-400"])},N(G.eventType),3)]),i("td",S1,N(G.repository),1),i("td",E1,[G.status==="success"?(w(),_("span",$1,[...k[51]||(k[51]=[i("svg",{class:"w-4 h-4 mr-1",fill:"currentColor",viewBox:"0 0 20 20"},[i("path",{"fill-rule":"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z","clip-rule":"evenodd"})],-1),K(" Success ",-1)])])):G.status==="error"?(w(),_("span",A1,[...k[52]||(k[52]=[i("svg",{class:"w-4 h-4 mr-1",fill:"currentColor",viewBox:"0 0 20 20"},[i("path",{"fill-rule":"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zM8.707 7.293a1 1 0 00-1.414 1.414L8.586 10l-1.293 1.293a1 1 0 101.414 1.414L10 11.414l1.293 1.293a1 1 0 001.414-1.414L11.414 10l1.293-1.293a1 1 0 00-1.414-1.414L10 8.586 8.707 7.293z","clip-rule":"evenodd"})],-1),K(" Error ",-1)])])):(w(),_("span",T1,[k[53]||(k[53]=i("svg",{class:"w-4 h-4 mr-1",fill:"currentColor",viewBox:"0 0 20 20"},[i("path",{"fill-rule":"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a1 1 0 000 2v3a1 1 0 001 1h1a1 1 0 100-2v-3a1 1 0 00-1-1H9z","clip-rule":"evenodd"})],-1)),K(" "+N(G.status),1)]))]),i("td",{class:"px-6 py-4 text-slate-500 text-xs truncate max-w-xs",title:G.details},N(G.details),9,M1)]))),128)),p.value.length===0?(w(),_("tr",R1,[...k[54]||(k[54]=[i("td",{colspan:"5",class:"px-6 py-12 text-center text-slate-500 italic"},' No webhook events recorded yet. Perform a Push or click "Test" on GitHub. ',-1)])])):J("",!0)])])])])]))}},B1={class:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-8 space-y-6"},P1={class:"flex flex-col sm:flex-row justify-between items-start sm:items-center gap-4"},N1={class:"flex items-center gap-3"},I1={class:"relative flex h-2 w-2"},L1={key:0,class:"animate-ping absolute inline-flex h-full w-full rounded-full bg-emerald-400 opacity-75"},j1=["disabled"],D1={class:"grid grid-cols-1 sm:grid-cols-3 gap-4"},V1={class:"bg-slate-800/60 rounded-2xl border border-slate-700 p-4"},H1={class:"text-sm font-semibold text-slate-200 flex items-center gap-2"},F1={class:"text-lg"},U1={class:"bg-slate-800/60 rounded-2xl border border-slate-700 p-4"},z1={class:"bg-slate-800/60 rounded-2xl border border-slate-700 p-4"},W1={class:"text-xs font-mono text-slate-300 break-all"},q1={class:"bg-slate-800/60 rounded-2xl border border-slate-700 p-5"},K1={class:"flex flex-wrap gap-3"},G1=["disabled"],J1=["disabled"],Y1=["disabled"],X1=["disabled"],Q1=["disabled"],Z1={key:0,class:"flex items-center gap-2 text-slate-400 text-sm"},eg={key:0,class:"w-4 h-4",fill:"currentColor",viewBox:"0 0 20 20"},tg={key:1,class:"w-4 h-4",fill:"currentColor",viewBox:"0 0 20 20"},sg={class:"bg-slate-800/60 rounded-2xl border border-slate-700 overflow-hidden"},ng={class:"flex",style:{"min-height":"600px"}},og={class:"flex-shrink-0 bg-slate-900/60 border-r border-slate-700",style:{width:"220px"}},rg={class:"flex items-center justify-between px-3 py-2 border-b border-slate-700/50"},ig={key:0,class:"px-2 py-2 border-b border-slate-700/50"},lg={class:"flex gap-1 mt-1"},ag={class:"overflow-y-auto",style:{"max-height":"560px"}},cg={key:0,class:"px-3 py-4 text-xs text-slate-600 text-center"},ug=["onClick"],dg={class:"flex-1 text-xs font-mono truncate"},fg=["onClick"],pg={key:1,class:"border-t border-slate-700/50 p-2"},hg=["disabled"],mg={key:0,class:"animate-spin w-3.5 h-3.5",fill:"none",viewBox:"0 0 24 24"},gg={class:"text-[10px] text-slate-600 text-center mt-1"},vg={class:"flex-1 flex flex-col overflow-hidden"},bg={class:"flex items-center justify-between px-4 py-3 border-b border-slate-700 bg-slate-900/30"},xg={class:"flex items-center gap-2"},yg={class:"text-sm font-semibold text-slate-300"},wg={class:"text-xs text-slate-600 font-mono"},_g={key:0,class:"text-xs text-amber-400 flex items-center gap-1"},kg={class:"flex items-center gap-2"},Cg=["disabled"],Sg={key:0,class:"w-3.5 h-3.5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},Eg={key:1,class:"animate-spin w-3.5 h-3.5",fill:"none",viewBox:"0 0 24 24"},$g={key:0,class:"flex-1 flex items-center justify-center text-slate-600 text-sm"},Ag={class:"flex overflow-hidden flex-1",style:{background:"#030712"}},Tg=["textContent"],Mg=["innerHTML"],Rg={class:"flex items-center justify-between px-4 py-1.5 border-t border-slate-800 text-xs font-mono",style:{background:"#020617"}},Og={class:"flex items-center gap-4"},Bg={key:0,class:"text-slate-300"},Pg={key:1,class:"text-slate-600 text-xs"},Ng={class:"text-slate-600"},Ig={__name:"Nginx",setup(e){const t=()=>localStorage.getItem("pm2me_token"),s=()=>({Authorization:`Bearer ${t()}`,"Content-Type":"application/json"}),n=F({os:"",confFile:"",confDir:"",installed:!1,version:""}),o=F({running:!1,checking:!1}),r=F([]),l=F(!0),c=F(null),a=F(""),p=F(!1),u=F(!1),h=F(!1),b=F(null),y=F(!1),S=F(!1),E=F(!1),j=F(""),U=F(null),I=F(null),z=F(null),D=F(!1),te=F({line:1,col:1}),ae=/^(server_name|server|location|upstream|http|events|listen|root|index|include|proxy_pass|proxy_set_header|proxy_hide_header|proxy_redirect|proxy_connect_timeout|proxy_read_timeout|proxy_send_timeout|fastcgi_pass|fastcgi_param|fastcgi_index|ssl_certificate|ssl_certificate_key|ssl_protocols|ssl_ciphers|ssl_prefer_server_ciphers|ssl_session_cache|ssl_session_timeout|add_header|return|rewrite|if|set|map|geo|break|last|redirect|permanent|worker_processes|worker_connections|keepalive_timeout|keepalive|gzip|gzip_types|gzip_comp_level|gzip_min_length|gzip_vary|client_max_body_size|client_body_timeout|client_header_timeout|access_log|error_log|log_format|sendfile|tcp_nopush|tcp_nodelay|default_type|charset|expires|autoindex|alias|deny|allow|auth_basic|auth_basic_user_file|limit_req|limit_req_zone|limit_conn|limit_conn_zone|resolver|resolver_timeout|user|pid|daemon|types|pcre_jit|load_module|open_file_cache|open_file_cache_valid|error_page|try_files|internal|proxy_cache|proxy_cache_valid|proxy_buffering)\b/,ie=T=>!T||/[\s;{}()"',]/.test(T);function X(T){return T.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function C(T){const m=T.match(/^(\s*)(#.*)$/);if(m)return`${X(m[1])}<span class="hl-comment">${X(m[2])}</span>`;let f="",v=0;for(;v<T.length;){const d=T.slice(v),g=T[v-1];if(T[v]==="#"&&(v===0||/\s/.test(g))){f+=`<span class="hl-comment">${X(d)}</span>`;break}if(T[v]==='"'){let A=v+1;for(;A<T.length&&T[A]!=='"';)T[A]==="\\"&&A++,A++;f+=`<span class="hl-string">${X(T.slice(v,A+1))}</span>`,v=A+1;continue}if(T[v]==="'"){let A=v+1;for(;A<T.length&&T[A]!=="'";)T[A]==="\\"&&A++,A++;f+=`<span class="hl-string">${X(T.slice(v,A+1))}</span>`,v=A+1;continue}if(T[v]==="$"){const A=d.match(/^(\$[a-zA-Z_][a-zA-Z0-9_]*)/);if(A){f+=`<span class="hl-variable">${X(A[1])}</span>`,v+=A[1].length;continue}}const x=d.match(ae);if(x&&ie(g)&&ie(T[v+x[1].length])){f+=`<span class="hl-keyword">${x[1]}</span>`,v+=x[1].length;continue}const $=d.match(/^(on|off|none|any)\b/);if($&&ie(g)){f+=`<span class="hl-special">${$[1]}</span>`,v+=$[1].length;continue}if(/\d/.test(T[v])&&ie(g)){const A=d.match(/^(\d+[a-z]*)/);if(A&&ie(T[v+A[1].length])){f+=`<span class="hl-number">${A[1]}</span>`,v+=A[1].length;continue}}if(T[v]==="{"||T[v]==="}"){f+=`<span class="hl-brace">${T[v]}</span>`,v++;continue}if(T[v]===";"){f+='<span class="hl-semi">;</span>',v++;continue}f+=X(T[v]),v++}return f}const B=Pe(()=>a.value.split(`
14
14
  `).map(C).join(`
15
15
  `)),Q=Pe(()=>Math.max(1,a.value.split(`
@@ -5,7 +5,7 @@
5
5
  <link rel="icon" type="image/png" href="/icon.png" />
6
6
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
7
7
  <title>PM2Me</title>
8
- <script type="module" crossorigin src="/assets/index-CtJh3zNJ.js"></script>
8
+ <script type="module" crossorigin src="/assets/index-B7WRj0k0.js"></script>
9
9
  <link rel="stylesheet" crossorigin href="/assets/index-Bo3lbcQo.css">
10
10
  </head>
11
11
  <body>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@drocketxx/pm2me",
3
- "version": "1.1.22",
3
+ "version": "1.1.23",
4
4
  "description": "PM2 Deployment and Management System — Web UI for PM2 process management",
5
5
  "type": "module",
6
6
  "main": "backend/app.js",