(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const n of document.querySelectorAll('link[rel="modulepreload"]'))r(n);new MutationObserver(n=>{for(const l of n)if(l.type==="childList")for(const i of l.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&r(i)}).observe(document,{childList:!0,subtree:!0});function s(n){const l={};return n.integrity&&(l.integrity=n.integrity),n.referrerPolicy&&(l.referrerPolicy=n.referrerPolicy),n.crossOrigin==="use-credentials"?l.credentials="include":n.crossOrigin==="anonymous"?l.credentials="omit":l.credentials="same-origin",l}function r(n){if(n.ep)return;n.ep=!0;const l=s(n);fetch(n.href,l)}})();const ne=!1,re=(e,t)=>e===t,k={equals:re};let le=K;const m=1,E=2,D={owned:null,cleanups:null,context:null,owner:null};var h=null;let j=null,oe=null,u=null,f=null,x=null,O=0;function ie(e,t){const s=u,r=h,n=e.length===0,l=t===void 0?r:t,i=n?D:{owned:null,cleanups:null,context:l?l.context:null,owner:l},o=n?e:()=>e(()=>I(()=>S(i)));h=i,u=null;try{return $(o,!0)}finally{u=s,h=r}}function ce(e,t){t=t?Object.assign({},k,t):k;const s={value:e,observers:null,observerSlots:null,comparator:t.equals||void 0},r=n=>(typeof n=="function"&&(n=n(s.value)),G(s,n));return[H.bind(s),r]}function v(e,t,s){const r=q(e,t,!1,m);L(r)}function P(e,t,s){s=s?Object.assign({},k,s):k;const r=q(e,t,!0,0);return r.observers=null,r.observerSlots=null,r.comparator=s.equals||void 0,L(r),H.bind(r)}function I(e){if(u===null)return e();const t=u;u=null;try{return e()}finally{u=t}}function H(){if(this.sources&&this.state)if(this.state===m)L(this);else{const e=f;f=null,$(()=>z(this),!1),f=e}if(u){const e=this.observers?this.observers.length:0;u.sources?(u.sources.push(this),u.sourceSlots.push(e)):(u.sources=[this],u.sourceSlots=[e]),this.observers?(this.observers.push(u),this.observerSlots.push(u.sources.length-1)):(this.observers=[u],this.observerSlots=[u.sources.length-1])}return this.value}function G(e,t,s){let r=e.value;return(!e.comparator||!e.comparator(r,t))&&(e.value=t,e.observers&&e.observers.length&&$(()=>{for(let n=0;n1e6)throw f=[],new Error},!1)),t}function L(e){if(!e.fn)return;S(e);const t=O;ue(e,e.value,t)}function ue(e,t,s){let r;const n=h,l=u;u=h=e;try{r=e.fn(t)}catch(i){return e.pure&&(e.state=m,e.owned&&e.owned.forEach(S),e.owned=null),e.updatedAt=s+1,Z(i)}finally{u=l,h=n}(!e.updatedAt||e.updatedAt<=s)&&(e.updatedAt!=null&&"observers"in e?G(e,r):e.value=r,e.updatedAt=s)}function q(e,t,s,r=m,n){const l={fn:e,state:r,updatedAt:null,owned:null,sources:null,sourceSlots:null,cleanups:null,value:t,owner:h,context:h?h.context:null,pure:s};return h===null||h!==D&&(h.owned?h.owned.push(l):h.owned=[l]),l}function F(e){if(e.state===0)return;if(e.state===E)return z(e);if(e.suspense&&I(e.suspense.inFallback))return e.suspense.effects.push(e);const t=[e];for(;(e=e.owner)&&(!e.updatedAt||e.updatedAt=0;s--)if(e=t[s],e.state===m)L(e);else if(e.state===E){const r=f;f=null,$(()=>z(e,t[0]),!1),f=r}}function $(e,t){if(f)return e();let s=!1;t||(f=[]),x?s=!0:x=[],O++;try{const r=e();return ae(s),r}catch(r){s||(x=null),f=null,Z(r)}}function ae(e){if(f&&(K(f),f=null),e)return;const t=x;x=null,t.length&&$(()=>le(t),!1)}function K(e){for(let t=0;t=0;t--)S(e.tOwned[t]);delete e.tOwned}if(e.owned){for(t=e.owned.length-1;t>=0;t--)S(e.owned[t]);e.owned=null}if(e.cleanups){for(t=e.cleanups.length-1;t>=0;t--)e.cleanups[t]();e.cleanups=null}e.state=0}function fe(e){return e instanceof Error?e:new Error(typeof e=="string"?e:"Unknown error",{cause:e})}function Z(e,t=h){throw fe(e)}function A(e,t){return I(()=>e(t||{}))}function de(e,t,s){let r=s.length,n=t.length,l=r,i=0,o=0,c=t[n-1].nextSibling,a=null;for(;id-o){const b=t[i];for(;o{n=l,t===document?e():_(t,e(),t.firstChild?null:void 0,s)},r.owner),()=>{n(),t.textContent=""}}function w(e,t,s,r){let n;const l=()=>{const o=document.createElement("template");return o.innerHTML=e,o.content.firstChild},i=()=>(n||(n=l())).cloneNode(!0);return i.cloneNode=i,i}function pe(e,t=window.document){const s=t[R]||(t[R]=new Set);for(let r=0,n=e.length;rT(e,t(),n,s),r)}function xe(e){let t=e.target;const s=`$$${e.type}`,r=e.target,n=e.currentTarget,l=c=>Object.defineProperty(e,"target",{configurable:!0,value:c}),i=()=>{const c=t[s];if(c&&!t.disabled){const a=t[`${s}Data`];if(a!==void 0?c.call(t,a,e):c.call(t,e),e.cancelBubble)return}return t.host&&typeof t.host!="string"&&!t.host._$host&&t.contains(e.target)&&l(t.host),!0},o=()=>{for(;i()&&(t=t._$host||t.parentNode||t.host););};if(Object.defineProperty(e,"currentTarget",{configurable:!0,get(){return t||document}}),e.composedPath){const c=e.composedPath();l(c[0]);for(let a=0;a{let o=t();for(;typeof o=="function";)o=o();s=T(e,o,s,r)}),()=>s;if(Array.isArray(t)){const o=[],c=s&&Array.isArray(s);if(B(o,t,s,n))return v(()=>s=T(e,o,s,r,!0)),()=>s;if(o.length===0){if(s=g(e,s,r),i)return s}else c?s.length===0?U(e,o,r):de(e,s,o):(s&&g(e),U(e,o));s=o}else if(t.nodeType){if(Array.isArray(s)){if(i)return s=g(e,s,r,t);g(e,s,null,t)}else s==null||s===""||!e.firstChild?e.appendChild(t):e.replaceChild(t,e.firstChild);s=t}}return s}function B(e,t,s,r){let n=!1;for(let l=0,i=t.length;l=0;i--){const o=t[i];if(n!==o){const c=o.parentNode===e;!l&&!i?c?e.replaceChild(n,o):e.insertBefore(n,s):c&&o.remove()}else l=!0}}else e.insertBefore(n,s);return[n]}var me=w(''),be=w(''),ge=w('');const ve=e=>(()=>{var t=me();return v(()=>M(t,"class",e.class)),t})(),we=e=>(()=>{var t=be();return v(()=>M(t,"class",e.class)),t})(),ye=e=>(()=>{var t=ge();return v(()=>M(t,"class",e.class)),t})();var Se=w('

TROK

EXPOSE. SHARE. ACCESS.

Accessing your
local service should
be simple

It's like ngrok but simpler. Just install, run the command, and get a shareable URL to access your local service from anywhere. No complex setup—just instant, secure tunneling to the internet.

Install

Install trok to your machine using shell:

This will download the trok binary to the path you ran the script from.
Run it with ./trok on any system

USING TROK:

> $ trok tcp 3000

started Trok client on trok.cloud

[CMD] EHLO [ARG] trok.cloud

1. Expose

provide the local port you want to share, and it'll generate a URL.

hey here take a look at my project...

2. Share

share the URL with your friends.

https://awesome-project.trok.cloud
🎉 your awesome project 🎉

3. Access

access your local service from anywhere.

'),$e=w('copied!'),Ce=w('');function Ae(){const e="curl -fsSL https://trok.cloud/install.sh | sh",[t,s]=ce(!1),r=()=>{navigator.clipboard.writeText(e),s(!0),setTimeout(()=>{s(!1)},1300)};return(()=>{var n=Se(),l=n.firstChild,i=l.firstChild,o=i.nextSibling,c=o.nextSibling,a=c.firstChild,d=a.firstChild,p=d.nextSibling,y=p.firstChild,C=y.nextSibling,b=C.nextSibling;b.firstChild;var J=c.nextSibling,Q=J.nextSibling,W=Q.firstChild,Y=W.nextSibling,ee=Y.firstChild,te=ee.nextSibling,V=te.firstChild,se=V.firstChild;return b.$$click=r,_(b,(()=>{var N=P(()=>!!t());return()=>N()?$e():Ce()})(),null),_(b,(()=>{var N=P(()=>!!t());return()=>N()?A(ye,{class:"h-5 w-5 text-zinc-500"}):A(we,{class:"h-5 w-5 text-zinc-500"})})(),null),_(V,A(ve,{class:"w-6 h-6 mr-2"}),se),n})()}pe(["click"]);const _e=document.getElementById("root");he(()=>A(Ae,{}),_e);