@inspectr/app 0.0.4 → 0.1.0

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/dist/index.html CHANGED
@@ -1,3 +1,5 @@
1
- <!DOCTYPE html><html lang="en" data-astro-cid-sckkx6r4> <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width"><link rel="icon" type="image/icon" href="/favicon.ico"><meta name="description" content="Inspectr – Simplifying API and Webhook debugging"><title>Inspectr</title><link rel="stylesheet" href="/_astro/index.mhLLulM4.css"></head> <body data-astro-cid-sckkx6r4> <style>astro-island,astro-slot,astro-static-slot{display:contents}</style><script>(()=>{var e=async t=>{await(await t())()};(self.Astro||(self.Astro={})).load=e;window.dispatchEvent(new Event("astro:load"));})();;(()=>{var A=Object.defineProperty;var g=(i,o,a)=>o in i?A(i,o,{enumerable:!0,configurable:!0,writable:!0,value:a}):i[o]=a;var d=(i,o,a)=>g(i,typeof o!="symbol"?o+"":o,a);{let i={0:t=>m(t),1:t=>a(t),2:t=>new RegExp(t),3:t=>new Date(t),4:t=>new Map(a(t)),5:t=>new Set(a(t)),6:t=>BigInt(t),7:t=>new URL(t),8:t=>new Uint8Array(t),9:t=>new Uint16Array(t),10:t=>new Uint32Array(t),11:t=>1/0*t},o=t=>{let[l,e]=t;return l in i?i[l](e):void 0},a=t=>t.map(o),m=t=>typeof t!="object"||t===null?t:Object.fromEntries(Object.entries(t).map(([l,e])=>[l,o(e)]));class y extends HTMLElement{constructor(){super(...arguments);d(this,"Component");d(this,"hydrator");d(this,"hydrate",async()=>{var b;if(!this.hydrator||!this.isConnected)return;let e=(b=this.parentElement)==null?void 0:b.closest("astro-island[ssr]");if(e){e.addEventListener("astro:hydrate",this.hydrate,{once:!0});return}let c=this.querySelectorAll("astro-slot"),n={},h=this.querySelectorAll("template[data-astro-template]");for(let r of h){let s=r.closest(this.tagName);s!=null&&s.isSameNode(this)&&(n[r.getAttribute("data-astro-template")||"default"]=r.innerHTML,r.remove())}for(let r of c){let s=r.closest(this.tagName);s!=null&&s.isSameNode(this)&&(n[r.getAttribute("name")||"default"]=r.innerHTML)}let p;try{p=this.hasAttribute("props")?m(JSON.parse(this.getAttribute("props"))):{}}catch(r){let s=this.getAttribute("component-url")||"<unknown>",v=this.getAttribute("component-export");throw v&&(s+=` (export ${v})`),console.error(`[hydrate] Error parsing props for component ${s}`,this.getAttribute("props"),r),r}let u;await this.hydrator(this)(this.Component,p,n,{client:this.getAttribute("client")}),this.removeAttribute("ssr"),this.dispatchEvent(new CustomEvent("astro:hydrate"))});d(this,"unmount",()=>{this.isConnected||this.dispatchEvent(new CustomEvent("astro:unmount"))})}disconnectedCallback(){document.removeEventListener("astro:after-swap",this.unmount),document.addEventListener("astro:after-swap",this.unmount,{once:!0})}connectedCallback(){if(!this.hasAttribute("await-children")||document.readyState==="interactive"||document.readyState==="complete")this.childrenConnectedCallback();else{let e=()=>{document.removeEventListener("DOMContentLoaded",e),c.disconnect(),this.childrenConnectedCallback()},c=new MutationObserver(()=>{var n;((n=this.lastChild)==null?void 0:n.nodeType)===Node.COMMENT_NODE&&this.lastChild.nodeValue==="astro:end"&&(this.lastChild.remove(),e())});c.observe(this,{childList:!0}),document.addEventListener("DOMContentLoaded",e)}}async childrenConnectedCallback(){let e=this.getAttribute("before-hydration-url");e&&await import(e),this.start()}async start(){let e=JSON.parse(this.getAttribute("opts")),c=this.getAttribute("client");if(Astro[c]===void 0){window.addEventListener(`astro:${c}`,()=>this.start(),{once:!0});return}try{await Astro[c](async()=>{let n=this.getAttribute("renderer-url"),[h,{default:p}]=await Promise.all([import(this.getAttribute("component-url")),n?import(n):()=>()=>{}]),u=this.getAttribute("component-export")||"default";if(!u.includes("."))this.Component=h[u];else{this.Component=h;for(let f of u.split("."))this.Component=this.Component[f]}return this.hydrator=p,this.hydrate},e,this)}catch(n){console.error(`[astro-island] Error hydrating ${this.getAttribute("component-url")}`,n)}}attributeChangedCallback(){this.hydrate()}}d(y,"observedAttributes",["props"]),customElements.get("astro-island")||customElements.define("astro-island",y)}})();</script><astro-island uid="1XJL95" prefix="r0" component-url="/_astro/ui.DN9AB-cN.js" component-export="InspectrApp" renderer-url="/_astro/client.WCY5ZO72.js" props="{}" ssr client="load" opts="{&quot;name&quot;:&quot;InspectrApp&quot;,&quot;value&quot;:true}" await-children><div class="flex flex-col h-screen"><div class="flex flex-grow"><div class="w-1/3 border-r border-gray-300 overflow-y-auto"><div class="flex flex-col h-full relative"><div class="p-4 flex justify-between items-center"><span class="font-bold text-xl">Requests (<!-- -->0<!-- --> of <!-- -->0<!-- -->)</span><div class="space-x-2 relative"><button class="relative px-3 py-1 rounded text-xs cursor-pointer bg-blue-500 text-white"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="w-4 h-4 text-white"><path stroke-linecap="round" stroke-linejoin="round" d="M12 3c2.755 0 5.455.232 8.083.678.533.09.917.556.917 1.096v1.044a2.25 2.25 0 0 1-.659 1.591l-5.432 5.432a2.25 2.25 0 0 0-.659 1.591v2.927a2.25 2.25 0 0 1-1.244 2.013L9.75 21v-6.568a2.25 2.25 0 0 0-.659-1.591L3.659 7.409A2.25 2.25 0 0 1 3 5.818V4.774c0-.54.384-1.006.917-1.096A48.32 48.32 0 0 1 12 3Z"></path></svg></button><button class="px-3 py-1 bg-red-500 text-white rounded text-xs cursor-pointer"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="w-4 h-4 text-white"><path stroke-linecap="round" stroke-linejoin="round" d="m14.74 9-.346 9m-4.788 0L9.26 9m9.968-3.21c.342.052.682.107 1.022.166m-1.022-.165L18.16 19.673a2.25 2.25 0 0 1-2.244 2.077H8.084a2.25 2.25 0 0 1-2.244-2.077L4.772 5.79m14.456 0a48.108 48.108 0 0 0-3.478-.397m-12 .562c.34-.059.68-.114 1.022-.165m0 0a48.11 48.11 0 0 1 3.478-.397m7.5 0v-.916c0-1.18-.91-2.164-2.09-2.201a51.964 51.964 0 0 0-3.32 0c-1.18.037-2.09 1.022-2.09 2.201v.916m7.5 0a48.667 48.667 0 0 0-7.5 0"></path></svg></button></div></div><div class="flex items-center bg-gray-200 p-2 border-b border-gray-300 text-sm font-bold cursor-pointer"><div class="w-16 text-center">Status</div><div class="w-20 text-center">Method</div><div class="flex-grow text-left">Path</div><div class="w-20 text-center">Duration</div><div class="w-10"></div></div><ul class="overflow-y-auto flex-grow" style="max-height:calc(100vh - 40px - 100px - 49px)"></ul><nav class="p-2 border-t border-gray-300"><ul class="flex items-center justify-center -space-x-px h-8 text-sm"><li><button disabled="" class="flex items-center justify-center px-3 h-8 leading-tight text-gray-500 bg-white border border-e-0 border-gray-300 rounded-s-lg hover:bg-gray-100 hover:text-gray-700 disabled:opacity-50 dark:bg-gray-800 dark:border-gray-700 dark:text-gray-400 dark:hover:bg-gray-700 dark:hover:text-white cursor-pointer"><span class="sr-only">Previous</span><svg class="w-2.5 h-2.5 rtl:rotate-180" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 6 10"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 1 1 5l4 4"></path></svg></button></li><li><button class="z-10 flex items-center justify-center px-3 h-8 leading-tight text-blue-600 border border-blue-300 bg-blue-50 hover:bg-blue-100 hover:text-blue-700 dark:border-gray-700 dark:bg-gray-700 dark:text-white cursor-pointer">1</button></li><li><button disabled="" class="flex items-center justify-center px-3 h-8 leading-tight text-gray-500 bg-white border border-gray-300 rounded-e-lg hover:bg-gray-100 hover:text-gray-700 disabled:opacity-50 dark:bg-gray-800 dark:border-gray-700 dark:text-gray-400 dark:hover:bg-gray-700 dark:hover:text-white cursor-pointer"><span class="sr-only">Next</span><svg class="w-2.5 h-2.5 rtl:rotate-180" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 6 10"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m1 9 4-4-4-4"></path></svg></button></li></ul></nav><div class="fixed top-0 left-0 h-full w-100 bg-white shadow-xl transform transition-transform duration-300
1
+ <!DOCTYPE html><html lang="en" data-astro-cid-sckkx6r4> <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width"><link rel="icon" type="image/icon" href="/favicon.ico"><meta name="description" content="Inspectr – Simplifying API and Webhook debugging"><title>Inspectr</title><link rel="stylesheet" href="/_astro/index.D2uD6mlr.css"></head> <body data-astro-cid-sckkx6r4> <style>astro-island,astro-slot,astro-static-slot{display:contents}</style><script>(()=>{var e=async t=>{await(await t())()};(self.Astro||(self.Astro={})).load=e;window.dispatchEvent(new Event("astro:load"));})();;(()=>{var A=Object.defineProperty;var g=(i,o,a)=>o in i?A(i,o,{enumerable:!0,configurable:!0,writable:!0,value:a}):i[o]=a;var d=(i,o,a)=>g(i,typeof o!="symbol"?o+"":o,a);{let i={0:t=>m(t),1:t=>a(t),2:t=>new RegExp(t),3:t=>new Date(t),4:t=>new Map(a(t)),5:t=>new Set(a(t)),6:t=>BigInt(t),7:t=>new URL(t),8:t=>new Uint8Array(t),9:t=>new Uint16Array(t),10:t=>new Uint32Array(t),11:t=>1/0*t},o=t=>{let[l,e]=t;return l in i?i[l](e):void 0},a=t=>t.map(o),m=t=>typeof t!="object"||t===null?t:Object.fromEntries(Object.entries(t).map(([l,e])=>[l,o(e)]));class y extends HTMLElement{constructor(){super(...arguments);d(this,"Component");d(this,"hydrator");d(this,"hydrate",async()=>{var b;if(!this.hydrator||!this.isConnected)return;let e=(b=this.parentElement)==null?void 0:b.closest("astro-island[ssr]");if(e){e.addEventListener("astro:hydrate",this.hydrate,{once:!0});return}let c=this.querySelectorAll("astro-slot"),n={},h=this.querySelectorAll("template[data-astro-template]");for(let r of h){let s=r.closest(this.tagName);s!=null&&s.isSameNode(this)&&(n[r.getAttribute("data-astro-template")||"default"]=r.innerHTML,r.remove())}for(let r of c){let s=r.closest(this.tagName);s!=null&&s.isSameNode(this)&&(n[r.getAttribute("name")||"default"]=r.innerHTML)}let p;try{p=this.hasAttribute("props")?m(JSON.parse(this.getAttribute("props"))):{}}catch(r){let s=this.getAttribute("component-url")||"<unknown>",v=this.getAttribute("component-export");throw v&&(s+=` (export ${v})`),console.error(`[hydrate] Error parsing props for component ${s}`,this.getAttribute("props"),r),r}let u;await this.hydrator(this)(this.Component,p,n,{client:this.getAttribute("client")}),this.removeAttribute("ssr"),this.dispatchEvent(new CustomEvent("astro:hydrate"))});d(this,"unmount",()=>{this.isConnected||this.dispatchEvent(new CustomEvent("astro:unmount"))})}disconnectedCallback(){document.removeEventListener("astro:after-swap",this.unmount),document.addEventListener("astro:after-swap",this.unmount,{once:!0})}connectedCallback(){if(!this.hasAttribute("await-children")||document.readyState==="interactive"||document.readyState==="complete")this.childrenConnectedCallback();else{let e=()=>{document.removeEventListener("DOMContentLoaded",e),c.disconnect(),this.childrenConnectedCallback()},c=new MutationObserver(()=>{var n;((n=this.lastChild)==null?void 0:n.nodeType)===Node.COMMENT_NODE&&this.lastChild.nodeValue==="astro:end"&&(this.lastChild.remove(),e())});c.observe(this,{childList:!0}),document.addEventListener("DOMContentLoaded",e)}}async childrenConnectedCallback(){let e=this.getAttribute("before-hydration-url");e&&await import(e),this.start()}async start(){let e=JSON.parse(this.getAttribute("opts")),c=this.getAttribute("client");if(Astro[c]===void 0){window.addEventListener(`astro:${c}`,()=>this.start(),{once:!0});return}try{await Astro[c](async()=>{let n=this.getAttribute("renderer-url"),[h,{default:p}]=await Promise.all([import(this.getAttribute("component-url")),n?import(n):()=>()=>{}]),u=this.getAttribute("component-export")||"default";if(!u.includes("."))this.Component=h[u];else{this.Component=h;for(let f of u.split("."))this.Component=this.Component[f]}return this.hydrator=p,this.hydrate},e,this)}catch(n){console.error(`[astro-island] Error hydrating ${this.getAttribute("component-url")}`,n)}}attributeChangedCallback(){this.hydrate()}}d(y,"observedAttributes",["props"]),customElements.get("astro-island")||customElements.define("astro-island",y)}})();</script><astro-island uid="Z18CrBW" prefix="r0" component-url="/_astro/ui.H3J2I9XH.js" component-export="InspectrApp" renderer-url="/_astro/client.DghpSMxZ.js" props="{}" ssr client="load" opts="{&quot;name&quot;:&quot;InspectrApp&quot;,&quot;value&quot;:true}" await-children><div class="flex flex-col h-screen"><div class="flex flex-grow"><div class="w-1/3 border-r border-gray-300 overflow-y-auto"><div class="flex flex-col h-full relative"><div class="p-4 flex justify-between items-center"><span class="font-bold text-xl">Requests (<!-- -->0<!-- --> of <!-- -->0<!-- -->)</span><div class="space-x-2 relative"><button class="relative px-3 py-1 rounded text-xs cursor-pointer bg-blue-500 text-white"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="w-4 h-4 text-white"><path stroke-linecap="round" stroke-linejoin="round" d="M12 3c2.755 0 5.455.232 8.083.678.533.09.917.556.917 1.096v1.044a2.25 2.25 0 0 1-.659 1.591l-5.432 5.432a2.25 2.25 0 0 0-.659 1.591v2.927a2.25 2.25 0 0 1-1.244 2.013L9.75 21v-6.568a2.25 2.25 0 0 0-.659-1.591L3.659 7.409A2.25 2.25 0 0 1 3 5.818V4.774c0-.54.384-1.006.917-1.096A48.32 48.32 0 0 1 12 3Z"></path></svg></button><button class="px-3 py-1 bg-red-500 text-white rounded text-xs cursor-pointer"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="w-4 h-4 text-white"><path stroke-linecap="round" stroke-linejoin="round" d="m14.74 9-.346 9m-4.788 0L9.26 9m9.968-3.21c.342.052.682.107 1.022.166m-1.022-.165L18.16 19.673a2.25 2.25 0 0 1-2.244 2.077H8.084a2.25 2.25 0 0 1-2.244-2.077L4.772 5.79m14.456 0a48.108 48.108 0 0 0-3.478-.397m-12 .562c.34-.059.68-.114 1.022-.165m0 0a48.11 48.11 0 0 1 3.478-.397m7.5 0v-.916c0-1.18-.91-2.164-2.09-2.201a51.964 51.964 0 0 0-3.32 0c-1.18.037-2.09 1.022-2.09 2.201v.916m7.5 0a48.667 48.667 0 0 0-7.5 0"></path></svg></button></div></div><div class="flex items-center bg-gray-200 p-2 border-b border-gray-300 text-sm font-bold cursor-pointer"><div class="w-16 text-center">Status</div><div class="w-20 text-center">Method</div><div class="flex-grow text-left">Path</div><div class="w-20 text-center">Timestamp</div><div class="w-16 text-right">Duration</div><div class="w-10"></div></div><ul class="overflow-y-auto flex-grow" style="max-height:calc(100vh - 40px - 100px - 49px)"><li class="flex items-center justify-center h-full text-gray-500 text-2xl">No operations</li></ul><nav class="p-2 border-t border-gray-300"><ul class="flex items-center justify-center -space-x-px h-8 text-sm"><li><button disabled="" class="flex items-center justify-center px-3 h-8 leading-tight text-gray-500 bg-white border border-e-0 border-gray-300 rounded-s-lg hover:bg-gray-100 hover:text-gray-700 disabled:opacity-50 dark:bg-gray-800 dark:border-gray-700 dark:text-gray-400 dark:hover:bg-gray-700 dark:hover:text-white cursor-pointer"><span class="sr-only">Previous</span><svg class="w-2.5 h-2.5 rtl:rotate-180" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 6 10"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 1 1 5l4 4"></path></svg></button></li><li><button class="z-10 flex items-center justify-center px-3 h-8 leading-tight text-blue-600 border border-blue-300 bg-blue-50 hover:bg-blue-100 hover:text-blue-700 dark:border-gray-700 dark:bg-gray-700 dark:text-white cursor-pointer">1</button></li><li><button disabled="" class="flex items-center justify-center px-3 h-8 leading-tight text-gray-500 bg-white border border-gray-300 rounded-e-lg hover:bg-gray-100 hover:text-gray-700 disabled:opacity-50 dark:bg-gray-800 dark:border-gray-700 dark:text-gray-400 dark:hover:bg-gray-700 dark:hover:text-white cursor-pointer"><span class="sr-only">Next</span><svg class="w-2.5 h-2.5 rtl:rotate-180" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 6 10"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m1 9 4-4-4-4"></path></svg></button></li></ul></nav><div class="fixed top-0 left-0 h-full w-100 bg-white shadow-xl transform transition-transform duration-300
2
2
  -translate-x-full
