@karan171996/metricflow 0.1.2 → 0.1.4
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 -1
- package/.next/app-path-routes-manifest.json +2 -0
- package/.next/build-manifest.json +3 -3
- package/.next/fallback-build-manifest.json +3 -3
- package/.next/next-server.js.nft.json +1 -1
- package/.next/prerender-manifest.json +6 -6
- package/.next/routes-manifest.json +12 -0
- package/.next/server/app/_global-error.html +1 -1
- package/.next/server/app/_global-error.rsc +1 -1
- package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_not-found.html +2 -2
- package/.next/server/app/_not-found.rsc +9 -9
- package/.next/server/app/_not-found.segments/_full.segment.rsc +9 -9
- package/.next/server/app/_not-found.segments/_index.segment.rsc +8 -8
- package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/api/analyze/route.js +3 -2
- package/.next/server/app/api/analyze/route.js.nft.json +1 -1
- package/.next/server/app/api/connect/route.js +2 -2
- package/.next/server/app/api/connect/route.js.nft.json +1 -1
- package/.next/server/app/api/metrics/route.js +2 -2
- package/.next/server/app/api/metrics/route.js.nft.json +1 -1
- package/.next/server/app/api/settings/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/settings/route/build-manifest.json +12 -0
- package/.next/server/app/api/settings/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/settings/route.js +6 -0
- package/.next/server/app/api/settings/route.js.nft.json +1 -0
- package/.next/server/app/api/settings/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/setup/ai/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/setup/ai/route/build-manifest.json +12 -0
- package/.next/server/app/api/setup/ai/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/setup/ai/route.js +7 -0
- package/.next/server/app/api/setup/ai/route.js.nft.json +1 -0
- package/.next/server/app/api/setup/ai/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/setup/route.js +2 -2
- package/.next/server/app/api/setup/route.js.nft.json +1 -1
- package/.next/server/app/connect/page.js.nft.json +1 -1
- package/.next/server/app/connect/page_client-reference-manifest.js +1 -1
- package/.next/server/app/connect.html +2 -2
- package/.next/server/app/connect.rsc +11 -11
- package/.next/server/app/connect.segments/_full.segment.rsc +11 -11
- package/.next/server/app/connect.segments/_index.segment.rsc +8 -8
- package/.next/server/app/connect.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/connect.segments/connect/__PAGE__.segment.rsc +6 -6
- package/.next/server/app/favicon.ico/route.js +1 -1
- package/.next/server/app/favicon.ico/route.js.nft.json +1 -1
- package/.next/server/app/index.html +2 -2
- package/.next/server/app/index.rsc +11 -11
- package/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/index.segments/_full.segment.rsc +11 -11
- package/.next/server/app/index.segments/_index.segment.rsc +8 -8
- package/.next/server/app/index.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/page.js.nft.json +1 -1
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app/performance/[slug]/page.js +1 -1
- package/.next/server/app/performance/[slug]/page.js.nft.json +1 -1
- package/.next/server/app/performance/[slug]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/performance/page.js.nft.json +1 -1
- package/.next/server/app/performance/page_client-reference-manifest.js +1 -1
- package/.next/server/app/performance.html +2 -2
- package/.next/server/app/performance.rsc +12 -12
- package/.next/server/app/performance.segments/_full.segment.rsc +12 -12
- package/.next/server/app/performance.segments/_index.segment.rsc +8 -8
- package/.next/server/app/performance.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/performance.segments/performance/__PAGE__.segment.rsc +7 -7
- package/.next/server/app/settings/page.js.nft.json +1 -1
- package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings.html +2 -2
- package/.next/server/app/settings.rsc +23 -23
- package/.next/server/app/settings.segments/_full.segment.rsc +23 -23
- package/.next/server/app/settings.segments/_index.segment.rsc +8 -8
- package/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +19 -19
- package/.next/server/app/setup/page.js +1 -1
- package/.next/server/app/setup/page.js.nft.json +1 -1
- package/.next/server/app/setup/page_client-reference-manifest.js +1 -1
- package/.next/server/app/setup.html +2 -2
- package/.next/server/app/setup.rsc +31 -30
- package/.next/server/app/setup.segments/_full.segment.rsc +31 -30
- package/.next/server/app/setup.segments/_index.segment.rsc +8 -8
- package/.next/server/app/setup.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/setup.segments/setup/__PAGE__.segment.rsc +25 -24
- package/.next/server/app-paths-manifest.json +2 -0
- package/.next/server/chunks/{[externals]__1o8qm3w._.js → [externals]__162fo45._.js} +1 -1
- package/.next/server/chunks/[root-of-the-server]__027a1hx._.js +3 -0
- package/.next/server/chunks/{[root-of-the-server]__0chxb6o._.js → [root-of-the-server]__0luj3_8._.js} +2 -2
- package/.next/server/chunks/{[root-of-the-server]__1l249st._.js → [root-of-the-server]__0vkb6_m._.js} +2 -2
- package/.next/server/chunks/[root-of-the-server]__1d1y03f._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1lxxc0h._.js +3 -0
- package/.next/server/chunks/{node_modules_0jatszq._.js → _0g9k22b._.js} +4 -4
- package/.next/server/chunks/_0zwkfj-._.js +8 -0
- package/.next/server/chunks/_10b5gsp._.js +22 -0
- package/.next/server/chunks/_1pe45_3._.js +3 -3
- package/.next/server/chunks/_next-internal_server_app_api_settings_route_actions_1bpm9ac.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_setup_ai_route_actions_0-ay8t8.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__07u4jsj._.js +3 -0
- package/.next/server/chunks/ssr/{[root-of-the-server]__0ydfg18._.js → [root-of-the-server]__1uohrpp._.js} +1 -1
- package/.next/server/chunks/ssr/{_1n9m819._.js → _0fa4_2r._.js} +2 -2
- package/.next/server/chunks/ssr/_0v7wda8._.js +3 -0
- package/.next/server/chunks/ssr/_1b_fov9._.js +3 -0
- package/.next/server/chunks/ssr/_1d1ipgp._.js +1 -1
- package/.next/server/chunks/ssr/_1l_271l._.js +3 -0
- package/.next/server/chunks/ssr/_1p5i72g._.js +1 -1
- package/.next/server/chunks/ssr/_1q7r2qu._.js +7 -0
- package/.next/server/chunks/ssr/_20txlee._.js +1 -1
- package/.next/server/middleware-build-manifest.js +3 -3
- package/.next/server/pages/404.html +2 -2
- package/.next/server/pages/500.html +1 -1
- package/.next/static/chunks/0-xs4v9s677gv.js +1 -0
- package/.next/static/chunks/0no0cbj4p6v97.js +5 -0
- package/.next/static/chunks/{0wyq7u3z0lfca.js → 1kpyel_do_nn_.js} +1 -1
- package/.next/static/chunks/{2xy80eg_ueu_u.js → 2qnz-czvmzvfy.js} +1 -1
- package/.next/static/chunks/{3lqd2emjcxbd-.js → 2uf-bm2nz17t-.js} +1 -1
- package/.next/static/chunks/2wylvi3d9igvb.css +1 -0
- package/.next/static/chunks/32d1qdgpjfhb0.js +4 -0
- package/.next/static/chunks/39nm1s5w6_g9_.js +1 -0
- package/.next/static/chunks/3uvkn3v63w-bb.js +1 -0
- package/.next/trace +1 -1
- package/.next/trace-build +1 -1
- package/LICENSE +21 -0
- package/package.json +4 -2
- package/.next/build/chunks/[root-of-the-server]__05i36w1._.js.map +0 -11
- package/.next/build/chunks/[root-of-the-server]__1kki86f._.js.map +0 -8
- package/.next/build/chunks/[turbopack-node]_transforms_postcss_ts_1gfkiq9._.js.map +0 -5
- package/.next/build/chunks/[turbopack]_runtime.js.map +0 -11
- package/.next/build/chunks/node_modules_20v-8wl._.js.map +0 -47
- package/.next/build/chunks/pool_entry-[turbopack-node]_transforms_postcss_ts_0tp-k2v._.js.map +0 -5
- package/.next/server/app/_global-error/page.js.map +0 -5
- package/.next/server/app/_not-found/page.js.map +0 -5
- package/.next/server/app/api/analyze/route.js.map +0 -5
- package/.next/server/app/api/connect/route.js.map +0 -5
- package/.next/server/app/api/health/route.js.map +0 -5
- package/.next/server/app/api/metrics/route.js.map +0 -5
- package/.next/server/app/api/setup/route.js.map +0 -5
- package/.next/server/app/api/timings/route.js.map +0 -5
- package/.next/server/app/connect/page.js.map +0 -5
- package/.next/server/app/favicon.ico/route.js.map +0 -5
- package/.next/server/app/page.js.map +0 -5
- package/.next/server/app/performance/[slug]/page.js.map +0 -5
- package/.next/server/app/performance/page.js.map +0 -5
- package/.next/server/app/settings/page.js.map +0 -5
- package/.next/server/app/setup/page.js.map +0 -5
- package/.next/server/chunks/[externals]__1o8qm3w._.js.map +0 -1
- package/.next/server/chunks/[root-of-the-server]__0chxb6o._.js.map +0 -1
- package/.next/server/chunks/[root-of-the-server]__14tfjrn._.js.map +0 -1
- package/.next/server/chunks/[root-of-the-server]__1fj5wte._.js.map +0 -1
- package/.next/server/chunks/[root-of-the-server]__1i_tsds._.js +0 -22
- package/.next/server/chunks/[root-of-the-server]__1i_tsds._.js.map +0 -1
- package/.next/server/chunks/[root-of-the-server]__1l249st._.js.map +0 -1
- package/.next/server/chunks/[root-of-the-server]__1uv-wzy._.js.map +0 -1
- package/.next/server/chunks/[turbopack]_runtime.js.map +0 -10
- package/.next/server/chunks/_1494cut._.js.map +0 -1
- package/.next/server/chunks/_1gvvd7n._.js.map +0 -1
- package/.next/server/chunks/_1pe45_3._.js.map +0 -1
- package/.next/server/chunks/_1qtlv__._.js.map +0 -1
- package/.next/server/chunks/_next-internal_server_app_api_analyze_route_actions_0lx-23h.js.map +0 -1
- package/.next/server/chunks/_next-internal_server_app_api_connect_route_actions_1r5w03m.js.map +0 -1
- package/.next/server/chunks/_next-internal_server_app_api_health_route_actions_1ryftkb.js.map +0 -1
- package/.next/server/chunks/_next-internal_server_app_api_metrics_route_actions_0qn5q3s.js.map +0 -1
- package/.next/server/chunks/_next-internal_server_app_api_setup_route_actions_0txsuev.js.map +0 -1
- package/.next/server/chunks/_next-internal_server_app_api_timings_route_actions_1tsq7j6.js.map +0 -1
- package/.next/server/chunks/_next-internal_server_app_favicon_ico_route_actions_0g2jjls.js.map +0 -1
- package/.next/server/chunks/node_modules_0jatszq._.js.map +0 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__036j_vr._.js.map +0 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__0ev464o._.js.map +0 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__0f5axvr._.js.map +0 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__0hg5gib._.js.map +0 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__0tmkhxy._.js.map +0 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__0ydfg18._.js.map +0 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__18hr860._.js.map +0 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__18w2nrx._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__18w2nrx._.js.map +0 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__1c8dejo._.js.map +0 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__1mwg_vi._.js.map +0 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__1p_6ezv._.js.map +0 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__1vxra_4._.js.map +0 -1
- package/.next/server/chunks/ssr/[turbopack]_runtime.js.map +0 -10
- package/.next/server/chunks/ssr/_042xeoh._.js +0 -3
- package/.next/server/chunks/ssr/_042xeoh._.js.map +0 -1
- package/.next/server/chunks/ssr/_0c7qo1d._.js.map +0 -1
- package/.next/server/chunks/ssr/_0dbmzjx._.js.map +0 -1
- package/.next/server/chunks/ssr/_178o6nh._.js +0 -3
- package/.next/server/chunks/ssr/_178o6nh._.js.map +0 -1
- package/.next/server/chunks/ssr/_1bbiu24._.js +0 -3
- package/.next/server/chunks/ssr/_1bbiu24._.js.map +0 -1
- package/.next/server/chunks/ssr/_1d1ipgp._.js.map +0 -1
- package/.next/server/chunks/ssr/_1n9m819._.js.map +0 -1
- package/.next/server/chunks/ssr/_1p5i72g._.js.map +0 -1
- package/.next/server/chunks/ssr/_1r2qog2._.js +0 -7
- package/.next/server/chunks/ssr/_1r2qog2._.js.map +0 -1
- package/.next/server/chunks/ssr/_1rkc3oc._.js.map +0 -1
- package/.next/server/chunks/ssr/_20txlee._.js.map +0 -1
- package/.next/server/chunks/ssr/_next-internal_server_app__global-error_page_actions_0zi5s8-.js.map +0 -1
- package/.next/server/chunks/ssr/_next-internal_server_app__not-found_page_actions_0pt47yr.js.map +0 -1
- package/.next/server/chunks/ssr/_next-internal_server_app_connect_page_actions_1g-s_3i.js.map +0 -1
- package/.next/server/chunks/ssr/_next-internal_server_app_page_actions_0hhsz1j.js.map +0 -1
- package/.next/server/chunks/ssr/_next-internal_server_app_performance_[slug]_page_actions_1pzv3w1.js.map +0 -1
- package/.next/server/chunks/ssr/_next-internal_server_app_performance_page_actions_0vi13cc.js.map +0 -1
- package/.next/server/chunks/ssr/_next-internal_server_app_settings_page_actions_11x4dq5.js.map +0 -1
- package/.next/server/chunks/ssr/_next-internal_server_app_setup_page_actions_0u1sm0s.js.map +0 -1
- package/.next/server/chunks/ssr/app_layout_tsx_2144vk_._.js.map +0 -1
- package/.next/server/chunks/ssr/app_loading_tsx_0a1flg9._.js.map +0 -1
- package/.next/server/chunks/ssr/app_performance_[slug]_loading_tsx_0d5z78a._.js.map +0 -1
- package/.next/server/chunks/ssr/app_performance_loading_tsx_1bq2nq9._.js.map +0 -1
- package/.next/server/chunks/ssr/app_settings_loading_tsx_0nv_78v._.js.map +0 -1
- package/.next/server/chunks/ssr/components_0j32dj5._.js.map +0 -1
- package/.next/server/chunks/ssr/node_modules_1wax83z._.js.map +0 -1
- package/.next/server/chunks/ssr/node_modules_cn_dist_index_166wuka.js.map +0 -1
- package/.next/server/chunks/ssr/node_modules_next_dist_0nkkbfv._.js.map +0 -1
- package/.next/server/chunks/ssr/node_modules_next_dist_1v8aef8._.js.map +0 -1
- package/.next/server/chunks/ssr/node_modules_next_dist_client_components_0wpq8j3._.js.map +0 -1
- package/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_forbidden_0symwr9.js.map +0 -1
- package/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_global-error_0q-w892.js.map +0 -1
- package/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_unauthorized_0l_sp0x.js.map +0 -1
- package/.next/server/chunks/ssr/node_modules_next_dist_client_components_server-async-storage_0t1dato.js.map +0 -1
- package/.next/static/chunks/13ihwqjtq_hlo.js +0 -1
- package/.next/static/chunks/14pp7x-su_dnv.js +0 -5
- package/.next/static/chunks/1clwpy-vw07cb.js +0 -1
- package/.next/static/chunks/2-llbg7gt2gi5.js +0 -4
- package/.next/static/chunks/28w-hz8hg8t4v.css +0 -1
- package/.next/static/chunks/3rfi1wruz0m51.js +0 -1
- /package/.next/static/{edA9zyNvRjRViNxMJ7dlC → HBZh84zxGSK-agDgmsIjU}/_buildManifest.js +0 -0
- /package/.next/static/{edA9zyNvRjRViNxMJ7dlC → HBZh84zxGSK-agDgmsIjU}/_clientMiddlewareManifest.js +0 -0
- /package/.next/static/{edA9zyNvRjRViNxMJ7dlC → HBZh84zxGSK-agDgmsIjU}/_ssgManifest.js +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,96098,e=>{"use strict";var t=e.i(43476),a=e.i(76782),r=e.i(11825),s=e.i(79862),n=e.i(56420);let i={name:"chevron-right",size:24,node:[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]};i.node;let c=(0,n.default)(i);function l({className:e,...a}){return(0,t.jsx)("nav",{"aria-label":"breadcrumb","data-slot":"breadcrumb",className:(0,s.cn)(e),...a})}function o({className:e,...a}){return(0,t.jsx)("ol",{"data-slot":"breadcrumb-list",className:(0,s.cn)("flex flex-wrap items-center gap-1.5 text-sm wrap-break-word text-muted-foreground",e),...a})}function d({className:e,...a}){return(0,t.jsx)("li",{"data-slot":"breadcrumb-item",className:(0,s.cn)("inline-flex items-center gap-1",e),...a})}function u({className:e,render:t,...n}){return(0,r.useRender)({defaultTagName:"a",props:(0,a.mergeProps)({className:(0,s.cn)("transition-colors hover:text-foreground",e)},n),render:t,state:{slot:"breadcrumb-link"}})}function m({className:e,...a}){return(0,t.jsx)("span",{"data-slot":"breadcrumb-page",role:"link","aria-disabled":"true","aria-current":"page",className:(0,s.cn)("font-normal text-foreground",e),...a})}function x({children:e,className:a,...r}){return(0,t.jsx)("li",{"data-slot":"breadcrumb-separator",role:"presentation","aria-hidden":"true",className:(0,s.cn)("[&>svg]:size-3.5",a),...r,children:e??(0,t.jsx)(c,{})})}e.i(60972),e.s(["PerformanceBreadcrumb",0,function({pageName:e="Homepage"}){return(0,t.jsx)(l,{className:"mb-6",children:(0,t.jsxs)(o,{children:[(0,t.jsx)(d,{children:(0,t.jsx)(u,{href:"/performance",className:"text-gray-400 hover:text-white",children:"Performance"})}),(0,t.jsx)(x,{}),(0,t.jsx)(d,{children:(0,t.jsx)(m,{className:"text-white font-medium",children:e})})]})})}],96098)},29672,e=>{"use strict";var t=e.i(43476),a=e.i(18566),r=e.i(24851),s=e.i(71428),n=e.i(78320),i=e.i(96098),c=e.i(5080),l=e.i(97920);e.s(["PerformanceDetail",0,function({slug:e}){let{state:o,retry:d}=(0,n.useMetrics)();if("loading"===o.status)return(0,t.jsx)(s.Skeleton,{className:"h-64 w-full bg-[#2d3748]"});if("error"===o.status)return(0,t.jsx)(r.EmptyState,{title:"Could not load metrics",reason:o.message,onRetry:d});if(!o.configured)return(0,t.jsx)(r.EmptyState,{title:"Connect your data",reason:"Add your New Relic and Sentry keys to see real numbers.",href:"/setup",cta:"Set up keys"});if(0===o.pages.length)return(0,t.jsx)(r.EmptyState,{});let u=o.pages.find(t=>t.slug===e);return u||(0,a.notFound)(),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(i.PerformanceBreadcrumb,{pageName:u.name}),(0,n.hasData)(u)?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(c.PerformanceKPIs,{page:u}),(0,t.jsx)(l.RelatedErrorsList,{errors:u.sentry.latestErrors})]}):(0,t.jsx)(r.EmptyState,{reason:`${u.name} (${u.url}): keys work, but no page events have arrived.`})]})}])},5080,e=>{"use strict";var t=e.i(43476),a=e.i(70065),r=e.i(79432),s=e.i(74544),n=e.i(64569),i=e.i(93961);e.s(["PerformanceKPIs",0,function({page:e}){let{newRelic:c}=e,l=[{label:"Average Load Time",value:(0,i.formatDuration)(c.loadTime),icon:(0,t.jsx)(s.Clock,{className:"h-4 w-4 text-[#3ee0a1]"})},{label:"Error Rate",value:`${c.errorRate.toFixed(2)}%`,icon:(0,t.jsx)(r.Activity,{className:"h-4 w-4 text-[#ef4444]"})},{label:"Traffic Volume",value:e.visitors,icon:(0,t.jsx)(n.Zap,{className:"h-4 w-4 text-[#06b6d4]"})}];return(0,t.jsx)("div",{className:"grid gap-6 md:grid-cols-3 mb-8",children:l.map(e=>(0,t.jsx)(a.Card,{className:"border-[#2d3748] bg-[#1a202c] shadow-md",children:(0,t.jsxs)(a.CardContent,{className:"p-6",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,t.jsx)("span",{className:"text-sm font-medium text-gray-400",children:e.label}),(0,t.jsx)("div",{className:"flex h-8 w-8 items-center justify-center rounded-lg bg-[#0f1419] border border-[#2d3748]",children:e.icon})]}),(0,t.jsx)("span",{className:"text-3xl font-bold text-white tracking-tight",children:e.value})]})},e.label))})}])},97920,e=>{"use strict";var t=e.i(43476),a=e.i(70065),r=e.i(56420);let s={name:"circle-alert",size:24,node:[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]],aliases:["alert-circle"]};s.node;let n=(0,r.default)(s);var i=e.i(74544);e.s(["RelatedErrorsList",0,function({errors:e}){return(0,t.jsxs)(a.Card,{className:"border-[#2d3748] bg-[#1a202c] shadow-md w-full lg:w-[400px]",children:[(0,t.jsx)(a.CardHeader,{children:(0,t.jsxs)(a.CardTitle,{className:"text-[18px] font-bold text-white tracking-tight flex items-center gap-2",children:[(0,t.jsx)(n,{className:"h-5 w-5 text-[#ef4444]"}),"Related Errors"]})}),(0,t.jsx)(a.CardContent,{children:0===e.length?(0,t.jsx)("p",{className:"text-sm text-gray-400",children:"No errors reported for this page."}):(0,t.jsx)("div",{className:"flex flex-col gap-3",children:e.map(e=>(0,t.jsxs)("div",{className:"flex flex-col gap-2 rounded-lg border border-[#2d3748] bg-[#0f1419] p-4",children:[(0,t.jsx)("div",{className:"flex items-center justify-between",children:(0,t.jsxs)("span",{className:"text-xs font-mono text-gray-500",children:[e.count," events"]})}),(0,t.jsx)("p",{className:"text-sm font-medium text-gray-200 line-clamp-2",children:e.title}),(0,t.jsxs)("div",{className:"flex items-center gap-1 mt-1 text-xs text-gray-500",children:[(0,t.jsx)(i.Clock,{className:"h-3 w-3"}),(0,t.jsx)("span",{children:new Date(e.lastSeen).toLocaleString()})]})]},e.title))})})]})}],97920)},24851,e=>{"use strict";var t=e.i(43476),a=e.i(22016),r=e.i(70065),s=e.i(67881);e.s(["EmptyState",0,function({title:e="No data yet",reason:n="Keys work, but no page events have arrived.",href:i="/connect",cta:c="Send your first events",onRetry:l}){return(0,t.jsx)(r.Card,{className:"border-[#2d3748] bg-[#1a202c] shadow-md",children:(0,t.jsxs)(r.CardContent,{className:"flex flex-col items-center gap-3 p-10 text-center",children:[(0,t.jsx)("h3",{className:"text-lg font-semibold text-white",children:e}),(0,t.jsx)("p",{className:"max-w-md text-sm text-gray-400",children:n}),(0,t.jsxs)("div",{className:"flex gap-3",children:[(0,t.jsx)(a.default,{href:i,className:(0,s.buttonVariants)(),children:c}),l&&(0,t.jsx)(s.Button,{variant:"outline",onClick:l,children:"Retry"})]})]})})}])},70065,e=>{"use strict";var t=e.i(43476),a=e.i(79862);e.s(["Card",0,function({className:e,size:r="default",...s}){return(0,t.jsx)("div",{"data-slot":"card","data-size":r,className:(0,a.cn)("group/card flex flex-col gap-(--card-spacing) overflow-hidden rounded-xl bg-card py-(--card-spacing) text-sm text-card-foreground ring-1 ring-foreground/10 [--card-spacing:--spacing(4)] has-data-[slot=card-footer]:pb-0 has-[>img:first-child]:pt-0 data-[size=sm]:[--card-spacing:--spacing(3)] data-[size=sm]:has-data-[slot=card-footer]:pb-0 *:[img:first-child]:rounded-t-xl *:[img:last-child]:rounded-b-xl",e),...s})},"CardContent",0,function({className:e,...r}){return(0,t.jsx)("div",{"data-slot":"card-content",className:(0,a.cn)("px-(--card-spacing)",e),...r})},"CardDescription",0,function({className:e,...r}){return(0,t.jsx)("div",{"data-slot":"card-description",className:(0,a.cn)("text-sm text-muted-foreground",e),...r})},"CardHeader",0,function({className:e,...r}){return(0,t.jsx)("div",{"data-slot":"card-header",className:(0,a.cn)("group/card-header @container/card-header grid auto-rows-min items-start gap-1 rounded-t-xl px-(--card-spacing) has-data-[slot=card-action]:grid-cols-[1fr_auto] has-data-[slot=card-description]:grid-rows-[auto_auto] [.border-b]:pb-(--card-spacing)",e),...r})},"CardTitle",0,function({className:e,...r}){return(0,t.jsx)("div",{"data-slot":"card-title",className:(0,a.cn)("font-heading text-base leading-snug font-medium group-data-[size=sm]/card:text-sm",e),...r})}])},93961,e=>{"use strict";e.s(["formatDuration",0,function(e){if(!Number.isFinite(e))return"—";let t=Math.abs(Math.round(e));if(t<1e3)return`${Math.round(e)}ms`;if(t<59950)return`${+(e/1e3).toFixed(1)}s`;let a=Math.round(t/1e3),r=e<0?"-":"";return a<3600?`${r}${Math.floor(a/60)}m ${a%60}s`:`${r}${Math.floor(a/3600)}h ${Math.floor(a%3600/60)}m`}])},78320,e=>{"use strict";var t=e.i(71645),a=e.i(73011),r=e.i(50762);e.s(["hasData",0,function(e){return e.newRelic.throughput>0||e.newRelic.loadTime>0||e.sentry.errorCount>0},"useMetrics",0,function(){let[e,s]=(0,t.useState)({status:"loading"}),[n,i]=(0,t.useState)(0);(0,t.useEffect)(()=>{let e=!1;return fetch("/api/metrics").then(async t=>{let a=await t.json();if(!t.ok)throw Error(a.error??`HTTP ${t.status}`);e||s({status:"ready",configured:a.configured,pages:a.pages})}).catch(t=>{e||s({status:"error",message:t instanceof Error?t.message:"Request failed"})}),()=>{e=!0}},[n]);let c=(0,r.useThresholds)();return{state:"ready"===e.status?{...e,pages:e.pages.map(e=>({...e,status:(0,a.deriveStatus)(e.newRelic,c)}))}:e,retry:()=>{s({status:"loading"}),i(e=>e+1)}}}])},50762,73011,e=>{"use strict";var t=e.i(71645);let a={loadSeconds:1.5,errorPercent:2,uptimeSLA:99.9};e.s(["DEFAULT_THRESHOLDS",0,a,"deriveStatus",0,function(e,t){let a=e.loadTime/1e3/t.loadSeconds,r=e.errorRate/t.errorPercent;return a>2||r>2?"Critical":a>1||r>1||e.apdexScore<.9?"Warning":"Healthy"}],73011);let r="perf-thresholds",s=new Set,n=null;function i(){if(n)return n;try{n={...a,...JSON.parse(localStorage.getItem(r)??"{}")}}catch{n=a}return n}function c(e){n=e;try{localStorage.setItem(r,JSON.stringify(e))}catch{}s.forEach(e=>e())}let l=!1;function o(e){e.key===r&&(n=null,s.forEach(e=>e()))}function d(e){return s.add(e),l||(l=!0,fetch("/api/settings").then(e=>e.ok?e.json():null).then(e=>e&&c({...a,...e})).catch(()=>{l=!1})),window.addEventListener("storage",o),()=>{s.delete(e),window.removeEventListener("storage",o)}}e.s(["setThresholds",0,function(e){c({...i(),...e}),fetch("/api/settings",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)}).catch(()=>{})},"useThresholds",0,function(){return(0,t.useSyncExternalStore)(d,i,()=>a)}],50762)},79432,e=>{"use strict";var t=e.i(56420);let a={name:"activity",size:24,node:[["path",{d:"M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2",key:"169zse"}]]};a.node;let r=(0,t.default)(a);e.s(["Activity",0,r],79432)},74544,e=>{"use strict";var t=e.i(56420);let a={name:"clock",size:24,node:[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 6v6l4 2",key:"mmk7yg"}]]};a.node;let r=(0,t.default)(a);e.s(["Clock",0,r],74544)},60972,e=>{"use strict";var t=e.i(56420);let a={name:"ellipsis",size:24,node:[["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["circle",{cx:"19",cy:"12",r:"1",key:"1wjl8i"}],["circle",{cx:"5",cy:"12",r:"1",key:"1pcz8c"}]],aliases:["more-horizontal"]};a.node;let r=(0,t.default)(a);e.s(["default",0,r])},64569,e=>{"use strict";var t=e.i(56420);let a={name:"zap",size:24,node:[["path",{d:"M15.914 4a1.5 1.5 0 00-2.474-1.561l-9 9A1.5 1.5 0 005.5 14h4.002a.5.5 0 01.471.666L8.086 20a1.5 1.5 0 002.475 1.56l9-9A1.5 1.5 0 0018.5 10h-3.997a.5.5 0 01-.472-.667z",key:"1v7up4"}]]};a.node;let r=(0,t.default)(a);e.s(["Zap",0,r],64569)}]);
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,24851,e=>{"use strict";var t=e.i(43476),a=e.i(22016),r=e.i(70065),s=e.i(67881);e.s(["EmptyState",0,function({title:e="No data yet",reason:n="Keys work, but no page events have arrived.",href:i="/connect",cta:l="Send your first events",onRetry:d}){return(0,t.jsx)(r.Card,{className:"border-[#2d3748] bg-[#1a202c] shadow-md",children:(0,t.jsxs)(r.CardContent,{className:"flex flex-col items-center gap-3 p-10 text-center",children:[(0,t.jsx)("h3",{className:"text-lg font-semibold text-white",children:e}),(0,t.jsx)("p",{className:"max-w-md text-sm text-gray-400",children:n}),(0,t.jsxs)("div",{className:"flex gap-3",children:[(0,t.jsx)(a.default,{href:i,className:(0,s.buttonVariants)(),children:l}),d&&(0,t.jsx)(s.Button,{variant:"outline",onClick:d,children:"Retry"})]})]})})}])},28175,e=>{"use strict";var t=e.i(43476),a=e.i(70065),r=e.i(56420);let s={name:"globe",size:24,node:[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20",key:"13o1zl"}],["path",{d:"M2 12h20",key:"9i4pu4"}]]};s.node;let n=(0,r.default)(s);var i=e.i(74544),l=e.i(53138),d=e.i(78320),o=e.i(93961);e.s(["HubMetrics",0,function({pages:e}){let r=e.filter(d.hasData),s=r.length?r.reduce((e,t)=>e+t.newRelic.loadTime,0)/r.length:null,c=e.reduce((e,t)=>e+t.sentry.errorCount,0),u=[{label:"Pages Reporting",value:`${r.length} of ${e.length}`,icon:(0,t.jsx)(n,{className:"h-4 w-4 text-[#3ee0a1]"})},{label:"Avg Load Time",value:null===s?"No data yet":(0,o.formatDuration)(s),icon:(0,t.jsx)(i.Clock,{className:"h-4 w-4 text-[#06b6d4]"})},{label:"Open Errors",value:r.length||c?String(c):"No data yet",icon:(0,t.jsx)(l.AlertTriangle,{className:"h-4 w-4 text-[#ef4444]"})}];return(0,t.jsx)("div",{className:"grid gap-6 md:grid-cols-3 mb-8 mt-4",children:u.map((e,r)=>(0,t.jsx)(a.Card,{className:"border-[#2d3748] bg-[#1a202c] shadow-md",children:(0,t.jsxs)(a.CardContent,{className:"p-6",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,t.jsx)("span",{className:"text-sm font-medium text-gray-400",children:e.label}),(0,t.jsx)("div",{className:"flex h-8 w-8 items-center justify-center rounded-lg bg-[#0f1419] border border-[#2d3748]",children:e.icon})]}),(0,t.jsx)("div",{className:"flex items-baseline gap-3",children:(0,t.jsx)("span",{className:"text-3xl font-bold text-white tracking-tight",children:e.value})})]})},r))})}],28175)},7848,e=>{"use strict";var t=e.i(43476),a=e.i(18566),r=e.i(47627),s=e.i(70065),n=e.i(94179),i=e.i(78320),l=e.i(93961);e.s(["HubTable",0,function({pages:e}){let d=(0,a.useRouter)();return(0,t.jsxs)(s.Card,{className:"border-[#2d3748] bg-[#1a202c] shadow-md flex-1",children:[(0,t.jsx)(s.CardHeader,{children:(0,t.jsx)(s.CardTitle,{className:"text-[18px] font-bold text-white tracking-tight",children:"Tracked Pages Overview"})}),(0,t.jsx)(s.CardContent,{children:(0,t.jsx)("div",{className:"rounded-md border border-[#2d3748] overflow-hidden",children:(0,t.jsxs)(r.Table,{children:[(0,t.jsx)(r.TableHeader,{className:"bg-[#0f1419]",children:(0,t.jsxs)(r.TableRow,{className:"border-[#2d3748] hover:bg-transparent",children:[(0,t.jsx)(r.TableHead,{className:"text-gray-400",children:"Page Name"}),(0,t.jsx)(r.TableHead,{className:"text-gray-400",children:"Path"}),(0,t.jsx)(r.TableHead,{className:"text-gray-400",children:"Visitors (24h)"}),(0,t.jsx)(r.TableHead,{className:"text-gray-400",children:"Avg Load"}),(0,t.jsx)(r.TableHead,{className:"text-gray-400",children:"Errors"}),(0,t.jsx)(r.TableHead,{className:"text-right text-gray-400",children:"Status"})]})}),(0,t.jsx)(r.TableBody,{children:e.map(e=>{let a=(0,i.hasData)(e);return(0,t.jsxs)(r.TableRow,{className:"border-[#2d3748] hover:bg-white/5 transition-colors cursor-pointer",onClick:()=>d.push(`/performance/${e.slug}`),children:[(0,t.jsx)(r.TableCell,{className:"font-medium text-white",children:e.name}),(0,t.jsx)(r.TableCell,{className:"text-gray-500 font-mono text-xs",children:e.url}),(0,t.jsx)(r.TableCell,{className:"text-gray-400",children:a?e.visitors:"—"}),(0,t.jsx)(r.TableCell,{className:"text-gray-400",children:a?(0,l.formatDuration)(e.newRelic.loadTime):"—"}),(0,t.jsx)(r.TableCell,{className:"text-gray-400",children:a?e.sentry.errorCount:"—"}),(0,t.jsx)(r.TableCell,{className:"text-right",children:a?(0,t.jsx)(n.Badge,{variant:"outline",className:`
|
|
2
|
+
${"Healthy"===e.status?"border-[#3ee0a1] text-[#3ee0a1] bg-[#3ee0a1]/10":""}
|
|
3
|
+
${"Warning"===e.status?"border-[#f59e0b] text-[#f59e0b] bg-[#f59e0b]/10":""}
|
|
4
|
+
${"Critical"===e.status?"border-[#ef4444] text-[#ef4444] bg-[#ef4444]/10":""}
|
|
5
|
+
`,children:e.status}):(0,t.jsx)(n.Badge,{variant:"outline",className:"border-[#4a5568] text-gray-400",children:"No data yet"})})]},e.slug)})})]})})})]})}])},11777,e=>{"use strict";var t=e.i(43476),a=e.i(24851),r=e.i(71428),s=e.i(78320),n=e.i(28175),i=e.i(7848);e.s(["PerformanceHub",0,function(){let{state:e,retry:l}=(0,s.useMetrics)();return"loading"===e.status?(0,t.jsx)(r.Skeleton,{className:"mt-6 h-64 w-full bg-[#2d3748]"}):"error"===e.status?(0,t.jsx)(a.EmptyState,{title:"Could not load metrics",reason:e.message,onRetry:l}):e.configured?e.pages.length&&e.pages.some(s.hasData)?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.HubMetrics,{pages:e.pages}),(0,t.jsx)(i.HubTable,{pages:e.pages})]}):(0,t.jsx)(a.EmptyState,{}):(0,t.jsx)(a.EmptyState,{title:"Connect your data",reason:"Add your New Relic and Sentry keys to see real numbers.",href:"/setup",cta:"Set up keys"})}])},94179,e=>{"use strict";var t=e.i(76782),a=e.i(11825),r=e.i(25913),s=e.i(79862);let n=(0,r.cva)("group/badge inline-flex h-5 w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-4xl border border-transparent px-2 py-0.5 text-xs font-medium whitespace-nowrap transition-all focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&>svg]:pointer-events-none [&>svg]:size-3!",{variants:{variant:{default:"bg-primary text-primary-foreground [a]:hover:bg-primary/80",secondary:"bg-secondary text-secondary-foreground [a]:hover:bg-secondary/80",destructive:"bg-destructive/10 text-destructive focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:focus-visible:ring-destructive/40 [a]:hover:bg-destructive/20",outline:"border-border text-foreground [a]:hover:bg-muted [a]:hover:text-muted-foreground",ghost:"hover:bg-muted hover:text-muted-foreground dark:hover:bg-muted/50",link:"text-primary underline-offset-4 hover:underline"}},defaultVariants:{variant:"default"}});e.s(["Badge",0,function({className:e,variant:r="default",render:i,...l}){return(0,a.useRender)({defaultTagName:"span",props:(0,t.mergeProps)({className:(0,s.cn)(n({variant:r}),e)},l),render:i,state:{slot:"badge",variant:r}})}])},70065,e=>{"use strict";var t=e.i(43476),a=e.i(79862);e.s(["Card",0,function({className:e,size:r="default",...s}){return(0,t.jsx)("div",{"data-slot":"card","data-size":r,className:(0,a.cn)("group/card flex flex-col gap-(--card-spacing) overflow-hidden rounded-xl bg-card py-(--card-spacing) text-sm text-card-foreground ring-1 ring-foreground/10 [--card-spacing:--spacing(4)] has-data-[slot=card-footer]:pb-0 has-[>img:first-child]:pt-0 data-[size=sm]:[--card-spacing:--spacing(3)] data-[size=sm]:has-data-[slot=card-footer]:pb-0 *:[img:first-child]:rounded-t-xl *:[img:last-child]:rounded-b-xl",e),...s})},"CardContent",0,function({className:e,...r}){return(0,t.jsx)("div",{"data-slot":"card-content",className:(0,a.cn)("px-(--card-spacing)",e),...r})},"CardDescription",0,function({className:e,...r}){return(0,t.jsx)("div",{"data-slot":"card-description",className:(0,a.cn)("text-sm text-muted-foreground",e),...r})},"CardHeader",0,function({className:e,...r}){return(0,t.jsx)("div",{"data-slot":"card-header",className:(0,a.cn)("group/card-header @container/card-header grid auto-rows-min items-start gap-1 rounded-t-xl px-(--card-spacing) has-data-[slot=card-action]:grid-cols-[1fr_auto] has-data-[slot=card-description]:grid-rows-[auto_auto] [.border-b]:pb-(--card-spacing)",e),...r})},"CardTitle",0,function({className:e,...r}){return(0,t.jsx)("div",{"data-slot":"card-title",className:(0,a.cn)("font-heading text-base leading-snug font-medium group-data-[size=sm]/card:text-sm",e),...r})}])},47627,e=>{"use strict";var t=e.i(43476),a=e.i(79862);e.s(["Table",0,function({className:e,...r}){return(0,t.jsx)("div",{"data-slot":"table-container",className:"relative w-full overflow-x-auto",children:(0,t.jsx)("table",{"data-slot":"table",className:(0,a.cn)("w-full caption-bottom text-sm",e),...r})})},"TableBody",0,function({className:e,...r}){return(0,t.jsx)("tbody",{"data-slot":"table-body",className:(0,a.cn)("[&_tr:last-child]:border-0",e),...r})},"TableCell",0,function({className:e,...r}){return(0,t.jsx)("td",{"data-slot":"table-cell",className:(0,a.cn)("p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0",e),...r})},"TableHead",0,function({className:e,...r}){return(0,t.jsx)("th",{"data-slot":"table-head",className:(0,a.cn)("h-10 px-2 text-left align-middle font-medium whitespace-nowrap text-foreground [&:has([role=checkbox])]:pr-0",e),...r})},"TableHeader",0,function({className:e,...r}){return(0,t.jsx)("thead",{"data-slot":"table-header",className:(0,a.cn)("[&_tr]:border-b",e),...r})},"TableRow",0,function({className:e,...r}){return(0,t.jsx)("tr",{"data-slot":"table-row",className:(0,a.cn)("border-b transition-colors hover:bg-muted/50 has-aria-expanded:bg-muted/50 data-[state=selected]:bg-muted",e),...r})}])},93961,e=>{"use strict";e.s(["formatDuration",0,function(e){if(!Number.isFinite(e))return"—";let t=Math.abs(Math.round(e));if(t<1e3)return`${Math.round(e)}ms`;if(t<59950)return`${+(e/1e3).toFixed(1)}s`;let a=Math.round(t/1e3),r=e<0?"-":"";return a<3600?`${r}${Math.floor(a/60)}m ${a%60}s`:`${r}${Math.floor(a/3600)}h ${Math.floor(a%3600/60)}m`}])},78320,e=>{"use strict";var t=e.i(71645),a=e.i(73011),r=e.i(50762);e.s(["hasData",0,function(e){return e.newRelic.throughput>0||e.newRelic.loadTime>0||e.sentry.errorCount>0},"useMetrics",0,function(){let[e,s]=(0,t.useState)({status:"loading"}),[n,i]=(0,t.useState)(0);(0,t.useEffect)(()=>{let e=!1;return fetch("/api/metrics").then(async t=>{let a=await t.json();if(!t.ok)throw Error(a.error??`HTTP ${t.status}`);e||s({status:"ready",configured:a.configured,pages:a.pages})}).catch(t=>{e||s({status:"error",message:t instanceof Error?t.message:"Request failed"})}),()=>{e=!0}},[n]);let l=(0,r.useThresholds)();return{state:"ready"===e.status?{...e,pages:e.pages.map(e=>({...e,status:(0,a.deriveStatus)(e.newRelic,l)}))}:e,retry:()=>{s({status:"loading"}),i(e=>e+1)}}}])},50762,73011,e=>{"use strict";var t=e.i(71645);let a={loadSeconds:1.5,errorPercent:2,uptimeSLA:99.9};e.s(["DEFAULT_THRESHOLDS",0,a,"deriveStatus",0,function(e,t){let a=e.loadTime/1e3/t.loadSeconds,r=e.errorRate/t.errorPercent;return a>2||r>2?"Critical":a>1||r>1||e.apdexScore<.9?"Warning":"Healthy"}],73011);let r="perf-thresholds",s=new Set,n=null;function i(){if(n)return n;try{n={...a,...JSON.parse(localStorage.getItem(r)??"{}")}}catch{n=a}return n}function l(e){n=e;try{localStorage.setItem(r,JSON.stringify(e))}catch{}s.forEach(e=>e())}let d=!1;function o(e){e.key===r&&(n=null,s.forEach(e=>e()))}function c(e){return s.add(e),d||(d=!0,fetch("/api/settings").then(e=>e.ok?e.json():null).then(e=>e&&l({...a,...e})).catch(()=>{d=!1})),window.addEventListener("storage",o),()=>{s.delete(e),window.removeEventListener("storage",o)}}e.s(["setThresholds",0,function(e){l({...i(),...e}),fetch("/api/settings",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)}).catch(()=>{})},"useThresholds",0,function(){return(0,t.useSyncExternalStore)(c,i,()=>a)}],50762)},74544,e=>{"use strict";var t=e.i(56420);let a={name:"clock",size:24,node:[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 6v6l4 2",key:"mmk7yg"}]]};a.node;let r=(0,t.default)(a);e.s(["Clock",0,r],74544)},53138,e=>{"use strict";var t=e.i(56420);let a={name:"triangle-alert",size:24,node:[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]],aliases:["alert-triangle"]};a.node;let r=(0,t.default)(a);e.s(["AlertTriangle",0,r],53138)}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,4603,e=>{"use strict";var t=e.i(43476),a=e.i(71645),s=e.i(22016),r=e.i(70065),n=e.i(67881),
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,55370,e=>{"use strict";var t=e.i(43476),a=e.i(71645),s=e.i(70065),r=e.i(67881),n=e.i(23750);let i=[{id:"gemini",label:"Google Gemini",help:"Create a key at aistudio.google.com/apikey."},{id:"claude",label:"Anthropic Claude",help:"Create a key at console.anthropic.com > API keys."},{id:"openai",label:"OpenAI",help:"Create a key at platform.openai.com/api-keys."}];e.s(["AiKeyForm",0,function(){let[e,l]=(0,a.useState)(i[0].id),[d,o]=(0,a.useState)(""),[c,m]=(0,a.useState)(null),[p,h]=(0,a.useState)({}),[x,u]=(0,a.useState)(null),[g,f]=(0,a.useState)(!1);async function y(t){t.preventDefault(),f(!0),u(null);try{let t=await fetch("/api/setup/ai",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:e,key:d})}),a=await t.json();a.saved?(o(""),m(e),h({...p,[e]:!0}),u({ok:!0,text:"Saved. AI suggestions now use this provider. No restart needed."})):u({ok:!1,text:a.error??"Nothing was saved."})}catch{u({ok:!1,text:"Could not reach the dashboard server."})}finally{f(!1)}}(0,a.useEffect)(()=>{fetch("/api/setup/ai").then(e=>e.json()).then(e=>{e.keys&&(h(e.keys),m(e.provider),e.provider&&l(e.provider))}).catch(()=>{})},[]);let b=i.find(t=>t.id===e);return(0,t.jsxs)(s.Card,{className:"border-[#2d3748] bg-[#1a202c] shadow-md max-w-2xl mt-6",children:[(0,t.jsxs)(s.CardHeader,{children:[(0,t.jsx)(s.CardTitle,{className:"text-[18px] font-bold text-white tracking-tight",children:"AI suggestions (optional)"}),(0,t.jsx)(s.CardDescription,{className:"text-sm text-gray-400",children:"Add a Gemini, Claude or OpenAI key to get AI insights and recommendations for your pages. Only page names, load times and error counts are sent to the provider you pick. Without a key, the dashboard shows sample suggestions."})]}),(0,t.jsx)(s.CardContent,{children:(0,t.jsxs)("form",{onSubmit:y,className:"flex flex-col gap-5",children:[(0,t.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,t.jsx)("label",{htmlFor:"ai-provider",className:"text-sm font-medium text-gray-300",children:"Provider"}),(0,t.jsx)("select",{id:"ai-provider",value:e,onChange:e=>l(e.target.value),className:"h-9 rounded-md border border-[#2d3748] bg-[#0f1419] px-3 text-sm text-gray-200",children:i.map(e=>(0,t.jsxs)("option",{value:e.id,children:[e.label,c===e.id?" (in use)":p[e.id]?" (key saved)":""]},e.id))})]}),(0,t.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,t.jsxs)("label",{htmlFor:"ai-key",className:"text-sm font-medium text-gray-300",children:[b.label," API key ",p[e]&&(0,t.jsx)("span",{className:"ml-2 text-xs text-[#3ee0a1]",children:"✓ Set"})]}),(0,t.jsx)(n.Input,{id:"ai-key",type:"password",autoComplete:"off",spellCheck:!1,placeholder:p[e]?"•••••••• (type to replace)":"",value:d,onChange:e=>o(e.target.value),"aria-describedby":"ai-key-help",className:"bg-[#0f1419] border-[#2d3748] text-gray-200 font-mono text-xs"}),(0,t.jsx)("p",{id:"ai-key-help",className:"text-xs text-gray-400",children:b.help})]}),(0,t.jsxs)("div",{className:"flex items-center gap-4",children:[(0,t.jsx)(r.Button,{type:"submit",disabled:g||!d.trim(),children:g?"Checking…":"Check and save"}),(0,t.jsx)("span",{"aria-live":"polite",className:`text-sm ${x?.ok?"text-[#3ee0a1]":"text-[#f87171]"}`,children:x?.text})]})]})})]})}])},4603,e=>{"use strict";var t=e.i(43476),a=e.i(71645),s=e.i(22016),r=e.i(70065),n=e.i(67881),i=e.i(23750);let l=[{name:"NEWRELIC_API_KEY",label:"New Relic User API key",secret:!0,help:'READS your data (starts NRAK-). Create it under API keys > key type "User".'},{name:"NEXT_PUBLIC_NEWRELIC_ACCOUNT_ID",label:"New Relic account ID",secret:!1,help:"A plain number, shown next to your keys in New Relic."},{name:"SENTRY_API_KEY",label:"Sentry auth token",secret:!0,help:"Lets the dashboard read issues (scopes: project:read, event:read)."},{name:"SENTRY_ORG_SLUG",label:"Sentry organization slug",secret:!1,help:"The name in your Sentry URL: sentry.io/organizations/<slug>/."},{name:"SENTRY_PROJECT_ID",label:"Sentry project slug",secret:!1,help:"The project's slug from Project settings."}];e.s(["SetupForm",0,function(){let[e,d]=(0,a.useState)({}),[o,c]=(0,a.useState)({}),[m,p]=(0,a.useState)({}),[h,x]=(0,a.useState)(null),[u,g]=(0,a.useState)(!1),[f,y]=(0,a.useState)(!1),b=(0,a.useRef)(null);async function v(t){t.preventDefault(),g(!0),x(null);try{let t=await fetch("/api/setup",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)}),a=await t.json(),s=a.results??{};p(s);let r=l.find(e=>s[e.name]&&!s[e.name].ok);r&&setTimeout(()=>b.current?.querySelector(`#${r.name}`)?.focus(),0),a.saved?(y(!0),d({}),c(Object.fromEntries(l.map(e=>[e.name,!0]))),x({ok:!0,text:"Saved. Your keys are valid and stored in .env.local. No restart needed."})):x({ok:!1,text:a.error??"Nothing was saved. Fix the fields marked below."})}catch{x({ok:!1,text:"Could not reach the dashboard server."})}finally{g(!1)}}return(0,a.useEffect)(()=>{fetch("/api/setup").then(e=>e.json()).then(e=>{e.keys?c(e.keys):e.error&&x({ok:!1,text:e.error})}).catch(()=>{})},[]),(0,t.jsxs)(r.Card,{className:"border-[#2d3748] bg-[#1a202c] shadow-md max-w-2xl",children:[(0,t.jsxs)(r.CardHeader,{children:[(0,t.jsx)(r.CardTitle,{className:"text-[18px] font-bold text-white tracking-tight",children:"Connect New Relic and Sentry"}),(0,t.jsx)(r.CardDescription,{className:"text-sm text-gray-400",children:"Keys are checked once, saved to .env.local in this folder, and never shown again. The key that sends events (Ingest - License) is separate and is added later on the Connect page."})]}),(0,t.jsx)(r.CardContent,{children:(0,t.jsxs)("form",{ref:b,onSubmit:v,className:"flex flex-col gap-5",children:[l.map(a=>{let s=m[a.name];return(0,t.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,t.jsxs)("label",{htmlFor:a.name,className:"text-sm font-medium text-gray-300",children:[a.label," ",o[a.name]&&(0,t.jsx)("span",{className:"ml-2 text-xs text-[#3ee0a1]",children:"✓ Set"})]}),(0,t.jsx)(i.Input,{id:a.name,name:a.name,type:a.secret?"password":"text",autoComplete:"off",spellCheck:!1,placeholder:o[a.name]?"•••••••• (leave blank to keep, type to replace)":"",value:e[a.name]??"",onChange:t=>d({...e,[a.name]:t.target.value}),"aria-invalid":!!s&&!s.ok||void 0,"aria-describedby":`${a.name}-help ${a.name}-result`,className:"bg-[#0f1419] border-[#2d3748] text-gray-200 font-mono text-xs"}),(0,t.jsx)("p",{id:`${a.name}-help`,className:"text-xs text-gray-400",children:a.help}),(0,t.jsxs)("div",{id:`${a.name}-result`,"aria-live":"polite",children:[s&&!s.ok&&(0,t.jsxs)("p",{className:"text-xs text-[#f87171]",children:["✗ ",s.error]}),s?.ok&&(0,t.jsx)("p",{className:"text-xs text-[#3ee0a1]",children:"✓ Checked"})]})]},a.name)}),(0,t.jsxs)("div",{className:"flex items-center gap-4",children:[(0,t.jsx)(n.Button,{type:"submit",disabled:u,children:u?"Checking…":"Check and save"}),(0,t.jsx)("span",{"aria-live":"polite",className:`text-sm ${h?.ok?"text-[#3ee0a1]":"text-[#f87171]"}`,children:h?.text}),f&&(0,t.jsx)(s.default,{href:"/connect",className:(0,n.buttonVariants)({variant:"outline"}),children:"Next: connect your app"})]})]})})]})}])},70065,e=>{"use strict";var t=e.i(43476),a=e.i(79862);e.s(["Card",0,function({className:e,size:s="default",...r}){return(0,t.jsx)("div",{"data-slot":"card","data-size":s,className:(0,a.cn)("group/card flex flex-col gap-(--card-spacing) overflow-hidden rounded-xl bg-card py-(--card-spacing) text-sm text-card-foreground ring-1 ring-foreground/10 [--card-spacing:--spacing(4)] has-data-[slot=card-footer]:pb-0 has-[>img:first-child]:pt-0 data-[size=sm]:[--card-spacing:--spacing(3)] data-[size=sm]:has-data-[slot=card-footer]:pb-0 *:[img:first-child]:rounded-t-xl *:[img:last-child]:rounded-b-xl",e),...r})},"CardContent",0,function({className:e,...s}){return(0,t.jsx)("div",{"data-slot":"card-content",className:(0,a.cn)("px-(--card-spacing)",e),...s})},"CardDescription",0,function({className:e,...s}){return(0,t.jsx)("div",{"data-slot":"card-description",className:(0,a.cn)("text-sm text-muted-foreground",e),...s})},"CardHeader",0,function({className:e,...s}){return(0,t.jsx)("div",{"data-slot":"card-header",className:(0,a.cn)("group/card-header @container/card-header grid auto-rows-min items-start gap-1 rounded-t-xl px-(--card-spacing) has-data-[slot=card-action]:grid-cols-[1fr_auto] has-data-[slot=card-description]:grid-rows-[auto_auto] [.border-b]:pb-(--card-spacing)",e),...s})},"CardTitle",0,function({className:e,...s}){return(0,t.jsx)("div",{"data-slot":"card-title",className:(0,a.cn)("font-heading text-base leading-snug font-medium group-data-[size=sm]/card:text-sm",e),...s})}])}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,94179,e=>{"use strict";var t=e.i(76782),a=e.i(11825),r=e.i(25913),
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,94179,e=>{"use strict";var t=e.i(76782),a=e.i(11825),r=e.i(25913),n=e.i(79862);let s=(0,r.cva)("group/badge inline-flex h-5 w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-4xl border border-transparent px-2 py-0.5 text-xs font-medium whitespace-nowrap transition-all focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&>svg]:pointer-events-none [&>svg]:size-3!",{variants:{variant:{default:"bg-primary text-primary-foreground [a]:hover:bg-primary/80",secondary:"bg-secondary text-secondary-foreground [a]:hover:bg-secondary/80",destructive:"bg-destructive/10 text-destructive focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:focus-visible:ring-destructive/40 [a]:hover:bg-destructive/20",outline:"border-border text-foreground [a]:hover:bg-muted [a]:hover:text-muted-foreground",ghost:"hover:bg-muted hover:text-muted-foreground dark:hover:bg-muted/50",link:"text-primary underline-offset-4 hover:underline"}},defaultVariants:{variant:"default"}});e.s(["Badge",0,function({className:e,variant:r="default",render:i,...d}){return(0,a.useRender)({defaultTagName:"span",props:(0,t.mergeProps)({className:(0,n.cn)(s({variant:r}),e)},d),render:i,state:{slot:"badge",variant:r}})}])},70065,e=>{"use strict";var t=e.i(43476),a=e.i(79862);e.s(["Card",0,function({className:e,size:r="default",...n}){return(0,t.jsx)("div",{"data-slot":"card","data-size":r,className:(0,a.cn)("group/card flex flex-col gap-(--card-spacing) overflow-hidden rounded-xl bg-card py-(--card-spacing) text-sm text-card-foreground ring-1 ring-foreground/10 [--card-spacing:--spacing(4)] has-data-[slot=card-footer]:pb-0 has-[>img:first-child]:pt-0 data-[size=sm]:[--card-spacing:--spacing(3)] data-[size=sm]:has-data-[slot=card-footer]:pb-0 *:[img:first-child]:rounded-t-xl *:[img:last-child]:rounded-b-xl",e),...n})},"CardContent",0,function({className:e,...r}){return(0,t.jsx)("div",{"data-slot":"card-content",className:(0,a.cn)("px-(--card-spacing)",e),...r})},"CardDescription",0,function({className:e,...r}){return(0,t.jsx)("div",{"data-slot":"card-description",className:(0,a.cn)("text-sm text-muted-foreground",e),...r})},"CardHeader",0,function({className:e,...r}){return(0,t.jsx)("div",{"data-slot":"card-header",className:(0,a.cn)("group/card-header @container/card-header grid auto-rows-min items-start gap-1 rounded-t-xl px-(--card-spacing) has-data-[slot=card-action]:grid-cols-[1fr_auto] has-data-[slot=card-description]:grid-rows-[auto_auto] [.border-b]:pb-(--card-spacing)",e),...r})},"CardTitle",0,function({className:e,...r}){return(0,t.jsx)("div",{"data-slot":"card-title",className:(0,a.cn)("font-heading text-base leading-snug font-medium group-data-[size=sm]/card:text-sm",e),...r})}])},47627,e=>{"use strict";var t=e.i(43476),a=e.i(79862);e.s(["Table",0,function({className:e,...r}){return(0,t.jsx)("div",{"data-slot":"table-container",className:"relative w-full overflow-x-auto",children:(0,t.jsx)("table",{"data-slot":"table",className:(0,a.cn)("w-full caption-bottom text-sm",e),...r})})},"TableBody",0,function({className:e,...r}){return(0,t.jsx)("tbody",{"data-slot":"table-body",className:(0,a.cn)("[&_tr:last-child]:border-0",e),...r})},"TableCell",0,function({className:e,...r}){return(0,t.jsx)("td",{"data-slot":"table-cell",className:(0,a.cn)("p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0",e),...r})},"TableHead",0,function({className:e,...r}){return(0,t.jsx)("th",{"data-slot":"table-head",className:(0,a.cn)("h-10 px-2 text-left align-middle font-medium whitespace-nowrap text-foreground [&:has([role=checkbox])]:pr-0",e),...r})},"TableHeader",0,function({className:e,...r}){return(0,t.jsx)("thead",{"data-slot":"table-header",className:(0,a.cn)("[&_tr]:border-b",e),...r})},"TableRow",0,function({className:e,...r}){return(0,t.jsx)("tr",{"data-slot":"table-row",className:(0,a.cn)("border-b transition-colors hover:bg-muted/50 has-aria-expanded:bg-muted/50 data-[state=selected]:bg-muted",e),...r})}])},50762,73011,e=>{"use strict";var t=e.i(71645);let a={loadSeconds:1.5,errorPercent:2,uptimeSLA:99.9};e.s(["DEFAULT_THRESHOLDS",0,a,"deriveStatus",0,function(e,t){let a=e.loadTime/1e3/t.loadSeconds,r=e.errorRate/t.errorPercent;return a>2||r>2?"Critical":a>1||r>1||e.apdexScore<.9?"Warning":"Healthy"}],73011);let r="perf-thresholds",n=new Set,s=null;function i(){if(s)return s;try{s={...a,...JSON.parse(localStorage.getItem(r)??"{}")}}catch{s=a}return s}function d(e){s=e;try{localStorage.setItem(r,JSON.stringify(e))}catch{}n.forEach(e=>e())}let o=!1;function c(e){e.key===r&&(s=null,n.forEach(e=>e()))}function l(e){return n.add(e),o||(o=!0,fetch("/api/settings").then(e=>e.ok?e.json():null).then(e=>e&&d({...a,...e})).catch(()=>{o=!1})),window.addEventListener("storage",c),()=>{n.delete(e),window.removeEventListener("storage",c)}}e.s(["setThresholds",0,function(e){d({...i(),...e}),fetch("/api/settings",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)}).catch(()=>{})},"useThresholds",0,function(){return(0,t.useSyncExternalStore)(l,i,()=>a)}],50762)},79432,e=>{"use strict";var t=e.i(56420);let a={name:"activity",size:24,node:[["path",{d:"M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2",key:"169zse"}]]};a.node;let r=(0,t.default)(a);e.s(["Activity",0,r],79432)}]);
|