rabbitmq-forward-control 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/.next/BUILD_ID +1 -0
- package/.next/app-build-manifest.json +127 -0
- package/.next/app-path-routes-manifest.json +16 -0
- package/.next/build-manifest.json +33 -0
- package/.next/cache/.previewinfo +1 -0
- package/.next/cache/.rscinfo +1 -0
- package/.next/cache/.tsbuildinfo +1 -0
- package/.next/cache/config.json +7 -0
- package/.next/cache/next-devtools-config.json +1 -0
- package/.next/cache/webpack/client-development/0.pack.gz +0 -0
- package/.next/cache/webpack/client-development/1.pack.gz +0 -0
- package/.next/cache/webpack/client-development/2.pack.gz +0 -0
- package/.next/cache/webpack/client-development/3.pack.gz +0 -0
- package/.next/cache/webpack/client-development/4.pack.gz +0 -0
- package/.next/cache/webpack/client-development/index.pack.gz +0 -0
- package/.next/cache/webpack/client-development/index.pack.gz.old +0 -0
- package/.next/cache/webpack/client-development-fallback/0.pack.gz +0 -0
- package/.next/cache/webpack/client-development-fallback/index.pack.gz +0 -0
- package/.next/cache/webpack/client-development-fallback/index.pack.gz.old +0 -0
- package/.next/cache/webpack/client-production/0.pack +0 -0
- package/.next/cache/webpack/client-production/1.pack +0 -0
- package/.next/cache/webpack/client-production/2.pack +0 -0
- package/.next/cache/webpack/client-production/3.pack +0 -0
- package/.next/cache/webpack/client-production/4.pack +0 -0
- package/.next/cache/webpack/client-production/5.pack +0 -0
- package/.next/cache/webpack/client-production/6.pack +0 -0
- package/.next/cache/webpack/client-production/index.pack +0 -0
- package/.next/cache/webpack/client-production/index.pack.old +0 -0
- package/.next/cache/webpack/edge-server-development/0.pack.gz +0 -0
- package/.next/cache/webpack/edge-server-development/1.pack.gz +0 -0
- package/.next/cache/webpack/edge-server-development/2.pack.gz +0 -0
- package/.next/cache/webpack/edge-server-development/3.pack.gz +0 -0
- package/.next/cache/webpack/edge-server-development/index.pack.gz +0 -0
- package/.next/cache/webpack/edge-server-development/index.pack.gz.old +0 -0
- package/.next/cache/webpack/edge-server-production/0.pack +0 -0
- package/.next/cache/webpack/edge-server-production/index.pack +0 -0
- package/.next/cache/webpack/edge-server-production/index.pack.old +0 -0
- package/.next/cache/webpack/server-development/0.pack.gz +0 -0
- package/.next/cache/webpack/server-development/1.pack.gz +0 -0
- package/.next/cache/webpack/server-development/2.pack.gz +0 -0
- package/.next/cache/webpack/server-development/3.pack.gz +0 -0
- package/.next/cache/webpack/server-development/4.pack.gz +0 -0
- package/.next/cache/webpack/server-development/index.pack.gz +0 -0
- package/.next/cache/webpack/server-development/index.pack.gz.old +0 -0
- package/.next/cache/webpack/server-production/0.pack +0 -0
- package/.next/cache/webpack/server-production/1.pack +0 -0
- package/.next/cache/webpack/server-production/2.pack +0 -0
- package/.next/cache/webpack/server-production/3.pack +0 -0
- package/.next/cache/webpack/server-production/4.pack +0 -0
- package/.next/cache/webpack/server-production/index.pack +0 -0
- package/.next/cache/webpack/server-production/index.pack.old +0 -0
- package/.next/diagnostics/build-diagnostics.json +6 -0
- package/.next/diagnostics/framework.json +1 -0
- package/.next/export-marker.json +6 -0
- package/.next/images-manifest.json +58 -0
- package/.next/next-minimal-server.js.nft.json +1 -0
- package/.next/next-server.js.nft.json +1 -0
- package/.next/package.json +1 -0
- package/.next/prerender-manifest.json +157 -0
- package/.next/react-loadable-manifest.json +1 -0
- package/.next/required-server-files.json +323 -0
- package/.next/routes-manifest.json +77 -0
- package/.next/server/app/_not-found/page.js +2 -0
- package/.next/server/app/_not-found/page.js.nft.json +1 -0
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -0
- package/.next/server/app/_not-found.html +1 -0
- package/.next/server/app/_not-found.meta +8 -0
- package/.next/server/app/_not-found.rsc +16 -0
- package/.next/server/app/api/console/channel/content/route.js +1 -0
- package/.next/server/app/api/console/channel/content/route.js.nft.json +1 -0
- package/.next/server/app/api/console/channel/content/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/console/channel/list/route.js +1 -0
- package/.next/server/app/api/console/channel/list/route.js.nft.json +1 -0
- package/.next/server/app/api/console/channel/list/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/console/forwarders/route.js +7 -0
- package/.next/server/app/api/console/forwarders/route.js.nft.json +1 -0
- package/.next/server/app/api/console/forwarders/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/console/logs/content/route.js +1 -0
- package/.next/server/app/api/console/logs/content/route.js.nft.json +1 -0
- package/.next/server/app/api/console/logs/content/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/console/logs/route.js +1 -0
- package/.next/server/app/api/console/logs/route.js.nft.json +1 -0
- package/.next/server/app/api/console/logs/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/console/settings/route.js +6 -0
- package/.next/server/app/api/console/settings/route.js.nft.json +1 -0
- package/.next/server/app/api/console/settings/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/console/stats/route.js +2 -0
- package/.next/server/app/api/console/stats/route.js.nft.json +1 -0
- package/.next/server/app/api/console/stats/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/ingest/route.js +6 -0
- package/.next/server/app/api/ingest/route.js.nft.json +1 -0
- package/.next/server/app/api/ingest/route_client-reference-manifest.js +1 -0
- package/.next/server/app/console/forward/page.js +2 -0
- package/.next/server/app/console/forward/page.js.nft.json +1 -0
- package/.next/server/app/console/forward/page_client-reference-manifest.js +1 -0
- package/.next/server/app/console/forward.html +1 -0
- package/.next/server/app/console/forward.meta +7 -0
- package/.next/server/app/console/forward.rsc +18 -0
- package/.next/server/app/console/logs/page.js +2 -0
- package/.next/server/app/console/logs/page.js.nft.json +1 -0
- package/.next/server/app/console/logs/page_client-reference-manifest.js +1 -0
- package/.next/server/app/console/logs.html +1 -0
- package/.next/server/app/console/logs.meta +7 -0
- package/.next/server/app/console/logs.rsc +18 -0
- package/.next/server/app/console/page.js +2 -0
- package/.next/server/app/console/page.js.nft.json +1 -0
- package/.next/server/app/console/page_client-reference-manifest.js +1 -0
- package/.next/server/app/console/receive/page.js +5 -0
- package/.next/server/app/console/receive/page.js.nft.json +1 -0
- package/.next/server/app/console/receive/page_client-reference-manifest.js +1 -0
- package/.next/server/app/console/receive.html +3 -0
- package/.next/server/app/console/receive.meta +7 -0
- package/.next/server/app/console/receive.rsc +18 -0
- package/.next/server/app/console.html +1 -0
- package/.next/server/app/console.meta +7 -0
- package/.next/server/app/console.rsc +18 -0
- package/.next/server/app/index.html +1 -0
- package/.next/server/app/index.meta +9 -0
- package/.next/server/app/index.rsc +17 -0
- package/.next/server/app/page.js +2 -0
- package/.next/server/app/page.js.nft.json +1 -0
- package/.next/server/app/page_client-reference-manifest.js +1 -0
- package/.next/server/app-paths-manifest.json +16 -0
- package/.next/server/chunks/393.js +9 -0
- package/.next/server/chunks/404.js +6 -0
- package/.next/server/chunks/611.js +6 -0
- package/.next/server/chunks/730.js +3 -0
- package/.next/server/chunks/873.js +22 -0
- package/.next/server/chunks/877.js +1 -0
- package/.next/server/chunks/880.js +1 -0
- package/.next/server/functions-config-manifest.json +4 -0
- package/.next/server/instrumentation.js +1 -0
- package/.next/server/instrumentation.js.nft.json +1 -0
- package/.next/server/interception-route-rewrite-manifest.js +1 -0
- package/.next/server/middleware-build-manifest.js +1 -0
- package/.next/server/middleware-manifest.json +6 -0
- package/.next/server/middleware-react-loadable-manifest.js +1 -0
- package/.next/server/next-font-manifest.js +1 -0
- package/.next/server/next-font-manifest.json +1 -0
- package/.next/server/pages/404.html +1 -0
- package/.next/server/pages/500.html +1 -0
- package/.next/server/pages/_app.js +1 -0
- package/.next/server/pages/_app.js.nft.json +1 -0
- package/.next/server/pages/_document.js +1 -0
- package/.next/server/pages/_document.js.nft.json +1 -0
- package/.next/server/pages/_error.js +19 -0
- package/.next/server/pages/_error.js.nft.json +1 -0
- package/.next/server/pages-manifest.json +6 -0
- package/.next/server/server-reference-manifest.js +1 -0
- package/.next/server/server-reference-manifest.json +1 -0
- package/.next/server/webpack-runtime.js +1 -0
- package/.next/static/chunks/255-1d1a1d3a2611d01b.js +1 -0
- package/.next/static/chunks/4bd1b696-844b1d0e78245c10.js +1 -0
- package/.next/static/chunks/657-0a7b4068b17a498e.js +1 -0
- package/.next/static/chunks/720-7c503373571041c5.js +1 -0
- package/.next/static/chunks/909-df1df79f44c4b47c.js +1 -0
- package/.next/static/chunks/930-3035d0b294080d0b.js +1 -0
- package/.next/static/chunks/app/_not-found/page-e73823794ff40fe9.js +1 -0
- package/.next/static/chunks/app/api/console/channel/content/route-70fb17a7b66a8fc3.js +1 -0
- package/.next/static/chunks/app/api/console/channel/list/route-70fb17a7b66a8fc3.js +1 -0
- package/.next/static/chunks/app/api/console/forwarders/route-70fb17a7b66a8fc3.js +1 -0
- package/.next/static/chunks/app/api/console/logs/content/route-70fb17a7b66a8fc3.js +1 -0
- package/.next/static/chunks/app/api/console/logs/route-70fb17a7b66a8fc3.js +1 -0
- package/.next/static/chunks/app/api/console/settings/route-70fb17a7b66a8fc3.js +1 -0
- package/.next/static/chunks/app/api/console/stats/route-70fb17a7b66a8fc3.js +1 -0
- package/.next/static/chunks/app/api/ingest/route-70fb17a7b66a8fc3.js +1 -0
- package/.next/static/chunks/app/console/forward/page-d9a759ec439080b4.js +1 -0
- package/.next/static/chunks/app/console/layout-194de38c97cedfc1.js +1 -0
- package/.next/static/chunks/app/console/logs/page-85e15a637bc4c004.js +1 -0
- package/.next/static/chunks/app/console/page-4f8bee8de21f562c.js +1 -0
- package/.next/static/chunks/app/console/receive/page-abda78a86a468f80.js +1 -0
- package/.next/static/chunks/app/layout-4e9c323eacd521ee.js +1 -0
- package/.next/static/chunks/app/page-70fb17a7b66a8fc3.js +1 -0
- package/.next/static/chunks/framework-0da1eca3ad5a591d.js +1 -0
- package/.next/static/chunks/main-891c01a9eeff970d.js +1 -0
- package/.next/static/chunks/main-app-c9ceb62c33b0b3f6.js +1 -0
- package/.next/static/chunks/pages/_app-5addca2b3b969fde.js +1 -0
- package/.next/static/chunks/pages/_error-022e4ac7bbb9914f.js +1 -0
- package/.next/static/chunks/polyfills-42372ed130431b0a.js +1 -0
- package/.next/static/chunks/webpack-ad3ccc1e9012aeca.js +1 -0
- package/.next/static/css/192808ba9ceee1ad.css +3 -0
- package/.next/static/y_Jw6-VHCvpm3If2CrLiz/_buildManifest.js +1 -0
- package/.next/static/y_Jw6-VHCvpm3If2CrLiz/_ssgManifest.js +1 -0
- package/.next/trace +3 -0
- package/.next/types/app/api/console/channel/content/route.ts +347 -0
- package/.next/types/app/api/console/channel/list/route.ts +347 -0
- package/.next/types/app/api/console/forwarders/route.ts +347 -0
- package/.next/types/app/api/console/logs/content/route.ts +347 -0
- package/.next/types/app/api/console/logs/route.ts +347 -0
- package/.next/types/app/api/console/settings/route.ts +347 -0
- package/.next/types/app/api/console/stats/route.ts +347 -0
- package/.next/types/app/api/ingest/route.ts +347 -0
- package/.next/types/app/console/forward/page.ts +84 -0
- package/.next/types/app/console/layout.ts +84 -0
- package/.next/types/app/console/logs/page.ts +84 -0
- package/.next/types/app/console/page.ts +84 -0
- package/.next/types/app/console/receive/page.ts +84 -0
- package/.next/types/app/layout.ts +84 -0
- package/.next/types/app/page.ts +84 -0
- package/.next/types/cache-life.d.ts +141 -0
- package/.next/types/package.json +1 -0
- package/.next/types/routes.d.ts +85 -0
- package/.next/types/validator.ts +187 -0
- package/bin/cli.mjs +36 -0
- package/next.config.ts +16 -0
- package/package.json +63 -0
- package/postcss.config.mjs +8 -0
- package/tailwind.config.ts +35 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[492],{24585:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"styles",{enumerable:!0,get:function(){return l}});let l={error:{fontFamily:'system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"',height:"100vh",textAlign:"center",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center"},desc:{display:"inline-block"},h1:{display:"inline-block",margin:"0 20px 0 0",padding:"0 23px 0 0",fontSize:24,fontWeight:500,verticalAlign:"top",lineHeight:"49px"},h2:{fontSize:14,fontWeight:400,lineHeight:"49px",margin:0}};("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},38886:(e,t,l)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"HTTPAccessErrorFallback",{enumerable:!0,get:function(){return o}});let r=l(95155),n=l(24585);function o(e){let{status:t,message:l}=e;return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("title",{children:t+": "+l}),(0,r.jsx)("div",{style:n.styles.error,children:(0,r.jsxs)("div",{children:[(0,r.jsx)("style",{dangerouslySetInnerHTML:{__html:"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}),(0,r.jsx)("h1",{className:"next-error-h1",style:n.styles.h1,children:t}),(0,r.jsx)("div",{style:n.styles.desc,children:(0,r.jsx)("h2",{style:n.styles.h2,children:l})})]})})]})}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},57859:(e,t,l)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/_not-found/page",function(){return l(79520)}])},79520:(e,t,l)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return o}});let r=l(95155),n=l(38886),o=function(){return(0,r.jsx)("html",{children:(0,r.jsx)("body",{children:(0,r.jsx)(n.HTTPAccessErrorFallback,{status:404,message:"This page could not be found."})})})};("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)}},e=>{e.O(0,[441,255,358],()=>e(e.s=57859)),_N_E=e.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[319,408,451,571,617,662,869,965,974],{84441:()=>{}},_=>{_.O(0,[441,255,358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[319,408,451,571,617,662,869,965,974],{84441:()=>{}},_=>{_.O(0,[441,255,358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[319,408,451,571,617,662,869,965,974],{84441:()=>{}},_=>{_.O(0,[441,255,358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[319,408,451,571,617,662,869,965,974],{84441:()=>{}},_=>{_.O(0,[441,255,358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[319,408,451,571,617,662,869,965,974],{84441:()=>{}},_=>{_.O(0,[441,255,358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[319,408,451,571,617,662,869,965,974],{84441:()=>{}},_=>{_.O(0,[441,255,358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[319,408,451,571,617,662,869,965,974],{84441:()=>{}},_=>{_.O(0,[441,255,358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[319,408,451,571,617,662,869,965,974],{84441:()=>{}},_=>{_.O(0,[441,255,358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[786],{3998:(e,t,a)=>{"use strict";a.d(t,{$:()=>o});var s=a(95155),r=a(12115),n=a(32467),i=a(83101),l=a(64269);let c=(0,i.F)("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-xl text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-rose-500/40 disabled:pointer-events-none disabled:opacity-50",{variants:{variant:{default:"bg-rose-600 text-white hover:bg-rose-700 dark:bg-rose-600 dark:hover:bg-rose-500",outline:"border border-zinc-200 bg-white text-zinc-900 hover:bg-zinc-50 dark:border-zinc-700 dark:bg-zinc-950 dark:text-zinc-100 dark:hover:bg-zinc-900",ghost:"text-zinc-700 hover:bg-zinc-100 dark:text-zinc-300 dark:hover:bg-zinc-900"},size:{default:"h-10 px-4 py-2",sm:"h-8 rounded-lg px-3 text-xs",lg:"h-11 rounded-xl px-6"}},defaultVariants:{variant:"default",size:"default"}}),o=r.forwardRef((e,t)=>{let{className:a,variant:r,size:i,asChild:o=!1,...d}=e,x=o?n.DX:"button";return(0,s.jsx)(x,{className:(0,l.cn)(c({variant:r,size:i,className:a})),ref:t,...d})});o.displayName="Button"},64269:(e,t,a)=>{"use strict";a.d(t,{cn:()=>n});var s=a(2821),r=a(75889);function n(){for(var e=arguments.length,t=Array(e),a=0;a<e;a++)t[a]=arguments[a];return(0,r.QP)((0,s.$)(t))}},64810:(e,t,a)=>{"use strict";a.d(t,{U:()=>o});var s=a(95155),r=a(12115),n=a(3998),i=a(65142),l=a(76444),c=a(64269);function o(e){let{kind:t,title:a}=e,[o,d]=(0,r.useState)([]),[x,u]=(0,r.useState)(null),[m,h]=(0,r.useState)(""),[p,b]=(0,r.useState)([]),[f,g]=(0,r.useState)(!1),v=(0,r.useCallback)(async()=>{var e;let a=await fetch("/api/console/channel/list?kind=".concat(t),{cache:"no-store"});a.ok&&d(null!=(e=(await a.json()).items)?e:[])},[t]),k=(0,r.useCallback)(async()=>{var e;if(!x)return void b([]);g(!0);let a=new URLSearchParams({kind:t,name:x,limit:"200"});m.trim()&&a.set("topic",m.trim());let s=await fetch("/api/console/channel/content?".concat(a),{cache:"no-store"});if(g(!1),!s.ok)return void b([]);b(null!=(e=(await s.json()).lines)?e:[])},[t,x,m]);return(0,r.useEffect)(()=>{v()},[v]),(0,r.useEffect)(()=>{if(0===o.length)return void u(null);u(e=>e&&o.some(t=>t.name===e)?e:o[0].name)},[o]),(0,r.useEffect)(()=>{let e=window.setTimeout(()=>void k(),0);return()=>window.clearTimeout(e)},[k]),(0,s.jsxs)("div",{className:"flex min-h-[280px] flex-col gap-3 rounded-2xl border border-zinc-200/80 bg-white p-4 dark:border-zinc-800 dark:bg-zinc-950 lg:flex-row",children:[(0,s.jsxs)("div",{className:"flex w-full flex-col gap-2 lg:w-56 lg:shrink-0",children:[(0,s.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,s.jsx)("h3",{className:"text-sm font-semibold text-zinc-900 dark:text-white",children:a}),(0,s.jsx)(n.$,{type:"button",variant:"outline",size:"sm",onClick:()=>void v(),children:"刷新列表"})]}),(0,s.jsx)(l.J,{className:"text-[11px]",children:"按 topic / routingKey 过滤"}),(0,s.jsx)(i.p,{value:m,onChange:e=>h(e.target.value),placeholder:"例如 alerts",className:"h-9 text-xs"}),(0,s.jsx)("ul",{className:"max-h-48 overflow-y-auto rounded-xl border border-zinc-100 dark:border-zinc-800",children:0===o.length?(0,s.jsx)("li",{className:"px-3 py-4 text-xs text-zinc-500",children:"暂无日志文件"}):o.map(e=>(0,s.jsx)("li",{children:(0,s.jsxs)("button",{type:"button",onClick:()=>u(e.name),className:(0,c.cn)("w-full border-l-2 px-2 py-2 text-left text-xs transition-colors",x===e.name?"border-rose-600 bg-rose-50/90 text-rose-950 dark:border-rose-500 dark:bg-rose-950/30 dark:text-rose-100":"border-transparent text-zinc-700 hover:bg-zinc-50 dark:text-zinc-300 dark:hover:bg-zinc-900"),children:[(0,s.jsx)("div",{className:"font-mono",children:e.name}),(0,s.jsx)("div",{className:"text-[10px] text-zinc-500",children:new Date(e.mtimeMs).toLocaleString()})]})},e.name))})]}),(0,s.jsxs)("div",{className:"flex min-h-0 min-w-0 flex-1 flex-col gap-2",children:[(0,s.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,s.jsx)("p",{className:"text-xs text-zinc-500",children:"尾部匹配行(JSON),自动随过滤刷新"}),(0,s.jsx)(n.$,{type:"button",variant:"outline",size:"sm",disabled:f,onClick:()=>void k(),children:f?"加载…":"刷新内容"})]}),(0,s.jsx)("div",{className:"min-h-[200px] flex-1 overflow-auto rounded-xl border border-zinc-100 bg-zinc-50/50 p-2 font-mono text-[11px] leading-relaxed text-zinc-800 dark:border-zinc-800 dark:bg-zinc-900/40 dark:text-zinc-200",children:0===p.length?(0,s.jsx)("span",{className:"text-zinc-500",children:"无行"}):p.map((e,t)=>(0,s.jsxs)("div",{className:"whitespace-pre-wrap break-all border-b border-zinc-100/80 py-1 dark:border-zinc-800/80",children:[(0,s.jsx)("span",{className:"mr-2 text-zinc-400",children:e.line}),e.text]},"".concat(e.line,"-").concat(t)))})]})]})}},65142:(e,t,a)=>{"use strict";a.d(t,{p:()=>i});var s=a(95155),r=a(12115),n=a(64269);let i=r.forwardRef((e,t)=>{let{className:a,type:r,...i}=e;return(0,s.jsx)("input",{type:r,className:(0,n.cn)("flex h-10 w-full rounded-xl border border-zinc-200 bg-white px-3 py-2 text-sm text-zinc-900 shadow-sm transition-colors placeholder:text-zinc-400 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-rose-500/30 disabled:cursor-not-allowed disabled:opacity-50 dark:border-zinc-800 dark:bg-zinc-950 dark:text-zinc-100",a),ref:t,...i})});i.displayName="Input"},67006:(e,t,a)=>{Promise.resolve().then(a.bind(a,67112))},67112:(e,t,a)=>{"use strict";a.d(t,{ForwardClient:()=>b});var s=a(95155),r=a(12115),n=a(18720),i=a(6191),l=a(71360),c=a(64810),o=a(3998),d=a(86948),x=a(65142),u=a(76444),m=a(81343),h=a(64269);let p=r.forwardRef((e,t)=>{let{className:a,...r}=e;return(0,s.jsx)(m.bL,{className:(0,h.cn)("peer inline-flex h-6 w-11 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-rose-500/40 focus-visible:ring-offset-2 focus-visible:ring-offset-white disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-rose-600 data-[state=unchecked]:bg-zinc-200 dark:data-[state=unchecked]:bg-zinc-800 dark:focus-visible:ring-offset-zinc-950",a),...r,ref:t,children:(0,s.jsx)(m.zi,{className:(0,h.cn)("pointer-events-none block h-5 w-5 rounded-full bg-white shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-5 data-[state=unchecked]:translate-x-0")})})});function b(){let[e,t]=(0,r.useState)([]),a=(0,r.useCallback)(async()=>{var e;let a=await fetch("/api/console/forwarders");a.ok&&t((null!=(e=(await a.json()).items)?e:[]).map(e=>({id:e.id,name:e.name,queue:e.queue,webhookUrl:e.webhookUrl,enabled:e.enabled})))},[]);(0,r.useEffect)(()=>{a()},[a]);let m=async()=>{if(!(await fetch("/api/console/forwarders",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({items:e.map(e=>({id:e.id,name:e.name,queue:e.queue,webhookUrl:e.webhookUrl,enabled:e.enabled}))})})).ok)return void n.o.error("保存失败:请检查钉钉 webhook 为 https://oapi.dingtalk.com/.../robot/send");n.o.success("已保存并重连消费者"),a()};return(0,s.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("h1",{className:"text-lg font-semibold tracking-tight text-zinc-900 dark:text-white",children:"转发端"}),(0,s.jsx)("p",{className:"mt-0.5 text-xs text-zinc-500 dark:text-zinc-400",children:"每个实例消费指定队列(需已在 RabbitMQ 绑定到交换机 topic),消息文本推送到钉钉机器人 webhook。修改后保存会重启 AMQP 消费者。"})]}),(0,s.jsxs)(d.Zp,{children:[(0,s.jsxs)(d.aR,{className:"flex flex-row flex-wrap items-center justify-between gap-2 space-y-0",children:[(0,s.jsxs)("div",{children:[(0,s.jsx)(d.ZB,{className:"text-base",children:"转发实例"}),(0,s.jsx)(d.BT,{children:"data/forwarders.json"})]}),(0,s.jsxs)("div",{className:"flex gap-2",children:[(0,s.jsxs)(o.$,{type:"button",variant:"outline",size:"sm",onClick:()=>{t(e=>[...e,{id:"undefined"!=typeof crypto&&crypto.randomUUID?crypto.randomUUID().slice(0,8):String(Date.now()).slice(-8),name:"新实例",queue:"your.queue",webhookUrl:"https://oapi.dingtalk.com/robot/send?access_token=...",enabled:!1}])},children:[(0,s.jsx)(i.A,{className:"mr-1 h-4 w-4"}),"添加"]}),(0,s.jsx)(o.$,{type:"button",size:"sm",onClick:()=>void m(),children:"保存并重连"})]})]}),(0,s.jsx)(d.Wu,{className:"space-y-4",children:0===e.length?(0,s.jsx)("p",{className:"text-sm text-zinc-500",children:"暂无实例,点击「添加」创建。"}):e.map((e,a)=>(0,s.jsxs)("div",{className:"grid gap-3 rounded-2xl border border-zinc-100 p-4 dark:border-zinc-800 sm:grid-cols-2 lg:grid-cols-12 lg:items-end",children:[(0,s.jsxs)("div",{className:"space-y-1.5 lg:col-span-2",children:[(0,s.jsx)(u.J,{children:"名称"}),(0,s.jsx)(x.p,{value:e.name,onChange:e=>t(t=>t.map((t,s)=>s===a?{...t,name:e.target.value}:t))})]}),(0,s.jsxs)("div",{className:"space-y-1.5 lg:col-span-3",children:[(0,s.jsx)(u.J,{children:"队列名"}),(0,s.jsx)(x.p,{className:"font-mono text-xs",value:e.queue,onChange:e=>t(t=>t.map((t,s)=>s===a?{...t,queue:e.target.value}:t))})]}),(0,s.jsxs)("div",{className:"space-y-1.5 sm:col-span-2 lg:col-span-5",children:[(0,s.jsx)(u.J,{children:"钉钉 webhook"}),(0,s.jsx)(x.p,{className:"font-mono text-[11px]",value:e.webhookUrl,onChange:e=>t(t=>t.map((t,s)=>s===a?{...t,webhookUrl:e.target.value}:t))})]}),(0,s.jsxs)("div",{className:"flex items-center gap-2 lg:col-span-1",children:[(0,s.jsx)(p,{checked:e.enabled,onCheckedChange:e=>t(t=>t.map((t,s)=>s===a?{...t,enabled:e}:t))}),(0,s.jsx)("span",{className:"text-xs text-zinc-600 dark:text-zinc-400",children:"启用"})]}),(0,s.jsx)("div",{className:"flex lg:col-span-1",children:(0,s.jsx)(o.$,{type:"button",variant:"ghost",size:"sm",onClick:()=>{let a;return a=e.id,t(e=>e.filter(e=>e.id!==a))},"aria-label":"删除",children:(0,s.jsx)(l.A,{className:"h-4 w-4 text-zinc-500"})})})]},e.id))})]}),(0,s.jsx)(c.U,{kind:"forward",title:"转发通道日志(按实例按天)"})]})}p.displayName=m.bL.displayName},76444:(e,t,a)=>{"use strict";a.d(t,{J:()=>l});var s=a(95155),r=a(12115),n=a(46554),i=a(64269);let l=r.forwardRef((e,t)=>{let{className:a,...r}=e;return(0,s.jsx)(n.b,{ref:t,className:(0,i.cn)("text-xs font-medium leading-none text-zinc-700 peer-disabled:cursor-not-allowed peer-disabled:opacity-70 dark:text-zinc-300",a),...r})});l.displayName=n.b.displayName},86948:(e,t,a)=>{"use strict";a.d(t,{BT:()=>o,Wu:()=>d,ZB:()=>c,Zp:()=>i,aR:()=>l});var s=a(95155),r=a(12115),n=a(64269);let i=r.forwardRef((e,t)=>{let{className:a,...r}=e;return(0,s.jsx)("div",{ref:t,className:(0,n.cn)("rounded-2xl border border-zinc-200/80 bg-white text-zinc-950 shadow-sm dark:border-zinc-800 dark:bg-zinc-950 dark:text-zinc-50",a),...r})});i.displayName="Card";let l=r.forwardRef((e,t)=>{let{className:a,...r}=e;return(0,s.jsx)("div",{ref:t,className:(0,n.cn)("flex flex-col space-y-1.5 p-5 pb-3",a),...r})});l.displayName="CardHeader";let c=r.forwardRef((e,t)=>{let{className:a,...r}=e;return(0,s.jsx)("h3",{ref:t,className:(0,n.cn)("text-base font-semibold leading-none tracking-tight",a),...r})});c.displayName="CardTitle";let o=r.forwardRef((e,t)=>{let{className:a,...r}=e;return(0,s.jsx)("p",{ref:t,className:(0,n.cn)("text-xs text-zinc-500 dark:text-zinc-400",a),...r})});o.displayName="CardDescription";let d=r.forwardRef((e,t)=>{let{className:a,...r}=e;return(0,s.jsx)("div",{ref:t,className:(0,n.cn)("p-5 pt-0",a),...r})});d.displayName="CardContent"}},e=>{e.O(0,[909,720,657,441,255,358],()=>e(e.s=67006)),_N_E=e.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[99],{17045:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"errorOnce",{enumerable:!0,get:function(){return r}});let r=e=>{}},33078:(e,t)=>{"use strict";function r(e){let t={};for(let[r,n]of e.entries()){let e=t[r];void 0===e?t[r]=n:Array.isArray(e)?e.push(n):t[r]=[e,n]}return t}function n(e){return"string"==typeof e?e:("number"!=typeof e||isNaN(e))&&"boolean"!=typeof e?"":String(e)}function o(e){let t=new URLSearchParams;for(let[r,o]of Object.entries(e))if(Array.isArray(o))for(let e of o)t.append(r,n(e));else t.set(r,n(o));return t}function a(e){for(var t=arguments.length,r=Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];for(let t of r){for(let r of t.keys())e.delete(r);for(let[r,n]of t.entries())e.append(r,n)}return e}Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{assign:function(){return a},searchParamsToUrlQuery:function(){return r},urlQueryToSearchParams:function(){return o}})},40499:(e,t,r)=>{Promise.resolve().then(r.bind(r,64446))},47670:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{formatUrl:function(){return a},formatWithValidation:function(){return l},urlObjectKeys:function(){return i}});let n=r(49417)._(r(33078)),o=/https?|ftp|gopher|file/;function a(e){let{auth:t,hostname:r}=e,a=e.protocol||"",i=e.pathname||"",l=e.hash||"",s=e.query||"",c=!1;t=t?encodeURIComponent(t).replace(/%3A/i,":")+"@":"",e.host?c=t+e.host:r&&(c=t+(~r.indexOf(":")?"["+r+"]":r),e.port&&(c+=":"+e.port)),s&&"object"==typeof s&&(s=String(n.urlQueryToSearchParams(s)));let u=e.search||s&&"?"+s||"";return a&&!a.endsWith(":")&&(a+=":"),e.slashes||(!a||o.test(a))&&!1!==c?(c="//"+(c||""),i&&"/"!==i[0]&&(i="/"+i)):c||(c=""),l&&"#"!==l[0]&&(l="#"+l),u&&"?"!==u[0]&&(u="?"+u),""+a+c+(i=i.replace(/[?#]/g,encodeURIComponent))+(u=u.replace("#","%23"))+l}let i=["auth","hash","host","hostname","href","path","pathname","port","protocol","query","search","slashes"];function l(e){return a(e)}},52619:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{default:function(){return m},useLinkStatus:function(){return b}});let n=r(49417),o=r(95155),a=n._(r(12115)),i=r(47670),l=r(46752),s=r(83011),c=r(62296),u=r(96058);r(94781);let d=r(63499),f=r(58607),h=r(11807);r(17045);let p=r(66048);function x(e){return"string"==typeof e?e:(0,i.formatUrl)(e)}function m(e){var t;let r,n,i,[m,b]=(0,a.useOptimistic)(d.IDLE_LINK_STATUS),g=(0,a.useRef)(null),{href:v,as:k,children:j,prefetch:w=null,passHref:N,replace:z,shallow:P,scroll:_,onClick:E,onMouseEnter:O,onTouchStart:A,legacyBehavior:S=!1,onNavigate:C,ref:M,unstable_dynamicOnHover:R,...T}=e;r=j,S&&("string"==typeof r||"number"==typeof r)&&(r=(0,o.jsx)("a",{children:r}));let L=a.default.useContext(l.AppRouterContext),I=!1!==w,U=!1!==w?null===(t=w)||"auto"===t?p.FetchStrategy.PPR:p.FetchStrategy.Full:p.FetchStrategy.PPR,{href:F,as:D}=a.default.useMemo(()=>{let e=x(v);return{href:e,as:k?x(k):e}},[v,k]);S&&(n=a.default.Children.only(r));let W=S?n&&"object"==typeof n&&n.ref:M,B=a.default.useCallback(e=>(null!==L&&(g.current=(0,d.mountLinkInstance)(e,F,L,U,I,b)),()=>{g.current&&((0,d.unmountLinkForCurrentNavigation)(g.current),g.current=null),(0,d.unmountPrefetchableInstance)(e)}),[I,F,L,U,b]),K={ref:(0,s.useMergedRef)(B,W),onClick(e){S||"function"!=typeof E||E(e),S&&n.props&&"function"==typeof n.props.onClick&&n.props.onClick(e),L&&(e.defaultPrevented||function(e,t,r,n,o,i,l){let{nodeName:s}=e.currentTarget;if(!("A"===s.toUpperCase()&&function(e){let t=e.currentTarget.getAttribute("target");return t&&"_self"!==t||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey||e.nativeEvent&&2===e.nativeEvent.which}(e)||e.currentTarget.hasAttribute("download"))){if(!(0,f.isLocalURL)(t)){o&&(e.preventDefault(),location.replace(t));return}if(e.preventDefault(),l){let e=!1;if(l({preventDefault:()=>{e=!0}}),e)return}a.default.startTransition(()=>{(0,h.dispatchNavigateAction)(r||t,o?"replace":"push",null==i||i,n.current)})}}(e,F,D,g,z,_,C))},onMouseEnter(e){S||"function"!=typeof O||O(e),S&&n.props&&"function"==typeof n.props.onMouseEnter&&n.props.onMouseEnter(e),L&&I&&(0,d.onNavigationIntent)(e.currentTarget,!0===R)},onTouchStart:function(e){S||"function"!=typeof A||A(e),S&&n.props&&"function"==typeof n.props.onTouchStart&&n.props.onTouchStart(e),L&&I&&(0,d.onNavigationIntent)(e.currentTarget,!0===R)}};return(0,c.isAbsoluteUrl)(D)?K.href=D:S&&!N&&("a"!==n.type||"href"in n.props)||(K.href=(0,u.addBasePath)(D)),i=S?a.default.cloneElement(n,K):(0,o.jsx)("a",{...T,...K,children:r}),(0,o.jsx)(y.Provider,{value:m,children:i})}let y=(0,a.createContext)(d.IDLE_LINK_STATUS),b=()=>(0,a.useContext)(y);("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},58607:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"isLocalURL",{enumerable:!0,get:function(){return a}});let n=r(62296),o=r(92929);function a(e){if(!(0,n.isAbsoluteUrl)(e))return!0;try{let t=(0,n.getLocationOrigin)(),r=new URL(e,t);return r.origin===t&&(0,o.hasBasePath)(r.pathname)}catch(e){return!1}}},62296:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{DecodeError:function(){return p},MiddlewareNotFoundError:function(){return b},MissingStaticPage:function(){return y},NormalizeError:function(){return x},PageNotFoundError:function(){return m},SP:function(){return f},ST:function(){return h},WEB_VITALS:function(){return r},execOnce:function(){return n},getDisplayName:function(){return s},getLocationOrigin:function(){return i},getURL:function(){return l},isAbsoluteUrl:function(){return a},isResSent:function(){return c},loadGetInitialProps:function(){return d},normalizeRepeatedSlashes:function(){return u},stringifyError:function(){return g}});let r=["CLS","FCP","FID","INP","LCP","TTFB"];function n(e){let t,r=!1;return function(){for(var n=arguments.length,o=Array(n),a=0;a<n;a++)o[a]=arguments[a];return r||(r=!0,t=e(...o)),t}}let o=/^[a-zA-Z][a-zA-Z\d+\-.]*?:/,a=e=>o.test(e);function i(){let{protocol:e,hostname:t,port:r}=window.location;return e+"//"+t+(r?":"+r:"")}function l(){let{href:e}=window.location,t=i();return e.substring(t.length)}function s(e){return"string"==typeof e?e:e.displayName||e.name||"Unknown"}function c(e){return e.finished||e.headersSent}function u(e){let t=e.split("?");return t[0].replace(/\\/g,"/").replace(/\/\/+/g,"/")+(t[1]?"?"+t.slice(1).join("?"):"")}async function d(e,t){let r=t.res||t.ctx&&t.ctx.res;if(!e.getInitialProps)return t.ctx&&t.Component?{pageProps:await d(t.Component,t.ctx)}:{};let n=await e.getInitialProps(t);if(r&&c(r))return n;if(!n)throw Object.defineProperty(Error('"'+s(e)+'.getInitialProps()" should resolve to an object. But found "'+n+'" instead.'),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return n}let f="undefined"!=typeof performance,h=f&&["mark","measure","getEntriesByName"].every(e=>"function"==typeof performance[e]);class p extends Error{}class x extends Error{}class m extends Error{constructor(e){super(),this.code="ENOENT",this.name="PageNotFoundError",this.message="Cannot find module for page: "+e}}class y extends Error{constructor(e,t){super(),this.message="Failed to load static file for page: "+e+" "+t}}class b extends Error{constructor(){super(),this.code="ENOENT",this.message="Cannot find the middleware module"}}function g(e){return JSON.stringify({message:e.message,stack:e.stack})}},64269:(e,t,r)=>{"use strict";r.d(t,{cn:()=>a});var n=r(2821),o=r(75889);function a(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return(0,o.QP)((0,n.$)(t))}},64446:(e,t,r)=>{"use strict";r.d(t,{ConsoleShell:()=>b});var n=r(95155),o=r(47260),a=r(71847);let i=(0,a.A)("Search",[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["path",{d:"m21 21-4.3-4.3",key:"1qie3q"}]]);var l=r(52619),s=r.n(l);let c=(0,a.A)("LayoutDashboard",[["rect",{width:"7",height:"9",x:"3",y:"3",rx:"1",key:"10lvy0"}],["rect",{width:"7",height:"5",x:"14",y:"3",rx:"1",key:"16une8"}],["rect",{width:"7",height:"9",x:"14",y:"12",rx:"1",key:"1hutg5"}],["rect",{width:"7",height:"5",x:"3",y:"16",rx:"1",key:"ldoo1y"}]]),u=(0,a.A)("Inbox",[["polyline",{points:"22 12 16 12 14 15 10 15 8 12 2 12",key:"o97t9d"}],["path",{d:"M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z",key:"oot6mr"}]]),d=(0,a.A)("Share2",[["circle",{cx:"18",cy:"5",r:"3",key:"gq8acd"}],["circle",{cx:"6",cy:"12",r:"3",key:"w7nqdw"}],["circle",{cx:"18",cy:"19",r:"3",key:"1xt0gg"}],["line",{x1:"8.59",x2:"15.42",y1:"13.51",y2:"17.49",key:"47mynk"}],["line",{x1:"15.41",x2:"8.59",y1:"6.51",y2:"10.49",key:"1n3mei"}]]),f=(0,a.A)("ScrollText",[["path",{d:"M15 12h-5",key:"r7krc0"}],["path",{d:"M15 8h-5",key:"1khuty"}],["path",{d:"M19 17V5a2 2 0 0 0-2-2H4",key:"zz82l3"}],["path",{d:"M8 21h12a2 2 0 0 0 2-2v-1a1 1 0 0 0-1-1H11a1 1 0 0 0-1 1v1a2 2 0 1 1-4 0V5a2 2 0 1 0-4 0v2a1 1 0 0 0 1 1h3",key:"1ph1d7"}]]);var h=r(64269);let p=[{href:"/console",label:"Dashboard",icon:c,end:!0},{href:"/console/receive",label:"接收端",icon:u},{href:"/console/forward",label:"转发端",icon:d},{href:"/console/logs",label:"日志",icon:f}];function x(){let e=(0,o.usePathname)();return(0,n.jsxs)("aside",{className:"hidden h-full w-[240px] shrink-0 flex-col border-r border-zinc-200/80 bg-white dark:border-zinc-800 dark:bg-zinc-950 md:flex",children:[(0,n.jsx)("div",{className:"shrink-0 border-b border-zinc-100 px-3 py-4 dark:border-zinc-800",children:(0,n.jsxs)("div",{className:"flex items-center gap-2.5",children:[(0,n.jsx)("div",{className:"flex h-9 w-9 items-center justify-center rounded-xl bg-rose-600 text-sm font-bold text-white shadow-sm",children:"R"}),(0,n.jsxs)("div",{className:"min-w-0",children:[(0,n.jsx)("div",{className:"truncate text-[15px] font-semibold tracking-tight text-zinc-900 dark:text-white",children:"RabbitMQ 转发台"}),(0,n.jsx)("p",{className:"text-[11px] leading-snug text-zinc-500 dark:text-zinc-400",children:"控制台"})]})]})}),(0,n.jsxs)("nav",{className:"flex min-h-0 flex-1 flex-col gap-0.5 overflow-y-auto p-2",children:[(0,n.jsx)("p",{className:"mb-1 px-2.5 pt-1 text-[10px] font-semibold uppercase tracking-[0.14em] text-zinc-400 dark:text-zinc-500",children:"菜单"}),p.map(t=>{var r;let o=(r=t.href,t.end?e===r:e===r||e.startsWith("".concat(r,"/"))),a=t.icon;return(0,n.jsxs)(s(),{href:t.href,className:(0,h.cn)("flex cursor-pointer items-center gap-3 rounded-r-xl border-l-2 py-2.5 pl-[calc(0.75rem-2px)] pr-3 text-[13px] font-medium transition-colors",o?"border-rose-600 bg-rose-50/95 text-rose-950 dark:border-rose-500 dark:bg-rose-950/35 dark:text-rose-100":"border-transparent text-zinc-600 hover:bg-zinc-50 hover:text-zinc-900 dark:text-zinc-400 dark:hover:bg-zinc-900 dark:hover:text-zinc-100"),children:[(0,n.jsx)(a,{className:(0,h.cn)("h-[18px] w-[18px]",o?"text-rose-600 dark:text-rose-300":"text-zinc-400 dark:text-zinc-500")}),(0,n.jsx)("span",{className:"truncate",children:t.label})]},t.href)})]})]})}let m=[{href:"/console",label:"概览"},{href:"/console/receive",label:"接收"},{href:"/console/forward",label:"转发"},{href:"/console/logs",label:"日志"}];function y(){let e=(0,o.usePathname)();return(0,n.jsx)("nav",{className:"flex shrink-0 gap-1 overflow-x-auto border-b border-zinc-200/80 bg-white px-3 py-2 dark:border-zinc-800 dark:bg-zinc-950 md:hidden",children:m.map(t=>{let r=e===t.href||"/console"!==t.href&&e.startsWith(t.href);return(0,n.jsx)(s(),{href:t.href,className:(0,h.cn)("shrink-0 rounded-lg px-3 py-1.5 text-xs font-medium",r?"bg-rose-50 text-rose-900 dark:bg-rose-950/40 dark:text-rose-100":"text-zinc-600 dark:text-zinc-400"),children:t.label},t.href)})})}function b(e){var t;let{children:r}=e,a="/console"===(t=(0,o.usePathname)())?"Dashboard":t.startsWith("/console/receive")?"接收端":t.startsWith("/console/forward")?"转发端":t.startsWith("/console/logs")?"运行日志":"控制台";return(0,n.jsx)("div",{className:"min-h-dvh bg-[#f0f0f2] text-zinc-900 antialiased dark:bg-zinc-950 dark:text-zinc-100 md:h-dvh md:overflow-hidden",children:(0,n.jsxs)("div",{className:"flex h-dvh min-h-0 w-full min-w-0 md:h-full md:min-h-0",children:[(0,n.jsx)(x,{}),(0,n.jsxs)("div",{className:"flex min-h-0 min-w-0 flex-1 flex-col overflow-hidden",children:[(0,n.jsx)(y,{}),(0,n.jsx)("header",{className:"hidden shrink-0 border-b border-zinc-200/80 bg-white/90 px-6 py-3 backdrop-blur dark:border-zinc-800 dark:bg-zinc-950/90 md:block",children:(0,n.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,n.jsxs)("div",{className:"min-w-0 text-sm text-zinc-500 dark:text-zinc-400",children:[(0,n.jsx)("span",{className:"font-medium text-zinc-800 dark:text-zinc-200",children:"RabbitMQ Forward"}),(0,n.jsx)("span",{className:"mx-2 text-zinc-300 dark:text-zinc-600",children:"/"}),(0,n.jsx)("span",{children:a})]}),(0,n.jsxs)("div",{className:"flex items-center gap-2 rounded-xl border border-zinc-200/90 bg-zinc-50/80 px-3 py-1.5 text-xs text-zinc-400 dark:border-zinc-800 dark:bg-zinc-900/50 dark:text-zinc-500",children:[(0,n.jsx)(i,{className:"h-3.5 w-3.5"}),"本地控制台"]})]})}),(0,n.jsx)("main",{className:"flex min-h-0 flex-1 flex-col overflow-y-auto overscroll-y-contain bg-[#f0f0f2] px-4 py-4 dark:bg-zinc-950 sm:px-5 md:px-6 md:py-5",children:r})]})]})})}},71847:(e,t,r)=>{"use strict";r.d(t,{A:()=>l});var n=r(12115);let o=function(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return t.filter((e,t,r)=>!!e&&""!==e.trim()&&r.indexOf(e)===t).join(" ").trim()};var a={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};let i=(0,n.forwardRef)((e,t)=>{let{color:r="currentColor",size:i=24,strokeWidth:l=2,absoluteStrokeWidth:s,className:c="",children:u,iconNode:d,...f}=e;return(0,n.createElement)("svg",{ref:t,...a,width:i,height:i,stroke:r,strokeWidth:s?24*Number(l)/Number(i):l,className:o("lucide",c),...f},[...d.map(e=>{let[t,r]=e;return(0,n.createElement)(t,r)}),...Array.isArray(u)?u:[u]])}),l=(e,t)=>{let r=(0,n.forwardRef)((r,a)=>{let{className:l,...s}=r;return(0,n.createElement)(i,{ref:a,iconNode:t,className:o("lucide-".concat(e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()),l),...s})});return r.displayName="".concat(e),r}},83011:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"useMergedRef",{enumerable:!0,get:function(){return o}});let n=r(12115);function o(e,t){let r=(0,n.useRef)(null),o=(0,n.useRef)(null);return(0,n.useCallback)(n=>{if(null===n){let e=r.current;e&&(r.current=null,e());let t=o.current;t&&(o.current=null,t())}else e&&(r.current=a(e,n)),t&&(o.current=a(t,n))},[e,t])}function a(e,t){if("function"!=typeof e)return e.current=t,()=>{e.current=null};{let r=e(t);return"function"==typeof r?r:()=>e(null)}}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)}},e=>{e.O(0,[909,441,255,358],()=>e(e.s=40499)),_N_E=e.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[34],{1540:(e,t,n)=>{"use strict";n.d(t,{LogsClient:()=>c});var r=n(95155),l=n(12115),a=n(3998),i=n(65142),s=n(76444),o=n(64269);function c(){var e,t;let[n,c]=(0,l.useState)([]),[d,u]=(0,l.useState)(null),[m,x]=(0,l.useState)(!0),[f,p]=(0,l.useState)(1),[b,h]=(0,l.useState)(150),[v,g]=(0,l.useState)([]),[w,y]=(0,l.useState)(null),[j,z]=(0,l.useState)(!1),[k,N]=(0,l.useState)(null),[S,C]=(0,l.useState)(!1),[$,R]=(0,l.useState)(!1),[_,E]=(0,l.useState)(null),[M,D]=(0,l.useState)(""),[L,O]=(0,l.useState)(!0),[P,V]=(0,l.useState)(5),A=(0,l.useRef)(null),F=(0,l.useRef)(async()=>{}),I=(0,l.useCallback)(async()=>{var e;let t=await fetch("/api/console/logs");t.ok&&c(null!=(e=(await t.json()).items)?e:[])},[]);(0,l.useEffect)(()=>{I()},[I]),(0,l.useEffect)(()=>{if(0===n.length)return void u(null);u(e=>e&&n.some(t=>t.name===e)?e:n[0].name)},[n]);let T=(0,l.useCallback)(async()=>{var e,t,n;if(!d)return;if(R(!0),E(null),m){let t=await fetch("/api/console/logs"),n=null==(e=(await t.json()).items)?void 0:e.find(e=>e.name===d);if(n&&A.current&&n.mtimeMs===A.current.mtimeMs&&n.size===A.current.size)return void R(!1)}let r=new URLSearchParams({name:d,limit:String(b)});m?r.set("tail","1"):r.set("fromLine",String(f));let l=await fetch("/api/console/logs/content?".concat(r));if(!l.ok){E("无法读取"),g([]),y(null),R(!1);return}let a=await l.json();if(g(null!=(t=a.lines)?t:[]),y(a.mode),z(a.hasMore),N(a.nextFromLine),C(a.truncatedScan),R(!1),m){let e=await fetch("/api/console/logs"),t=null==(n=(await e.json()).items)?void 0:n.find(e=>e.name===d);t&&(A.current={mtimeMs:t.mtimeMs,size:t.size})}else A.current=null},[d,b,m,f]);F.current=T,(0,l.useEffect)(()=>{if(!d){g([]),y(null);return}let e=window.setTimeout(()=>void T(),0);return()=>window.clearTimeout(e)},[d,f,b,m,T]),(0,l.useEffect)(()=>{if(!L||!d)return;let e=window.setInterval(()=>void F.current(),1e3*P);return()=>window.clearInterval(e)},[L,P,d]);let W=M.trim()?n.filter(e=>e.name.toLowerCase().includes(M.trim().toLowerCase())):n;return(0,r.jsxs)("main",{className:"flex min-h-0 flex-1 flex-col overflow-hidden p-2 pt-2 lg:flex-row lg:p-4 lg:pt-3",children:[(0,r.jsxs)("aside",{className:"mb-3 hidden w-56 shrink-0 flex-col rounded-2xl border border-zinc-200/80 bg-white dark:border-zinc-800 dark:bg-zinc-950 lg:mb-0 lg:mr-3 lg:flex",children:[(0,r.jsxs)("div",{className:"border-b border-zinc-100 p-3 dark:border-zinc-800",children:[(0,r.jsx)("h2",{className:"text-xs font-semibold text-zinc-900 dark:text-white",children:"日志文件"}),(0,r.jsx)(a.$,{type:"button",variant:"outline",size:"sm",className:"mt-2 w-full text-xs",onClick:()=>void I(),children:"刷新列表"})]}),(0,r.jsx)("ul",{className:"max-h-[60vh] overflow-y-auto p-2",children:W.map(e=>(0,r.jsx)("li",{children:(0,r.jsxs)("button",{type:"button",onClick:()=>{u(e.name),x(!0),p(1),A.current=null},className:(0,o.cn)("w-full rounded-r-xl border-l-2 border-transparent px-2 py-2 text-left text-xs",d===e.name?"border-rose-600 bg-rose-50/95 text-rose-950 dark:border-rose-500 dark:bg-rose-950/35 dark:text-rose-100":"text-zinc-700 hover:bg-zinc-50 dark:text-zinc-300 dark:hover:bg-zinc-900"),children:[(0,r.jsx)("div",{className:"font-mono font-medium",children:e.name}),(0,r.jsx)("div",{className:"text-[10px] text-zinc-500",children:new Date(e.mtimeMs).toLocaleString()})]})},e.name))})]}),(0,r.jsxs)("div",{className:"flex min-h-0 min-w-0 flex-1 flex-col overflow-hidden",children:[(0,r.jsxs)("div",{className:"mb-2 shrink-0 lg:mb-3",children:[(0,r.jsx)("h1",{className:"text-base font-semibold tracking-tight text-zinc-900 dark:text-white lg:text-lg",children:"运行日志"}),(0,r.jsx)("p",{className:"mt-0.5 hidden text-xs text-zinc-500 dark:text-zinc-400 md:block",children:"按天切分文件 rmq-forward-YYYY-MM-DD.log,与 chat-client-proxy 的 connector 日志交互一致:支持尾部/分页与关键字扫描。"})]}),(0,r.jsx)("div",{className:"mb-2 flex flex-wrap items-end gap-2 lg:hidden",children:(0,r.jsxs)("div",{className:"min-w-[140px] flex-1 space-y-1",children:[(0,r.jsx)(s.J,{className:"text-[10px]",children:"文件"}),(0,r.jsx)("select",{className:"h-9 w-full rounded-lg border border-zinc-200 bg-white px-2 text-xs dark:border-zinc-800 dark:bg-zinc-950",value:null!=d?d:"",onChange:e=>{u(e.target.value||null),x(!0),A.current=null},children:n.map(e=>(0,r.jsx)("option",{value:e.name,children:e.name},e.name))})]})}),(0,r.jsxs)("div",{className:"mb-2 flex flex-wrap gap-3 rounded-xl border border-zinc-200/80 bg-white/80 p-3 text-xs dark:border-zinc-800 dark:bg-zinc-950/80",children:[(0,r.jsxs)("label",{className:"flex cursor-pointer items-center gap-2",children:[(0,r.jsx)("input",{type:"checkbox",checked:m,onChange:e=>x(e.target.checked),className:"rounded border-zinc-300"}),"最新(尾部)"]}),(0,r.jsxs)("label",{className:"flex cursor-pointer items-center gap-2",children:[(0,r.jsx)("input",{type:"checkbox",checked:L,onChange:e=>O(e.target.checked),className:"rounded border-zinc-300"}),"自动刷新"]}),(0,r.jsxs)("div",{className:"flex items-center gap-1",children:[(0,r.jsx)("span",{className:"text-zinc-500",children:"间隔"}),(0,r.jsx)(i.p,{type:"number",className:"h-8 w-16 text-xs",value:P,min:2,onChange:e=>V(Number(e.target.value)||5)}),(0,r.jsx)("span",{className:"text-zinc-500",children:"秒"})]}),(0,r.jsxs)("div",{className:"flex items-center gap-1",children:[(0,r.jsx)("span",{className:"text-zinc-500",children:"行数"}),(0,r.jsx)(i.p,{type:"number",className:"h-8 w-16 text-xs",value:b,min:20,max:500,onChange:e=>h(Number(e.target.value)||150)})]}),(0,r.jsx)(a.$,{type:"button",variant:"outline",size:"sm",onClick:()=>void T(),children:"刷新"}),!m&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(a.$,{type:"button",variant:"ghost",size:"sm",disabled:!j||"page"!==w,onClick:()=>null!=k&&p(k),children:"下一页"}),(0,r.jsx)(a.$,{type:"button",variant:"ghost",size:"sm",disabled:"page"!==w||(null!=(t=null==(e=v[0])?void 0:e.line)?t:1)<=1,onClick:()=>{var e,t;return p(Math.max(1,(null!=(t=null==(e=v[0])?void 0:e.line)?t:1)-b))},children:"上一页"})]})]}),(0,r.jsx)("div",{className:"mb-2 hidden lg:block",children:(0,r.jsx)(i.p,{className:"h-8 max-w-xs text-xs",placeholder:"筛选左侧文件列表…",value:M,onChange:e=>D(e.target.value)})}),_?(0,r.jsx)("p",{className:"text-sm text-rose-600",children:_}):null,S?(0,r.jsx)("p",{className:"text-xs text-amber-600",children:"单次扫描已截断(文件过大)"}):null,(0,r.jsxs)("div",{className:"min-h-0 flex-1 overflow-auto rounded-xl border border-zinc-200/80 bg-zinc-50/50 p-2 font-mono text-[11px] dark:border-zinc-800 dark:bg-zinc-900/40",children:[$?(0,r.jsx)("p",{className:"text-zinc-500",children:"加载中…"}):null,v.map(e=>(0,r.jsxs)("div",{className:"whitespace-pre-wrap break-all border-b border-zinc-100 py-0.5 dark:border-zinc-800",children:[(0,r.jsx)("span",{className:"mr-2 text-zinc-400",children:e.line}),e.text]},"".concat(e.line)))]})]})]})}},3998:(e,t,n)=>{"use strict";n.d(t,{$:()=>c});var r=n(95155),l=n(12115),a=n(32467),i=n(83101),s=n(64269);let o=(0,i.F)("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-xl text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-rose-500/40 disabled:pointer-events-none disabled:opacity-50",{variants:{variant:{default:"bg-rose-600 text-white hover:bg-rose-700 dark:bg-rose-600 dark:hover:bg-rose-500",outline:"border border-zinc-200 bg-white text-zinc-900 hover:bg-zinc-50 dark:border-zinc-700 dark:bg-zinc-950 dark:text-zinc-100 dark:hover:bg-zinc-900",ghost:"text-zinc-700 hover:bg-zinc-100 dark:text-zinc-300 dark:hover:bg-zinc-900"},size:{default:"h-10 px-4 py-2",sm:"h-8 rounded-lg px-3 text-xs",lg:"h-11 rounded-xl px-6"}},defaultVariants:{variant:"default",size:"default"}}),c=l.forwardRef((e,t)=>{let{className:n,variant:l,size:i,asChild:c=!1,...d}=e,u=c?a.DX:"button";return(0,r.jsx)(u,{className:(0,s.cn)(o({variant:l,size:i,className:n})),ref:t,...d})});c.displayName="Button"},5528:(e,t,n)=>{Promise.resolve().then(n.bind(n,1540))},32467:(e,t,n)=>{"use strict";n.d(t,{DX:()=>u,TL:()=>d});var r,l=n(12115),a=n(94446),i=n(95155),s=Symbol.for("react.lazy"),o=(r||(r=n.t(l,2)))[" use ".trim().toString()];function c(e){var t;return null!=e&&"object"==typeof e&&"$$typeof"in e&&e.$$typeof===s&&"_payload"in e&&"object"==typeof(t=e._payload)&&null!==t&&"then"in t}function d(e){let t=function(e){let t=l.forwardRef((e,t)=>{let{children:n,...r}=e;if(c(n)&&"function"==typeof o&&(n=o(n._payload)),l.isValidElement(n)){var i;let e,s,o=(i=n,(s=(e=Object.getOwnPropertyDescriptor(i.props,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?i.ref:(s=(e=Object.getOwnPropertyDescriptor(i,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?i.props.ref:i.props.ref||i.ref),c=function(e,t){let n={...t};for(let r in t){let l=e[r],a=t[r];/^on[A-Z]/.test(r)?l&&a?n[r]=(...e)=>{let t=a(...e);return l(...e),t}:l&&(n[r]=l):"style"===r?n[r]={...l,...a}:"className"===r&&(n[r]=[l,a].filter(Boolean).join(" "))}return{...e,...n}}(r,n.props);return n.type!==l.Fragment&&(c.ref=t?(0,a.t)(t,o):o),l.cloneElement(n,c)}return l.Children.count(n)>1?l.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}(e),n=l.forwardRef((e,n)=>{let{children:r,...a}=e;c(r)&&"function"==typeof o&&(r=o(r._payload));let s=l.Children.toArray(r),d=s.find(x);if(d){let e=d.props.children,r=s.map(t=>t!==d?t:l.Children.count(e)>1?l.Children.only(null):l.isValidElement(e)?e.props.children:null);return(0,i.jsx)(t,{...a,ref:n,children:l.isValidElement(e)?l.cloneElement(e,void 0,r):null})}return(0,i.jsx)(t,{...a,ref:n,children:r})});return n.displayName=`${e}.Slot`,n}var u=d("Slot"),m=Symbol("radix.slottable");function x(e){return l.isValidElement(e)&&"function"==typeof e.type&&"__radixId"in e.type&&e.type.__radixId===m}},46554:(e,t,n)=>{"use strict";n.d(t,{b:()=>o});var r=n(12115);n(47650);var l=n(32467),a=n(95155),i=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"].reduce((e,t)=>{let n=(0,l.TL)(`Primitive.${t}`),i=r.forwardRef((e,r)=>{let{asChild:l,...i}=e;return"undefined"!=typeof window&&(window[Symbol.for("radix-ui")]=!0),(0,a.jsx)(l?n:t,{...i,ref:r})});return i.displayName=`Primitive.${t}`,{...e,[t]:i}},{}),s=r.forwardRef((e,t)=>(0,a.jsx)(i.label,{...e,ref:t,onMouseDown:t=>{var n;t.target.closest("button, input, select, textarea")||(null==(n=e.onMouseDown)||n.call(e,t),!t.defaultPrevented&&t.detail>1&&t.preventDefault())}}));s.displayName="Label";var o=s},64269:(e,t,n)=>{"use strict";n.d(t,{cn:()=>a});var r=n(2821),l=n(75889);function a(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];return(0,l.QP)((0,r.$)(t))}},65142:(e,t,n)=>{"use strict";n.d(t,{p:()=>i});var r=n(95155),l=n(12115),a=n(64269);let i=l.forwardRef((e,t)=>{let{className:n,type:l,...i}=e;return(0,r.jsx)("input",{type:l,className:(0,a.cn)("flex h-10 w-full rounded-xl border border-zinc-200 bg-white px-3 py-2 text-sm text-zinc-900 shadow-sm transition-colors placeholder:text-zinc-400 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-rose-500/30 disabled:cursor-not-allowed disabled:opacity-50 dark:border-zinc-800 dark:bg-zinc-950 dark:text-zinc-100",n),ref:t,...i})});i.displayName="Input"},76444:(e,t,n)=>{"use strict";n.d(t,{J:()=>s});var r=n(95155),l=n(12115),a=n(46554),i=n(64269);let s=l.forwardRef((e,t)=>{let{className:n,...l}=e;return(0,r.jsx)(a.b,{ref:t,className:(0,i.cn)("text-xs font-medium leading-none text-zinc-700 peer-disabled:cursor-not-allowed peer-disabled:opacity-70 dark:text-zinc-300",n),...l})});s.displayName=a.b.displayName},83101:(e,t,n)=>{"use strict";n.d(t,{F:()=>i});var r=n(2821);let l=e=>"boolean"==typeof e?`${e}`:0===e?"0":e,a=r.$,i=(e,t)=>n=>{var r;if((null==t?void 0:t.variants)==null)return a(e,null==n?void 0:n.class,null==n?void 0:n.className);let{variants:i,defaultVariants:s}=t,o=Object.keys(i).map(e=>{let t=null==n?void 0:n[e],r=null==s?void 0:s[e];if(null===t)return null;let a=l(t)||l(r);return i[e][a]}),c=n&&Object.entries(n).reduce((e,t)=>{let[n,r]=t;return void 0===r||(e[n]=r),e},{});return a(e,o,null==t||null==(r=t.compoundVariants)?void 0:r.reduce((e,t)=>{let{class:n,className:r,...l}=t;return Object.entries(l).every(e=>{let[t,n]=e;return Array.isArray(n)?n.includes({...s,...c}[t]):({...s,...c})[t]===n})?[...e,n,r]:e},[]),null==n?void 0:n.class,null==n?void 0:n.className)}},94446:(e,t,n)=>{"use strict";n.d(t,{s:()=>i,t:()=>a});var r=n(12115);function l(e,t){if("function"==typeof e)return e(t);null!=e&&(e.current=t)}function a(...e){return t=>{let n=!1,r=e.map(e=>{let r=l(e,t);return n||"function"!=typeof r||(n=!0),r});if(n)return()=>{for(let t=0;t<r.length;t++){let n=r[t];"function"==typeof n?n():l(e[t],null)}}}}function i(...e){return r.useCallback(a(...e),e)}}},e=>{e.O(0,[909,441,255,358],()=>e(e.s=5528)),_N_E=e.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[520],{25575:(e,s,a)=>{Promise.resolve().then(a.bind(a,68508))},64269:(e,s,a)=>{"use strict";a.d(s,{cn:()=>l});var t=a(2821),r=a(75889);function l(){for(var e=arguments.length,s=Array(e),a=0;a<e;a++)s[a]=arguments[a];return(0,r.QP)((0,t.$)(s))}},68508:(e,s,a)=>{"use strict";a.d(s,{DashboardClient:()=>j});var t=a(95155),r=a(12115),l=a(26991),c=a(94632),i=a(68425),n=a(47734),d=a(73697),x=a(23508),o=a(7620),h=a(26736),m=a(86948);function j(){let[e,s]=(0,r.useState)(null),a=(0,r.useCallback)(async()=>{let e=await fetch("/api/console/stats",{cache:"no-store"});e.ok&&s(await e.json())},[]);return((0,r.useEffect)(()=>{a();let e=setInterval(()=>void a(),15e3);return()=>clearInterval(e)},[a]),e)?(0,t.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("h1",{className:"text-lg font-semibold tracking-tight text-zinc-900 dark:text-white",children:"Dashboard"}),(0,t.jsx)("p",{className:"mt-0.5 text-xs text-zinc-500 dark:text-zinc-400",children:"接收与转发累计、近 14 日趋势与 RabbitMQ 交换机概览。"})]}),(0,t.jsxs)("div",{className:"grid gap-3 sm:grid-cols-2 lg:grid-cols-4",children:[(0,t.jsx)(m.Zp,{children:(0,t.jsxs)(m.aR,{className:"pb-2",children:[(0,t.jsx)(m.BT,{children:"累计接收"}),(0,t.jsx)(m.ZB,{className:"text-2xl tabular-nums",children:e.metrics.receiveTotal})]})}),(0,t.jsx)(m.Zp,{children:(0,t.jsxs)(m.aR,{className:"pb-2",children:[(0,t.jsx)(m.BT,{children:"转发成功"}),(0,t.jsx)(m.ZB,{className:"text-2xl tabular-nums text-emerald-600 dark:text-emerald-400",children:e.metrics.forwardOkTotal})]})}),(0,t.jsx)(m.Zp,{children:(0,t.jsxs)(m.aR,{className:"pb-2",children:[(0,t.jsx)(m.BT,{children:"转发失败"}),(0,t.jsx)(m.ZB,{className:"text-2xl tabular-nums text-rose-600 dark:text-rose-400",children:e.metrics.forwardErrTotal})]})}),(0,t.jsxs)(m.Zp,{children:[(0,t.jsxs)(m.aR,{className:"pb-2",children:[(0,t.jsx)(m.BT,{children:"转发实例"}),(0,t.jsxs)(m.ZB,{className:"text-2xl tabular-nums",children:[e.forwarders.enabled,"/",e.forwarders.total]})]}),(0,t.jsx)(m.Wu,{className:"text-xs text-zinc-500",children:"已启用 / 总数"})]})]}),(0,t.jsxs)(m.Zp,{children:[(0,t.jsxs)(m.aR,{children:[(0,t.jsx)(m.ZB,{className:"text-base",children:"按日流量"}),(0,t.jsxs)(m.BT,{children:["Exchange ",(0,t.jsx)("span",{className:"font-mono text-zinc-700 dark:text-zinc-300",children:e.rabbitmq.exchange}),"(",e.rabbitmq.exchangeType,")"]})]}),(0,t.jsx)(m.Wu,{className:"h-[320px] w-full min-w-0",children:0===e.series.length?(0,t.jsx)("p",{className:"text-sm text-zinc-500",children:"暂无按日数据,产生流量后将显示柱状图。"}):(0,t.jsx)(l.u,{width:"100%",height:"100%",children:(0,t.jsxs)(c.E,{data:e.series,margin:{top:8,right:8,left:0,bottom:0},children:[(0,t.jsx)(i.d,{strokeDasharray:"3 3",className:"stroke-zinc-200 dark:stroke-zinc-800"}),(0,t.jsx)(n.W,{dataKey:"date",tick:{fontSize:11},className:"text-zinc-500"}),(0,t.jsx)(d.h,{tick:{fontSize:11},className:"text-zinc-500",allowDecimals:!1}),(0,t.jsx)(x.m,{contentStyle:{borderRadius:12,border:"1px solid rgb(228 228 231)",fontSize:12}}),(0,t.jsx)(o.s,{}),(0,t.jsx)(h.y,{dataKey:"receive",name:"接收",fill:"#e11d48",radius:[4,4,0,0]}),(0,t.jsx)(h.y,{dataKey:"forwardOk",name:"转发成功",fill:"#10b981",radius:[4,4,0,0]}),(0,t.jsx)(h.y,{dataKey:"forwardErr",name:"转发失败",fill:"#f97316",radius:[4,4,0,0]})]})})})]})]}):(0,t.jsx)("p",{className:"text-sm text-zinc-500",children:"加载统计中…"})}},86948:(e,s,a)=>{"use strict";a.d(s,{BT:()=>d,Wu:()=>x,ZB:()=>n,Zp:()=>c,aR:()=>i});var t=a(95155),r=a(12115),l=a(64269);let c=r.forwardRef((e,s)=>{let{className:a,...r}=e;return(0,t.jsx)("div",{ref:s,className:(0,l.cn)("rounded-2xl border border-zinc-200/80 bg-white text-zinc-950 shadow-sm dark:border-zinc-800 dark:bg-zinc-950 dark:text-zinc-50",a),...r})});c.displayName="Card";let i=r.forwardRef((e,s)=>{let{className:a,...r}=e;return(0,t.jsx)("div",{ref:s,className:(0,l.cn)("flex flex-col space-y-1.5 p-5 pb-3",a),...r})});i.displayName="CardHeader";let n=r.forwardRef((e,s)=>{let{className:a,...r}=e;return(0,t.jsx)("h3",{ref:s,className:(0,l.cn)("text-base font-semibold leading-none tracking-tight",a),...r})});n.displayName="CardTitle";let d=r.forwardRef((e,s)=>{let{className:a,...r}=e;return(0,t.jsx)("p",{ref:s,className:(0,l.cn)("text-xs text-zinc-500 dark:text-zinc-400",a),...r})});d.displayName="CardDescription";let x=r.forwardRef((e,s)=>{let{className:a,...r}=e;return(0,t.jsx)("div",{ref:s,className:(0,l.cn)("p-5 pt-0",a),...r})});x.displayName="CardContent"}},e=>{e.O(0,[909,930,441,255,358],()=>e(e.s=25575)),_N_E=e.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[474],{3998:(e,t,n)=>{"use strict";n.d(t,{$:()=>c});var r=n(95155),a=n(12115),s=n(32467),l=n(83101),i=n(64269);let o=(0,l.F)("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-xl text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-rose-500/40 disabled:pointer-events-none disabled:opacity-50",{variants:{variant:{default:"bg-rose-600 text-white hover:bg-rose-700 dark:bg-rose-600 dark:hover:bg-rose-500",outline:"border border-zinc-200 bg-white text-zinc-900 hover:bg-zinc-50 dark:border-zinc-700 dark:bg-zinc-950 dark:text-zinc-100 dark:hover:bg-zinc-900",ghost:"text-zinc-700 hover:bg-zinc-100 dark:text-zinc-300 dark:hover:bg-zinc-900"},size:{default:"h-10 px-4 py-2",sm:"h-8 rounded-lg px-3 text-xs",lg:"h-11 rounded-xl px-6"}},defaultVariants:{variant:"default",size:"default"}}),c=a.forwardRef((e,t)=>{let{className:n,variant:a,size:l,asChild:c=!1,...d}=e,u=c?s.DX:"button";return(0,r.jsx)(u,{className:(0,i.cn)(o({variant:a,size:l,className:n})),ref:t,...d})});c.displayName="Button"},18702:(e,t,n)=>{Promise.resolve().then(n.bind(n,49304))},32467:(e,t,n)=>{"use strict";n.d(t,{DX:()=>u,TL:()=>d});var r,a=n(12115),s=n(94446),l=n(95155),i=Symbol.for("react.lazy"),o=(r||(r=n.t(a,2)))[" use ".trim().toString()];function c(e){var t;return null!=e&&"object"==typeof e&&"$$typeof"in e&&e.$$typeof===i&&"_payload"in e&&"object"==typeof(t=e._payload)&&null!==t&&"then"in t}function d(e){let t=function(e){let t=a.forwardRef((e,t)=>{let{children:n,...r}=e;if(c(n)&&"function"==typeof o&&(n=o(n._payload)),a.isValidElement(n)){var l;let e,i,o=(l=n,(i=(e=Object.getOwnPropertyDescriptor(l.props,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?l.ref:(i=(e=Object.getOwnPropertyDescriptor(l,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?l.props.ref:l.props.ref||l.ref),c=function(e,t){let n={...t};for(let r in t){let a=e[r],s=t[r];/^on[A-Z]/.test(r)?a&&s?n[r]=(...e)=>{let t=s(...e);return a(...e),t}:a&&(n[r]=a):"style"===r?n[r]={...a,...s}:"className"===r&&(n[r]=[a,s].filter(Boolean).join(" "))}return{...e,...n}}(r,n.props);return n.type!==a.Fragment&&(c.ref=t?(0,s.t)(t,o):o),a.cloneElement(n,c)}return a.Children.count(n)>1?a.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}(e),n=a.forwardRef((e,n)=>{let{children:r,...s}=e;c(r)&&"function"==typeof o&&(r=o(r._payload));let i=a.Children.toArray(r),d=i.find(p);if(d){let e=d.props.children,r=i.map(t=>t!==d?t:a.Children.count(e)>1?a.Children.only(null):a.isValidElement(e)?e.props.children:null);return(0,l.jsx)(t,{...s,ref:n,children:a.isValidElement(e)?a.cloneElement(e,void 0,r):null})}return(0,l.jsx)(t,{...s,ref:n,children:r})});return n.displayName=`${e}.Slot`,n}var u=d("Slot"),x=Symbol("radix.slottable");function p(e){return a.isValidElement(e)&&"function"==typeof e.type&&"__radixId"in e.type&&e.type.__radixId===x}},46554:(e,t,n)=>{"use strict";n.d(t,{b:()=>o});var r=n(12115);n(47650);var a=n(32467),s=n(95155),l=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"].reduce((e,t)=>{let n=(0,a.TL)(`Primitive.${t}`),l=r.forwardRef((e,r)=>{let{asChild:a,...l}=e;return"undefined"!=typeof window&&(window[Symbol.for("radix-ui")]=!0),(0,s.jsx)(a?n:t,{...l,ref:r})});return l.displayName=`Primitive.${t}`,{...e,[t]:l}},{}),i=r.forwardRef((e,t)=>(0,s.jsx)(l.label,{...e,ref:t,onMouseDown:t=>{var n;t.target.closest("button, input, select, textarea")||(null==(n=e.onMouseDown)||n.call(e,t),!t.defaultPrevented&&t.detail>1&&t.preventDefault())}}));i.displayName="Label";var o=i},49304:(e,t,n)=>{"use strict";n.d(t,{ReceiveClient:()=>u});var r=n(95155),a=n(12115),s=n(18720),l=n(64810),i=n(3998),o=n(86948),c=n(65142),d=n(76444);function u(){let[e,t]=(0,a.useState)(null),[n,u]=(0,a.useState)(""),[x,p]=(0,a.useState)(""),[f,m]=(0,a.useState)("topic"),[h,b]=(0,a.useState)(""),[v,g]=(0,a.useState)(!1),[j,y]=(0,a.useState)("demo.topic"),[N,w]=(0,a.useState)("hello from console"),z=(0,a.useCallback)(async()=>{let e=await fetch("/api/console/settings");if(!e.ok)return;let n=await e.json();t(n),u(n.rabbitmqUrl),p(n.exchange),m(n.exchangeType)},[]);(0,a.useEffect)(()=>{z()},[z]);let k=async()=>{let e={rabbitmqUrl:n,exchange:x,exchangeType:f};if(v&&(e.ingestToken=h),!(await fetch("/api/console/settings",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(e)})).ok)return void s.o.error("保存失败");s.o.success("已保存连接与交换机配置"),g(!1),b(""),z()},C=async()=>{let e={"content-type":"application/json"};h.trim()&&(e.authorization="Bearer ".concat(h.trim()));let t=await fetch("/api/ingest",{method:"POST",headers:e,body:JSON.stringify({topic:j,body:N})}),n=await t.json().catch(()=>({}));if(!t.ok){var r;s.o.error(null!=(r=n.error)?r:"投递失败");return}s.o.success("已投递到 RabbitMQ")},S=window.location.origin;return(0,r.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("h1",{className:"text-lg font-semibold tracking-tight text-zinc-900 dark:text-white",children:"接收端"}),(0,r.jsxs)("p",{className:"mt-0.5 text-xs text-zinc-500 dark:text-zinc-400",children:["HTTP 投递到 RabbitMQ(topic 作为 routing key)。日志按天写入本地 ",(0,r.jsx)("span",{className:"font-mono",children:"logs/channel"}),"。"]})]}),(0,r.jsxs)(o.Zp,{children:[(0,r.jsxs)(o.aR,{children:[(0,r.jsx)(o.ZB,{className:"text-base",children:"HTTP 接口"}),(0,r.jsx)(o.BT,{children:(0,r.jsxs)("span",{className:"font-mono text-zinc-700 dark:text-zinc-300",children:["POST ",S||"…","/api/ingest"]})})]}),(0,r.jsxs)(o.Wu,{className:"space-y-3",children:[(0,r.jsx)("pre",{className:"overflow-x-auto rounded-xl bg-zinc-950 p-3 text-[11px] text-zinc-100",children:'curl -sS -X POST "'.concat(S,'/api/ingest" \\\n -H "Content-Type: application/json" \\ ').concat((null==e?void 0:e.ingestTokenSet)||h.trim()?'\n -H "Authorization: Bearer <token>" \\':"",'\n -d \'{"topic":"your.routing.key","body":"text or use object"}\'')}),e&&(0,r.jsxs)("p",{className:"text-xs text-zinc-500",children:["当前 ingest 令牌:",e.ingestTokenSet?"已设置(输入新值可覆盖)":"未设置(可选)"]})]})]}),(0,r.jsxs)(o.Zp,{children:[(0,r.jsxs)(o.aR,{children:[(0,r.jsx)(o.ZB,{className:"text-base",children:"连接与交换机"}),(0,r.jsx)(o.BT,{children:"写入 data/settings.json,保存后会重连转发消费者。"})]}),(0,r.jsxs)(o.Wu,{className:"grid gap-3 sm:grid-cols-2",children:[(0,r.jsxs)("div",{className:"space-y-1.5 sm:col-span-2",children:[(0,r.jsx)(d.J,{children:"RabbitMQ URL"}),(0,r.jsx)(c.p,{value:n,onChange:e=>u(e.target.value),className:"font-mono text-xs"})]}),(0,r.jsxs)("div",{className:"space-y-1.5",children:[(0,r.jsx)(d.J,{children:"Exchange"}),(0,r.jsx)(c.p,{value:x,onChange:e=>p(e.target.value),className:"font-mono text-xs"})]}),(0,r.jsxs)("div",{className:"space-y-1.5",children:[(0,r.jsx)(d.J,{children:"类型"}),(0,r.jsxs)("select",{value:f,onChange:e=>m(e.target.value),className:"flex h-10 w-full rounded-xl border border-zinc-200 bg-white px-3 text-sm dark:border-zinc-800 dark:bg-zinc-950",children:[(0,r.jsx)("option",{value:"topic",children:"topic"}),(0,r.jsx)("option",{value:"direct",children:"direct"}),(0,r.jsx)("option",{value:"fanout",children:"fanout"})]})]}),(0,r.jsxs)("div",{className:"space-y-1.5 sm:col-span-2",children:[(0,r.jsx)(d.J,{children:"Ingest Token(可选)"}),(0,r.jsx)(c.p,{value:h,onChange:e=>{g(!0),b(e.target.value)},placeholder:"不修改请勿输入;输入新值保存;清空后保存可清除令牌",className:"font-mono text-xs"})]}),(0,r.jsx)("div",{className:"flex gap-2 sm:col-span-2",children:(0,r.jsx)(i.$,{type:"button",onClick:()=>void k(),children:"保存配置"})})]})]}),(0,r.jsxs)(o.Zp,{children:[(0,r.jsxs)(o.aR,{children:[(0,r.jsx)(o.ZB,{className:"text-base",children:"控制台试投"}),(0,r.jsx)(o.BT,{children:"使用当前页填写的 Token(若有)请求 /api/ingest。"})]}),(0,r.jsxs)(o.Wu,{className:"grid gap-3 sm:grid-cols-2",children:[(0,r.jsxs)("div",{className:"space-y-1.5",children:[(0,r.jsx)(d.J,{children:"topic"}),(0,r.jsx)(c.p,{value:j,onChange:e=>y(e.target.value),className:"font-mono text-xs"})]}),(0,r.jsxs)("div",{className:"space-y-1.5 sm:col-span-2",children:[(0,r.jsx)(d.J,{children:"body"}),(0,r.jsx)("textarea",{value:N,onChange:e=>w(e.target.value),rows:3,className:"w-full rounded-xl border border-zinc-200 bg-white px-3 py-2 text-sm dark:border-zinc-800 dark:bg-zinc-950"})]}),(0,r.jsx)(i.$,{type:"button",variant:"outline",onClick:()=>void C(),children:"试投一条"})]})]}),(0,r.jsx)(l.U,{kind:"receive",title:"接收通道日志(按天)"})]})}},64269:(e,t,n)=>{"use strict";n.d(t,{cn:()=>s});var r=n(2821),a=n(75889);function s(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];return(0,a.QP)((0,r.$)(t))}},64810:(e,t,n)=>{"use strict";n.d(t,{U:()=>c});var r=n(95155),a=n(12115),s=n(3998),l=n(65142),i=n(76444),o=n(64269);function c(e){let{kind:t,title:n}=e,[c,d]=(0,a.useState)([]),[u,x]=(0,a.useState)(null),[p,f]=(0,a.useState)(""),[m,h]=(0,a.useState)([]),[b,v]=(0,a.useState)(!1),g=(0,a.useCallback)(async()=>{var e;let n=await fetch("/api/console/channel/list?kind=".concat(t),{cache:"no-store"});n.ok&&d(null!=(e=(await n.json()).items)?e:[])},[t]),j=(0,a.useCallback)(async()=>{var e;if(!u)return void h([]);v(!0);let n=new URLSearchParams({kind:t,name:u,limit:"200"});p.trim()&&n.set("topic",p.trim());let r=await fetch("/api/console/channel/content?".concat(n),{cache:"no-store"});if(v(!1),!r.ok)return void h([]);h(null!=(e=(await r.json()).lines)?e:[])},[t,u,p]);return(0,a.useEffect)(()=>{g()},[g]),(0,a.useEffect)(()=>{if(0===c.length)return void x(null);x(e=>e&&c.some(t=>t.name===e)?e:c[0].name)},[c]),(0,a.useEffect)(()=>{let e=window.setTimeout(()=>void j(),0);return()=>window.clearTimeout(e)},[j]),(0,r.jsxs)("div",{className:"flex min-h-[280px] flex-col gap-3 rounded-2xl border border-zinc-200/80 bg-white p-4 dark:border-zinc-800 dark:bg-zinc-950 lg:flex-row",children:[(0,r.jsxs)("div",{className:"flex w-full flex-col gap-2 lg:w-56 lg:shrink-0",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,r.jsx)("h3",{className:"text-sm font-semibold text-zinc-900 dark:text-white",children:n}),(0,r.jsx)(s.$,{type:"button",variant:"outline",size:"sm",onClick:()=>void g(),children:"刷新列表"})]}),(0,r.jsx)(i.J,{className:"text-[11px]",children:"按 topic / routingKey 过滤"}),(0,r.jsx)(l.p,{value:p,onChange:e=>f(e.target.value),placeholder:"例如 alerts",className:"h-9 text-xs"}),(0,r.jsx)("ul",{className:"max-h-48 overflow-y-auto rounded-xl border border-zinc-100 dark:border-zinc-800",children:0===c.length?(0,r.jsx)("li",{className:"px-3 py-4 text-xs text-zinc-500",children:"暂无日志文件"}):c.map(e=>(0,r.jsx)("li",{children:(0,r.jsxs)("button",{type:"button",onClick:()=>x(e.name),className:(0,o.cn)("w-full border-l-2 px-2 py-2 text-left text-xs transition-colors",u===e.name?"border-rose-600 bg-rose-50/90 text-rose-950 dark:border-rose-500 dark:bg-rose-950/30 dark:text-rose-100":"border-transparent text-zinc-700 hover:bg-zinc-50 dark:text-zinc-300 dark:hover:bg-zinc-900"),children:[(0,r.jsx)("div",{className:"font-mono",children:e.name}),(0,r.jsx)("div",{className:"text-[10px] text-zinc-500",children:new Date(e.mtimeMs).toLocaleString()})]})},e.name))})]}),(0,r.jsxs)("div",{className:"flex min-h-0 min-w-0 flex-1 flex-col gap-2",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,r.jsx)("p",{className:"text-xs text-zinc-500",children:"尾部匹配行(JSON),自动随过滤刷新"}),(0,r.jsx)(s.$,{type:"button",variant:"outline",size:"sm",disabled:b,onClick:()=>void j(),children:b?"加载…":"刷新内容"})]}),(0,r.jsx)("div",{className:"min-h-[200px] flex-1 overflow-auto rounded-xl border border-zinc-100 bg-zinc-50/50 p-2 font-mono text-[11px] leading-relaxed text-zinc-800 dark:border-zinc-800 dark:bg-zinc-900/40 dark:text-zinc-200",children:0===m.length?(0,r.jsx)("span",{className:"text-zinc-500",children:"无行"}):m.map((e,t)=>(0,r.jsxs)("div",{className:"whitespace-pre-wrap break-all border-b border-zinc-100/80 py-1 dark:border-zinc-800/80",children:[(0,r.jsx)("span",{className:"mr-2 text-zinc-400",children:e.line}),e.text]},"".concat(e.line,"-").concat(t)))})]})]})}},65142:(e,t,n)=>{"use strict";n.d(t,{p:()=>l});var r=n(95155),a=n(12115),s=n(64269);let l=a.forwardRef((e,t)=>{let{className:n,type:a,...l}=e;return(0,r.jsx)("input",{type:a,className:(0,s.cn)("flex h-10 w-full rounded-xl border border-zinc-200 bg-white px-3 py-2 text-sm text-zinc-900 shadow-sm transition-colors placeholder:text-zinc-400 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-rose-500/30 disabled:cursor-not-allowed disabled:opacity-50 dark:border-zinc-800 dark:bg-zinc-950 dark:text-zinc-100",n),ref:t,...l})});l.displayName="Input"},76444:(e,t,n)=>{"use strict";n.d(t,{J:()=>i});var r=n(95155),a=n(12115),s=n(46554),l=n(64269);let i=a.forwardRef((e,t)=>{let{className:n,...a}=e;return(0,r.jsx)(s.b,{ref:t,className:(0,l.cn)("text-xs font-medium leading-none text-zinc-700 peer-disabled:cursor-not-allowed peer-disabled:opacity-70 dark:text-zinc-300",n),...a})});i.displayName=s.b.displayName},83101:(e,t,n)=>{"use strict";n.d(t,{F:()=>l});var r=n(2821);let a=e=>"boolean"==typeof e?`${e}`:0===e?"0":e,s=r.$,l=(e,t)=>n=>{var r;if((null==t?void 0:t.variants)==null)return s(e,null==n?void 0:n.class,null==n?void 0:n.className);let{variants:l,defaultVariants:i}=t,o=Object.keys(l).map(e=>{let t=null==n?void 0:n[e],r=null==i?void 0:i[e];if(null===t)return null;let s=a(t)||a(r);return l[e][s]}),c=n&&Object.entries(n).reduce((e,t)=>{let[n,r]=t;return void 0===r||(e[n]=r),e},{});return s(e,o,null==t||null==(r=t.compoundVariants)?void 0:r.reduce((e,t)=>{let{class:n,className:r,...a}=t;return Object.entries(a).every(e=>{let[t,n]=e;return Array.isArray(n)?n.includes({...i,...c}[t]):({...i,...c})[t]===n})?[...e,n,r]:e},[]),null==n?void 0:n.class,null==n?void 0:n.className)}},86948:(e,t,n)=>{"use strict";n.d(t,{BT:()=>c,Wu:()=>d,ZB:()=>o,Zp:()=>l,aR:()=>i});var r=n(95155),a=n(12115),s=n(64269);let l=a.forwardRef((e,t)=>{let{className:n,...a}=e;return(0,r.jsx)("div",{ref:t,className:(0,s.cn)("rounded-2xl border border-zinc-200/80 bg-white text-zinc-950 shadow-sm dark:border-zinc-800 dark:bg-zinc-950 dark:text-zinc-50",n),...a})});l.displayName="Card";let i=a.forwardRef((e,t)=>{let{className:n,...a}=e;return(0,r.jsx)("div",{ref:t,className:(0,s.cn)("flex flex-col space-y-1.5 p-5 pb-3",n),...a})});i.displayName="CardHeader";let o=a.forwardRef((e,t)=>{let{className:n,...a}=e;return(0,r.jsx)("h3",{ref:t,className:(0,s.cn)("text-base font-semibold leading-none tracking-tight",n),...a})});o.displayName="CardTitle";let c=a.forwardRef((e,t)=>{let{className:n,...a}=e;return(0,r.jsx)("p",{ref:t,className:(0,s.cn)("text-xs text-zinc-500 dark:text-zinc-400",n),...a})});c.displayName="CardDescription";let d=a.forwardRef((e,t)=>{let{className:n,...a}=e;return(0,r.jsx)("div",{ref:t,className:(0,s.cn)("p-5 pt-0",n),...a})});d.displayName="CardContent"},94446:(e,t,n)=>{"use strict";n.d(t,{s:()=>l,t:()=>s});var r=n(12115);function a(e,t){if("function"==typeof e)return e(t);null!=e&&(e.current=t)}function s(...e){return t=>{let n=!1,r=e.map(e=>{let r=a(e,t);return n||"function"!=typeof r||(n=!0),r});if(n)return()=>{for(let t=0;t<r.length;t++){let n=r[t];"function"==typeof n?n():a(e[t],null)}}}}function l(...e){return r.useCallback(s(...e),e)}}},e=>{e.O(0,[909,720,441,255,358],()=>e(e.s=18702)),_N_E=e.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[177],{7363:(e,s,n)=>{Promise.resolve().then(n.bind(n,18720)),Promise.resolve().then(n.t.bind(n,13673,23))},13673:()=>{}},e=>{e.O(0,[978,720,441,255,358],()=>e(e.s=7363)),_N_E=e.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[319,408,451,571,617,662,869,965,974],{84441:()=>{}},_=>{_.O(0,[441,255,358],()=>_(_.s=84441)),_N_E=_.O()}]);
|