3
- " style="z-index:9999"><div class="flex items-center justify-between px-4 py-3 border-b border-gray-300 bg-gray-50"><h2 class="pl-4 text-lg font-semibold text-gray-800">Filter &amp; Sort</h2><button class="text-gray-600 hover:text-gray-800 focus:outline-none cursor-pointer" aria-label="Close">×</button></div><div class="p-4 overflow-y-auto h-full"><section class="mb-6 ml-4 mr-4"><div class="flex items-center justify-between"><h3 class="mb-3 text-xs font-bold text-gray-600 uppercase tracking-wide">Sort By</h3><button class="text-xs text-blue-600 hover:underline cursor-pointer">Reset</button></div><div class="space-y-3"><label class="flex items-center"><input type="radio" class="form-radio text-blue-600" name="sortField" checked="" value="time"/><span class="ml-3 text-gray-700">Timestamp</span></label><label class="flex items-center"><input type="radio" class="form-radio text-blue-600" name="sortField" value="statusCode"/><span class="ml-3 text-gray-700">Status</span></label><label class="flex items-center"><input type="radio" class="form-radio text-blue-600" name="sortField" value="method"/><span class="ml-3 text-gray-700">Method</span></label></div><div class="mt-4"><h4 class="mb-2 text-xs font-bold text-gray-600 uppercase tracking-wide">Sort Direction</h4><div class="space-y-3"><label class="flex items-center"><input type="radio" class="form-radio text-blue-600" name="sortDirection" value="asc"/><span class="ml-3 text-gray-700">Ascending</span></label><label class="flex items-center"><input type="radio" class="form-radio text-blue-600" name="sortDirection" checked="" value="desc"/><span class="ml-3 text-gray-700">Descending</span></label></div></div></section><section class="mb-6 ml-4 mr-4"><div class="flex items-center justify-between"><h3 class="mb-3 text-xs font-bold text-gray-600 uppercase tracking-wide">Filters</h3><button class="text-xs text-blue-600 hover:underline cursor-pointer">Reset</button></div><div class="space-y-4"><div><label class="block text-sm font-medium text-gray-700 mb-1">Quick Time Range</label><select class="block w-full border border-gray-300 rounded-md shadow-sm py-2 px-3 focus:ring-blue-500 focus:border-blue-500 sm:text-sm"><option value="" selected="">Any</option><option value="15M">Last 15 minutes</option><option value="30M">Last 30 minutes</option><option value="1H">Last 1 hour</option><option value="3H">Last 3 hours</option><option value="6H">Last 6 hours</option><option value="12H">Last 12 hours</option><option value="24H">Last 24 hours</option><option value="48H">Last 2 days</option><option value="week">Last Week</option><option value="month">Last Month</option></select></div><div><label class="block text-sm font-medium text-gray-700 mb-1">Specific Time Range</label><div class="flex space-x-2"><input type="datetime-local" class="w-1/2 border border-gray-300 rounded-md shadow-sm py-2 px-3 focus:ring-blue-500 focus:border-blue-500 sm:text-sm" value=""/><input type="datetime-local" class="w-1/2 border border-gray-300 rounded-md shadow-sm py-2 px-3 focus:ring-blue-500 focus:border-blue-500 sm:text-sm" value=""/></div></div><div><label class="block text-sm font-medium text-gray-700 mb-1">Status</label><input type="number" placeholder="e.g. 200" class="block w-full border border-gray-300 rounded-md shadow-sm py-2 px-3 focus:ring-blue-500 focus:border-blue-500 sm:text-sm" value=""/></div><div><label class="block text-sm font-medium text-gray-700 mb-1">Method</label><select class="block w-full border border-gray-300 rounded-md shadow-sm py-2 px-3 focus:ring-blue-500 focus:border-blue-500 sm:text-sm"><option value="" selected="">Any</option><option value="GET">GET</option><option value="POST">POST</option><option value="PUT">PUT</option><option value="PATCH">PATCH</option><option value="DELETE">DELETE</option><option value="OPTIONS">OPTIONS</option><option value="HEAD">HEAD</option></select></div><div><label class="block text-sm font-medium text-gray-700 mb-1">Path</label><input type="text" placeholder="e.g. /api/users" class="block w-full border border-gray-300 rounded-md shadow-sm py-2 px-3 focus:ring-blue-500 focus:border-blue-500 sm:text-sm" value=""/></div><div><label class="block text-sm font-medium text-gray-700 mb-1">Duration (ms)</label><div class="flex space-x-2"><input type="number" placeholder="Min" class="w-1/2 border border-gray-300 rounded-md shadow-sm py-2 px-3 focus:ring-blue-500 focus:border-blue-500 sm:text-sm" value=""/><input type="number" placeholder="Max" class="w-1/2 border border-gray-300 rounded-md shadow-sm py-2 px-3 focus:ring-blue-500 focus:border-blue-500 sm:text-sm" value=""/></div></div><div><label class="block text-sm font-medium text-gray-700 mb-1">Host</label><input type="text" placeholder="e.g. localhost" class="block w-full border border-gray-300 rounded-md shadow-sm py-2 px-3 focus:ring-blue-500 focus:border-blue-500 sm:text-sm" value=""/></div></div></section></div></div></div></div><div class="w-2/3 p-4"><div class="text-gray-500">No request selected.</div></div></div><div class="fixed bottom-0 left-0 w-full"><div class="flex items-center justify-between bg-gray-200 px-4 py-2 w-full cursor-pointer select-none"><div class="flex items-center gap-4"><span class="px-2 py-1 rounded-full text-xs font-semibold flex items-center bg-red-500"><span class="w-2 h-2 rounded-full mr-1 bg-red-800"></span>Disconnected</span></div><a href="https://github.com/thim81/inspectr" target="_blank" rel="noopener noreferrer" class="flex items-center gap-2"><img src="data:image/png;base64,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" alt="Inspectr Logo" class="h-6"/><span class="text-gray-700 font-semibold text-sm">Inspectr</span></a></div><div class="bg-gray-100 border-t border-gray-300 transition-all duration-300 overflow-hidden max-h-0 opacity-0 py-0"><div class="px-6"><div class="grid grid-cols-2 gap-4 items-center"><div><h2 class="text-lg font-semibold text-gray-800 mb-4">Configuration</h2></div><div class="flex items-center gap-2"><label class="text-gray-700 font-semibold whitespace-nowrap">SSE Endpoint:</label><input type="text" class="border p-2 rounded flex-1 bg-white" placeholder="Enter SSE Endpoint..." value="/api/sse"/></div></div><div class="flex justify-end mt-4"><button class="bg-green-600 text-white px-4 py-2 rounded-md">Apply</button></div></div></div></div></div><!--astro:end--></astro-island> </body></html>
3
+ " style="z-index:9999"><div class="flex items-center justify-between px-4 py-3 border-b border-gray-300 bg-gray-50"><h2 class="pl-4 text-lg font-semibold text-gray-800">Filter &amp; Sort</h2><button class="text-gray-600 hover:text-gray-800 focus:outline-none cursor-pointer" aria-label="Close">×</button></div><div class="p-4 overflow-y-auto h-full"><section class="mb-6 ml-4 mr-4"><div class="flex items-center justify-between"><h3 class="mb-3 text-xs font-bold text-gray-600 uppercase tracking-wide">Sort By</h3><button class="text-xs text-blue-600 hover:underline cursor-pointer">Reset</button></div><div class="space-y-3"><label class="flex items-center"><input type="radio" class="form-radio text-blue-600" name="sortField" checked="" value="time"/><span class="ml-3 text-gray-700">Timestamp</span></label><label class="flex items-center"><input type="radio" class="form-radio text-blue-600" name="sortField" value="statusCode"/><span class="ml-3 text-gray-700">Status</span></label><label class="flex items-center"><input type="radio" class="form-radio text-blue-600" name="sortField" value="method"/><span class="ml-3 text-gray-700">Method</span></label></div><div class="mt-4"><h4 class="mb-2 text-xs font-bold text-gray-600 uppercase tracking-wide">Sort Direction</h4><div class="space-y-3"><label class="flex items-center"><input type="radio" class="form-radio text-blue-600" name="sortDirection" value="asc"/><span class="ml-3 text-gray-700">Ascending</span></label><label class="flex items-center"><input type="radio" class="form-radio text-blue-600" name="sortDirection" checked="" value="desc"/><span class="ml-3 text-gray-700">Descending</span></label></div></div></section><section class="mb-6 ml-4 mr-4"><div class="flex items-center justify-between"><h3 class="mb-3 text-xs font-bold text-gray-600 uppercase tracking-wide">Filters</h3><button class="text-xs text-blue-600 hover:underline cursor-pointer">Reset</button></div><div class="space-y-4"><div><label class="block text-sm font-medium text-gray-700 mb-1">Quick Time Range</label><select class="block w-full border border-gray-300 rounded-md shadow-sm py-2 px-3 focus:ring-blue-500 focus:border-blue-500 sm:text-sm"><option value="" selected="">Any</option><option value="5M">Last 5 minutes</option><option value="15M">Last 15 minutes</option><option value="30M">Last 30 minutes</option><option value="1H">Last 1 hour</option><option value="3H">Last 3 hours</option><option value="6H">Last 6 hours</option><option value="12H">Last 12 hours</option><option value="24H">Last 24 hours</option><option value="48H">Last 48 hours</option><option value="week">Last Week</option><option value="month">Last Month</option></select></div><div><label class="block text-sm font-medium text-gray-700 mb-1">Specific Time Range</label><div class="flex space-x-2"><input type="datetime-local" class="w-1/2 border border-gray-300 rounded-md shadow-sm py-2 px-3 focus:ring-blue-500 focus:border-blue-500 sm:text-sm" value=""/><input type="datetime-local" class="w-1/2 border border-gray-300 rounded-md shadow-sm py-2 px-3 focus:ring-blue-500 focus:border-blue-500 sm:text-sm" value=""/></div></div><div><label class="block text-sm font-medium text-gray-700 mb-1">Status</label><div class="w-full max-w-md relative"><div class="flex flex-wrap items-center border border-gray-300 rounded-md shadow-sm px-2 py-1"><input type="text" class="flex-grow outline-none p-1" placeholder="Add status code..." value=""/></div></div></div><div><label class="block text-sm font-medium text-gray-700 mb-1">Method</label><div class="w-full max-w-md relative"><div class="flex flex-wrap items-center border border-gray-300 rounded-md shadow-sm px-2 py-1"><input type="text" class="flex-grow outline-none p-1" placeholder="Add method..." value=""/></div></div></div><div><label class="block text-sm font-medium text-gray-700 mb-1">Path</label><input type="text" placeholder="e.g. /api/users" class="block w-full border border-gray-300 rounded-md shadow-sm py-2 px-3 focus:ring-blue-500 focus:border-blue-500 sm:text-sm" value=""/></div><div><label class="block text-sm font-medium text-gray-700 mb-1">Duration (ms)</label><div class="flex space-x-2"><input type="number" placeholder="Min" class="w-1/2 border border-gray-300 rounded-md shadow-sm py-2 px-3 focus:ring-blue-500 focus:border-blue-500 sm:text-sm" value=""/><input type="number" placeholder="Max" class="w-1/2 border border-gray-300 rounded-md shadow-sm py-2 px-3 focus:ring-blue-500 focus:border-blue-500 sm:text-sm" value=""/></div></div><div><label class="block text-sm font-medium text-gray-700 mb-1">Host</label><input type="text" placeholder="e.g. localhost" class="block w-full border border-gray-300 rounded-md shadow-sm py-2 px-3 focus:ring-blue-500 focus:border-blue-500 sm:text-sm" value=""/></div></div></section></div></div></div></div><div class="w-2/3 p-4"><div class="text-gray-500">No request selected.</div></div></div><div class="fixed bottom-0 left-0 w-full"><div class="flex items-center justify-between bg-gray-200 px-4 py-2 w-full cursor-pointer select-none"><div class="flex items-center gap-4"><span class="px-2 py-1 rounded-full text-xs font-semibold flex items-center
4
+ bg-red-500"><span class="w-2 h-2 rounded-full mr-1
5
+ bg-red-800"></span>Disconnected</span></div><a href="https://github.com/inspectr-hq/inspectr" target="_blank" rel="noopener noreferrer" class="flex items-center gap-2"><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAYAAADimHc4AAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAACHxJREFUeJztnX+MFGcdxiul8UWMcECtlSIcR+GKYKsHhTu9dsQr9PhxV+TSEtTYVqXVHnD9AZWWhkG7tY1pY2uUtrYRQhZbTyC1Ftyilhg1Ri0Ww4gh1pomeze3O8ZaClZ68PoZ50gu6+zdLjd732FmnuT5j5DvPJ/bfZ93fu155yVKlChRokSJEg1FatLssXi09ByxE6FfjHfjU/g/+HE8TnquWKgv/D9jXeCf4irp+SItAj4f/9wn/DN+EL9Les7IinCXDxC+63/ij0vPGUn1LbivDQLA9Y+lZ42kCPZ6fLoEACdxrfS8kZL7vY5/XUL4Z7xVeuZIiUA/XOJf/xn/FV8kPXdkRJj3lBG+7tsffEF67kjI3ekOUj0zuAVfjtfg7/R5pfTskRBBzsJvFQn/V8kOOAARosL34tfxOwU+VST8N8ZMr7+sPe3svW27o295Kq+/uDWvb3o0rz/3zbxe9UCu5wYzd1/bppySPr7QizDvxr1lfs9/a+0zPW3tO53TRQBoAPSuuDe3Qfr4Qi/C/FuZ4b9dbXxm0rrO/CsA0AMA0CvuyR2VPr7Qi0APlQng+Y5dzlUA6C0BwEHp4wu9CPQ6/O8yKuaC23c7z3V05vUgAE7wFbRU+vhCL+XtdJvwdvzDfn7VB0AWV92xx+kEQAYAGQBkAJABQAYAGQBkAPAsABayCCdnR89Gyjv1/CMfADukZ4uFCHoC/pMPgOukZ4uFCLq2yLpwofRssRBBf8on/C7puWIjwr7ZB8A+6bnOSRHceHxbvxNlpfi3PgA2r3/BWXXX806aFpSmBaVpQWlaUJoWlKYFpWlBaVpQmhaUpgWlP70xt6P1ztz2pWty3792dc/TTTf1PGWssp9obLO/29Bq3zJ/iT1WOp+Kqq/NfK/MjVYxLwTAcwDQANAl7AP0io05DQANAA0ADQANAA0AXd9i63nN9qNzmrqjW1UJ7WP4HwGEfxxXA+BokACuvNa2ATBdOqeKidDq8b8CAJB979S6KgCcCBhAHgCzpHOqmAjuAnfxDADA4TWdr05av9fRAX8F7QLACOmcKirCm4ifxFaJdk9BFJ6e3r9hnzMTABYALABYALAAYAHAAoAFAAsAFgAsAFgAsABgAcACgAUACwAWACwAHG5osR+bv9hOrh0XirAb8JsFALZJzxUbEXaz8m667Q/gIem5YiPCXumzBrRLzxUbEfZXfAC0Ss8VGxH2Rh8Ac6XnCq2Ud0FlKV6Nbw3AewsBjJ919bS7M85aWpBJCzJpQSYtyKQFmbQgkxZk0oJMWpBJCzJpQSYtyKQFmbQgkxZk0oJMWpBJCzJpQSY11GQfYNYt6DYvb+w2Z9d3mTPndJkzrugyp83KbqqpzS6fOj0b7oqqvLuW9wfQ8wf08vs7xwLgtaD3AQDQANAA0ADQANAA0ADQANDVl2ZfnDItO0Y656IinDZV3n2bZ+Newq/CWQEAp6fUZJdL51xUbjup9F8/zhP+hTgnAEBPrsneKp1zURHOlfjtCgPIEf4HsCMA4ASfgI9K51xUyjvd3KG8uxUqBeB1wp+Mjw0zgC4AtLMGnC+d87CKwDsLAFjl/h8rv54bCYCLADCh5c7cOABULVrd8z4AjAbAKAC8u6HFvgAAIyJ9PeBspLx7goYEINEQlAAQVgJAWAmAsxAhVeGpATnj04IUbqQFGbQggxZk0IIMWpBBCzJoQQYtyKAFGbQggxZksAgbLMIGLchgETZoQQaLsMEibLAIG7Qgg0XYoAUZtCCDFmTQggxakEELMmouy1ZL5zqolPd0y2Oq/Acsyt0HTMHHh7mGnqaGPk0NHSWdc1Ep767mSoZ/BsCH8JsCG7FeNmKLpHMuKsJZW+HwXR8j/PcLnoq4QzrnoiKcxcPwCdCEPwHbAgBO8QkI70MehDMKb1XFn2YMxPU3b5kIgL8LANjOGhD+t3IR0iX4amwE4G2FAMbWNkwHwPwht6Ab7QUAuAYATQBYAIBPFm1BtdkZ0rmKSHmPrRZ+Cj4hPVdsRNhf9gFwg/RcsZEbtg+Au6Tnio0Ie5H6/4s8j0jPFRsp/zuq09JznbMivDr88hCr6Esb9jl1QdbQhhb70LzF9jzpfCoqghuDfx/AXuDI6m2vXBL4PqDZ/sOcpu7w3nYyVBFcIz4WAAAbj1//gnM84I3YMQA0SudUMSnvfW+5AAC4zwzXAOBIwAB6ADBTOqeKiuA2K+91kkOFsAQAewIE8M68ZnuLdD4Vl/KuGSzs2+GaJfpFHwApACwBQAoAKQCkAJACQAoAKQCkAJACwP0A+BoAtgxwb+jmhlZ72fwldnjP9UuKsG/0AfAz6bliI8K+ygeAu5Yk9/AMhwj6UuX/tsQPSs8WCxH0OHzQB8D10rPFQgQ9Aj/jA+BZ6dkiJ0IdqbwbfN3TFf2fF/Z7xcH/NmS0oF8O8pzwQVpQR9um3Ejp4wu9lPeMQanXld2HQZpv3+38oIR9gPve0C9JH1/oRaBHy9yQZTp2OXPXdeZPlvDaykPSxxd6EeiRMgGcvHjusskA+F0JAF6WPr7Qi0BX4RNlQtjavrO7GQC9g7w3tE36+EIv5T1ls0x5L/TYVuCXigB4a3R13Ufa087DADgAgAMAOACAXwBgf98bs1pZhOP1dEvQIugZ+I0iEP6IJ/b7t251na28W1vC+1zXuSTl3fj1kwG+in6DP4+vwd/APcp7u9bj0rNHRoS5rsz1wf3dgc9Kzx0ZEWZNGfsE139RyS9rBCvl/VZkqQCSW1iClvJeBlLKDcDupctJ0vNGTsr7NaXDJQDYKT1rZKW8p3EGejGI24CukJ4zsurr+XsGAPBV6RkjL+VdqPG70WsHfo/0fLGQ8h6J/bbyzh/l8X0q+W354ZdKLtAnSpQoUaJEicrRfwFj5g/5zsKE0wAAAABJRU5ErkJggg==" alt="Inspectr Logo" class="h-6"/><span class="text-gray-700 font-semibold text-sm">Inspectr</span></a></div><div class="bg-gray-100 border-t border-gray-300 transition-all duration-300 overflow-hidden max-h-0 opacity-0 py-0"><div class="px-6"><h2 class="text-lg font-semibold text-gray-800 mb-4">Configuration</h2><div class="grid grid-cols-3 gap-6"><div><label class="block text-sm font-medium text-gray-700 mb-1">Inspectr API Endpoint</label><input type="text" placeholder="Enter API Endpoint..." class="w-full border bg-white border-gray-300 rounded-md shadow-sm py-2 px-3 focus:ring-blue-500 focus:border-blue-500 sm:text-sm" value="/api"/><button class="mt-2 bg-blue-600 text-white px-3 py-1.5 rounded-md text-sm">Save</button></div><div><label class="block text-sm font-medium text-gray-700 mb-1">Channel</label><input type="text" placeholder="Enter Channel..." class="w-full bg-white border border-gray-300 rounded-md shadow-sm py-2 px-3 focus:ring-blue-500 focus:border-blue-500 sm:text-sm" value=""/><button class="mt-2 bg-green-600 text-white px-3 py-1.5 rounded-md text-sm">Register</button></div><div><label class="block text-sm font-medium text-gray-700 mb-1">Access Code</label><input type="text" placeholder="Enter Access Code..." class="w-full border bg-white border-gray-300 rounded-md shadow-sm py-2 px-3 focus:ring-blue-500 focus:border-blue-500 sm:text-sm" value=""/></div></div></div></div></div></div><!--astro:end--></astro-island> </body></html>
package/package.json CHANGED
@@ -2,13 +2,13 @@
2
2
  "name": "@inspectr/app",
