mirror of
https://github.com/jkingsman/Remote-Terminal-for-MeshCore.git
synced 2026-10-23 01:41:15 +00:00
Remove silly octothorpe bookmark and make the brute forcer naming a bit kinder
This commit is contained in:
1 parent
f9a10e4b6a
commit
9e18c57689
7 files changed
+10
-11
No files matched your search
-1
@@ -1 +0,0 @@
|
||||
{"version":3,"mappings":"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 truncated
|
||||
+3
-3
@@ -78,7 +78,7 @@ No ACL entries`;const a=[`ACL (${r.length})`];for(const o of r){const l=o.name||
|
||||
*
|
||||
* This source code is licensed under the ISC license.
|
||||
* See the LICENSE file in the root directory of this source tree.
|
||||
*/const Dy=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],RA=c0("x",Dy);function Ry({health:r,config:a,onSettingsClick:o,onMenuClick:l}){const d=(r==null?void 0:r.radio_connected)??!1,[f,m]=F.useState(!1),h=async()=>{m(!0);try{const x=await st.reconnectRadio();x.connected&&kt.success("Reconnected",{description:x.message})}catch(x){kt.error("Reconnection failed",{description:x instanceof Error?x.message:"Check radio connection and power"})}finally{m(!1)}};return B.jsxs("div",{className:"flex items-center gap-4 px-4 py-2 bg-[#252525] border-b border-[#333] text-xs",children:[l&&B.jsx("button",{onClick:l,className:"md:hidden p-1 bg-transparent border-none text-[#e0e0e0] cursor-pointer","aria-label":"Open menu",children:B.jsx(Ty,{className:"h-5 w-5"})}),B.jsx("h1",{className:"hidden lg:block text-base font-semibold mr-auto",children:"RemoteTerm"}),B.jsxs("div",{className:"flex items-center gap-1 text-[#888]",children:[B.jsx("div",{className:`w-2 h-2 rounded-full ${d?"bg-[#4caf50]":"bg-[#666]"}`}),B.jsx("span",{className:"hidden lg:inline text-[#e0e0e0]",children:d?"Connected":"Disconnected"})]}),a&&B.jsx("div",{className:"hidden lg:flex items-center gap-1 text-[#888]",children:B.jsx("span",{className:"text-[#e0e0e0]",children:a.name||"Unnamed"})}),B.jsx("div",{className:"flex-1 lg:hidden"}),!d&&B.jsx("button",{onClick:h,disabled:f,className:"px-3 py-1 bg-[#4a3000] border border-[#6b4500] text-[#ffa500] rounded text-xs cursor-pointer hover:bg-[#5a3a00] disabled:opacity-50 disabled:cursor-not-allowed",children:f?"Reconnecting...":"Reconnect"}),B.jsxs("button",{onClick:o,className:"px-3 py-1 bg-[#333] border border-[#444] text-[#e0e0e0] rounded text-xs cursor-pointer hover:bg-[#444]",children:[B.jsx("span",{role:"img","aria-label":"Settings",children:"🔧"})," ","Radio & Config"]})]})}const Wf=2,Fy={text:"🛜",background:"#444444",textColor:"#ffffff"};function Ny(r){let a=0;for(let o=0;o<r.length;o++){const l=r.charCodeAt(o);a=(a<<5)-a+l,a=a&a}return Math.abs(a)}const Ly=/[\u{1F300}-\u{1F9FF}]|[\u{2600}-\u{26FF}]|[\u{2700}-\u{27BF}]|[\u{1F600}-\u{1F64F}]|[\u{1F680}-\u{1F6FF}]|[\u{1F1E0}-\u{1F1FF}]/u;function My(r,a){if(!r)return a.slice(0,2).toUpperCase();const o=r.match(Ly);if(o)return o[0];const l=r.match(/[a-zA-Z]/g);if(!l||l.length===0)return a.slice(0,2).toUpperCase();const d=r.indexOf(" ");if(d!==-1){const f=l[0],m=r.slice(d+1).match(/[a-zA-Z]/);if(m)return(f+m[0]).toUpperCase()}return l[0].toUpperCase()}function Iy(r){const a=Ny(r),o=a%360,l=50+(a>>8)%30,d=35+(a>>16)%20,f=`hsl(${o}, ${l}%, ${d}%)`,m=d<45?"#ffffff":"#000000";return{background:f,text:m}}function Oy(r,a,o){if(o===Wf)return Fy;const l=My(r,a),d=Iy(a);return{text:l,background:d.background,textColor:d.text}}function qf({name:r,publicKey:a,size:o=28,contactType:l}){const d=Oy(r,a,l);return B.jsx("div",{className:"flex items-center justify-center rounded-full font-semibold flex-shrink-0 select-none",style:{backgroundColor:d.background,color:d.textColor,width:o,height:o,fontSize:o*.45},children:d.text})}const FA="remoteterm-favorites";function Nc(){try{const r=localStorage.getItem(FA);return r?JSON.parse(r):[]}catch{return[]}}function NA(r){try{localStorage.setItem(FA,JSON.stringify(r))}catch{}}function zy(r,a){const o=Nc();if(o.some(d=>d.type===r&&d.id===a))return o;const l=[...o,{type:r,id:a}];return NA(l),l}function jy(r,a){const l=Nc().filter(d=>!(d.type===r&&d.id===a));return NA(l),l}function Hs(r,a,o){return r.some(l=>l.type===a&&l.id===o)}function Hy(r,a){return Nc().some(l=>l.type===r&&l.id===a)?jy(r,a):zy(r,a)}function LA(r){var a,o,l="";if(typeof r=="string"||typeof r=="number")l+=r;else if(typeof r=="object")if(Array.isArray(r)){var d=r.length;for(a=0;a<d;a++)r[a]&&(o=LA(r[a]))&&(l&&(l+=" "),l+=o)}else for(o in r)r[o]&&(l&&(l+=" "),l+=o);return l}function MA(){for(var r,a,o=0,l="",d=arguments.length;o<d;o++)(r=arguments[o])&&(a=LA(r))&&(l&&(l+=" "),l+=a);return l}const Vy=(r,a)=>{const o=new Array(r.length+a.length);for(let l=0;l<r.length;l++)o[l]=r[l];for(let l=0;l<a.length;l++)o[r.length+l]=a[l];return o},Uy=(r,a)=>({classGroupId:r,validator:a}),IA=(r=new Map,a=null,o)=>({nextPart:r,validators:a,classGroupId:o}),Sc="-",Fp=[],Zy="arbitrary..",Wy=r=>{const a=Gy(r),{conflictingClassGroups:o,conflictingClassGroupModifiers:l}=r;return{getClassGroupId:m=>{if(m.startsWith("[")&&m.endsWith("]"))return qy(m);const h=m.split(Sc),x=h[0]===""&&h.length>1?1:0;return OA(h,x,a)},getConflictingClassGroupIds:(m,h)=>{if(h){const x=l[m],p=o[m];return x?p?Vy(p,x):x:p||Fp}return o[m]||Fp}}},OA=(r,a,o)=>{if(r.length-a===0)return o.classGroupId;const d=r[a],f=o.nextPart.get(d);if(f){const p=OA(r,a+1,f);if(p)return p}const m=o.validators;if(m===null)return;const h=a===0?r.join(Sc):r.slice(a).join(Sc),x=m.length;for(let p=0;p<x;p++){const y=m[p];if(y.validator(h))return y.classGroupId}},qy=r=>r.slice(1,-1).indexOf(":")===-1?void 0:(()=>{const a=r.slice(1,-1),o=a.indexOf(":"),l=a.slice(0,o);return l?Zy+l:void 0})(),Gy=r=>{conLine truncated
|
||||
*/const Dy=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],RA=c0("x",Dy);function Ry({health:r,config:a,onSettingsClick:o,onMenuClick:l}){const d=(r==null?void 0:r.radio_connected)??!1,[f,m]=F.useState(!1),h=async()=>{m(!0);try{const x=await st.reconnectRadio();x.connected&&kt.success("Reconnected",{description:x.message})}catch(x){kt.error("Reconnection failed",{description:x instanceof Error?x.message:"Check radio connection and power"})}finally{m(!1)}};return B.jsxs("div",{className:"flex items-center gap-4 px-4 py-2 bg-[#252525] border-b border-[#333] text-xs",children:[l&&B.jsx("button",{onClick:l,className:"md:hidden p-1 bg-transparent border-none text-[#e0e0e0] cursor-pointer","aria-label":"Open menu",children:B.jsx(Ty,{className:"h-5 w-5"})}),B.jsx("h1",{className:"hidden lg:block text-base font-semibold mr-auto",children:"RemoteTerm"}),B.jsxs("div",{className:"flex items-center gap-1 text-[#888]",children:[B.jsx("div",{className:`w-2 h-2 rounded-full ${d?"bg-[#4caf50]":"bg-[#666]"}`}),B.jsx("span",{className:"hidden lg:inline text-[#e0e0e0]",children:d?"Connected":"Disconnected"})]}),a&&B.jsx("div",{className:"hidden lg:flex items-center gap-1 text-[#888]",children:B.jsx("span",{className:"text-[#e0e0e0]",children:a.name||"Unnamed"})}),B.jsx("div",{className:"flex-1 lg:hidden"}),!d&&B.jsx("button",{onClick:h,disabled:f,className:"px-3 py-1 bg-[#4a3000] border border-[#6b4500] text-[#ffa500] rounded text-xs cursor-pointer hover:bg-[#5a3a00] disabled:opacity-50 disabled:cursor-not-allowed",children:f?"Reconnecting...":"Reconnect"}),B.jsxs("button",{onClick:o,className:"px-3 py-1 bg-[#333] border border-[#444] text-[#e0e0e0] rounded text-xs cursor-pointer hover:bg-[#444]",children:[B.jsx("span",{role:"img","aria-label":"Settings",children:"🔧"})," ","Radio & Config"]})]})}const Wf=2,Fy={text:"🛜",background:"#444444",textColor:"#ffffff"};function Ny(r){let a=0;for(let o=0;o<r.length;o++){const l=r.charCodeAt(o);a=(a<<5)-a+l,a=a&a}return Math.abs(a)}const Ly=/[\u{1F300}-\u{1F9FF}]|[\u{2600}-\u{26FF}]|[\u{2700}-\u{27BF}]|[\u{1F600}-\u{1F64F}]|[\u{1F680}-\u{1F6FF}]|[\u{1F1E0}-\u{1F1FF}]/u;function My(r,a){if(!r)return a.slice(0,2).toUpperCase();const o=r.match(Ly);if(o)return o[0];const l=r.match(/[a-zA-Z]/g);if(!l||l.length===0)return a.slice(0,2).toUpperCase();const d=r.indexOf(" ");if(d!==-1){const f=l[0],m=r.slice(d+1).match(/[a-zA-Z]/);if(m)return(f+m[0]).toUpperCase()}return l[0].toUpperCase()}function Iy(r){const a=Ny(r),o=a%360,l=50+(a>>8)%30,d=35+(a>>16)%20,f=`hsl(${o}, ${l}%, ${d}%)`,m=d<45?"#ffffff":"#000000";return{background:f,text:m}}function Oy(r,a,o){if(o===Wf)return Fy;const l=My(r,a),d=Iy(a);return{text:l,background:d.background,textColor:d.text}}function qf({name:r,publicKey:a,size:o=28,contactType:l}){const d=Oy(r,a,l);return B.jsx("div",{className:"flex items-center justify-center rounded-full font-semibold flex-shrink-0 select-none",style:{backgroundColor:d.background,color:d.textColor,width:o,height:o,fontSize:o*.45},children:d.text})}const FA="remoteterm-favorites";function Nc(){try{const r=localStorage.getItem(FA);return r?JSON.parse(r):[]}catch{return[]}}function NA(r){try{localStorage.setItem(FA,JSON.stringify(r))}catch{}}function zy(r,a){const o=Nc();if(o.some(d=>d.type===r&&d.id===a))return o;const l=[...o,{type:r,id:a}];return NA(l),l}function jy(r,a){const l=Nc().filter(d=>!(d.type===r&&d.id===a));return NA(l),l}function Hs(r,a,o){return r.some(l=>l.type===a&&l.id===o)}function Hy(r,a){return Nc().some(l=>l.type===r&&l.id===a)?jy(r,a):zy(r,a)}function LA(r){var a,o,l="";if(typeof r=="string"||typeof r=="number")l+=r;else if(typeof r=="object")if(Array.isArray(r)){var d=r.length;for(a=0;a<d;a++)r[a]&&(o=LA(r[a]))&&(l&&(l+=" "),l+=o)}else for(o in r)r[o]&&(l&&(l+=" "),l+=o);return l}function MA(){for(var r,a,o=0,l="",d=arguments.length;o<d;o++)(r=arguments[o])&&(a=LA(r))&&(l&&(l+=" "),l+=a);return l}const Vy=(r,a)=>{const o=new Array(r.length+a.length);for(let l=0;l<r.length;l++)o[l]=r[l];for(let l=0;l<a.length;l++)o[r.length+l]=a[l];return o},Uy=(r,a)=>({classGroupId:r,validator:a}),IA=(r=new Map,a=null,o)=>({nextPart:r,validators:a,classGroupId:o}),Sc="-",Fp=[],Zy="arbitrary..",Wy=r=>{const a=Gy(r),{conflictingClassGroups:o,conflictingClassGroupModifiers:l}=r;return{getClassGroupId:m=>{if(m.startsWith("[")&&m.endsWith("]"))return qy(m);const h=m.split(Sc),x=h[0]===""&&h.length>1?1:0;return OA(h,x,a)},getConflictingClassGroupIds:(m,h)=>{if(h){const x=l[m],p=o[m];return x?p?Vy(p,x):x:p||Fp}return o[m]||Fp}}},OA=(r,a,o)=>{if(r.length-a===0)return o.classGroupId;const d=r[a],f=o.nextPart.get(d);if(f){const p=OA(r,a+1,f);if(p)return p}const m=o.validators;if(m===null)return;const h=a===0?r.join(Sc):r.slice(a).join(Sc),x=m.length;for(let p=0;p<x;p++){const y=m[p];if(y.validator(h))return y.classGroupId}},qy=r=>r.slice(1,-1).indexOf(":")===-1?void 0:(()=>{const a=r.slice(1,-1),o=a.indexOf(":"),l=a.slice(0,o);return l?Zy+l:void 0})(),Gy=r=>{conLine truncated
|
||||
`).map((W,R,U)=>B.jsxs("span",{children:[V_(W,h),R<U.length-1&&B.jsx("br",{})]},R)),!de&&B.jsx("span",{className:"text-[10px] text-muted-foreground/50 ml-2",children:ol(N.sender_timestamp||N.received_at)}),N.outgoing&&(N.acked>0?` ✓${N.acked>1?N.acked:""}`:" ?")]})]})]},N.id)})]}),v&&B.jsx("button",{onClick:C,className:"absolute bottom-4 right-4 w-10 h-10 rounded-full bg-muted hover:bg-accent border border-border flex items-center justify-center shadow-lg transition-opacity",title:"Scroll to bottom",children:B.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"text-muted-foreground",children:B.jsx("polyline",{points:"6 9 12 15 18 9"})})})]})}const Vp=156,Z_=140,W_=156,q_=120,G_=8,Q_=F.forwardRef(function({onSend:a,disabled:o,placeholder:l,isRepeaterMode:d,conversationType:f,senderName:m},h){const[x,p]=F.useState(""),[y,v]=F.useState(!1),w=F.useRef(null);F.useImperativeHandle(h,()=>({appendText:I=>{var z;p(j=>j+I),(z=w.current)==null||z.focus()}}));const k=F.useMemo(()=>{if(f==="contact")return{warningAt:Z_,dangerAt:Vp,hardLimit:Vp};if(f==="channel"){const I=(m==null?void 0:m.length)??10,z=Math.max(1,W_-I-2);return{warningAt:q_,dangerAt:Math.max(1,z-G_),hardLimit:z}}return null},[f,m]),{limitState:T,warningMessage:C}=F.useMemo(()=>{if(!k)return{limitState:"normal",warningMessage:null};const I=x.length;return I>=k.hardLimit?{limitState:"error",warningMessage:"likely truncated by radio"}:I>=k.dangerAt?{limitState:"danger",warningMessage:"may impact multi-repeater hop delivery"}:I>=k.warningAt?{limitState:"warning",warningMessage:"may impact multi-repeater hop delivery"}:{limitState:"normal",warningMessage:null}},[x.length,k]),E=k?k.hardLimit-x.length:0,D=F.useCallback(async I=>{I.preventDefault();const z=x.trim();if(d){if(y||o)return;v(!0);try{await a(z),p("")}catch(j){console.error("Failed to request telemetry:",j),kt.error("Failed to request telemetry",{description:j instanceof Error?j.message:"Check radio connection"});return}finally{v(!1)}setTimeout(()=>{var j;return(j=w.current)==null?void 0:j.focus()},0)}else{if(!z||y||o)return;v(!0);try{await a(z),p("")}catch(j){console.error("Failed to send message:",j),kt.error("Failed to send message",{description:j instanceof Error?j.message:"Check radio connection"});return}finally{v(!1)}setTimeout(()=>{var j;return(j=w.current)==null?void 0:j.focus()},0)}},[x,y,o,a,d]),P=F.useCallback(I=>{I.key==="Enter"&&!I.shiftKey&&(I.preventDefault(),D(I))},[D]),S=d?!0:x.trim().length>0,N=!d&&k!==null;return B.jsxs("form",{className:"px-4 py-3 border-t border-border flex flex-col gap-1",onSubmit:D,children:[B.jsxs("div",{className:"flex gap-2",children:[B.jsx(Yt,{ref:w,type:d?"password":"text",autoComplete:d?"off":void 0,value:x,onChange:I=>p(I.target.value),onKeyDown:P,placeholder:l||(d?"Enter password for admin login...":"Type a message..."),disabled:o||y,className:"flex-1 min-w-0"}),B.jsx(Nn,{type:"submit",disabled:o||y||!S,className:"flex-shrink-0",children:y?d?"Logging in...":"Sending...":d?x.trim()?"Log in with password":"Log in as guest/use repeater ACLs":"Send"})]}),N&&B.jsxs("div",{className:"flex items-center justify-end gap-2 text-xs",children:[B.jsxs("span",{className:at("tabular-nums",T==="error"||T==="danger"?"text-red-500 font-medium":T==="warning"?"text-yellow-500":"text-muted-foreground"),children:[x.length,"/",k.hardLimit,E<0&&` (${E})`]}),C&&B.jsxs("span",{className:at(T==="error"?"text-red-500":"text-yellow-500"),children:["— ",C]})]})]})});function ln(r,a,{checkForDefaultPrevented:o=!0}={}){return function(d){if(r==null||r(d),o===!1||!d.defaultPrevented)return a==null?void 0:a(d)}}function K_(r,a){const o=F.createContext(a),l=f=>{const{children:m,...h}=f,x=F.useMemo(()=>h,Object.values(h));return B.jsx(o.Provider,{value:x,children:m})};l.displayName=r+"Provider";function d(f){const m=F.useContext(o);if(m)return m;if(a!==void 0)return a;throw new Error(`\`${f}\` must be used within \`${r}\``)}return[l,d]}function cl(r,a=[]){let o=[];function l(f,m){const h=F.createContext(m),x=o.length;o=[...o,m];const p=v=>{var D;const{scope:w,children:k,...T}=v,C=((D=w==null?void 0:w[r])==null?void 0:D[x])||h,E=F.useMemo(()=>T,Object.values(T));return B.jsx(C.Provider,{value:E,children:k})};p.displayName=f+"Provider";function y(v,w){var C;const k=((C=w==null?void 0:w[r])==null?void 0:C[x])||h,T=F.useContext(k);if(T)return T;if(m!==void 0)return m;throw new Error(`\`${v}\` must be used within \`${f}\``)}return[p,y]}const d=()=>{const f=o.map(m=>F.createContext(m));return function(h){const x=(h==null?void 0:h[r])||f;return F.useMemo(()=>({[`__scope${r}`]:{...h,[r]:x}}),[h,x])}};return d.scopeName=r,[l,$_(d,...a)]}function $_(...r){const a=r[0];if(r.length===1)return a;const o=()=>{const l=r.map(d=>({useScope:d(),scopeName:d.scopeName}));return function(f){const m=l.reduce((h,{useScope:x,scopeName:p})=>{const v=x(f)[`__scope${p}Line truncated
|
||||
.`.concat(D1,` {
|
||||
overflow: hidden `).concat(l,`;
|
||||
@@ -538,5 +538,5 @@ fn main(@builtin(global_invocation_id) global_id: vec3<u32>) {
|
||||
See https://github.com/richtr/NoSleep.js/issues/15 for more details.
|
||||
`),this.noSleepTimer=window.setInterval(()=>{document.hidden||(window.location.href=window.location.href.split("#")[0],window.setTimeout(window.stop,0))},15e3),this.enabled=!0,Promise.resolve()):this.noSleepVideo.play().then(h=>(this.enabled=!0,h)).catch(h=>{throw this.enabled=!1,h})}disable(){l()?(this._wakeLock&&this._wakeLock.release(),this._wakeLock=null):o()?this.noSleepTimer&&(console.warn(`
|
||||
NoSleep now disabled for older iOS devices.
|
||||
`),window.clearInterval(this.noSleepTimer),this.noSleepTimer=null):this.noSleepVideo.pause(),this.enabled=!1}}return Vf=d,Vf}var tE=eE();const nE=Qs(tE);function rE(r){if(r.length<4)return null;try{const o=parseInt(r.slice(0,2),16)&3;let l=2;if(o===0||o===3){if(r.length<l+8)return null;l+=8}if(r.length<l+2)return null;const d=parseInt(r.slice(l,l+2),16);l+=2;const f=d*2;return r.length<l+f?null:(l+=f,r.slice(l))}catch{return null}}function iE({packets:r,channels:a,onChannelCreate:o,onRunningChange:l,visible:d=!1}){const[f,m]=F.useState(!1),[h,x]=F.useState(6),[p,y]=F.useState(!1),[v,w]=F.useState(!0),[k,T]=F.useState(!1),[C,E]=F.useState(null),[D,P]=F.useState(new Map),[S,N]=F.useState([]),[I,z]=F.useState(!1),[j,H]=F.useState(null),[te,Z]=F.useState(null),[V,ne]=F.useState(0),X=F.useRef(null),ie=F.useRef(null),de=F.useRef(!1),ae=F.useRef(!1),pe=F.useRef(!1),G=F.useRef(new Map),J=F.useRef(!1),W=F.useRef(6),R=F.useRef(!0),U=F.useRef(!1),Q=F.useRef(new Set),$=F.useRef(new Set);F.useEffect(()=>{const Se=new XC;X.current=Se,H(Se.isGpuAvailable());const Ue=new nE;return ie.current=Ue,()=>{Se.destroy(),X.current=null,Ue.disable(),ie.current=null}},[]),F.useEffect(()=>{!d||I||$2(async()=>{const{ENGLISH_WORDLIST:Se}=await import("./wordlist-BtmChKSf.js");return{ENGLISH_WORDLIST:Se}},[]).then(({ENGLISH_WORDLIST:Se})=>{X.current&&(X.current.setWordlist(Se),z(!0))}).catch(Se=>{console.error("Failed to load wordlist:",Se),kt.error("Failed to load wordlist",{description:"Cracking will not be available"})})},[d,I]),F.useEffect(()=>{const Se=()=>{st.getUndecryptedPacketCount().then(({count:lt})=>Z(lt)).catch(()=>Z(null))};Se();const Ue=setInterval(Se,3e4);return()=>clearInterval(Ue)},[]);const he=F.useMemo(()=>new Set(a.map(Se=>Se.key.toUpperCase())),[a]),fe=r.filter(Se=>Se.payload_type==="GROUP_TEXT"&&!Se.decrypted);F.useEffect(()=>{let Se=0;P(Ue=>{const lt=new Map(Ue);let Dt=!1;for(const xt of fe)if(!lt.has(xt.id)){const it=rE(xt.data);if(it&&$.current.has(it)){Se++;continue}it&&$.current.add(it),lt.set(xt.id,{packet:xt,attempts:0,lastAttemptLength:0,status:"pending"}),Dt=!0}return Dt?(G.current=lt,lt):Ue}),Se>0&&ne(Ue=>Ue+Se)},[fe.length]),F.useEffect(()=>{G.current=D},[D]),F.useEffect(()=>{J.current=p},[p]),F.useEffect(()=>{W.current=h},[h]),F.useEffect(()=>{R.current=v},[v]),F.useEffect(()=>{U.current=k},[k]),F.useEffect(()=>{Q.current=new Set(fe.map(Se=>Se.id))},[fe]),F.useEffect(()=>{l==null||l(f)},[f,l]);const ke=Array.from(D.values()).filter(Se=>Se.status==="pending").length,ge=Array.from(D.values()).filter(Se=>Se.status==="cracked").length,Ze=Array.from(D.values()).filter(Se=>Se.status==="failed").length,$e=F.useCallback(async()=>{if(pe.current||!X.current||!de.current)return;const Se=G.current;let Ue=null,lt=null;for(const[Ke,Xe]of Se.entries())if(Xe.status==="pending"){Ue=Xe,lt=Ke;break}if(!Ue&&J.current){const Ke=Array.from(Se.entries()).filter(([,Xe])=>Xe.status==="failed"&&Xe.lastAttemptLength<10);Ke.length>0&&(Ke.sort((Xe,xe)=>Xe[1].lastAttemptLength-xe[1].lastAttemptLength),[lt,Ue]=Ke[0])}if(!Ue||lt===null){de.current&&setTimeout(()=>$e(),1e3);return}if(!Q.current.has(lt)){P(Ke=>{const Xe=new Map(Ke);return Xe.delete(lt),Xe}),de.current&&setTimeout(()=>$e(),10);return}pe.current=!0;const Dt=W.current,xt=Ue.lastAttemptLength>0,it=xt?Ue.lastAttemptLength+1:Dt;try{const Ke=await X.current.crack(Ue.packet.data,{maxLength:it,useSenderFilter:!0,useTimestampFilter:!0,useUtf8Filter:!0,...U.current&&{gpuDispatchMs:1e4},...xt&&{useDictionary:!1,startingLength:it}},Xe=>{E(Xe)});if(ae.current){ae.current=!1,pe.current=!1,E(null);return}if(Ke.found&&Ke.roomName&&Ke.key){P(Te=>{const pt=new Map(Te),Ut=pt.get(lt);return Ut&&pt.set(lt,{...Ut,status:"cracked",attempts:Ut.attempts+1,lastAttemptLength:it}),pt});const Xe={roomName:Ke.roomName,key:Ke.key,packetId:lt,message:Ke.decryptedMessage||"",crackedAt:Date.now()};N(Te=>[...Te,Xe]);const xe=Ke.key.toUpperCase();if(!he.has(xe))try{const Te="#"+Ke.roomName;await o(Te,Ke.key),R.current&&await st.decryptHistoricalPackets({key_type:"channel",channel_name:Te})}catch(Te){console.error("Failed to create channel or decrypt historical:",Te),kt.error("Failed to save cracked channel",{description:Te instanceof Error?Te.message:"Channel discovered but could not be saved"})}}else P(Xe=>{const xe=new Map(Xe),Te=xe.get(lt);return Te&&xe.set(lt,{...Te,status:"failed",attempts:Te.attempts+1,lastAttemptLength:it}),xe})}catch(Ke){console.error("Cracking error:",Ke),P(Xe=>{const xe=new Map(Xe),Te=xe.get(lt);return Te&&xe.set(lt,{...Te,status:"failed",attempts:Te.attempts+1,lastAttemptLength:it}),xe})}pe.current=!1,E(null),de.current&&setTimeout(()=>$e(),100)},[he,o]),wt=()=>{var Se;if(!j){kt.error("WebGPU not available",{description:"Cracking requires Chrome 113+ or Edge 113+ with WebGPU support."});return}m(!0),de.current=!0,ae.current=!1,(Se=ie.current)==null||Se.enable(),$e()},ft=()=>{var Se,Ue;m(!1),de.current=!1,ae.current=!0,(Se=X.current)==null||Se.abort(),(Ue=ie.current)==nu
Line truncated
|
||||
//# sourceMappingURL=index-BszmRhBR.js.map
|
||||
`),window.clearInterval(this.noSleepTimer),this.noSleepTimer=null):this.noSleepVideo.pause(),this.enabled=!1}}return Vf=d,Vf}var tE=eE();const nE=Qs(tE);function rE(r){if(r.length<4)return null;try{const o=parseInt(r.slice(0,2),16)&3;let l=2;if(o===0||o===3){if(r.length<l+8)return null;l+=8}if(r.length<l+2)return null;const d=parseInt(r.slice(l,l+2),16);l+=2;const f=d*2;return r.length<l+f?null:(l+=f,r.slice(l))}catch{return null}}function iE({packets:r,channels:a,onChannelCreate:o,onRunningChange:l,visible:d=!1}){const[f,m]=F.useState(!1),[h,x]=F.useState(6),[p,y]=F.useState(!1),[v,w]=F.useState(!0),[k,T]=F.useState(!1),[C,E]=F.useState(null),[D,P]=F.useState(new Map),[S,N]=F.useState([]),[I,z]=F.useState(!1),[j,H]=F.useState(null),[te,Z]=F.useState(null),[V,ne]=F.useState(0),X=F.useRef(null),ie=F.useRef(null),de=F.useRef(!1),ae=F.useRef(!1),pe=F.useRef(!1),G=F.useRef(new Map),J=F.useRef(!1),W=F.useRef(6),R=F.useRef(!0),U=F.useRef(!1),Q=F.useRef(new Set),$=F.useRef(new Set);F.useEffect(()=>{const Se=new XC;X.current=Se,H(Se.isGpuAvailable());const Ue=new nE;return ie.current=Ue,()=>{Se.destroy(),X.current=null,Ue.disable(),ie.current=null}},[]),F.useEffect(()=>{!d||I||$2(async()=>{const{ENGLISH_WORDLIST:Se}=await import("./wordlist-BtmChKSf.js");return{ENGLISH_WORDLIST:Se}},[]).then(({ENGLISH_WORDLIST:Se})=>{X.current&&(X.current.setWordlist(Se),z(!0))}).catch(Se=>{console.error("Failed to load wordlist:",Se),kt.error("Failed to load wordlist",{description:"Cracking will not be available"})})},[d,I]),F.useEffect(()=>{const Se=()=>{st.getUndecryptedPacketCount().then(({count:lt})=>Z(lt)).catch(()=>Z(null))};Se();const Ue=setInterval(Se,3e4);return()=>clearInterval(Ue)},[]);const he=F.useMemo(()=>new Set(a.map(Se=>Se.key.toUpperCase())),[a]),fe=r.filter(Se=>Se.payload_type==="GROUP_TEXT"&&!Se.decrypted);F.useEffect(()=>{let Se=0;P(Ue=>{const lt=new Map(Ue);let Dt=!1;for(const xt of fe)if(!lt.has(xt.id)){const it=rE(xt.data);if(it&&$.current.has(it)){Se++;continue}it&&$.current.add(it),lt.set(xt.id,{packet:xt,attempts:0,lastAttemptLength:0,status:"pending"}),Dt=!0}return Dt?(G.current=lt,lt):Ue}),Se>0&&ne(Ue=>Ue+Se)},[fe.length]),F.useEffect(()=>{G.current=D},[D]),F.useEffect(()=>{J.current=p},[p]),F.useEffect(()=>{W.current=h},[h]),F.useEffect(()=>{R.current=v},[v]),F.useEffect(()=>{U.current=k},[k]),F.useEffect(()=>{Q.current=new Set(fe.map(Se=>Se.id))},[fe]),F.useEffect(()=>{l==null||l(f)},[f,l]);const ke=Array.from(D.values()).filter(Se=>Se.status==="pending").length,ge=Array.from(D.values()).filter(Se=>Se.status==="cracked").length,Ze=Array.from(D.values()).filter(Se=>Se.status==="failed").length,$e=F.useCallback(async()=>{if(pe.current||!X.current||!de.current)return;const Se=G.current;let Ue=null,lt=null;for(const[Ke,Xe]of Se.entries())if(Xe.status==="pending"){Ue=Xe,lt=Ke;break}if(!Ue&&J.current){const Ke=Array.from(Se.entries()).filter(([,Xe])=>Xe.status==="failed"&&Xe.lastAttemptLength<10);Ke.length>0&&(Ke.sort((Xe,xe)=>Xe[1].lastAttemptLength-xe[1].lastAttemptLength),[lt,Ue]=Ke[0])}if(!Ue||lt===null){de.current&&setTimeout(()=>$e(),1e3);return}if(!Q.current.has(lt)){P(Ke=>{const Xe=new Map(Ke);return Xe.delete(lt),Xe}),de.current&&setTimeout(()=>$e(),10);return}pe.current=!0;const Dt=W.current,xt=Ue.lastAttemptLength>0,it=xt?Ue.lastAttemptLength+1:Dt;try{const Ke=await X.current.crack(Ue.packet.data,{maxLength:it,useSenderFilter:!0,useTimestampFilter:!0,useUtf8Filter:!0,...U.current&&{gpuDispatchMs:1e4},...xt&&{useDictionary:!1,startingLength:it}},Xe=>{E(Xe)});if(ae.current){ae.current=!1,pe.current=!1,E(null);return}if(Ke.found&&Ke.roomName&&Ke.key){P(Te=>{const pt=new Map(Te),Ut=pt.get(lt);return Ut&&pt.set(lt,{...Ut,status:"cracked",attempts:Ut.attempts+1,lastAttemptLength:it}),pt});const Xe={roomName:Ke.roomName,key:Ke.key,packetId:lt,message:Ke.decryptedMessage||"",crackedAt:Date.now()};N(Te=>[...Te,Xe]);const xe=Ke.key.toUpperCase();if(!he.has(xe))try{const Te="#"+Ke.roomName;await o(Te,Ke.key),R.current&&await st.decryptHistoricalPackets({key_type:"channel",channel_name:Te})}catch(Te){console.error("Failed to create channel or decrypt historical:",Te),kt.error("Failed to save cracked channel",{description:Te instanceof Error?Te.message:"Channel discovered but could not be saved"})}}else P(Xe=>{const xe=new Map(Xe),Te=xe.get(lt);return Te&&xe.set(lt,{...Te,status:"failed",attempts:Te.attempts+1,lastAttemptLength:it}),xe})}catch(Ke){console.error("Cracking error:",Ke),P(Xe=>{const xe=new Map(Xe),Te=xe.get(lt);return Te&&xe.set(lt,{...Te,status:"failed",attempts:Te.attempts+1,lastAttemptLength:it}),xe})}pe.current=!1,E(null),de.current&&setTimeout(()=>$e(),100)},[he,o]),wt=()=>{var Se;if(!j){kt.error("WebGPU not available",{description:"Cracking requires Chrome 113+ or Edge 113+ with WebGPU support."});return}m(!0),de.current=!0,ae.current=!1,(Se=ie.current)==null||Se.enable(),$e()},ft=()=>{var Se,Ue;m(!1),de.current=!1,ae.current=!0,(Se=X.current)==null||Se.abort(),(Ue=ie.current)==nu
Line truncated
|
||||
//# sourceMappingURL=index-DnuO1-Ih.js.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"mappings":"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 truncated
|
||||
Vendored
+1
-1
@@ -13,7 +13,7 @@
|
||||
<link rel="shortcut icon" href="/favicon.ico" />
|
||||
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png" />
|
||||
<link rel="manifest" href="/site.webmanifest" />
|
||||
<script type="module" crossorigin src="/assets/index-BszmRhBR.js"></script>
|
||||
<script type="module" crossorigin src="/assets/index-DnuO1-Ih.js"></script>
|
||||
<link rel="stylesheet" crossorigin href="/assets/index-BpFnqQF8.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
@@ -442,9 +442,10 @@ export function CrackerPanel({
|
||||
|
||||
return (
|
||||
<div className="flex flex-col h-full p-3 gap-3 bg-background border-t border-border">
|
||||
<p className="text-xs text-muted-foreground leading-relaxed">
|
||||
This will attempt to dictionary attack, then brute force GroupText packets as they arrive,
|
||||
testing room names up to the specified length.
|
||||
<p className="text-sm text-muted-foreground leading-relaxed">
|
||||
For unknown-keyed GroupText packets, this will attempt to dictionary attack, then brute
|
||||
force payloads as they arrive, testing room names up to the specified length to discover
|
||||
active rooms on the local mesh.
|
||||
<strong> Retry failed at n+1</strong> will let the cracker return to the failed queue and
|
||||
pick up messages it couldn't crack, attempting them at one longer length.
|
||||
<strong> Decrypt historical</strong> will run an async job on any room name it finds to see
|
||||
|
||||
@@ -312,7 +312,7 @@ export function Sidebar({
|
||||
>
|
||||
<span className="text-muted-foreground text-xs">🔓</span>
|
||||
<span className="flex-1 truncate">
|
||||
{showCracker ? 'Hide' : 'Show'} Cracker
|
||||
{showCracker ? 'Hide' : 'Show'} Room Finder
|
||||
<span
|
||||
className={cn(
|
||||
'ml-1 text-xs',
|
||||
@@ -363,7 +363,6 @@ export function Sidebar({
|
||||
})
|
||||
}
|
||||
>
|
||||
<span className="text-muted-foreground text-xs">#</span>
|
||||
<span className="name flex-1 truncate">{channel.name}</span>
|
||||
{unreadCount > 0 && (
|
||||
<span
|
||||
@@ -459,7 +458,6 @@ export function Sidebar({
|
||||
})
|
||||
}
|
||||
>
|
||||
<span className="text-muted-foreground text-xs">#</span>
|
||||
<span className="name flex-1 truncate">{channel.name}</span>
|
||||
{unreadCount > 0 && (
|
||||
<span
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 114 KiB After Width: | Height: | Size: 113 KiB |
Reference in new issue
Block a user