3
3
  "description": "Standalone Inspectr app for inspecting API requests & Webhook events.",
4
4
  "type": "module",
5
- "version": "0.0.4",
5
+ "version": "0.1.0",
6
6
  "author": "Tim Haselaars",
7
- "homepage": "https://github.com/thim81/inspectr#readme",
8
- "bugs": "https://github.com/thim81/inspectr-app/issues",
7
+ "homepage": "https://github.com/inspectr-hq/inspectr#readme",
8
+ "bugs": "https://github.com/inspectr-hq/inspectr-app/issues",
9
9
  "repository": {
10
10
  "type": "git",
11
- "url": "git+https://github.com/thim81/inspectr-app.git"
11
+ "url": "git+https://github.com/inspectr-hq/inspectr-app.git"
12
12
  },
13
13
  "main": "dist/index.html",
14
14
  "files": [
@@ -35,12 +35,12 @@
35
35
  "SSE"
36
36
  ],
37
37
  "devDependencies": {
38
- "@astrojs/react": "^4.2.0",
38
+ "@astrojs/react": "^4.2.1",
39
39
  "@tailwindcss/vite": "^4.0.6",
40
- "@inspectr/ui": "^0.0.11",
40
+ "@inspectr/ui": "^0.1.1",
41
41
  "@types/react": "^19.0.8",
42
42
  "@types/react-dom": "^19.0.3",
43
- "astro": "^5.3.0",
43
+ "astro": "^5.4.2",
44
44
  "tailwindcss": "^4.0.6"
45
45
  },
46
46
  "publishConfig": {