@karan171996/metricflow 0.13.0 → 0.15.1
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 +1 -0
- package/.next/build-manifest.json +7 -6
- package/.next/fallback-build-manifest.json +3 -3
- package/.next/next-server.js.nft.json +1 -1
- package/.next/prerender-manifest.json +9 -9
- package/.next/required-server-files.js +9 -5
- package/.next/required-server-files.json +9 -5
- package/.next/routes-manifest.json +6 -0
- package/.next/server/app/_global-error/page/build-manifest.json +4 -3
- package/.next/server/app/_global-error/page.js.nft.json +1 -1
- package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- 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/build-manifest.json +4 -3
- package/.next/server/app/_not-found/page.js +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 +23 -22
- package/.next/server/app/_not-found.segments/_full.segment.rsc +23 -22
- package/.next/server/app/_not-found.segments/_index.segment.rsc +12 -11
- package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +7 -7
- package/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/api/analyze/route.js +1 -1
- package/.next/server/app/api/analyze/route.js.nft.json +1 -1
- package/.next/server/app/api/connect/route.js +1 -1
- package/.next/server/app/api/connect/route.js.nft.json +1 -1
- package/.next/server/app/api/health/route.js.nft.json +1 -1
- package/.next/server/app/api/lighthouse/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/lighthouse/route/build-manifest.json +12 -0
- package/.next/server/app/api/lighthouse/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/lighthouse/route.js +7 -0
- package/.next/server/app/api/lighthouse/route.js.nft.json +1 -0
- package/.next/server/app/api/lighthouse/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/metrics/route.js +3 -1
- package/.next/server/app/api/metrics/route.js.nft.json +1 -1
- package/.next/server/app/api/settings/route.js.nft.json +1 -1
- package/.next/server/app/api/setup/ai/route.js +1 -1
- package/.next/server/app/api/setup/ai/route.js.nft.json +1 -1
- package/.next/server/app/api/setup/route.js +4 -3
- package/.next/server/app/api/setup/route.js.nft.json +1 -1
- package/.next/server/app/api/timings/route.js.nft.json +1 -1
- package/.next/server/app/connect/page/build-manifest.json +4 -3
- package/.next/server/app/connect/page.js +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 +24 -23
- package/.next/server/app/connect.segments/_full.segment.rsc +24 -23
- package/.next/server/app/connect.segments/_index.segment.rsc +12 -11
- package/.next/server/app/connect.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/connect.segments/connect/__PAGE__.segment.rsc +12 -12
- package/.next/server/app/icon.svg/route.js +1 -1
- package/.next/server/app/icon.svg/route.js.nft.json +1 -1
- package/.next/server/app/icon.svg.body +4 -2
- package/.next/server/app/index.html +2 -2
- package/.next/server/app/index.rsc +27 -26
- package/.next/server/app/index.segments/__PAGE__.segment.rsc +7 -7
- package/.next/server/app/index.segments/_full.segment.rsc +27 -26
- package/.next/server/app/index.segments/_index.segment.rsc +12 -11
- package/.next/server/app/index.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/page/build-manifest.json +4 -3
- package/.next/server/app/page.js +1 -1
- 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/build-manifest.json +4 -3
- package/.next/server/app/performance/[slug]/page.js +3 -3
- 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/build-manifest.json +4 -3
- package/.next/server/app/performance/page.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 +32 -31
- package/.next/server/app/performance.segments/_full.segment.rsc +32 -31
- package/.next/server/app/performance.segments/_index.segment.rsc +12 -11
- package/.next/server/app/performance.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/performance.segments/performance/__PAGE__.segment.rsc +14 -14
- package/.next/server/app/settings/page/build-manifest.json +4 -3
- package/.next/server/app/settings/page.js +1 -1
- 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/setup/page/build-manifest.json +4 -3
- 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 +25 -24
- package/.next/server/app/setup.segments/_full.segment.rsc +25 -24
- package/.next/server/app/setup.segments/_index.segment.rsc +12 -11
- package/.next/server/app/setup.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/setup.segments/setup/__PAGE__.segment.rsc +13 -13
- package/.next/server/app/tools/[tool]/page/build-manifest.json +4 -3
- package/.next/server/app/tools/[tool]/page.js +2 -2
- package/.next/server/app/tools/[tool]/page.js.nft.json +1 -1
- package/.next/server/app/tools/[tool]/page_client-reference-manifest.js +1 -1
- package/.next/server/app-paths-manifest.json +1 -0
- package/.next/server/chunks/[externals]__0_9e0si._.js +3 -0
- package/.next/server/chunks/[externals]__1f7xi3d._.js +3 -0
- package/.next/server/chunks/{[externals]__0lanngu._.js → [externals]__1rfyr-i._.js} +1 -1
- package/.next/server/chunks/[externals]_chrome-launcher_1k_yki1._.js +3 -0
- package/.next/server/chunks/[externals]_lighthouse_1su6d37._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0_6kr31._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0az11z3._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0dv0ig6._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__0egyynf._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0fkj1-q._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__0vbatar._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1231g--._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__12lkcy1._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1mj-h97._.js +3 -0
- package/.next/server/chunks/[turbopack]_runtime.js +132 -0
- package/.next/server/chunks/_0w8wvdn._.js +1 -1
- package/.next/server/chunks/_0wct7-r._.js +1 -1
- package/.next/server/chunks/_1f80q3b._.js +2 -2
- package/.next/server/chunks/_next-internal_server_app_api_lighthouse_route_actions_1_4ee8x.js +3 -0
- package/.next/server/chunks/lib_analytics_index_ts_00-ju4e._.js +20 -0
- package/.next/server/chunks/ssr/0x0c_next_dist_0lkq344._.js +1 -1
- package/.next/server/chunks/ssr/0x0c_next_dist_1icgwks._.js +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_1nkgz3w._.js → 10ci_lucide-react_dist_esm_Icon_mjs_05sy43t._.js} +2 -2
- package/.next/server/chunks/ssr/[externals]_chrome-launcher_1k_yki1._.js +3 -0
- package/.next/server/chunks/ssr/[externals]_lighthouse_1su6d37._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__02c3m72._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__0g1dtzd._.js +1 -1
- package/.next/server/chunks/ssr/{[root-of-the-server]__11p3jmb._.js → [root-of-the-server]__0hifh__._.js} +2 -2
- package/.next/server/chunks/ssr/[root-of-the-server]__0l4t71c._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__0tz50uc._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0xjblsu._.js +3 -0
- package/.next/server/chunks/ssr/{[root-of-the-server]__1r29vac._.js → [root-of-the-server]__13w6d6f._.js} +2 -2
- package/.next/server/chunks/ssr/[root-of-the-server]__146cm0r._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__14_2v5e._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__1cl7b4r._.js +1 -1
- package/.next/server/chunks/ssr/[turbopack]_runtime.js +132 -0
- package/.next/server/chunks/ssr/_0aid3rp._.js +5 -3
- package/.next/server/chunks/ssr/{_1b8x2qw._.js → _0cst0jv._.js} +2 -2
- package/.next/server/chunks/ssr/{_1-c62g-._.js → _0vl4jhl._.js} +2 -2
- package/.next/server/chunks/ssr/{_1op3e_1._.js → _1-l5u-_._.js} +2 -2
- package/.next/server/chunks/ssr/{_0r3gp17._.js → _12brazw._.js} +2 -2
- package/.next/server/chunks/ssr/_1cfwie5._.js +3 -0
- package/.next/server/chunks/ssr/_1d39141._.js +3 -0
- package/.next/server/chunks/ssr/_1h52qq9._.js +3 -0
- package/.next/server/chunks/ssr/_1n6kmjf._.js +3 -0
- package/.next/server/chunks/ssr/{_0zneont._.js → _1ni54_c._.js} +2 -2
- package/.next/server/chunks/ssr/{_0-u65it._.js → _1vv2tlg._.js} +2 -2
- package/.next/server/chunks/ssr/node_modules__pnpm_1gezzqr._.js +151 -0
- package/.next/server/chunks/ssr/{node_modules__pnpm_0hf3oiy._.js → node_modules__pnpm_20_uz79._.js} +2 -2
- package/.next/server/middleware-build-manifest.js +7 -6
- package/.next/server/middleware.js.nft.json +1 -1
- package/.next/server/pages/404.html +2 -2
- package/.next/server/pages/500.html +1 -1
- package/.next/server/route-cache/APP_PAGE/41da0ef926a63354a29f601d8e8d0a5951196c45ebcd28b7d4708fb7f56f3bf1/$/_not-found.html +2 -0
- package/.next/server/route-cache/APP_PAGE/41da0ef926a63354a29f601d8e8d0a5951196c45ebcd28b7d4708fb7f56f3bf1/$/_not-found.meta +1 -0
- package/.next/server/route-cache/APP_PAGE/41da0ef926a63354a29f601d8e8d0a5951196c45ebcd28b7d4708fb7f56f3bf1/$/_not-found.rsc +41 -0
- package/.next/server/route-cache/APP_PAGE/41da0ef926a63354a29f601d8e8d0a5951196c45ebcd28b7d4708fb7f56f3bf1/$/_not-found.segments/_full.segment.rsc +41 -0
- package/.next/server/route-cache/APP_PAGE/41da0ef926a63354a29f601d8e8d0a5951196c45ebcd28b7d4708fb7f56f3bf1/$/_not-found.segments/_index.segment.rsc +32 -0
- package/.next/server/route-cache/APP_PAGE/41da0ef926a63354a29f601d8e8d0a5951196c45ebcd28b7d4708fb7f56f3bf1/$/_not-found.segments/_not-found/__PAGE__.segment.rsc +20 -0
- package/.next/server/route-cache/APP_PAGE/41da0ef926a63354a29f601d8e8d0a5951196c45ebcd28b7d4708fb7f56f3bf1/$/_not-found.segments/_tree.segment.rsc +2 -0
- package/.next/server/server-reference-manifest.js +1 -1
- package/.next/server/server-reference-manifest.json +1 -1
- package/.next/static/chunks/09gd7q3y6k-9o.js +1 -0
- package/.next/static/chunks/0on9boy9udzsk.js +22 -0
- package/.next/static/chunks/{3pxx39yay0ace.js → 0xrcyj-flkrl1.js} +1 -1
- package/.next/static/chunks/16dm0t9zkiz1_.js +31 -0
- package/.next/static/chunks/1qvxxmozdr7-c.js +1 -0
- package/.next/static/chunks/2wutbn1zdrzvx.js +1 -0
- package/.next/static/chunks/3somw8tkd8pzf.js +1 -0
- package/.next/static/chunks/3twacs-22zdwk.js +1 -0
- package/.next/static/chunks/{32-2bttdrtgys.js → 458nt4gshcy9x.js} +1 -1
- package/.next/static/chunks/turbopack-3icatqv27j50p.js +1 -0
- package/.next/static/media/icon.36lva-cxqp491.svg +6 -0
- package/.next/trace +1 -1
- package/.next/trace-build +1 -1
- package/README.md +6 -1
- package/bin/cli.mjs +14 -3
- package/bin/output.mjs +2 -0
- package/package.json +23 -16
- package/.next/server/chunks/[root-of-the-server]__0086g9z._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0ui-otz._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0urnrab._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0wkeqwu._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0xmaf60._.js +0 -18
- package/.next/server/chunks/[root-of-the-server]__0xy2rkf._.js +0 -18
- package/.next/server/chunks/ssr/[root-of-the-server]__0kik87u._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__1jyq1xk._.js +0 -3
- package/.next/server/chunks/ssr/_01vg-zb._.js +0 -3
- package/.next/server/chunks/ssr/_05t4klq._.js +0 -151
- package/.next/server/chunks/ssr/_09p8bi4._.js +0 -3
- package/.next/server/chunks/ssr/_1vj5488._.js +0 -3
- package/.next/static/chunks/0y_7csdv76zje.js +0 -1
- package/.next/static/chunks/2ez5lwfhls4_u.js +0 -1
- package/.next/static/chunks/3pn7ef-_3czj3.js +0 -1
- package/.next/static/chunks/3u-yh5wnxswb0.js +0 -1
- package/.next/static/chunks/3vpvl6gwhuz4w.js +0 -22
- package/.next/static/chunks/42z_0gfabqpr_.js +0 -31
- package/.next/static/chunks/turbopack-2-umre2j9nu7o.js +0 -1
- package/.next/static/media/icon.23mz8iwcatff2.svg +0 -4
- /package/.next/static/{RRS37EvIgWi0J_47nxSZN → 8LtMJdCno9wkpYotBJePk}/_buildManifest.js +0 -0
- /package/.next/static/{RRS37EvIgWi0J_47nxSZN → 8LtMJdCno9wkpYotBJePk}/_clientMiddlewareManifest.js +0 -0
- /package/.next/static/{RRS37EvIgWi0J_47nxSZN → 8LtMJdCno9wkpYotBJePk}/_ssgManifest.js +0 -0
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
module.exports=[49719,(e,t,r)=>{t.exports=e.x("assert",()=>require("assert"))},54799,(e,t,r)=>{t.exports=e.x("crypto",()=>require("crypto"))},27699,(e,t,r)=>{t.exports=e.x("events",()=>require("events"))},22734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},21517,(e,t,r)=>{t.exports=e.x("http",()=>require("http"))},25328,(e,t,r)=>{t.exports=e.x("http2",()=>require("http2"))},24836,(e,t,r)=>{t.exports=e.x("https",()=>require("https"))},4446,(e,t,r)=>{t.exports=e.x("net",()=>require("net"))},18622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},59043,(e,t,r)=>{t.exports=e.x("next/dist/server/runtime-reacts.external.js",()=>require("next/dist/server/runtime-reacts.external.js"))},93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},2157,(e,t,r)=>{t.exports=e.x("node:fs",()=>require("node:fs"))},50227,(e,t,r)=>{t.exports=e.x("node:path",()=>require("node:path"))},81111,(e,t,r)=>{t.exports=e.x("node:stream",()=>require("node:stream"))},46786,(e,t,r)=>{t.exports=e.x("os",()=>require("os"))},14747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},88947,(e,t,r)=>{t.exports=e.x("stream",()=>require("stream"))},55004,(e,t,r)=>{t.exports=e.x("tls",()=>require("tls"))},70722,(e,t,r)=>{t.exports=e.x("tty",()=>require("tty"))},92509,(e,t,r)=>{t.exports=e.x("url",()=>require("url"))},24361,(e,t,r)=>{t.exports=e.x("util",()=>require("util"))},6461,(e,t,r)=>{t.exports=e.x("zlib",()=>require("zlib"))},90770,e=>{"use strict";let t=new Map;e.s(["getTimings",0,function(){return Array.from(t.entries()).map(([e,t])=>({name:e,value:t})).sort((e,t)=>t.value-e.value)},"recordTiming",0,function(e,r){t.set(e,Math.round(r))}])},12892,78910,67119,e=>{"use strict";var t=e.i(2157),r=e.i(50227),s=e.i(39151),a=e.i(90218);function n(e,t=[],r=[]){let o,l="string"==typeof e?function(e,t,r=[]){if(null==t)throw Error("[lucide]: iconNode is required when icon name is used");return{name:e?.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),size:24,node:t,...r.length>0?{aliases:r}:{}}}(e,t,r):e,i=(0,s.forwardRef)(({className:e,...t},r)=>(0,s.createElement)(a.default,{ref:r,icon:l,className:e,...t}));return l.name&&(i.displayName=(o=(e=>{let t="",r=!1;for(let s of e){if("-"===s||"_"===s||s<=" "){r=t.length>0;continue}0===t.length?t+=s.toLowerCase():t+=r?s.toUpperCase():s,r=!1}return t})(l.name)).charAt(0).toUpperCase()+o.slice(1)),i}let o={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"}]]};o.node;let l=n(o),i={name:"bug",size:24,node:[["path",{d:"M12 20v-9",key:"1qisl0"}],["path",{d:"M14 7a4 4 0 0 1 4 4v3a6 6 0 0 1-12 0v-3a4 4 0 0 1 4-4z",key:"uouzyp"}],["path",{d:"M14.12 3.88 16 2",key:"qol33r"}],["path",{d:"M21 21a4 4 0 0 0-3.81-4",key:"1b0z45"}],["path",{d:"M21 5a4 4 0 0 1-3.55 3.97",key:"5cxbf6"}],["path",{d:"M22 13h-4",key:"1jl80f"}],["path",{d:"M3 21a4 4 0 0 1 3.81-4",key:"1fjd4g"}],["path",{d:"M3 5a4 4 0 0 0 3.55 3.97",key:"1d7oge"}],["path",{d:"M6 13H2",key:"82j7cp"}],["path",{d:"m8 2 1.88 1.88",key:"fmnt4t"}],["path",{d:"M9 7.13V6a3 3 0 1 1 6 0v1.13",key:"1vgav8"}]]};i.node;let c=n(i);function d(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 r=Math.round(t/1e3),s=e<0?"-":"";return r<3600?`${s}${Math.floor(r/60)}m ${r%60}s`:`${s}${Math.floor(r/3600)}h ${Math.floor(r%3600/60)}m`}e.s(["formatDuration",0,d],78910);let p=["pages","traffic","loadTime","apdex","vitals","ajax","errorRate","errors"],u=e=>e.length?e.reduce((e,t)=>e+t,0)/e.length:0,h=e=>void 0===e?"—":d(e),f=e=>e.byTool?.sentry?.errors??(e.sentry&&{count:e.sentry.errorCount,latest:e.sentry.latestErrors}),x=e=>f(e)?.count??0,y={"new-relic":{label:"New Relic",icon:l,description:"Real-user performance per page: load time, Core Web Vitals, throughput and Apdex.",connectReason:"Add your New Relic keys to see load time and Core Web Vitals for each page.",setupNote:"The key that sends events (Ingest - License) is separate and is added later on the Connect page.",keys:{required:["NEWRELIC_API_KEY","NEXT_PUBLIC_NEWRELIC_ACCOUNT_ID"],optional:["NEWRELIC_INSERT_KEY"],derived:["NEWRELIC_REGION"]},capabilities:["pages","traffic","loadTime","apdex","vitals","ajax","errorRate"],stats:e=>[{label:"Avg Load Time",value:d(u(e.map(e=>e.newRelic.loadTime)))},{label:"Avg LCP",value:d(u(e.map(e=>e.newRelic.lcp)))},{label:"Avg TTFB",value:d(u(e.map(e=>e.newRelic.ttfb)))},{label:"Avg Apdex",value:u(e.map(e=>e.newRelic.apdexScore)).toFixed(2)}],columns:[{needs:"loadTime",header:"Load",cell:e=>d(e.newRelic.loadTime)},{needs:"vitals",header:"LCP",cell:e=>d(e.newRelic.lcp)},{needs:"vitals",header:"TTFB",cell:e=>d(e.newRelic.ttfb)},{needs:"vitals",header:"CLS",cell:e=>e.newRelic.cls.toFixed(2)},{needs:"vitals",header:"INP",cell:e=>{let t=e.newRelic.inp;return void 0===t?"—":d(t)}},{needs:"errorRate",header:"Error Rate",cell:e=>`${e.newRelic.errorRate.toFixed(2)}%`},{needs:"traffic",header:"Throughput",cell:e=>e.newRelic.throughput.toLocaleString()},{needs:"apdex",header:"Apdex",cell:e=>e.newRelic.apdexScore.toFixed(2)}]},sentry:{label:"Sentry",icon:c,description:"Errors per page over the last 24 hours, with page loads and web vitals when your site sends traces.",connectReason:"Add your Sentry keys to see the errors on each page.",keys:{required:["SENTRY_API_KEY","SENTRY_DSN"],optional:[]},capabilities:["pages","traffic","vitals","errors"],stats:e=>{let t=e.reduce((e,t)=>x(t)>(e?x(e):0)?t:e,null);return[{label:"Total Errors",value:String(e.map(x).reduce((e,t)=>e+t,0))},{label:"Pages With Errors",value:`${e.filter(e=>x(e)>0).length} of ${e.length}`},{label:"Noisiest Page",value:t?.name??"None"}]},columns:[{needs:"errors",header:"Errors",cell:e=>String(x(e))},{needs:"errors",header:"Latest Error",cell:e=>f(e)?.latest[0]?.title??"—"},{needs:"errors",header:"Last Seen",cell:e=>{let t=Date.parse(f(e)?.latest[0]?.lastSeen??"");return Number.isNaN(t)?"—":new Date(t).toLocaleString()}},{needs:"traffic",header:"Page loads (sampled)",cell:e=>e.byTool?.sentry?.traffic?.count.toLocaleString()??"—"},{needs:"vitals",header:"LCP",cell:e=>h(e.byTool?.sentry?.vitals?.lcp)},{needs:"vitals",header:"TTFB",cell:e=>h(e.byTool?.sentry?.vitals?.ttfb)},{needs:"vitals",header:"CLS",cell:e=>e.byTool?.sentry?.vitals?.cls?.toFixed(2)??"—"},{needs:"vitals",header:"INP",cell:e=>h(e.byTool?.sentry?.vitals?.inp)}]}},m=Object.fromEntries(Object.entries({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".'},NEXT_PUBLIC_NEWRELIC_ACCOUNT_ID:{label:"New Relic account ID",secret:!1,help:"A plain number, shown next to your keys in New Relic."},SENTRY_API_KEY:{label:"Sentry auth token",secret:!0,help:"Lets the dashboard read issues (scopes: project:read, event:read)."},SENTRY_DSN:{label:"Sentry DSN",secret:!1,help:"Project settings, then Client Keys (DSN). The project and host are read from it."}}).map(([e,t])=>[e,t.label])),v=Object.keys(y);e.s(["KEY_LABELS",0,m,"TOOLS",0,y,"TOOL_IDS",0,v,"mergeMetrics",0,function(e,t,r){let s={};for(let[a,n]of Object.entries(t)){let t=r.includes(n)?void 0:e[n]?.[a];void 0!==t&&(s[a]=t)}return s},"sourcesFor",0,function(e){let t={};for(let r of p){let s=v.find(t=>e.includes(t)&&y[t].capabilities.includes(r));s&&(t[r]=s)}return t}],67119);let E=v.flatMap(e=>y[e].keys.required),g="NEWRELIC_REGION",R={us:{graphql:"https://api.newrelic.com/graphql",ingest:"https://insights-collector.newrelic.com"},eu:{graphql:"https://api.eu.newrelic.com/graphql",ingest:"https://insights-collector.eu01.nr-data.net"}},b={gemini:{label:"Google Gemini",key:"GEMINI_API_KEY"},claude:{label:"Anthropic Claude",key:"CLAUDE_API_KEY"},openai:{label:"OpenAI",key:"OPENAI_API_KEY"}},_="AI_PROVIDER";function w(e){return process.env[e]??""}let I=e=>y[e].keys.required.every(e=>w(e));function S(){return process.env.METRICFLOW_PROJECT_DIR||process.cwd()}let N=/[\s\0#"'`\\$]/;class T extends Error{}e.s(["AI_PROVIDERS",0,b,"AI_PROVIDER_KEY",0,_,"EnvWriteRefused",0,T,"INSERT_KEY",0,"NEWRELIC_INSERT_KEY","REGION_KEY",0,g,"SETUP_KEYS",0,E,"UNSAFE",0,N,"activeAi",0,function(){let e=process.env[_];for(let t of(e&&e in b?[e]:[]).concat(Object.keys(b))){let e=process.env[b[t].key];if(e)return{provider:t,key:e}}return null},"connectedTools",0,()=>v.filter(I),"env",0,w,"isToolConnected",0,I,"nrHosts",0,(e="eu"===process.env[g]?"eu":"us")=>R[e],"projectDir",0,S,"writeEnvLocal",0,function(e,s=process.env.METRICFLOW_ENV_FILE||(0,r.join)(S(),".env.local")){let a=new Set([...Object.values(y).flatMap(e=>[...e.keys.required,...e.keys.optional,...e.keys.derived??[]]),...Object.values(b).map(e=>e.key),_]);for(let[t,r]of Object.entries(e)){if(!a.has(t))throw new T("Refused to write a key name no tool declares.");if(N.test(r))throw new T("Refused to write a value with unsafe characters.")}let n=(0,t.existsSync)(s)?(0,t.readFileSync)(s,"utf8").split("\n"):[],o=new Map(Object.entries(e)),l=n.map(e=>{let t=e.match(/^\s*([A-Z0-9_]+)\s*=/)?.[1];if(t&&o.has(t)){let e=o.get(t);return o.delete(t),`${t}=${e}`}return e});for(;l.length&&""===l[l.length-1];)l.pop();for(let[e,t]of o)l.push(`${e}=${t}`);let i=`${s}.tmp`;for(let[r,a]of((0,t.writeFileSync)(i,l.join("\n")+"\n",{mode:384}),(0,t.renameSync)(i,s),Object.entries(e)))process.env[r]=a}],12892)},24514,e=>{"use strict";let t=new Set(["localhost","127.0.0.1","[::1]"]),r=new Set(["127.0.0.1","::1","::ffff:127.0.0.1"]);e.s(["REFUSAL_MESSAGE",0,()=>"1"===process.env.METRICFLOW_EXPOSED?"Setup and Connect are disabled because the dashboard is exposed on the network (--host). Restart without --host to use them.":"Setup is only available from localhost.","isLocalRequest",0,function(e){if("1"===process.env.METRICFLOW_EXPOSED)return!1;let s=e.headers.get("x-forwarded-for");if(s&&!s.split(",").every(e=>r.has(e.trim().replace(/^\[|\]$/g,"")))||"cross-site"===e.headers.get("sec-fetch-site"))return!1;let a=(e.headers.get("host")??"").replace(/:\d+$/,"");if(!t.has(a))return!1;let n=e.headers.get("origin");try{return!n||t.has(new URL(n).hostname)}catch{return!1}},"requireJson",0,function(e){return/^application\/json\s*(;|$)/i.test(e.headers.get("content-type")??"")?null:Response.json({error:"Send the request as application/json."},{status:415})}])},49196,e=>{"use strict";e.s(["default",()=>t]);let t=(0,e.i(18286).registerClientReference)(function(){throw Error("Attempted to call the default export of [project]/node_modules/.pnpm/lucide-react@1.54.0_@types+react@19.3.0_react@19.2.8/node_modules/lucide-react/dist/esm/Icon.mjs from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/node_modules/.pnpm/lucide-react@1.54.0_@types+react@19.3.0_react@19.2.8/node_modules/lucide-react/dist/esm/Icon.mjs","default")},90218,e=>{"use strict";var t=e.i(49196);e.n(t)},18286,(e,t,r)=>{"use strict";t.exports=e.r(99403).vendored["react-rsc"].ReactServerDOMTurbopackServer}];
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=%5Broot-of-the-server%5D__0086g9z._.js.map
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
module.exports=[49719,(e,t,r)=>{t.exports=e.x("assert",()=>require("assert"))},54799,(e,t,r)=>{t.exports=e.x("crypto",()=>require("crypto"))},27699,(e,t,r)=>{t.exports=e.x("events",()=>require("events"))},22734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},21517,(e,t,r)=>{t.exports=e.x("http",()=>require("http"))},25328,(e,t,r)=>{t.exports=e.x("http2",()=>require("http2"))},24836,(e,t,r)=>{t.exports=e.x("https",()=>require("https"))},4446,(e,t,r)=>{t.exports=e.x("net",()=>require("net"))},18622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},59043,(e,t,r)=>{t.exports=e.x("next/dist/server/runtime-reacts.external.js",()=>require("next/dist/server/runtime-reacts.external.js"))},93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},2157,(e,t,r)=>{t.exports=e.x("node:fs",()=>require("node:fs"))},50227,(e,t,r)=>{t.exports=e.x("node:path",()=>require("node:path"))},81111,(e,t,r)=>{t.exports=e.x("node:stream",()=>require("node:stream"))},46786,(e,t,r)=>{t.exports=e.x("os",()=>require("os"))},14747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},88947,(e,t,r)=>{t.exports=e.x("stream",()=>require("stream"))},55004,(e,t,r)=>{t.exports=e.x("tls",()=>require("tls"))},70722,(e,t,r)=>{t.exports=e.x("tty",()=>require("tty"))},92509,(e,t,r)=>{t.exports=e.x("url",()=>require("url"))},24361,(e,t,r)=>{t.exports=e.x("util",()=>require("util"))},6461,(e,t,r)=>{t.exports=e.x("zlib",()=>require("zlib"))},12892,78910,67119,e=>{"use strict";var t=e.i(2157),r=e.i(50227),s=e.i(39151),a=e.i(90218);function o(e,t=[],r=[]){let n,l="string"==typeof e?function(e,t,r=[]){if(null==t)throw Error("[lucide]: iconNode is required when icon name is used");return{name:e?.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),size:24,node:t,...r.length>0?{aliases:r}:{}}}(e,t,r):e,i=(0,s.forwardRef)(({className:e,...t},r)=>(0,s.createElement)(a.default,{ref:r,icon:l,className:e,...t}));return l.name&&(i.displayName=(n=(e=>{let t="",r=!1;for(let s of e){if("-"===s||"_"===s||s<=" "){r=t.length>0;continue}0===t.length?t+=s.toLowerCase():t+=r?s.toUpperCase():s,r=!1}return t})(l.name)).charAt(0).toUpperCase()+n.slice(1)),i}let n={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"}]]};n.node;let l=o(n),i={name:"bug",size:24,node:[["path",{d:"M12 20v-9",key:"1qisl0"}],["path",{d:"M14 7a4 4 0 0 1 4 4v3a6 6 0 0 1-12 0v-3a4 4 0 0 1 4-4z",key:"uouzyp"}],["path",{d:"M14.12 3.88 16 2",key:"qol33r"}],["path",{d:"M21 21a4 4 0 0 0-3.81-4",key:"1b0z45"}],["path",{d:"M21 5a4 4 0 0 1-3.55 3.97",key:"5cxbf6"}],["path",{d:"M22 13h-4",key:"1jl80f"}],["path",{d:"M3 21a4 4 0 0 1 3.81-4",key:"1fjd4g"}],["path",{d:"M3 5a4 4 0 0 0 3.55 3.97",key:"1d7oge"}],["path",{d:"M6 13H2",key:"82j7cp"}],["path",{d:"m8 2 1.88 1.88",key:"fmnt4t"}],["path",{d:"M9 7.13V6a3 3 0 1 1 6 0v1.13",key:"1vgav8"}]]};i.node;let c=o(i);function d(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 r=Math.round(t/1e3),s=e<0?"-":"";return r<3600?`${s}${Math.floor(r/60)}m ${r%60}s`:`${s}${Math.floor(r/3600)}h ${Math.floor(r%3600/60)}m`}e.s(["formatDuration",0,d],78910);let p=["pages","traffic","loadTime","apdex","vitals","ajax","errorRate","errors"],u=e=>e.length?e.reduce((e,t)=>e+t,0)/e.length:0,h=e=>void 0===e?"—":d(e),f=e=>e.byTool?.sentry?.errors??(e.sentry&&{count:e.sentry.errorCount,latest:e.sentry.latestErrors}),x=e=>f(e)?.count??0,y={"new-relic":{label:"New Relic",icon:l,description:"Real-user performance per page: load time, Core Web Vitals, throughput and Apdex.",connectReason:"Add your New Relic keys to see load time and Core Web Vitals for each page.",setupNote:"The key that sends events (Ingest - License) is separate and is added later on the Connect page.",keys:{required:["NEWRELIC_API_KEY","NEXT_PUBLIC_NEWRELIC_ACCOUNT_ID"],optional:["NEWRELIC_INSERT_KEY"],derived:["NEWRELIC_REGION"]},capabilities:["pages","traffic","loadTime","apdex","vitals","ajax","errorRate"],stats:e=>[{label:"Avg Load Time",value:d(u(e.map(e=>e.newRelic.loadTime)))},{label:"Avg LCP",value:d(u(e.map(e=>e.newRelic.lcp)))},{label:"Avg TTFB",value:d(u(e.map(e=>e.newRelic.ttfb)))},{label:"Avg Apdex",value:u(e.map(e=>e.newRelic.apdexScore)).toFixed(2)}],columns:[{needs:"loadTime",header:"Load",cell:e=>d(e.newRelic.loadTime)},{needs:"vitals",header:"LCP",cell:e=>d(e.newRelic.lcp)},{needs:"vitals",header:"TTFB",cell:e=>d(e.newRelic.ttfb)},{needs:"vitals",header:"CLS",cell:e=>e.newRelic.cls.toFixed(2)},{needs:"vitals",header:"INP",cell:e=>{let t=e.newRelic.inp;return void 0===t?"—":d(t)}},{needs:"errorRate",header:"Error Rate",cell:e=>`${e.newRelic.errorRate.toFixed(2)}%`},{needs:"traffic",header:"Throughput",cell:e=>e.newRelic.throughput.toLocaleString()},{needs:"apdex",header:"Apdex",cell:e=>e.newRelic.apdexScore.toFixed(2)}]},sentry:{label:"Sentry",icon:c,description:"Errors per page over the last 24 hours, with page loads and web vitals when your site sends traces.",connectReason:"Add your Sentry keys to see the errors on each page.",keys:{required:["SENTRY_API_KEY","SENTRY_DSN"],optional:[]},capabilities:["pages","traffic","vitals","errors"],stats:e=>{let t=e.reduce((e,t)=>x(t)>(e?x(e):0)?t:e,null);return[{label:"Total Errors",value:String(e.map(x).reduce((e,t)=>e+t,0))},{label:"Pages With Errors",value:`${e.filter(e=>x(e)>0).length} of ${e.length}`},{label:"Noisiest Page",value:t?.name??"None"}]},columns:[{needs:"errors",header:"Errors",cell:e=>String(x(e))},{needs:"errors",header:"Latest Error",cell:e=>f(e)?.latest[0]?.title??"—"},{needs:"errors",header:"Last Seen",cell:e=>{let t=Date.parse(f(e)?.latest[0]?.lastSeen??"");return Number.isNaN(t)?"—":new Date(t).toLocaleString()}},{needs:"traffic",header:"Page loads (sampled)",cell:e=>e.byTool?.sentry?.traffic?.count.toLocaleString()??"—"},{needs:"vitals",header:"LCP",cell:e=>h(e.byTool?.sentry?.vitals?.lcp)},{needs:"vitals",header:"TTFB",cell:e=>h(e.byTool?.sentry?.vitals?.ttfb)},{needs:"vitals",header:"CLS",cell:e=>e.byTool?.sentry?.vitals?.cls?.toFixed(2)??"—"},{needs:"vitals",header:"INP",cell:e=>h(e.byTool?.sentry?.vitals?.inp)}]}},m=Object.fromEntries(Object.entries({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".'},NEXT_PUBLIC_NEWRELIC_ACCOUNT_ID:{label:"New Relic account ID",secret:!1,help:"A plain number, shown next to your keys in New Relic."},SENTRY_API_KEY:{label:"Sentry auth token",secret:!0,help:"Lets the dashboard read issues (scopes: project:read, event:read)."},SENTRY_DSN:{label:"Sentry DSN",secret:!1,help:"Project settings, then Client Keys (DSN). The project and host are read from it."}}).map(([e,t])=>[e,t.label])),v=Object.keys(y);e.s(["KEY_LABELS",0,m,"TOOLS",0,y,"TOOL_IDS",0,v,"mergeMetrics",0,function(e,t,r){let s={};for(let[a,o]of Object.entries(t)){let t=r.includes(o)?void 0:e[o]?.[a];void 0!==t&&(s[a]=t)}return s},"sourcesFor",0,function(e){let t={};for(let r of p){let s=v.find(t=>e.includes(t)&&y[t].capabilities.includes(r));s&&(t[r]=s)}return t}],67119);let E=v.flatMap(e=>y[e].keys.required),R="NEWRELIC_REGION",g={us:{graphql:"https://api.newrelic.com/graphql",ingest:"https://insights-collector.newrelic.com"},eu:{graphql:"https://api.eu.newrelic.com/graphql",ingest:"https://insights-collector.eu01.nr-data.net"}},b={gemini:{label:"Google Gemini",key:"GEMINI_API_KEY"},claude:{label:"Anthropic Claude",key:"CLAUDE_API_KEY"},openai:{label:"OpenAI",key:"OPENAI_API_KEY"}},_="AI_PROVIDER";function w(e){return process.env[e]??""}let I=e=>y[e].keys.required.every(e=>w(e));function S(){return process.env.METRICFLOW_PROJECT_DIR||process.cwd()}let N=/[\s\0#"'`\\$]/;class k extends Error{}e.s(["AI_PROVIDERS",0,b,"AI_PROVIDER_KEY",0,_,"EnvWriteRefused",0,k,"INSERT_KEY",0,"NEWRELIC_INSERT_KEY","REGION_KEY",0,R,"SETUP_KEYS",0,E,"UNSAFE",0,N,"activeAi",0,function(){let e=process.env[_];for(let t of(e&&e in b?[e]:[]).concat(Object.keys(b))){let e=process.env[b[t].key];if(e)return{provider:t,key:e}}return null},"connectedTools",0,()=>v.filter(I),"env",0,w,"isToolConnected",0,I,"nrHosts",0,(e="eu"===process.env[R]?"eu":"us")=>g[e],"projectDir",0,S,"writeEnvLocal",0,function(e,s=process.env.METRICFLOW_ENV_FILE||(0,r.join)(S(),".env.local")){let a=new Set([...Object.values(y).flatMap(e=>[...e.keys.required,...e.keys.optional,...e.keys.derived??[]]),...Object.values(b).map(e=>e.key),_]);for(let[t,r]of Object.entries(e)){if(!a.has(t))throw new k("Refused to write a key name no tool declares.");if(N.test(r))throw new k("Refused to write a value with unsafe characters.")}let o=(0,t.existsSync)(s)?(0,t.readFileSync)(s,"utf8").split("\n"):[],n=new Map(Object.entries(e)),l=o.map(e=>{let t=e.match(/^\s*([A-Z0-9_]+)\s*=/)?.[1];if(t&&n.has(t)){let e=n.get(t);return n.delete(t),`${t}=${e}`}return e});for(;l.length&&""===l[l.length-1];)l.pop();for(let[e,t]of n)l.push(`${e}=${t}`);let i=`${s}.tmp`;for(let[r,a]of((0,t.writeFileSync)(i,l.join("\n")+"\n",{mode:384}),(0,t.renameSync)(i,s),Object.entries(e)))process.env[r]=a}],12892)},24514,e=>{"use strict";let t=new Set(["localhost","127.0.0.1","[::1]"]),r=new Set(["127.0.0.1","::1","::ffff:127.0.0.1"]);e.s(["REFUSAL_MESSAGE",0,()=>"1"===process.env.METRICFLOW_EXPOSED?"Setup and Connect are disabled because the dashboard is exposed on the network (--host). Restart without --host to use them.":"Setup is only available from localhost.","isLocalRequest",0,function(e){if("1"===process.env.METRICFLOW_EXPOSED)return!1;let s=e.headers.get("x-forwarded-for");if(s&&!s.split(",").every(e=>r.has(e.trim().replace(/^\[|\]$/g,"")))||"cross-site"===e.headers.get("sec-fetch-site"))return!1;let a=(e.headers.get("host")??"").replace(/:\d+$/,"");if(!t.has(a))return!1;let o=e.headers.get("origin");try{return!o||t.has(new URL(o).hostname)}catch{return!1}},"requireJson",0,function(e){return/^application\/json\s*(;|$)/i.test(e.headers.get("content-type")??"")?null:Response.json({error:"Send the request as application/json."},{status:415})}])},49196,e=>{"use strict";e.s(["default",()=>t]);let t=(0,e.i(18286).registerClientReference)(function(){throw Error("Attempted to call the default export of [project]/node_modules/.pnpm/lucide-react@1.54.0_@types+react@19.3.0_react@19.2.8/node_modules/lucide-react/dist/esm/Icon.mjs from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/node_modules/.pnpm/lucide-react@1.54.0_@types+react@19.3.0_react@19.2.8/node_modules/lucide-react/dist/esm/Icon.mjs","default")},90218,e=>{"use strict";var t=e.i(49196);e.n(t)},18286,(e,t,r)=>{"use strict";t.exports=e.r(99403).vendored["react-rsc"].ReactServerDOMTurbopackServer}];
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=%5Broot-of-the-server%5D__0ui-otz._.js.map
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
module.exports=[49719,(e,t,r)=>{t.exports=e.x("assert",()=>require("assert"))},54799,(e,t,r)=>{t.exports=e.x("crypto",()=>require("crypto"))},27699,(e,t,r)=>{t.exports=e.x("events",()=>require("events"))},22734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},21517,(e,t,r)=>{t.exports=e.x("http",()=>require("http"))},25328,(e,t,r)=>{t.exports=e.x("http2",()=>require("http2"))},24836,(e,t,r)=>{t.exports=e.x("https",()=>require("https"))},4446,(e,t,r)=>{t.exports=e.x("net",()=>require("net"))},18622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},59043,(e,t,r)=>{t.exports=e.x("next/dist/server/runtime-reacts.external.js",()=>require("next/dist/server/runtime-reacts.external.js"))},93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},2157,(e,t,r)=>{t.exports=e.x("node:fs",()=>require("node:fs"))},50227,(e,t,r)=>{t.exports=e.x("node:path",()=>require("node:path"))},81111,(e,t,r)=>{t.exports=e.x("node:stream",()=>require("node:stream"))},46786,(e,t,r)=>{t.exports=e.x("os",()=>require("os"))},14747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},88947,(e,t,r)=>{t.exports=e.x("stream",()=>require("stream"))},55004,(e,t,r)=>{t.exports=e.x("tls",()=>require("tls"))},70722,(e,t,r)=>{t.exports=e.x("tty",()=>require("tty"))},92509,(e,t,r)=>{t.exports=e.x("url",()=>require("url"))},24361,(e,t,r)=>{t.exports=e.x("util",()=>require("util"))},6461,(e,t,r)=>{t.exports=e.x("zlib",()=>require("zlib"))},12892,78910,67119,e=>{"use strict";var t=e.i(2157),r=e.i(50227),s=e.i(39151),o=e.i(90218);function n(e,t=[],r=[]){let a,i="string"==typeof e?function(e,t,r=[]){if(null==t)throw Error("[lucide]: iconNode is required when icon name is used");return{name:e?.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),size:24,node:t,...r.length>0?{aliases:r}:{}}}(e,t,r):e,l=(0,s.forwardRef)(({className:e,...t},r)=>(0,s.createElement)(o.default,{ref:r,icon:i,className:e,...t}));return i.name&&(l.displayName=(a=(e=>{let t="",r=!1;for(let s of e){if("-"===s||"_"===s||s<=" "){r=t.length>0;continue}0===t.length?t+=s.toLowerCase():t+=r?s.toUpperCase():s,r=!1}return t})(i.name)).charAt(0).toUpperCase()+a.slice(1)),l}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 i=n(a),l={name:"bug",size:24,node:[["path",{d:"M12 20v-9",key:"1qisl0"}],["path",{d:"M14 7a4 4 0 0 1 4 4v3a6 6 0 0 1-12 0v-3a4 4 0 0 1 4-4z",key:"uouzyp"}],["path",{d:"M14.12 3.88 16 2",key:"qol33r"}],["path",{d:"M21 21a4 4 0 0 0-3.81-4",key:"1b0z45"}],["path",{d:"M21 5a4 4 0 0 1-3.55 3.97",key:"5cxbf6"}],["path",{d:"M22 13h-4",key:"1jl80f"}],["path",{d:"M3 21a4 4 0 0 1 3.81-4",key:"1fjd4g"}],["path",{d:"M3 5a4 4 0 0 0 3.55 3.97",key:"1d7oge"}],["path",{d:"M6 13H2",key:"82j7cp"}],["path",{d:"m8 2 1.88 1.88",key:"fmnt4t"}],["path",{d:"M9 7.13V6a3 3 0 1 1 6 0v1.13",key:"1vgav8"}]]};l.node;let c=n(l);function d(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 r=Math.round(t/1e3),s=e<0?"-":"";return r<3600?`${s}${Math.floor(r/60)}m ${r%60}s`:`${s}${Math.floor(r/3600)}h ${Math.floor(r%3600/60)}m`}e.s(["formatDuration",0,d],78910);let u=["pages","traffic","loadTime","apdex","vitals","ajax","errorRate","errors"],p=e=>e.length?e.reduce((e,t)=>e+t,0)/e.length:0,h=e=>void 0===e?"—":d(e),f=e=>e.byTool?.sentry?.errors??(e.sentry&&{count:e.sentry.errorCount,latest:e.sentry.latestErrors}),y=e=>f(e)?.count??0,m={"new-relic":{label:"New Relic",icon:i,description:"Real-user performance per page: load time, Core Web Vitals, throughput and Apdex.",connectReason:"Add your New Relic keys to see load time and Core Web Vitals for each page.",setupNote:"The key that sends events (Ingest - License) is separate and is added later on the Connect page.",keys:{required:["NEWRELIC_API_KEY","NEXT_PUBLIC_NEWRELIC_ACCOUNT_ID"],optional:["NEWRELIC_INSERT_KEY"],derived:["NEWRELIC_REGION"]},capabilities:["pages","traffic","loadTime","apdex","vitals","ajax","errorRate"],stats:e=>[{label:"Avg Load Time",value:d(p(e.map(e=>e.newRelic.loadTime)))},{label:"Avg LCP",value:d(p(e.map(e=>e.newRelic.lcp)))},{label:"Avg TTFB",value:d(p(e.map(e=>e.newRelic.ttfb)))},{label:"Avg Apdex",value:p(e.map(e=>e.newRelic.apdexScore)).toFixed(2)}],columns:[{needs:"loadTime",header:"Load",cell:e=>d(e.newRelic.loadTime)},{needs:"vitals",header:"LCP",cell:e=>d(e.newRelic.lcp)},{needs:"vitals",header:"TTFB",cell:e=>d(e.newRelic.ttfb)},{needs:"vitals",header:"CLS",cell:e=>e.newRelic.cls.toFixed(2)},{needs:"vitals",header:"INP",cell:e=>{let t=e.newRelic.inp;return void 0===t?"—":d(t)}},{needs:"errorRate",header:"Error Rate",cell:e=>`${e.newRelic.errorRate.toFixed(2)}%`},{needs:"traffic",header:"Throughput",cell:e=>e.newRelic.throughput.toLocaleString()},{needs:"apdex",header:"Apdex",cell:e=>e.newRelic.apdexScore.toFixed(2)}]},sentry:{label:"Sentry",icon:c,description:"Errors per page over the last 24 hours, with page loads and web vitals when your site sends traces.",connectReason:"Add your Sentry keys to see the errors on each page.",keys:{required:["SENTRY_API_KEY","SENTRY_DSN"],optional:[]},capabilities:["pages","traffic","vitals","errors"],stats:e=>{let t=e.reduce((e,t)=>y(t)>(e?y(e):0)?t:e,null);return[{label:"Total Errors",value:String(e.map(y).reduce((e,t)=>e+t,0))},{label:"Pages With Errors",value:`${e.filter(e=>y(e)>0).length} of ${e.length}`},{label:"Noisiest Page",value:t?.name??"None"}]},columns:[{needs:"errors",header:"Errors",cell:e=>String(y(e))},{needs:"errors",header:"Latest Error",cell:e=>f(e)?.latest[0]?.title??"—"},{needs:"errors",header:"Last Seen",cell:e=>{let t=Date.parse(f(e)?.latest[0]?.lastSeen??"");return Number.isNaN(t)?"—":new Date(t).toLocaleString()}},{needs:"traffic",header:"Page loads (sampled)",cell:e=>e.byTool?.sentry?.traffic?.count.toLocaleString()??"—"},{needs:"vitals",header:"LCP",cell:e=>h(e.byTool?.sentry?.vitals?.lcp)},{needs:"vitals",header:"TTFB",cell:e=>h(e.byTool?.sentry?.vitals?.ttfb)},{needs:"vitals",header:"CLS",cell:e=>e.byTool?.sentry?.vitals?.cls?.toFixed(2)??"—"},{needs:"vitals",header:"INP",cell:e=>h(e.byTool?.sentry?.vitals?.inp)}]}},x=Object.fromEntries(Object.entries({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".'},NEXT_PUBLIC_NEWRELIC_ACCOUNT_ID:{label:"New Relic account ID",secret:!1,help:"A plain number, shown next to your keys in New Relic."},SENTRY_API_KEY:{label:"Sentry auth token",secret:!0,help:"Lets the dashboard read issues (scopes: project:read, event:read)."},SENTRY_DSN:{label:"Sentry DSN",secret:!1,help:"Project settings, then Client Keys (DSN). The project and host are read from it."}}).map(([e,t])=>[e,t.label])),g=Object.keys(m);e.s(["KEY_LABELS",0,x,"TOOLS",0,m,"TOOL_IDS",0,g,"mergeMetrics",0,function(e,t,r){let s={};for(let[o,n]of Object.entries(t)){let t=r.includes(n)?void 0:e[n]?.[o];void 0!==t&&(s[o]=t)}return s},"sourcesFor",0,function(e){let t={};for(let r of u){let s=g.find(t=>e.includes(t)&&m[t].capabilities.includes(r));s&&(t[r]=s)}return t}],67119);let v=g.flatMap(e=>m[e].keys.required),E="NEWRELIC_REGION",R={us:{graphql:"https://api.newrelic.com/graphql",ingest:"https://insights-collector.newrelic.com"},eu:{graphql:"https://api.eu.newrelic.com/graphql",ingest:"https://insights-collector.eu01.nr-data.net"}},b={gemini:{label:"Google Gemini",key:"GEMINI_API_KEY"},claude:{label:"Anthropic Claude",key:"CLAUDE_API_KEY"},openai:{label:"OpenAI",key:"OPENAI_API_KEY"}},w="AI_PROVIDER";function S(e){return process.env[e]??""}let I=e=>m[e].keys.required.every(e=>S(e));function _(){return process.env.METRICFLOW_PROJECT_DIR||process.cwd()}let N=/[\s\0#"'`\\$]/;class k extends Error{}e.s(["AI_PROVIDERS",0,b,"AI_PROVIDER_KEY",0,w,"EnvWriteRefused",0,k,"INSERT_KEY",0,"NEWRELIC_INSERT_KEY","REGION_KEY",0,E,"SETUP_KEYS",0,v,"UNSAFE",0,N,"activeAi",0,function(){let e=process.env[w];for(let t of(e&&e in b?[e]:[]).concat(Object.keys(b))){let e=process.env[b[t].key];if(e)return{provider:t,key:e}}return null},"connectedTools",0,()=>g.filter(I),"env",0,S,"isToolConnected",0,I,"nrHosts",0,(e="eu"===process.env[E]?"eu":"us")=>R[e],"projectDir",0,_,"writeEnvLocal",0,function(e,s=process.env.METRICFLOW_ENV_FILE||(0,r.join)(_(),".env.local")){let o=new Set([...Object.values(m).flatMap(e=>[...e.keys.required,...e.keys.optional,...e.keys.derived??[]]),...Object.values(b).map(e=>e.key),w]);for(let[t,r]of Object.entries(e)){if(!o.has(t))throw new k("Refused to write a key name no tool declares.");if(N.test(r))throw new k("Refused to write a value with unsafe characters.")}let n=(0,t.existsSync)(s)?(0,t.readFileSync)(s,"utf8").split("\n"):[],a=new Map(Object.entries(e)),i=n.map(e=>{let t=e.match(/^\s*([A-Z0-9_]+)\s*=/)?.[1];if(t&&a.has(t)){let e=a.get(t);return a.delete(t),`${t}=${e}`}return e});for(;i.length&&""===i[i.length-1];)i.pop();for(let[e,t]of a)i.push(`${e}=${t}`);let l=`${s}.tmp`;for(let[r,o]of((0,t.writeFileSync)(l,i.join("\n")+"\n",{mode:384}),(0,t.renameSync)(l,s),Object.entries(e)))process.env[r]=o}],12892)},24514,e=>{"use strict";let t=new Set(["localhost","127.0.0.1","[::1]"]),r=new Set(["127.0.0.1","::1","::ffff:127.0.0.1"]);e.s(["REFUSAL_MESSAGE",0,()=>"1"===process.env.METRICFLOW_EXPOSED?"Setup and Connect are disabled because the dashboard is exposed on the network (--host). Restart without --host to use them.":"Setup is only available from localhost.","isLocalRequest",0,function(e){if("1"===process.env.METRICFLOW_EXPOSED)return!1;let s=e.headers.get("x-forwarded-for");if(s&&!s.split(",").every(e=>r.has(e.trim().replace(/^\[|\]$/g,"")))||"cross-site"===e.headers.get("sec-fetch-site"))return!1;let o=(e.headers.get("host")??"").replace(/:\d+$/,"");if(!t.has(o))return!1;let n=e.headers.get("origin");try{return!n||t.has(new URL(n).hostname)}catch{return!1}},"requireJson",0,function(e){return/^application\/json\s*(;|$)/i.test(e.headers.get("content-type")??"")?null:Response.json({error:"Send the request as application/json."},{status:415})}])},84594,e=>{"use strict";var t=e.i(60756),r=e.i(12892);async function s(e,o=()=>!1){let n,a;if(process.env[r.REGION_KEY])return e((0,r.nrHosts)());try{if(n=await e((0,r.nrHosts)("us")),!o(n))return n}catch(r){let e=t.default.isAxiosError(r)?r.response?.status:void 0;if(401!==e&&403!==e)throw r;a=r}try{let t=await e((0,r.nrHosts)("eu"));if(!o(t))return process.env[r.REGION_KEY]="eu",t}catch{}if(a)throw a;return n}async function o(e,r,o){return(await s(s=>t.default.post(s.graphql,{query:r},{headers:{"API-Key":e,"Content-Type":"application/json"},timeout:o}),e=>!e.data?.data?.actor)).data}e.s(["nrGraphql",0,o,"withRegion",0,s])},83808,e=>{"use strict";var t=e.i(60756);let r=new Set(["localhost","127.0.0.1","[::1]"]);function s(e){let t;try{t=new URL(e)}catch{return{ok:!1,error:"Sentry DSN is not a valid URL."}}if("https:"!==t.protocol&&"http:"!==t.protocol)return{ok:!1,error:"Sentry DSN must be an http(s) URL."};if(t.password)return{ok:!1,error:"This is a legacy DSN that contains a secret key. Copy the DSN from Project settings > Client Keys."};if("http:"===t.protocol&&!r.has(t.hostname))return{ok:!1,error:"Sentry DSN must use https (http is only accepted for localhost)."};if(!t.username)return{ok:!1,error:"Sentry DSN is missing its public key."};let s=t.pathname.replace(/^\/|\/$/g,"");if(!/^\d+$/.test(s))return{ok:!1,error:"Sentry DSN is missing a numeric project id."};let o=t.host.match(/^o(\d+)\.ingest\.(.+)$/i),n=o?o[2]:t.host;return{ok:!0,projectId:s,orgId:o?o[1]:null,apiBase:`${t.protocol}//${n}/api/0`}}async function o(e,r){let s={Authorization:`Bearer ${e}`},o=r.orgId?await t.default.get(`${r.apiBase}/organizations/`,{headers:s,timeout:8e3}):await t.default.get(`${r.apiBase}/projects/`,{headers:s,timeout:8e3}),n=Array.isArray(o.data)?o.data:[];return(r.orgId?n.find(e=>String(e.id)===r.orgId)?.slug:n.find(e=>String(e.id)===r.projectId)?.organization?.slug)??null}e.s(["orgSlugForDsn",0,o,"parseSentryDsn",0,s,"publicDsn",0,function(e){let t=s(e);if(!t.ok)return null;let r=new URL(e);return`${r.protocol}//${r.username}@${r.host}/${t.projectId}`},"sentryHostNotice",0,function(e){let t=new URL(e).hostname;return"sentry.io"===t||t.endsWith(".sentry.io")?null:`Your Sentry token will be sent to ${t}, which is not sentry.io. Continue only if that is your own Sentry server.`}])},49196,e=>{"use strict";e.s(["default",()=>t]);let t=(0,e.i(18286).registerClientReference)(function(){throw Error("Attempted to call the default export of [project]/node_modules/.pnpm/lucide-react@1.54.0_@types+react@19.3.0_react@19.2.8/node_modules/lucide-react/dist/esm/Icon.mjs from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/node_modules/.pnpm/lucide-react@1.54.0_@types+react@19.3.0_react@19.2.8/node_modules/lucide-react/dist/esm/Icon.mjs","default")},90218,e=>{"use strict";var t=e.i(49196);e.n(t)},18286,(e,t,r)=>{"use strict";t.exports=e.r(99403).vendored["react-rsc"].ReactServerDOMTurbopackServer}];
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=%5Broot-of-the-server%5D__0urnrab._.js.map
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
module.exports=[49719,(e,t,r)=>{t.exports=e.x("assert",()=>require("assert"))},54799,(e,t,r)=>{t.exports=e.x("crypto",()=>require("crypto"))},27699,(e,t,r)=>{t.exports=e.x("events",()=>require("events"))},22734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},21517,(e,t,r)=>{t.exports=e.x("http",()=>require("http"))},25328,(e,t,r)=>{t.exports=e.x("http2",()=>require("http2"))},24836,(e,t,r)=>{t.exports=e.x("https",()=>require("https"))},4446,(e,t,r)=>{t.exports=e.x("net",()=>require("net"))},18622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},59043,(e,t,r)=>{t.exports=e.x("next/dist/server/runtime-reacts.external.js",()=>require("next/dist/server/runtime-reacts.external.js"))},93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},2157,(e,t,r)=>{t.exports=e.x("node:fs",()=>require("node:fs"))},50227,(e,t,r)=>{t.exports=e.x("node:path",()=>require("node:path"))},81111,(e,t,r)=>{t.exports=e.x("node:stream",()=>require("node:stream"))},46786,(e,t,r)=>{t.exports=e.x("os",()=>require("os"))},14747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},88947,(e,t,r)=>{t.exports=e.x("stream",()=>require("stream"))},55004,(e,t,r)=>{t.exports=e.x("tls",()=>require("tls"))},70722,(e,t,r)=>{t.exports=e.x("tty",()=>require("tty"))},92509,(e,t,r)=>{t.exports=e.x("url",()=>require("url"))},24361,(e,t,r)=>{t.exports=e.x("util",()=>require("util"))},6461,(e,t,r)=>{t.exports=e.x("zlib",()=>require("zlib"))},83464,e=>{"use strict";var t=e.i(60756),r=e.i(12892),s=e.i(24514);let a=()=>Response.json({error:(0,s.REFUSAL_MESSAGE)()},{status:403}),n={gemini:e=>t.default.get("https://generativelanguage.googleapis.com/v1beta/models",{params:{key:e},timeout:8e3}),claude:e=>t.default.get("https://api.anthropic.com/v1/models",{headers:{"x-api-key":e,"anthropic-version":"2023-06-01"},timeout:8e3}),openai:e=>t.default.get("https://api.openai.com/v1/models",{headers:{Authorization:`Bearer ${e}`},timeout:8e3})};async function o(e){return(0,s.isLocalRequest)(e)?Response.json({provider:(0,r.activeAi)()?.provider??null,keys:Object.fromEntries(Object.entries(r.AI_PROVIDERS).map(([e,t])=>[e,!!process.env[t.key]]))}):a()}async function i(e){let o;if(!(0,s.isLocalRequest)(e))return a();try{o=await e.json()}catch{return Response.json({error:"Invalid request body."},{status:400})}let i=(0,s.requireJson)(e);if(i)return i;let l=o.provider;if(!("string"==typeof l&&l in r.AI_PROVIDERS))return Response.json({saved:!1,error:"Choose a provider."},{status:400});let d="string"==typeof o.key?o.key.trim():"";if(!d)return Response.json({saved:!1,error:"Required."},{status:400});if(r.UNSAFE.test(d))return Response.json({saved:!1,error:"Contains spaces or special characters. Paste the key without them."},{status:400});try{await n[l](d)}catch(a){let e=t.default.isAxiosError(a)?a.response?.status:void 0,s=400===e||401===e||403===e?`${r.AI_PROVIDERS[l].label} rejected this key.`:`Could not reach ${r.AI_PROVIDERS[l].label} to check the key.`;return Response.json({saved:!1,error:s},{status:422})}try{(0,r.writeEnvLocal)({[r.AI_PROVIDER_KEY]:l,[r.AI_PROVIDERS[l].key]:d})}catch(e){if(e instanceof r.EnvWriteRefused)return Response.json({saved:!1,error:"Nothing was saved: the key or its name was refused as unsafe."},{status:400});return Response.json({saved:!1,error:"Key is valid but .env.local could not be written. Check folder permissions."},{status:500})}return Response.json({saved:!0,provider:l})}e.s(["GET",0,o,"POST",0,i])},9001,e=>{"use strict";var t=e.i(12425),r=e.i(83353),s=e.i(47902),a=e.i(37892),n=e.i(54261),o=e.i(39548),i=e.i(68187),l=e.i(63984),d=e.i(88743),u=e.i(24698),c=e.i(13487),p=e.i(48776),h=e.i(29398),f=e.i(31610),v=e.i(45919),R=e.i(93695),m=e.i(12741);e.i(95315);var E=e.i(98732);let y=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/setup/ai/route",pathname:"/api/setup/ai",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/app/api/setup/ai/route.ts",nextConfigOutput:"",userland:()=>e.r(83464),...{}}),{workAsyncStorage:x,workUnitAsyncStorage:g,serverHooks:w}=y;async function b(e,t,s){s.requestMeta&&(0,a.setRequestMeta)(e,s.requestMeta),y.isDev&&(0,a.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let x="/api/setup/ai/route";x=x.replace(/\/index$/,"")||"/";let g=await y.prepare(e,t,{srcPage:x,multiZoneDraftMode:!1});if(!g)return t.statusCode=400,t.end("Bad Request"),null==s.waitUntil||s.waitUntil.call(s,Promise.resolve()),null;let{buildId:w,deploymentId:b,params:C,nextConfig:S,parsedUrl:_,isDraftMode:A,prerenderManifest:I,routerServerContext:T,isOnDemandRevalidate:N,revalidateOnlyGenerated:k,resolvedPathname:O,clientReferenceManifest:q,serverActionsManifest:P}=g,j=(0,i.normalizeAppPath)(x),L=!!I.routes[O]&&(y.isDev||(0,m.isRouteCacheOwner)(O,y.cacheOwner,I.routes[O])),M=!!(I.dynamicRoutes[j]||L),D=async()=>((null==T?void 0:T.render404)?await T.render404(e,t,_,!1):t.end("This page could not be found"),null);if(M&&!A){let e=I.dynamicRoutes[j];if(e&&!1===e.fallback&&!L){if(S.adapterPath)return await D();throw new R.NoFallbackError}}let $=null;!M||y.isDev||A||($="/index"===($=O)?"/":$);let F=!0===y.isDev||!M,U=M&&!F;P&&q&&(0,o.setManifestsSingleton)({page:x,clientReferenceManifest:q,serverActionsManifest:P});let K=e.method||"GET",H=(0,n.getTracer)(),W=H.getActiveScopeSpan(),Y=!!(null==T?void 0:T.isWrappedByNextServer),V=!!(0,a.getRequestMeta)(e,"minimalMode"),G=(0,a.getRequestMeta)(e,"incrementalCache")||await y.getIncrementalCache(e,S,I,V);null==G||G.resetRequestCache(),globalThis.__incrementalCache=G;let B={params:C,previewProps:I.preview,renderOpts:{experimental:{authInterrupts:!!S.experimental.authInterrupts,useCacheTimeout:S.experimental.useCacheTimeout},cacheComponents:!!S.cacheComponents,validationLevel:S.experimental.instantInsights.validationLevel,isDraftMode:A,supportsDynamicResponse:F,incrementalCache:G,hmrRefreshHash:(0,a.getRequestMeta)(e,"hmrRefreshHash"),cacheLifeProfiles:S.cacheLife,staticPageGenerationTimeout:S.staticPageGenerationTimeout,waitUntil:s.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,s,a)=>y.onRequestError(e,t,s,a,T)},sharedContext:{buildId:w,deploymentId:b}},z=new l.NodeNextRequest(e),X=new l.NodeNextResponse(t),J=d.NextRequestAdapter.fromNodeNextRequest(z,(0,d.signalFromNodeResponse)(t)),Z=async({previousCacheEntry:r})=>{try{if(!V&&N&&k&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let a=await y.handle(J,B);e.fetchMetrics=B.renderOpts.fetchMetrics;let n=B.renderOpts.pendingWaitUntil;n&&s.waitUntil&&(s.waitUntil(n),n=void 0);let o=B.renderOpts.collectedTags;if(!M)return await (0,p.sendResponse)(z,X,a,n),null;{let e=await a.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(a.headers);o&&(t[v.NEXT_CACHE_TAGS_HEADER]=o),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==B.renderOpts.collectedRevalidate&&!(B.renderOpts.collectedRevalidate>=v.INFINITE_CACHE)&&B.renderOpts.collectedRevalidate,s=void 0===B.renderOpts.collectedExpire||B.renderOpts.collectedExpire>=v.INFINITE_CACHE?!1!==r&&r>0?S.expireTime:void 0:B.renderOpts.collectedExpire;return{value:{kind:E.CachedRouteKind.APP_ROUTE,status:a.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:s}}}}catch(t){throw(null==r?void 0:r.isStale)&&await y.onRequestError(e,t,{routerKind:"App Router",routePath:x,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:N})},!1,T),t}},Q=async(a,o)=>{try{var i,l;let a=await y.handleResponse({req:e,nextConfig:S,cacheKey:$,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:I,isRoutePPREnabled:!1,isOnDemandRevalidate:N,revalidateOnlyGenerated:k,responseGenerator:Z,waitUntil:s.waitUntil,isMinimalMode:V});if(!M)return;if((null==a||null==(i=a.value)?void 0:i.kind)!==E.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==a||null==(l=a.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});V||t.setHeader("x-nextjs-cache",N?"REVALIDATED":a.isMiss?"MISS":a.isStale?"STALE":"HIT"),A&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let n=(0,h.fromNodeOutgoingHttpHeaders)(a.value.headers);V&&M||n.delete(v.NEXT_CACHE_TAGS_HEADER),!a.cacheControl||t.getHeader("Cache-Control")||n.get("Cache-Control")||n.set("Cache-Control",(0,f.getCacheControlHeader)(a.cacheControl)),await (0,p.sendResponse)(z,X,new Response(a.value.body,{headers:n,status:a.value.status||200}));return}catch(t){if(t instanceof R.NoFallbackError||await y.onRequestError(e,t,{routerKind:"App Router",routePath:j,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:N})},!1,T),M)throw t;await (0,p.sendResponse)(z,X,new Response(null,{status:500}));return}finally{(()=>{if(!a)return;let e=t.statusCode;a.setAttributes({"http.status_code":e,"next.rsc":!1}),e&&e>=500&&(a.setStatus({code:n.SpanStatusCode.ERROR}),a.setAttribute("error.type",e.toString()));let r=H.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==u.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let s=r.get("next.route")||j,i=`${K} ${s}`;a.setAttributes({"next.route":s,"http.route":s,"next.span_name":i}),a.updateName(i),o&&o!==a&&(o.setAttribute("http.route",s),o.updateName(i))})()}};if(Y&&W)await Q(W,void 0);else{let t=H.getActiveScopeSpan();await H.withPropagatedContext(e.headers,()=>H.trace(u.BaseServerSpan.handleRequest,{spanName:`${K} ${x}`,kind:n.SpanKind.SERVER,attributes:{"http.method":K,"http.target":e.url}},e=>Q(e,t)),void 0,!Y)}}e.s(["handler",0,b,"patchFetch",0,function(){return(0,s.patchFetch)({workAsyncStorage:x,workUnitAsyncStorage:g})},"routeModule",0,y,"serverHooks",0,w,"workAsyncStorage",0,x,"workUnitAsyncStorage",0,g])},12892,78910,67119,e=>{"use strict";var t=e.i(2157),r=e.i(50227),s=e.i(39151),a=e.i(90218);function n(e,t=[],r=[]){let o,i="string"==typeof e?function(e,t,r=[]){if(null==t)throw Error("[lucide]: iconNode is required when icon name is used");return{name:e?.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),size:24,node:t,...r.length>0?{aliases:r}:{}}}(e,t,r):e,l=(0,s.forwardRef)(({className:e,...t},r)=>(0,s.createElement)(a.default,{ref:r,icon:i,className:e,...t}));return i.name&&(l.displayName=(o=(e=>{let t="",r=!1;for(let s of e){if("-"===s||"_"===s||s<=" "){r=t.length>0;continue}0===t.length?t+=s.toLowerCase():t+=r?s.toUpperCase():s,r=!1}return t})(i.name)).charAt(0).toUpperCase()+o.slice(1)),l}let o={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"}]]};o.node;let i=n(o),l={name:"bug",size:24,node:[["path",{d:"M12 20v-9",key:"1qisl0"}],["path",{d:"M14 7a4 4 0 0 1 4 4v3a6 6 0 0 1-12 0v-3a4 4 0 0 1 4-4z",key:"uouzyp"}],["path",{d:"M14.12 3.88 16 2",key:"qol33r"}],["path",{d:"M21 21a4 4 0 0 0-3.81-4",key:"1b0z45"}],["path",{d:"M21 5a4 4 0 0 1-3.55 3.97",key:"5cxbf6"}],["path",{d:"M22 13h-4",key:"1jl80f"}],["path",{d:"M3 21a4 4 0 0 1 3.81-4",key:"1fjd4g"}],["path",{d:"M3 5a4 4 0 0 0 3.55 3.97",key:"1d7oge"}],["path",{d:"M6 13H2",key:"82j7cp"}],["path",{d:"m8 2 1.88 1.88",key:"fmnt4t"}],["path",{d:"M9 7.13V6a3 3 0 1 1 6 0v1.13",key:"1vgav8"}]]};l.node;let d=n(l);function u(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 r=Math.round(t/1e3),s=e<0?"-":"";return r<3600?`${s}${Math.floor(r/60)}m ${r%60}s`:`${s}${Math.floor(r/3600)}h ${Math.floor(r%3600/60)}m`}e.s(["formatDuration",0,u],78910);let c=["pages","traffic","loadTime","apdex","vitals","ajax","errorRate","errors"],p=e=>e.length?e.reduce((e,t)=>e+t,0)/e.length:0,h=e=>void 0===e?"—":u(e),f=e=>e.byTool?.sentry?.errors??(e.sentry&&{count:e.sentry.errorCount,latest:e.sentry.latestErrors}),v=e=>f(e)?.count??0,R={"new-relic":{label:"New Relic",icon:i,description:"Real-user performance per page: load time, Core Web Vitals, throughput and Apdex.",connectReason:"Add your New Relic keys to see load time and Core Web Vitals for each page.",setupNote:"The key that sends events (Ingest - License) is separate and is added later on the Connect page.",keys:{required:["NEWRELIC_API_KEY","NEXT_PUBLIC_NEWRELIC_ACCOUNT_ID"],optional:["NEWRELIC_INSERT_KEY"],derived:["NEWRELIC_REGION"]},capabilities:["pages","traffic","loadTime","apdex","vitals","ajax","errorRate"],stats:e=>[{label:"Avg Load Time",value:u(p(e.map(e=>e.newRelic.loadTime)))},{label:"Avg LCP",value:u(p(e.map(e=>e.newRelic.lcp)))},{label:"Avg TTFB",value:u(p(e.map(e=>e.newRelic.ttfb)))},{label:"Avg Apdex",value:p(e.map(e=>e.newRelic.apdexScore)).toFixed(2)}],columns:[{needs:"loadTime",header:"Load",cell:e=>u(e.newRelic.loadTime)},{needs:"vitals",header:"LCP",cell:e=>u(e.newRelic.lcp)},{needs:"vitals",header:"TTFB",cell:e=>u(e.newRelic.ttfb)},{needs:"vitals",header:"CLS",cell:e=>e.newRelic.cls.toFixed(2)},{needs:"vitals",header:"INP",cell:e=>{let t=e.newRelic.inp;return void 0===t?"—":u(t)}},{needs:"errorRate",header:"Error Rate",cell:e=>`${e.newRelic.errorRate.toFixed(2)}%`},{needs:"traffic",header:"Throughput",cell:e=>e.newRelic.throughput.toLocaleString()},{needs:"apdex",header:"Apdex",cell:e=>e.newRelic.apdexScore.toFixed(2)}]},sentry:{label:"Sentry",icon:d,description:"Errors per page over the last 24 hours, with page loads and web vitals when your site sends traces.",connectReason:"Add your Sentry keys to see the errors on each page.",keys:{required:["SENTRY_API_KEY","SENTRY_DSN"],optional:[]},capabilities:["pages","traffic","vitals","errors"],stats:e=>{let t=e.reduce((e,t)=>v(t)>(e?v(e):0)?t:e,null);return[{label:"Total Errors",value:String(e.map(v).reduce((e,t)=>e+t,0))},{label:"Pages With Errors",value:`${e.filter(e=>v(e)>0).length} of ${e.length}`},{label:"Noisiest Page",value:t?.name??"None"}]},columns:[{needs:"errors",header:"Errors",cell:e=>String(v(e))},{needs:"errors",header:"Latest Error",cell:e=>f(e)?.latest[0]?.title??"—"},{needs:"errors",header:"Last Seen",cell:e=>{let t=Date.parse(f(e)?.latest[0]?.lastSeen??"");return Number.isNaN(t)?"—":new Date(t).toLocaleString()}},{needs:"traffic",header:"Page loads (sampled)",cell:e=>e.byTool?.sentry?.traffic?.count.toLocaleString()??"—"},{needs:"vitals",header:"LCP",cell:e=>h(e.byTool?.sentry?.vitals?.lcp)},{needs:"vitals",header:"TTFB",cell:e=>h(e.byTool?.sentry?.vitals?.ttfb)},{needs:"vitals",header:"CLS",cell:e=>e.byTool?.sentry?.vitals?.cls?.toFixed(2)??"—"},{needs:"vitals",header:"INP",cell:e=>h(e.byTool?.sentry?.vitals?.inp)}]}},m=Object.fromEntries(Object.entries({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".'},NEXT_PUBLIC_NEWRELIC_ACCOUNT_ID:{label:"New Relic account ID",secret:!1,help:"A plain number, shown next to your keys in New Relic."},SENTRY_API_KEY:{label:"Sentry auth token",secret:!0,help:"Lets the dashboard read issues (scopes: project:read, event:read)."},SENTRY_DSN:{label:"Sentry DSN",secret:!1,help:"Project settings, then Client Keys (DSN). The project and host are read from it."}}).map(([e,t])=>[e,t.label])),E=Object.keys(R);e.s(["KEY_LABELS",0,m,"TOOLS",0,R,"TOOL_IDS",0,E,"mergeMetrics",0,function(e,t,r){let s={};for(let[a,n]of Object.entries(t)){let t=r.includes(n)?void 0:e[n]?.[a];void 0!==t&&(s[a]=t)}return s},"sourcesFor",0,function(e){let t={};for(let r of c){let s=E.find(t=>e.includes(t)&&R[t].capabilities.includes(r));s&&(t[r]=s)}return t}],67119);let y=E.flatMap(e=>R[e].keys.required),x="NEWRELIC_REGION",g={us:{graphql:"https://api.newrelic.com/graphql",ingest:"https://insights-collector.newrelic.com"},eu:{graphql:"https://api.eu.newrelic.com/graphql",ingest:"https://insights-collector.eu01.nr-data.net"}},w={gemini:{label:"Google Gemini",key:"GEMINI_API_KEY"},claude:{label:"Anthropic Claude",key:"CLAUDE_API_KEY"},openai:{label:"OpenAI",key:"OPENAI_API_KEY"}},b="AI_PROVIDER";function C(e){return process.env[e]??""}let S=e=>R[e].keys.required.every(e=>C(e));function _(){return process.env.METRICFLOW_PROJECT_DIR||process.cwd()}let A=/[\s\0#"'`\\$]/;class I extends Error{}e.s(["AI_PROVIDERS",0,w,"AI_PROVIDER_KEY",0,b,"EnvWriteRefused",0,I,"INSERT_KEY",0,"NEWRELIC_INSERT_KEY","REGION_KEY",0,x,"SETUP_KEYS",0,y,"UNSAFE",0,A,"activeAi",0,function(){let e=process.env[b];for(let t of(e&&e in w?[e]:[]).concat(Object.keys(w))){let e=process.env[w[t].key];if(e)return{provider:t,key:e}}return null},"connectedTools",0,()=>E.filter(S),"env",0,C,"isToolConnected",0,S,"nrHosts",0,(e="eu"===process.env[x]?"eu":"us")=>g[e],"projectDir",0,_,"writeEnvLocal",0,function(e,s=process.env.METRICFLOW_ENV_FILE||(0,r.join)(_(),".env.local")){let a=new Set([...Object.values(R).flatMap(e=>[...e.keys.required,...e.keys.optional,...e.keys.derived??[]]),...Object.values(w).map(e=>e.key),b]);for(let[t,r]of Object.entries(e)){if(!a.has(t))throw new I("Refused to write a key name no tool declares.");if(A.test(r))throw new I("Refused to write a value with unsafe characters.")}let n=(0,t.existsSync)(s)?(0,t.readFileSync)(s,"utf8").split("\n"):[],o=new Map(Object.entries(e)),i=n.map(e=>{let t=e.match(/^\s*([A-Z0-9_]+)\s*=/)?.[1];if(t&&o.has(t)){let e=o.get(t);return o.delete(t),`${t}=${e}`}return e});for(;i.length&&""===i[i.length-1];)i.pop();for(let[e,t]of o)i.push(`${e}=${t}`);let l=`${s}.tmp`;for(let[r,a]of((0,t.writeFileSync)(l,i.join("\n")+"\n",{mode:384}),(0,t.renameSync)(l,s),Object.entries(e)))process.env[r]=a}],12892)},24514,e=>{"use strict";let t=new Set(["localhost","127.0.0.1","[::1]"]),r=new Set(["127.0.0.1","::1","::ffff:127.0.0.1"]);e.s(["REFUSAL_MESSAGE",0,()=>"1"===process.env.METRICFLOW_EXPOSED?"Setup and Connect are disabled because the dashboard is exposed on the network (--host). Restart without --host to use them.":"Setup is only available from localhost.","isLocalRequest",0,function(e){if("1"===process.env.METRICFLOW_EXPOSED)return!1;let s=e.headers.get("x-forwarded-for");if(s&&!s.split(",").every(e=>r.has(e.trim().replace(/^\[|\]$/g,"")))||"cross-site"===e.headers.get("sec-fetch-site"))return!1;let a=(e.headers.get("host")??"").replace(/:\d+$/,"");if(!t.has(a))return!1;let n=e.headers.get("origin");try{return!n||t.has(new URL(n).hostname)}catch{return!1}},"requireJson",0,function(e){return/^application\/json\s*(;|$)/i.test(e.headers.get("content-type")??"")?null:Response.json({error:"Send the request as application/json."},{status:415})}])},49196,e=>{"use strict";e.s(["default",()=>t]);let t=(0,e.i(18286).registerClientReference)(function(){throw Error("Attempted to call the default export of [project]/node_modules/.pnpm/lucide-react@1.54.0_@types+react@19.3.0_react@19.2.8/node_modules/lucide-react/dist/esm/Icon.mjs from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/node_modules/.pnpm/lucide-react@1.54.0_@types+react@19.3.0_react@19.2.8/node_modules/lucide-react/dist/esm/Icon.mjs","default")},90218,e=>{"use strict";var t=e.i(49196);e.n(t)},18286,(e,t,r)=>{"use strict";t.exports=e.r(99403).vendored["react-rsc"].ReactServerDOMTurbopackServer}];
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=%5Broot-of-the-server%5D__0wkeqwu._.js.map
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
module.exports=[66680,(e,t,r)=>{t.exports=e.x("node:crypto",()=>require("node:crypto"))},71288,39445,e=>{"use strict";var t=e.i(60756),r=e.i(66680);let a="WHERE (pageUrl LIKE 'http%://localhost%' OR pageUrl LIKE 'http%://127.0.0.1%')";function n(e){try{return["localhost","127.0.0.1"].includes(new URL(e).hostname)}catch{return!1}}function o(e){let t;if("string"!=typeof e||!e.trim())return null;try{t=new URL(e,"http://placeholder").pathname}catch{return null}try{t=decodeURIComponent(t)}catch{}return(t=t.toLowerCase().replace(/\/{2,}/g,"/")).length>1&&(t=t.replace(/\/+$/,"")),t.startsWith("/")?t:null}function s(e){return"/"===e?"home":e.replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,60).replace(/-+$/,"")||"page"}function i(e){let t=new Map;for(let{url:r,views:a}of e){let e=o(r);null!==e&&t.set(e,(t.get(e)??0)+(Number.isFinite(a)?a:0))}let a=[...t].sort((e,t)=>t[1]-e[1]||e[0].localeCompare(t[0])).slice(0,20),n=new Map;for(let[e]of a)n.set(s(e),(n.get(s(e))??0)+1);return a.map(([e,t])=>{let a=s(e),o=n.get(a)>1?`${a}-${(0,r.createHash)("sha1").update(e).digest("hex").slice(0,6)}`:a;return{url:e,slug:o,name:"/"===e?"Homepage":e.split("/").filter(Boolean).map(e=>e.replace(/[-_]+/g," ").trim().replace(/\b\w/g,e=>e.toUpperCase())||e).join(" / "),views:t}})}e.s(["LOCAL_ONLY_NRQL",0,a,"buildPages",0,i,"isLocalUrl",0,n,"normalizePath",0,o],39445);var l=e.i(90770),u=e.i(67119);function c(e,r){let a=t.default.isAxiosError(e)?e.response?.status:void 0;return 401===a||403===a?`${r} was rejected (check the key and its permissions).`:404===a?`${r} was not found.`:`Could not reach ${r} to check it.`}class p{slot=null;async read(){let e=performance.now();try{let t=await this.load();return(0,l.recordTiming)(this.timingLabel,performance.now()-e),t}catch(e){throw console.error(`[tool] ${this.id} read failed`,t.default.isAxiosError(e)?e.response?.status??"no response":"no response"),Error(`Could not load ${u.TOOLS[this.id].label} data.`)}}poll(){let e=(0,r.createHash)("sha256").update(this.memoKey()).digest("hex"),t=this.slot;if(t&&t.key===e&&(0===t.at||Date.now()-t.at<25e3))return t.promise.then(e=>({...e,fresh:!1}));let a={key:e,at:0,promise:this.read()};return this.slot=a,a.promise.then(e=>(a.at=Date.now(),{...e,fresh:!0}),e=>{throw this.slot===a&&(this.slot=null),e})}aggregateRows(e){if(!e||0===e.length)return{};let t={};for(let[r,a]of Object.entries(this.groupByPath(e))){let e=this.mergeVariants(a);e&&(t[r]=e)}return t}groupByPath(e){let t={};for(let r of e){let e=this.pathOf(r);null!==e&&(t[e]??=[]).push(r)}return t}pathOf(e){return o(String(e.pageUrl??e.url??e.facet??""))}weightedAverage(e,t){if(0===e.length)return 0;let r=t.reduce((e,t)=>e+t,0);return 0===r?0:e.reduce((e,r,a)=>e+r*(t[a]??0),0)/r}percent(e,t){return t?e/t*100:0}safeDivide(e,t){return t?e/t:0}}var h=e.i(84594),d=e.i(12892);let f=e=>({traffic:{count:e.throughput},loadTime:e.loadTime,apdex:e.apdexScore,vitals:{lcp:e.lcp,cls:e.cls,inp:e.inp,ttfb:e.ttfb,fid:e.fid},...void 0!==e.ajaxLatency&&{ajax:{latency:e.ajaxLatency,failRate:e.ajaxFailRate??0}},errorRate:e.errorRate}),g=e=>({errors:{count:e.errorCount,latest:e.latestErrors}}),y=null;async function m(e,t){if(!e||!t)return[];let r=`${e}:${t}`;if(y&&y.key===r&&Date.now()-y.at<6e4)return y.pages;let a=await E(e,t);return y={key:r,at:Date.now(),pages:a},a}async function E(e,t){let r,n=`
|
|
2
|
-
query {
|
|
3
|
-
actor {
|
|
4
|
-
account(id: ${Number(t)}) {
|
|
5
|
-
nrql(query: "SELECT count(*) AS views FROM PageView ${a} FACET pageUrl SINCE 24 hours ago LIMIT 200") {
|
|
6
|
-
results
|
|
7
|
-
}
|
|
8
|
-
}
|
|
9
|
-
}
|
|
10
|
-
}
|
|
11
|
-
`;try{r=await (0,h.nrGraphql)(e,n,1e4)}catch{throw Error("Could not reach New Relic to discover pages.")}let o=r.data?.actor?.account?.nrql?.results;if(!o)throw Error("New Relic rejected the page discovery query. Check your key and account ID.");return i(o.map(e=>({url:String(e.pageUrl??e.facet??""),views:Number(e.views??e.count??0)})))}function w(e){return e&&"object"==typeof e?Number("score"in e?e.score:Object.values(e)[0]??0)||0:Number(e??0)||0}let N={loadTime:0,lcp:0,ttfb:0,cls:0,inp:0,fid:0,errorRate:0,throughput:0,apdexScore:0};async function S(e,r){if(!/^\d+$/.test(r))return{NEXT_PUBLIC_NEWRELIC_ACCOUNT_ID:{ok:!1,error:"Account ID must be a number."}};try{let a,n=a=>t.default.post((0,d.nrHosts)(a).graphql,{query:`{ actor { user { id } account(id: ${r}) { id } } }`},{headers:{"API-Key":e},timeout:8e3}),o="us";try{if(a=await n("us"),!a.data?.data?.actor?.user?.id)throw Error("rejected")}catch(e){try{if(a=await n("eu"),!a.data?.data?.actor?.user?.id)throw e;o="eu"}catch{throw e}}let s="eu"===o?{region:o}:{},i=a.data?.data?.actor;if(!i?.user?.id)return{NEWRELIC_API_KEY:{ok:!1,error:"New Relic User key was rejected."}};if(!i.account?.id)return{NEWRELIC_API_KEY:{ok:!0,...s},NEXT_PUBLIC_NEWRELIC_ACCOUNT_ID:{ok:!1,error:"This key cannot see that account ID."}};return{NEWRELIC_API_KEY:{ok:!0,...s},NEXT_PUBLIC_NEWRELIC_ACCOUNT_ID:{ok:!0}}}catch(e){return{NEWRELIC_API_KEY:{ok:!1,error:c(e,"New Relic")}}}}var I=e.i(83808);let R={field:["url","title","count()","last_seen()"],query:"event.type:error",sort:"-last_seen"},_={lcp:"p75(measurements.lcp)",cls:"p75(measurements.cls)",inp:"p75(measurements.inp)",ttfb:"p75(measurements.ttfb)"},C={dataset:"spans",field:["transaction","url.full","count_sample()",...Object.values(_)],query:"span.op:pageload is_transaction:true",sort:"-count_sample()"};async function L(e,t){let r=(0,I.parseSentryDsn)(t);if(!r.ok)return{SENTRY_DSN:{ok:!1,error:r.error}};let a=(0,I.sentryHostNotice)(r.apiBase),n=a?{notice:a}:{};try{if(!await (0,I.orgSlugForDsn)(e,r))return{SENTRY_API_KEY:{ok:!0},SENTRY_DSN:{ok:!1,error:"This DSN does not match a project the token can read.",...n}};return{SENTRY_API_KEY:{ok:!0},SENTRY_DSN:{ok:!0,...n}}}catch(e){return{SENTRY_API_KEY:{ok:!1,error:c(e,"Sentry token"),...n}}}}let A={"new-relic":new class extends p{id="new-relic";legacyField="newRelic";timingLabel="New Relic: metrics";get apiKey(){return(0,d.env)("NEWRELIC_API_KEY")}get accountId(){return(0,d.env)("NEXT_PUBLIC_NEWRELIC_ACCOUNT_ID")}memoKey(){return`${this.apiKey}:${this.accountId}:${(0,d.env)("NEWRELIC_REGION")}`}emptyPage(){return{metrics:f(N),legacy:N}}async load(){let e=await m(this.apiKey,this.accountId),t=e.map(({url:e,views:t})=>({url:e,views:t}));if(!e.length)return{pages:t,byPath:{},legacy:{}};let r=this.aggregateRows(await this.fetchRows());return{pages:t,byPath:Object.fromEntries(Object.entries(r).map(([e,t])=>[e,f(t)])),legacy:r}}async update(e){let t=e.NEWRELIC_INSERT_KEY;if(void 0!==t)return{results:{NEWRELIC_INSERT_KEY:/^NRAK-/i.test(t)?{ok:!1,error:'That is a User API key (starts NRAK-), which reads data. The Insert key sends data: New Relic > API keys > create key, type "Ingest - License".'}:{ok:!0}}};let r=await S(e.NEWRELIC_API_KEY,e.NEXT_PUBLIC_NEWRELIC_ACCOUNT_ID),a=r.NEWRELIC_API_KEY;return{results:r,...a&&{derived:{NEWRELIC_REGION:a.ok&&"eu"===a.region?"eu":"us"}}}}aggregate(e){return e.views?this.aggregateRows(this.flattenNrAccount(e)):{}}async fetchRows(){if(!this.apiKey||!this.accountId)return[];let e=e=>`nrql(query: "${e}") { results }`,t="SINCE 24 hours ago",r=`{ actor { account(id: ${Number(this.accountId)}) {
|
|
12
|
-
views: ${e(`SELECT percentile(duration, 75) AS loadTime, percentile(backendDuration, 75) AS ttfb, count(*) AS views, apdex(duration, t: 2) AS apdex FROM PageView ${a} FACET pageUrl ${t} LIMIT 200`)}
|
|
13
|
-
timing: ${e(`SELECT percentile(largestContentfulPaint, 75) AS lcp, percentile(cumulativeLayoutShift, 75) AS cls, percentile(interactionToNextPaint, 75) AS inp, percentile(firstInputDelay, 75) AS fid FROM PageViewTiming ${a} FACET pageUrl ${t} LIMIT 200`)}
|
|
14
|
-
errors: ${e(`SELECT count(*) AS errors FROM JavaScriptError ${a} FACET pageUrl ${t} LIMIT 200`)}
|
|
15
|
-
ajax: ${e(`SELECT average(duration) AS ajaxLatency, count(*) AS ajaxCalls, filter(count(*), WHERE httpResponseCode >= 400 OR httpResponseCode = 0) AS ajaxFailed FROM AjaxRequest ${a} FACET pageUrl ${t} LIMIT 200`)}
|
|
16
|
-
} } }`,n=await (0,h.nrGraphql)(this.apiKey,r,15e3),o=n.data?.actor?.account;if(!o?.views)throw Error("rejected");return this.flattenNrAccount(o)}flattenNrAccount(e){let t=e.views?.results??[],r=e.timing?.results??[],a=e.errors?.results??[],n=e.ajax?.results??[],o=new Map;for(let e of t){let t=String(e.pageUrl??e.facet??"");o.set(t,{...o.get(t),...e})}for(let e of r){let t=String(e.pageUrl??e.facet??"");o.set(t,{...o.get(t),...e})}for(let e of a){let t=String(e.pageUrl??e.facet??"");o.set(t,{...o.get(t),...e})}for(let e of n){let t=String(e.pageUrl??e.facet??"");o.set(t,{...o.get(t),...e})}return Array.from(o.values())}mergeVariants(e){if(0===e.length)return null;let t=0,r=0,a=0,n=0,o=0,s=0,i=0,l=0,u=0,c=0,p=0,h=0;for(let d of e){let e=w(d.views);t+=e,r+=1e3*w(d.loadTime)*e,a+=1e3*w(d.ttfb)*e,n+=w(d.apdex)*e,o+=1e3*w(d.lcp)*e,s+=w(d.cls)*e,i+=w(d.inp)*e,l+=w(d.fid)*e,u+=w(d.errors);let f=w(d.ajaxCalls);c+=f,p+=1e3*w(d.ajaxLatency)*f,h+=w(d.ajaxFailed)}let d=t||1;return{loadTime:r/d,lcp:o/d,ttfb:a/d,cls:s/d,inp:i/d,fid:l/d,errorRate:t?u/t*100:0,throughput:t,apdexScore:n/d,...c>0&&{ajaxLatency:p/c,ajaxFailRate:h/c*100}}}},sentry:new class extends p{id="sentry";legacyField="sentry";timingLabel="Sentry: events";get apiKey(){return(0,d.env)("SENTRY_API_KEY")}get dsn(){return(0,d.env)("SENTRY_DSN")}memoKey(){return`${this.apiKey}:${this.dsn}`}emptyPage(){let e={errorCount:0,errorRate:0,warningCount:0,latestErrors:[]};return{metrics:g(e),legacy:e}}async load(){let e=await this.target();if(!e)return{pages:[],byPath:{},legacy:{}};let[t,r]=await Promise.all([this.query(e,R),this.query(e,C)]),a=t.filter(e=>n(String(e.url??""))),s=this.aggregateRows(a),i=function(e){let t={};for(let r of e){let e=String(r["url.full"]??""),a=n(e)?o(e):null;if(null===a)continue;let s=Number(r["count_sample()"]??0)||0,i=t[a]??={count:0,sums:{}};for(let e of(i.count+=s,Object.keys(_))){let t=r[_[e]];if("number"!=typeof t||!Number.isFinite(t))continue;let a=i.sums[e]??={total:0,weight:0};a.total+=t*(s||1),a.weight+=s||1}}return Object.fromEntries(Object.entries(t).map(([e,t])=>{let r=Object.fromEntries(Object.entries(t.sums).map(([e,t])=>[e,t.total/t.weight]));return[e,{traffic:{count:t.count,sampled:!0},...Object.keys(r).length>0&&{vitals:r}}]}))}(r),l=Object.fromEntries(Object.entries(i).map(([e,t])=>[e,t.traffic.count]));for(let e of Object.keys(s))l[e]??=0;let u={};for(let e of new Set([...Object.keys(s),...Object.keys(i)]))s[e]??=this.emptyPage().legacy,u[e]={...g(s[e]),...i[e]};return{pages:Object.entries(l).map(([e,t])=>({url:e,views:t})),byPath:u,legacy:s}}async update(e){return{results:await L(e.SENTRY_API_KEY,e.SENTRY_DSN)}}async fetchRows(){let e=await this.target();return e?this.query(e,R):[]}async target(){let e=(0,I.parseSentryDsn)(this.dsn);if(!e.ok)throw Error("invalid DSN");let t=await (0,I.orgSlugForDsn)(this.apiKey,e);return t?{parsed:e,slug:t}:null}async query({parsed:e,slug:r},a){let n=await t.default.get(`${e.apiBase}/organizations/${encodeURIComponent(r)}/events/`,{headers:{Authorization:`Bearer ${this.apiKey}`},timeout:1e4,params:{project:e.projectId,statsPeriod:"24h",per_page:100,...a},paramsSerializer:{indexes:null}});return n.data?.data??[]}mergeVariants(e){if(0===e.length)return null;let t=0,r=[];for(let a of e){let e=Number(a["count()"]??0);t+=e,r.length<5&&r.push({title:a.title??"Unknown error",count:e,lastSeen:a["last_seen()"]??""})}return{errorCount:t,errorRate:0,warningCount:0,latestErrors:r}}}};e.s(["SERVER_TOOLS",0,A],71288)},90770,e=>{"use strict";let t=new Map;e.s(["getTimings",0,function(){return Array.from(t.entries()).map(([e,t])=>({name:e,value:t})).sort((e,t)=>t.value-e.value)},"recordTiming",0,function(e,r){t.set(e,Math.round(r))}])},84594,e=>{"use strict";var t=e.i(60756),r=e.i(12892);async function a(e,n=()=>!1){let o,s;if(process.env[r.REGION_KEY])return e((0,r.nrHosts)());try{if(o=await e((0,r.nrHosts)("us")),!n(o))return o}catch(r){let e=t.default.isAxiosError(r)?r.response?.status:void 0;if(401!==e&&403!==e)throw r;s=r}try{let t=await e((0,r.nrHosts)("eu"));if(!n(t))return process.env[r.REGION_KEY]="eu",t}catch{}if(s)throw s;return o}async function n(e,r,n){return(await a(a=>t.default.post(a.graphql,{query:r},{headers:{"API-Key":e,"Content-Type":"application/json"},timeout:n}),e=>!e.data?.data?.actor)).data}e.s(["nrGraphql",0,n,"withRegion",0,a])},83808,e=>{"use strict";var t=e.i(60756);let r=new Set(["localhost","127.0.0.1","[::1]"]);function a(e){let t;try{t=new URL(e)}catch{return{ok:!1,error:"Sentry DSN is not a valid URL."}}if("https:"!==t.protocol&&"http:"!==t.protocol)return{ok:!1,error:"Sentry DSN must be an http(s) URL."};if(t.password)return{ok:!1,error:"This is a legacy DSN that contains a secret key. Copy the DSN from Project settings > Client Keys."};if("http:"===t.protocol&&!r.has(t.hostname))return{ok:!1,error:"Sentry DSN must use https (http is only accepted for localhost)."};if(!t.username)return{ok:!1,error:"Sentry DSN is missing its public key."};let a=t.pathname.replace(/^\/|\/$/g,"");if(!/^\d+$/.test(a))return{ok:!1,error:"Sentry DSN is missing a numeric project id."};let n=t.host.match(/^o(\d+)\.ingest\.(.+)$/i),o=n?n[2]:t.host;return{ok:!0,projectId:a,orgId:n?n[1]:null,apiBase:`${t.protocol}//${o}/api/0`}}async function n(e,r){let a={Authorization:`Bearer ${e}`},n=r.orgId?await t.default.get(`${r.apiBase}/organizations/`,{headers:a,timeout:8e3}):await t.default.get(`${r.apiBase}/projects/`,{headers:a,timeout:8e3}),o=Array.isArray(n.data)?n.data:[];return(r.orgId?o.find(e=>String(e.id)===r.orgId)?.slug:o.find(e=>String(e.id)===r.projectId)?.organization?.slug)??null}e.s(["orgSlugForDsn",0,n,"parseSentryDsn",0,a,"publicDsn",0,function(e){let t=a(e);if(!t.ok)return null;let r=new URL(e);return`${r.protocol}//${r.username}@${r.host}/${t.projectId}`},"sentryHostNotice",0,function(e){let t=new URL(e).hostname;return"sentry.io"===t||t.endsWith(".sentry.io")?null:`Your Sentry token will be sent to ${t}, which is not sentry.io. Continue only if that is your own Sentry server.`}])}];
|
|
17
|
-
|
|
18
|
-
//# sourceMappingURL=%5Broot-of-the-server%5D__0xmaf60._.js.map
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
module.exports=[49719,(e,t,r)=>{t.exports=e.x("assert",()=>require("assert"))},54799,(e,t,r)=>{t.exports=e.x("crypto",()=>require("crypto"))},27699,(e,t,r)=>{t.exports=e.x("events",()=>require("events"))},22734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},21517,(e,t,r)=>{t.exports=e.x("http",()=>require("http"))},25328,(e,t,r)=>{t.exports=e.x("http2",()=>require("http2"))},24836,(e,t,r)=>{t.exports=e.x("https",()=>require("https"))},4446,(e,t,r)=>{t.exports=e.x("net",()=>require("net"))},18622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},59043,(e,t,r)=>{t.exports=e.x("next/dist/server/runtime-reacts.external.js",()=>require("next/dist/server/runtime-reacts.external.js"))},93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},66680,(e,t,r)=>{t.exports=e.x("node:crypto",()=>require("node:crypto"))},2157,(e,t,r)=>{t.exports=e.x("node:fs",()=>require("node:fs"))},50227,(e,t,r)=>{t.exports=e.x("node:path",()=>require("node:path"))},81111,(e,t,r)=>{t.exports=e.x("node:stream",()=>require("node:stream"))},46786,(e,t,r)=>{t.exports=e.x("os",()=>require("os"))},14747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},88947,(e,t,r)=>{t.exports=e.x("stream",()=>require("stream"))},55004,(e,t,r)=>{t.exports=e.x("tls",()=>require("tls"))},70722,(e,t,r)=>{t.exports=e.x("tty",()=>require("tty"))},92509,(e,t,r)=>{t.exports=e.x("url",()=>require("url"))},24361,(e,t,r)=>{t.exports=e.x("util",()=>require("util"))},6461,(e,t,r)=>{t.exports=e.x("zlib",()=>require("zlib"))},71288,39445,e=>{"use strict";var t=e.i(60756),r=e.i(66680);let a="WHERE (pageUrl LIKE 'http%://localhost%' OR pageUrl LIKE 'http%://127.0.0.1%')";function n(e){try{return["localhost","127.0.0.1"].includes(new URL(e).hostname)}catch{return!1}}function s(e){let t;if("string"!=typeof e||!e.trim())return null;try{t=new URL(e,"http://placeholder").pathname}catch{return null}try{t=decodeURIComponent(t)}catch{}return(t=t.toLowerCase().replace(/\/{2,}/g,"/")).length>1&&(t=t.replace(/\/+$/,"")),t.startsWith("/")?t:null}function o(e){return"/"===e?"home":e.replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,60).replace(/-+$/,"")||"page"}function i(e){let t=new Map;for(let{url:r,views:a}of e){let e=s(r);null!==e&&t.set(e,(t.get(e)??0)+(Number.isFinite(a)?a:0))}let a=[...t].sort((e,t)=>t[1]-e[1]||e[0].localeCompare(t[0])).slice(0,20),n=new Map;for(let[e]of a)n.set(o(e),(n.get(o(e))??0)+1);return a.map(([e,t])=>{let a=o(e),s=n.get(a)>1?`${a}-${(0,r.createHash)("sha1").update(e).digest("hex").slice(0,6)}`:a;return{url:e,slug:s,name:"/"===e?"Homepage":e.split("/").filter(Boolean).map(e=>e.replace(/[-_]+/g," ").trim().replace(/\b\w/g,e=>e.toUpperCase())||e).join(" / "),views:t}})}e.s(["LOCAL_ONLY_NRQL",0,a,"buildPages",0,i,"isLocalUrl",0,n,"normalizePath",0,s],39445);var l=e.i(90770),c=e.i(67119);function u(e,r){let a=t.default.isAxiosError(e)?e.response?.status:void 0;return 401===a||403===a?`${r} was rejected (check the key and its permissions).`:404===a?`${r} was not found.`:`Could not reach ${r} to check it.`}class p{slot=null;async read(){let e=performance.now();try{let t=await this.load();return(0,l.recordTiming)(this.timingLabel,performance.now()-e),t}catch(e){throw console.error(`[tool] ${this.id} read failed`,t.default.isAxiosError(e)?e.response?.status??"no response":"no response"),Error(`Could not load ${c.TOOLS[this.id].label} data.`)}}poll(){let e=(0,r.createHash)("sha256").update(this.memoKey()).digest("hex"),t=this.slot;if(t&&t.key===e&&(0===t.at||Date.now()-t.at<25e3))return t.promise.then(e=>({...e,fresh:!1}));let a={key:e,at:0,promise:this.read()};return this.slot=a,a.promise.then(e=>(a.at=Date.now(),{...e,fresh:!0}),e=>{throw this.slot===a&&(this.slot=null),e})}aggregateRows(e){if(!e||0===e.length)return{};let t={};for(let[r,a]of Object.entries(this.groupByPath(e))){let e=this.mergeVariants(a);e&&(t[r]=e)}return t}groupByPath(e){let t={};for(let r of e){let e=this.pathOf(r);null!==e&&(t[e]??=[]).push(r)}return t}pathOf(e){return s(String(e.pageUrl??e.url??e.facet??""))}weightedAverage(e,t){if(0===e.length)return 0;let r=t.reduce((e,t)=>e+t,0);return 0===r?0:e.reduce((e,r,a)=>e+r*(t[a]??0),0)/r}percent(e,t){return t?e/t*100:0}safeDivide(e,t){return t?e/t:0}}var d=e.i(84594),h=e.i(12892);let f=e=>({traffic:{count:e.throughput},loadTime:e.loadTime,apdex:e.apdexScore,vitals:{lcp:e.lcp,cls:e.cls,inp:e.inp,ttfb:e.ttfb,fid:e.fid},...void 0!==e.ajaxLatency&&{ajax:{latency:e.ajaxLatency,failRate:e.ajaxFailRate??0}},errorRate:e.errorRate}),y=e=>({errors:{count:e.errorCount,latest:e.latestErrors}}),g=null;async function m(e,t){if(!e||!t)return[];let r=`${e}:${t}`;if(g&&g.key===r&&Date.now()-g.at<6e4)return g.pages;let a=await E(e,t);return g={key:r,at:Date.now(),pages:a},a}async function E(e,t){let r,n=`
|
|
2
|
-
query {
|
|
3
|
-
actor {
|
|
4
|
-
account(id: ${Number(t)}) {
|
|
5
|
-
nrql(query: "SELECT count(*) AS views FROM PageView ${a} FACET pageUrl SINCE 24 hours ago LIMIT 200") {
|
|
6
|
-
results
|
|
7
|
-
}
|
|
8
|
-
}
|
|
9
|
-
}
|
|
10
|
-
}
|
|
11
|
-
`;try{r=await (0,d.nrGraphql)(e,n,1e4)}catch{throw Error("Could not reach New Relic to discover pages.")}let s=r.data?.actor?.account?.nrql?.results;if(!s)throw Error("New Relic rejected the page discovery query. Check your key and account ID.");return i(s.map(e=>({url:String(e.pageUrl??e.facet??""),views:Number(e.views??e.count??0)})))}function w(e){return e&&"object"==typeof e?Number("score"in e?e.score:Object.values(e)[0]??0)||0:Number(e??0)||0}let R={loadTime:0,lcp:0,ttfb:0,cls:0,inp:0,fid:0,errorRate:0,throughput:0,apdexScore:0};async function I(e,r){if(!/^\d+$/.test(r))return{NEXT_PUBLIC_NEWRELIC_ACCOUNT_ID:{ok:!1,error:"Account ID must be a number."}};try{let a,n=a=>t.default.post((0,h.nrHosts)(a).graphql,{query:`{ actor { user { id } account(id: ${r}) { id } } }`},{headers:{"API-Key":e},timeout:8e3}),s="us";try{if(a=await n("us"),!a.data?.data?.actor?.user?.id)throw Error("rejected")}catch(e){try{if(a=await n("eu"),!a.data?.data?.actor?.user?.id)throw e;s="eu"}catch{throw e}}let o="eu"===s?{region:s}:{},i=a.data?.data?.actor;if(!i?.user?.id)return{NEWRELIC_API_KEY:{ok:!1,error:"New Relic User key was rejected."}};if(!i.account?.id)return{NEWRELIC_API_KEY:{ok:!0,...o},NEXT_PUBLIC_NEWRELIC_ACCOUNT_ID:{ok:!1,error:"This key cannot see that account ID."}};return{NEWRELIC_API_KEY:{ok:!0,...o},NEXT_PUBLIC_NEWRELIC_ACCOUNT_ID:{ok:!0}}}catch(e){return{NEWRELIC_API_KEY:{ok:!1,error:u(e,"New Relic")}}}}var N=e.i(83808);let v={field:["url","title","count()","last_seen()"],query:"event.type:error",sort:"-last_seen"},x={lcp:"p75(measurements.lcp)",cls:"p75(measurements.cls)",inp:"p75(measurements.inp)",ttfb:"p75(measurements.ttfb)"},S={dataset:"spans",field:["transaction","url.full","count_sample()",...Object.values(x)],query:"span.op:pageload is_transaction:true",sort:"-count_sample()"};async function _(e,t){let r=(0,N.parseSentryDsn)(t);if(!r.ok)return{SENTRY_DSN:{ok:!1,error:r.error}};let a=(0,N.sentryHostNotice)(r.apiBase),n=a?{notice:a}:{};try{if(!await (0,N.orgSlugForDsn)(e,r))return{SENTRY_API_KEY:{ok:!0},SENTRY_DSN:{ok:!1,error:"This DSN does not match a project the token can read.",...n}};return{SENTRY_API_KEY:{ok:!0},SENTRY_DSN:{ok:!0,...n}}}catch(e){return{SENTRY_API_KEY:{ok:!1,error:u(e,"Sentry token"),...n}}}}let b={"new-relic":new class extends p{id="new-relic";legacyField="newRelic";timingLabel="New Relic: metrics";get apiKey(){return(0,h.env)("NEWRELIC_API_KEY")}get accountId(){return(0,h.env)("NEXT_PUBLIC_NEWRELIC_ACCOUNT_ID")}memoKey(){return`${this.apiKey}:${this.accountId}:${(0,h.env)("NEWRELIC_REGION")}`}emptyPage(){return{metrics:f(R),legacy:R}}async load(){let e=await m(this.apiKey,this.accountId),t=e.map(({url:e,views:t})=>({url:e,views:t}));if(!e.length)return{pages:t,byPath:{},legacy:{}};let r=this.aggregateRows(await this.fetchRows());return{pages:t,byPath:Object.fromEntries(Object.entries(r).map(([e,t])=>[e,f(t)])),legacy:r}}async update(e){let t=e.NEWRELIC_INSERT_KEY;if(void 0!==t)return{results:{NEWRELIC_INSERT_KEY:/^NRAK-/i.test(t)?{ok:!1,error:'That is a User API key (starts NRAK-), which reads data. The Insert key sends data: New Relic > API keys > create key, type "Ingest - License".'}:{ok:!0}}};let r=await I(e.NEWRELIC_API_KEY,e.NEXT_PUBLIC_NEWRELIC_ACCOUNT_ID),a=r.NEWRELIC_API_KEY;return{results:r,...a&&{derived:{NEWRELIC_REGION:a.ok&&"eu"===a.region?"eu":"us"}}}}aggregate(e){return e.views?this.aggregateRows(this.flattenNrAccount(e)):{}}async fetchRows(){if(!this.apiKey||!this.accountId)return[];let e=e=>`nrql(query: "${e}") { results }`,t="SINCE 24 hours ago",r=`{ actor { account(id: ${Number(this.accountId)}) {
|
|
12
|
-
views: ${e(`SELECT percentile(duration, 75) AS loadTime, percentile(backendDuration, 75) AS ttfb, count(*) AS views, apdex(duration, t: 2) AS apdex FROM PageView ${a} FACET pageUrl ${t} LIMIT 200`)}
|
|
13
|
-
timing: ${e(`SELECT percentile(largestContentfulPaint, 75) AS lcp, percentile(cumulativeLayoutShift, 75) AS cls, percentile(interactionToNextPaint, 75) AS inp, percentile(firstInputDelay, 75) AS fid FROM PageViewTiming ${a} FACET pageUrl ${t} LIMIT 200`)}
|
|
14
|
-
errors: ${e(`SELECT count(*) AS errors FROM JavaScriptError ${a} FACET pageUrl ${t} LIMIT 200`)}
|
|
15
|
-
ajax: ${e(`SELECT average(duration) AS ajaxLatency, count(*) AS ajaxCalls, filter(count(*), WHERE httpResponseCode >= 400 OR httpResponseCode = 0) AS ajaxFailed FROM AjaxRequest ${a} FACET pageUrl ${t} LIMIT 200`)}
|
|
16
|
-
} } }`,n=await (0,d.nrGraphql)(this.apiKey,r,15e3),s=n.data?.actor?.account;if(!s?.views)throw Error("rejected");return this.flattenNrAccount(s)}flattenNrAccount(e){let t=e.views?.results??[],r=e.timing?.results??[],a=e.errors?.results??[],n=e.ajax?.results??[],s=new Map;for(let e of t){let t=String(e.pageUrl??e.facet??"");s.set(t,{...s.get(t),...e})}for(let e of r){let t=String(e.pageUrl??e.facet??"");s.set(t,{...s.get(t),...e})}for(let e of a){let t=String(e.pageUrl??e.facet??"");s.set(t,{...s.get(t),...e})}for(let e of n){let t=String(e.pageUrl??e.facet??"");s.set(t,{...s.get(t),...e})}return Array.from(s.values())}mergeVariants(e){if(0===e.length)return null;let t=0,r=0,a=0,n=0,s=0,o=0,i=0,l=0,c=0,u=0,p=0,d=0;for(let h of e){let e=w(h.views);t+=e,r+=1e3*w(h.loadTime)*e,a+=1e3*w(h.ttfb)*e,n+=w(h.apdex)*e,s+=1e3*w(h.lcp)*e,o+=w(h.cls)*e,i+=w(h.inp)*e,l+=w(h.fid)*e,c+=w(h.errors);let f=w(h.ajaxCalls);u+=f,p+=1e3*w(h.ajaxLatency)*f,d+=w(h.ajaxFailed)}let h=t||1;return{loadTime:r/h,lcp:s/h,ttfb:a/h,cls:o/h,inp:i/h,fid:l/h,errorRate:t?c/t*100:0,throughput:t,apdexScore:n/h,...u>0&&{ajaxLatency:p/u,ajaxFailRate:d/u*100}}}},sentry:new class extends p{id="sentry";legacyField="sentry";timingLabel="Sentry: events";get apiKey(){return(0,h.env)("SENTRY_API_KEY")}get dsn(){return(0,h.env)("SENTRY_DSN")}memoKey(){return`${this.apiKey}:${this.dsn}`}emptyPage(){let e={errorCount:0,errorRate:0,warningCount:0,latestErrors:[]};return{metrics:y(e),legacy:e}}async load(){let e=await this.target();if(!e)return{pages:[],byPath:{},legacy:{}};let[t,r]=await Promise.all([this.query(e,v),this.query(e,S)]),a=t.filter(e=>n(String(e.url??""))),o=this.aggregateRows(a),i=function(e){let t={};for(let r of e){let e=String(r["url.full"]??""),a=n(e)?s(e):null;if(null===a)continue;let o=Number(r["count_sample()"]??0)||0,i=t[a]??={count:0,sums:{}};for(let e of(i.count+=o,Object.keys(x))){let t=r[x[e]];if("number"!=typeof t||!Number.isFinite(t))continue;let a=i.sums[e]??={total:0,weight:0};a.total+=t*(o||1),a.weight+=o||1}}return Object.fromEntries(Object.entries(t).map(([e,t])=>{let r=Object.fromEntries(Object.entries(t.sums).map(([e,t])=>[e,t.total/t.weight]));return[e,{traffic:{count:t.count,sampled:!0},...Object.keys(r).length>0&&{vitals:r}}]}))}(r),l=Object.fromEntries(Object.entries(i).map(([e,t])=>[e,t.traffic.count]));for(let e of Object.keys(o))l[e]??=0;let c={};for(let e of new Set([...Object.keys(o),...Object.keys(i)]))o[e]??=this.emptyPage().legacy,c[e]={...y(o[e]),...i[e]};return{pages:Object.entries(l).map(([e,t])=>({url:e,views:t})),byPath:c,legacy:o}}async update(e){return{results:await _(e.SENTRY_API_KEY,e.SENTRY_DSN)}}async fetchRows(){let e=await this.target();return e?this.query(e,v):[]}async target(){let e=(0,N.parseSentryDsn)(this.dsn);if(!e.ok)throw Error("invalid DSN");let t=await (0,N.orgSlugForDsn)(this.apiKey,e);return t?{parsed:e,slug:t}:null}async query({parsed:e,slug:r},a){let n=await t.default.get(`${e.apiBase}/organizations/${encodeURIComponent(r)}/events/`,{headers:{Authorization:`Bearer ${this.apiKey}`},timeout:1e4,params:{project:e.projectId,statsPeriod:"24h",per_page:100,...a},paramsSerializer:{indexes:null}});return n.data?.data??[]}mergeVariants(e){if(0===e.length)return null;let t=0,r=[];for(let a of e){let e=Number(a["count()"]??0);t+=e,r.length<5&&r.push({title:a.title??"Unknown error",count:e,lastSeen:a["last_seen()"]??""})}return{errorCount:t,errorRate:0,warningCount:0,latestErrors:r}}}};e.s(["SERVER_TOOLS",0,b],71288)},90770,e=>{"use strict";let t=new Map;e.s(["getTimings",0,function(){return Array.from(t.entries()).map(([e,t])=>({name:e,value:t})).sort((e,t)=>t.value-e.value)},"recordTiming",0,function(e,r){t.set(e,Math.round(r))}])},12892,78910,67119,e=>{"use strict";var t=e.i(2157),r=e.i(50227),a=e.i(39151),n=e.i(90218);function s(e,t=[],r=[]){let o,i="string"==typeof e?function(e,t,r=[]){if(null==t)throw Error("[lucide]: iconNode is required when icon name is used");return{name:e?.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),size:24,node:t,...r.length>0?{aliases:r}:{}}}(e,t,r):e,l=(0,a.forwardRef)(({className:e,...t},r)=>(0,a.createElement)(n.default,{ref:r,icon:i,className:e,...t}));return i.name&&(l.displayName=(o=(e=>{let t="",r=!1;for(let a of e){if("-"===a||"_"===a||a<=" "){r=t.length>0;continue}0===t.length?t+=a.toLowerCase():t+=r?a.toUpperCase():a,r=!1}return t})(i.name)).charAt(0).toUpperCase()+o.slice(1)),l}let o={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"}]]};o.node;let i=s(o),l={name:"bug",size:24,node:[["path",{d:"M12 20v-9",key:"1qisl0"}],["path",{d:"M14 7a4 4 0 0 1 4 4v3a6 6 0 0 1-12 0v-3a4 4 0 0 1 4-4z",key:"uouzyp"}],["path",{d:"M14.12 3.88 16 2",key:"qol33r"}],["path",{d:"M21 21a4 4 0 0 0-3.81-4",key:"1b0z45"}],["path",{d:"M21 5a4 4 0 0 1-3.55 3.97",key:"5cxbf6"}],["path",{d:"M22 13h-4",key:"1jl80f"}],["path",{d:"M3 21a4 4 0 0 1 3.81-4",key:"1fjd4g"}],["path",{d:"M3 5a4 4 0 0 0 3.55 3.97",key:"1d7oge"}],["path",{d:"M6 13H2",key:"82j7cp"}],["path",{d:"m8 2 1.88 1.88",key:"fmnt4t"}],["path",{d:"M9 7.13V6a3 3 0 1 1 6 0v1.13",key:"1vgav8"}]]};l.node;let c=s(l);function u(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 r=Math.round(t/1e3),a=e<0?"-":"";return r<3600?`${a}${Math.floor(r/60)}m ${r%60}s`:`${a}${Math.floor(r/3600)}h ${Math.floor(r%3600/60)}m`}e.s(["formatDuration",0,u],78910);let p=["pages","traffic","loadTime","apdex","vitals","ajax","errorRate","errors"],d=e=>e.length?e.reduce((e,t)=>e+t,0)/e.length:0,h=e=>void 0===e?"—":u(e),f=e=>e.byTool?.sentry?.errors??(e.sentry&&{count:e.sentry.errorCount,latest:e.sentry.latestErrors}),y=e=>f(e)?.count??0,g={"new-relic":{label:"New Relic",icon:i,description:"Real-user performance per page: load time, Core Web Vitals, throughput and Apdex.",connectReason:"Add your New Relic keys to see load time and Core Web Vitals for each page.",setupNote:"The key that sends events (Ingest - License) is separate and is added later on the Connect page.",keys:{required:["NEWRELIC_API_KEY","NEXT_PUBLIC_NEWRELIC_ACCOUNT_ID"],optional:["NEWRELIC_INSERT_KEY"],derived:["NEWRELIC_REGION"]},capabilities:["pages","traffic","loadTime","apdex","vitals","ajax","errorRate"],stats:e=>[{label:"Avg Load Time",value:u(d(e.map(e=>e.newRelic.loadTime)))},{label:"Avg LCP",value:u(d(e.map(e=>e.newRelic.lcp)))},{label:"Avg TTFB",value:u(d(e.map(e=>e.newRelic.ttfb)))},{label:"Avg Apdex",value:d(e.map(e=>e.newRelic.apdexScore)).toFixed(2)}],columns:[{needs:"loadTime",header:"Load",cell:e=>u(e.newRelic.loadTime)},{needs:"vitals",header:"LCP",cell:e=>u(e.newRelic.lcp)},{needs:"vitals",header:"TTFB",cell:e=>u(e.newRelic.ttfb)},{needs:"vitals",header:"CLS",cell:e=>e.newRelic.cls.toFixed(2)},{needs:"vitals",header:"INP",cell:e=>{let t=e.newRelic.inp;return void 0===t?"—":u(t)}},{needs:"errorRate",header:"Error Rate",cell:e=>`${e.newRelic.errorRate.toFixed(2)}%`},{needs:"traffic",header:"Throughput",cell:e=>e.newRelic.throughput.toLocaleString()},{needs:"apdex",header:"Apdex",cell:e=>e.newRelic.apdexScore.toFixed(2)}]},sentry:{label:"Sentry",icon:c,description:"Errors per page over the last 24 hours, with page loads and web vitals when your site sends traces.",connectReason:"Add your Sentry keys to see the errors on each page.",keys:{required:["SENTRY_API_KEY","SENTRY_DSN"],optional:[]},capabilities:["pages","traffic","vitals","errors"],stats:e=>{let t=e.reduce((e,t)=>y(t)>(e?y(e):0)?t:e,null);return[{label:"Total Errors",value:String(e.map(y).reduce((e,t)=>e+t,0))},{label:"Pages With Errors",value:`${e.filter(e=>y(e)>0).length} of ${e.length}`},{label:"Noisiest Page",value:t?.name??"None"}]},columns:[{needs:"errors",header:"Errors",cell:e=>String(y(e))},{needs:"errors",header:"Latest Error",cell:e=>f(e)?.latest[0]?.title??"—"},{needs:"errors",header:"Last Seen",cell:e=>{let t=Date.parse(f(e)?.latest[0]?.lastSeen??"");return Number.isNaN(t)?"—":new Date(t).toLocaleString()}},{needs:"traffic",header:"Page loads (sampled)",cell:e=>e.byTool?.sentry?.traffic?.count.toLocaleString()??"—"},{needs:"vitals",header:"LCP",cell:e=>h(e.byTool?.sentry?.vitals?.lcp)},{needs:"vitals",header:"TTFB",cell:e=>h(e.byTool?.sentry?.vitals?.ttfb)},{needs:"vitals",header:"CLS",cell:e=>e.byTool?.sentry?.vitals?.cls?.toFixed(2)??"—"},{needs:"vitals",header:"INP",cell:e=>h(e.byTool?.sentry?.vitals?.inp)}]}},m=Object.fromEntries(Object.entries({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".'},NEXT_PUBLIC_NEWRELIC_ACCOUNT_ID:{label:"New Relic account ID",secret:!1,help:"A plain number, shown next to your keys in New Relic."},SENTRY_API_KEY:{label:"Sentry auth token",secret:!0,help:"Lets the dashboard read issues (scopes: project:read, event:read)."},SENTRY_DSN:{label:"Sentry DSN",secret:!1,help:"Project settings, then Client Keys (DSN). The project and host are read from it."}}).map(([e,t])=>[e,t.label])),E=Object.keys(g);e.s(["KEY_LABELS",0,m,"TOOLS",0,g,"TOOL_IDS",0,E,"mergeMetrics",0,function(e,t,r){let a={};for(let[n,s]of Object.entries(t)){let t=r.includes(s)?void 0:e[s]?.[n];void 0!==t&&(a[n]=t)}return a},"sourcesFor",0,function(e){let t={};for(let r of p){let a=E.find(t=>e.includes(t)&&g[t].capabilities.includes(r));a&&(t[r]=a)}return t}],67119);let w=E.flatMap(e=>g[e].keys.required),R="NEWRELIC_REGION",I={us:{graphql:"https://api.newrelic.com/graphql",ingest:"https://insights-collector.newrelic.com"},eu:{graphql:"https://api.eu.newrelic.com/graphql",ingest:"https://insights-collector.eu01.nr-data.net"}},N={gemini:{label:"Google Gemini",key:"GEMINI_API_KEY"},claude:{label:"Anthropic Claude",key:"CLAUDE_API_KEY"},openai:{label:"OpenAI",key:"OPENAI_API_KEY"}},v="AI_PROVIDER";function x(e){return process.env[e]??""}let S=e=>g[e].keys.required.every(e=>x(e));function _(){return process.env.METRICFLOW_PROJECT_DIR||process.cwd()}let b=/[\s\0#"'`\\$]/;class C extends Error{}e.s(["AI_PROVIDERS",0,N,"AI_PROVIDER_KEY",0,v,"EnvWriteRefused",0,C,"INSERT_KEY",0,"NEWRELIC_INSERT_KEY","REGION_KEY",0,R,"SETUP_KEYS",0,w,"UNSAFE",0,b,"activeAi",0,function(){let e=process.env[v];for(let t of(e&&e in N?[e]:[]).concat(Object.keys(N))){let e=process.env[N[t].key];if(e)return{provider:t,key:e}}return null},"connectedTools",0,()=>E.filter(S),"env",0,x,"isToolConnected",0,S,"nrHosts",0,(e="eu"===process.env[R]?"eu":"us")=>I[e],"projectDir",0,_,"writeEnvLocal",0,function(e,a=process.env.METRICFLOW_ENV_FILE||(0,r.join)(_(),".env.local")){let n=new Set([...Object.values(g).flatMap(e=>[...e.keys.required,...e.keys.optional,...e.keys.derived??[]]),...Object.values(N).map(e=>e.key),v]);for(let[t,r]of Object.entries(e)){if(!n.has(t))throw new C("Refused to write a key name no tool declares.");if(b.test(r))throw new C("Refused to write a value with unsafe characters.")}let s=(0,t.existsSync)(a)?(0,t.readFileSync)(a,"utf8").split("\n"):[],o=new Map(Object.entries(e)),i=s.map(e=>{let t=e.match(/^\s*([A-Z0-9_]+)\s*=/)?.[1];if(t&&o.has(t)){let e=o.get(t);return o.delete(t),`${t}=${e}`}return e});for(;i.length&&""===i[i.length-1];)i.pop();for(let[e,t]of o)i.push(`${e}=${t}`);let l=`${a}.tmp`;for(let[r,n]of((0,t.writeFileSync)(l,i.join("\n")+"\n",{mode:384}),(0,t.renameSync)(l,a),Object.entries(e)))process.env[r]=n}],12892)},84594,e=>{"use strict";var t=e.i(60756),r=e.i(12892);async function a(e,n=()=>!1){let s,o;if(process.env[r.REGION_KEY])return e((0,r.nrHosts)());try{if(s=await e((0,r.nrHosts)("us")),!n(s))return s}catch(r){let e=t.default.isAxiosError(r)?r.response?.status:void 0;if(401!==e&&403!==e)throw r;o=r}try{let t=await e((0,r.nrHosts)("eu"));if(!n(t))return process.env[r.REGION_KEY]="eu",t}catch{}if(o)throw o;return s}async function n(e,r,n){return(await a(a=>t.default.post(a.graphql,{query:r},{headers:{"API-Key":e,"Content-Type":"application/json"},timeout:n}),e=>!e.data?.data?.actor)).data}e.s(["nrGraphql",0,n,"withRegion",0,a])},83808,e=>{"use strict";var t=e.i(60756);let r=new Set(["localhost","127.0.0.1","[::1]"]);function a(e){let t;try{t=new URL(e)}catch{return{ok:!1,error:"Sentry DSN is not a valid URL."}}if("https:"!==t.protocol&&"http:"!==t.protocol)return{ok:!1,error:"Sentry DSN must be an http(s) URL."};if(t.password)return{ok:!1,error:"This is a legacy DSN that contains a secret key. Copy the DSN from Project settings > Client Keys."};if("http:"===t.protocol&&!r.has(t.hostname))return{ok:!1,error:"Sentry DSN must use https (http is only accepted for localhost)."};if(!t.username)return{ok:!1,error:"Sentry DSN is missing its public key."};let a=t.pathname.replace(/^\/|\/$/g,"");if(!/^\d+$/.test(a))return{ok:!1,error:"Sentry DSN is missing a numeric project id."};let n=t.host.match(/^o(\d+)\.ingest\.(.+)$/i),s=n?n[2]:t.host;return{ok:!0,projectId:a,orgId:n?n[1]:null,apiBase:`${t.protocol}//${s}/api/0`}}async function n(e,r){let a={Authorization:`Bearer ${e}`},n=r.orgId?await t.default.get(`${r.apiBase}/organizations/`,{headers:a,timeout:8e3}):await t.default.get(`${r.apiBase}/projects/`,{headers:a,timeout:8e3}),s=Array.isArray(n.data)?n.data:[];return(r.orgId?s.find(e=>String(e.id)===r.orgId)?.slug:s.find(e=>String(e.id)===r.projectId)?.organization?.slug)??null}e.s(["orgSlugForDsn",0,n,"parseSentryDsn",0,a,"publicDsn",0,function(e){let t=a(e);if(!t.ok)return null;let r=new URL(e);return`${r.protocol}//${r.username}@${r.host}/${t.projectId}`},"sentryHostNotice",0,function(e){let t=new URL(e).hostname;return"sentry.io"===t||t.endsWith(".sentry.io")?null:`Your Sentry token will be sent to ${t}, which is not sentry.io. Continue only if that is your own Sentry server.`}])},49196,e=>{"use strict";e.s(["default",()=>t]);let t=(0,e.i(18286).registerClientReference)(function(){throw Error("Attempted to call the default export of [project]/node_modules/.pnpm/lucide-react@1.54.0_@types+react@19.3.0_react@19.2.8/node_modules/lucide-react/dist/esm/Icon.mjs from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/node_modules/.pnpm/lucide-react@1.54.0_@types+react@19.3.0_react@19.2.8/node_modules/lucide-react/dist/esm/Icon.mjs","default")},90218,e=>{"use strict";var t=e.i(49196);e.n(t)},18286,(e,t,r)=>{"use strict";t.exports=e.r(99403).vendored["react-rsc"].ReactServerDOMTurbopackServer}];
|
|
17
|
-
|
|
18
|
-
//# sourceMappingURL=%5Broot-of-the-server%5D__0xy2rkf._.js.map
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
module.exports=[93695,(a,b,c)=>{b.exports=a.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},2157,(a,b,c)=>{b.exports=a.x("node:fs",()=>require("node:fs"))},50227,(a,b,c)=>{b.exports=a.x("node:path",()=>require("node:path"))},71385,a=>{a.v("/_next/static/media/icon.23mz8iwcatff2.svg"+(globalThis.NEXT_CLIENT_ASSET_SUFFIX||""))},48760,a=>{"use strict";let b={src:a.i(71385).default,width:32,height:32};a.s(["default",0,b])},83138,a=>{"use strict";var b=a.i(91396);a.i(52040);var c=a.i(19973);a.i(90103);var d=a.i(24084),e=a.i(97728);a.i(59682);var f=a.i(22381),g=a.i(30358),h=a.i(1730),i=a.i(7779),j=a.i(78720),k=a.i(29171),l=a.i(43917);function m({title:a="No data yet",reason:c="Keys work, but no page events have arrived.",href:d="/connect",cta:e="Send your first events",onRetry:f}){return(0,b.jsx)(k.Card,{className:"border-[#2d3748] bg-[#1a202c] shadow-md",children:(0,b.jsxs)(k.CardContent,{className:"flex flex-col items-center gap-3 p-10 text-center",children:[(0,b.jsx)("h3",{className:"text-lg font-semibold text-white",children:a}),(0,b.jsx)("p",{className:"max-w-md text-sm text-gray-400",children:c}),(0,b.jsxs)("div",{className:"flex gap-3",children:[d&&(0,b.jsx)(j.default,{href:d,className:(0,l.buttonVariants)(),children:e}),f&&(0,b.jsx)(l.Button,{variant:"outline",onClick:f,children:"Retry"})]})]})})}async function n({params:a}){let{tool:j}=await a;return(0,h.isToolId)(j)||(0,c.notFound)(),(0,b.jsxs)(e.SidebarProvider,{children:[(0,b.jsx)(d.AppSidebar,{}),(0,b.jsxs)(e.SidebarInset,{className:"bg-dash-surface",children:[(0,b.jsx)(f.Header,{}),(0,b.jsxs)("div",{className:"flex flex-1 flex-col p-6 md:p-8 max-w-[1600px] mx-auto w-full",children:[(0,b.jsx)("h1",{className:"title-enter text-2xl font-bold text-white tracking-tight mb-2",children:h.TOOLS[j].label}),(0,b.jsx)("p",{className:"text-sm text-gray-400",children:h.TOOLS[j].description}),(0,i.isToolConnected)(j)?(0,b.jsx)(g.ToolInsights,{tool:j}):(0,b.jsx)("div",{className:"mt-6",children:(0,b.jsx)(m,{title:`Connect ${h.TOOLS[j].label}`,reason:h.TOOLS[j].connectReason,href:`/setup#${j}`,cta:`Add ${h.TOOLS[j].label} keys`})})]})]})]})}a.s(["default",0,n,"dynamic",0,"force-dynamic"],83138)},58839,function(a){a.n(a.i(83138))},57784,a=>{"use strict";a.s(["ToolInsights",()=>b]);let b=(0,a.i(18060).registerClientReference)(function(){throw Error("Attempted to call ToolInsights() from the server but ToolInsights is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/components/ToolInsights/ToolInsights.tsx","ToolInsights")},30358,a=>{"use strict";var b=a.i(57784);a.n(b)},43917,a=>{"use strict";let b,c;var d=a.i(91396),e=a.i(12340);let f=a=>"boolean"==typeof a?`${a}`:0===a?"0":a,g=function(){for(var a,b,c=0,d="",e=arguments.length;c<e;c++)(a=arguments[c])&&(b=function a(b){var c,d,e="";if("string"==typeof b||"number"==typeof b)e+=b;else if("object"==typeof b)if(Array.isArray(b)){var f=b.length;for(c=0;c<f;c++)b[c]&&(d=a(b[c]))&&(e&&(e+=" "),e+=d)}else for(d in b)b[d]&&(e&&(e+=" "),e+=d);return e}(a))&&(d&&(d+=" "),d+=b);return d};var h=a.i(5e4);let i=(b="group/button inline-flex shrink-0 items-center justify-center rounded-lg border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",c={variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/80",outline:"border-border bg-background hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50",secondary:"bg-secondary text-secondary-foreground hover:bg-[color-mix(in_oklch,var(--secondary),var(--foreground)_5%)] aria-expanded:bg-secondary aria-expanded:text-secondary-foreground",ghost:"hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50",destructive:"bg-destructive/10 text-destructive hover:bg-destructive/20 focus-visible:border-destructive/40 focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:hover:bg-destructive/30 dark:focus-visible:ring-destructive/40",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-8 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2",xs:"h-6 gap-1 rounded-[min(var(--radius-md),10px)] px-2 text-xs in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3",sm:"h-7 gap-1 rounded-[min(var(--radius-md),12px)] px-2.5 text-[0.8rem] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3.5",lg:"h-9 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2",icon:"size-8","icon-xs":"size-6 rounded-[min(var(--radius-md),10px)] in-data-[slot=button-group]:rounded-lg [&_svg:not([class*='size-'])]:size-3","icon-sm":"size-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg","icon-lg":"size-9"}},defaultVariants:{variant:"default",size:"default"}},a=>{var d;if((null==c?void 0:c.variants)==null)return g(b,null==a?void 0:a.class,null==a?void 0:a.className);let{variants:e,defaultVariants:h}=c,i=Object.keys(e).map(b=>{let c=null==a?void 0:a[b],d=null==h?void 0:h[b];if(null===c)return null;let g=f(c)||f(d);return e[b][g]}),j=a&&Object.entries(a).reduce((a,b)=>{let[c,d]=b;return void 0===d||(a[c]=d),a},{});return g(b,i,null==c||null==(d=c.compoundVariants)?void 0:d.reduce((a,b)=>{let{class:c,className:d,...e}=b;return Object.entries(e).every(a=>{let[b,c]=a;return Array.isArray(c)?c.includes({...h,...j}[b]):({...h,...j})[b]===c})?[...a,c,d]:a},[]),null==a?void 0:a.class,null==a?void 0:a.className)});a.s(["Button",0,function({className:a,variant:b="default",size:c="default",...f}){return(0,d.jsx)(e.Button,{"data-slot":"button",className:(0,h.cn)(i({variant:b,size:c,className:a})),...f})},"buttonVariants",0,i],43917)},20696,a=>{"use strict";a.s(["Button",()=>b]);let b=(0,a.i(18060).registerClientReference)(function(){throw Error("Attempted to call Button() from the server but Button is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/node_modules/.pnpm/@base-ui+react@1.9.0_@types+react@19.3.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@base-ui/react/button/Button.mjs","Button")},12340,a=>{"use strict";var b=a.i(20696);a.n(b)},25809,(a,b,c)=>{"use strict";function d(a){if("function"!=typeof WeakMap)return null;var b=new WeakMap,c=new WeakMap;return(d=function(a){return a?c:b})(a)}c._=function(a,b){if(!b&&a&&a.__esModule)return a;if(null===a||"object"!=typeof a&&"function"!=typeof a)return{default:a};var c=d(b);if(c&&c.has(a))return c.get(a);var e={__proto__:null},f=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var g in a)if("default"!==g&&Object.prototype.hasOwnProperty.call(a,g)){var h=f?Object.getOwnPropertyDescriptor(a,g):null;h&&(h.get||h.set)?Object.defineProperty(e,g,h):e[g]=a[g]}return e.default=a,c&&c.set(a,e),e}},4566,a=>{"use strict";a.s(["default",()=>b]);let b=(0,a.i(18060).registerClientReference)(function(){throw Error("Attempted to call the default export of [project]/node_modules/.pnpm/lucide-react@1.54.0_@types+react@19.3.0_react@19.2.8/node_modules/lucide-react/dist/esm/Icon.mjs from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/node_modules/.pnpm/lucide-react@1.54.0_@types+react@19.3.0_react@19.2.8/node_modules/lucide-react/dist/esm/Icon.mjs","default")},29553,a=>{"use strict";var b=a.i(4566);a.n(b)},66494,a=>{"use strict";var b=a.i(56149),c=a.i(29553);a.s(["default",0,function(a,d=[],e=[]){let f,g="string"==typeof a?function(a,b,c=[]){if(null==b)throw Error("[lucide]: iconNode is required when icon name is used");return{name:a?.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),size:24,node:b,...c.length>0?{aliases:c}:{}}}(a,d,e):a,h=(0,b.forwardRef)(({className:a,...d},e)=>(0,b.createElement)(c.default,{ref:e,icon:g,className:a,...d}));return g.name&&(h.displayName=(f=(a=>{let b="",c=!1;for(let d of a){if("-"===d||"_"===d||d<=" "){c=b.length>0;continue}0===b.length?b+=d.toLowerCase():b+=c?d.toUpperCase():d,c=!1}return b})(g.name)).charAt(0).toUpperCase()+f.slice(1)),h}],66494)},40950,(a,b,c)=>{let{createClientModuleProxy:d}=a.r(18060);a.n(d("[project]/node_modules/.pnpm/next@16.3.8_@babel+core@7.29.7_supports-color@8.1.1__@opentelemetry+api@1.9.1_@types+no_c2c791d25241ae4161c9f48ecf186c77/node_modules/next/dist/client/app-dir/link.js"))},53824,a=>{"use strict";var b=a.i(40950);a.n(b)},78720,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={default:function(){return i},useLinkStatus:function(){return h.useLinkStatus}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(25809),g=a.r(91396),h=f._(a.r(53824));function i(a){let b=a.legacyBehavior,c="string"==typeof a.children||"number"==typeof a.children||"string"==typeof a.children?.type,d=a.children?.type?.$$typeof===Symbol.for("react.client.reference");return!b||c||d||(a.children?.type?.$$typeof===Symbol.for("react.lazy")?console.error("Using a Lazy Component as a direct child of `<Link legacyBehavior>` from a Server Component is not supported. If you need legacyBehavior, wrap your Lazy Component in a Client Component that renders the Link's `<a>` tag."):console.error("Using a Server Component as a direct child of `<Link legacyBehavior>` is not supported. If you need legacyBehavior, wrap your Server Component in a Client Component that renders the Link's `<a>` tag.")),(0,g.jsx)(h.default,{...a})}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},36256,a=>{"use strict";var b=a.i(46797),c=a.i(282),d=a.i(89196);a.i(60796);let e=(0,b.instrumentModuleGetter)(()=>a.r(48760)),f=(0,b.instrumentModuleGetter)(()=>a.r(70864)),g=(0,b.instrumentModuleGetter)(()=>a.r(45538)),h=(0,b.instrumentModuleGetter)(()=>a.r(54254)),i=(0,b.instrumentModuleGetter)(()=>a.r(73833)),j=(0,b.instrumentModuleGetter)(()=>a.r(35191)),k=(0,b.instrumentModuleGetter)(()=>a.r(68119)),l=["",{children:["tools",{children:["[tool]",{children:["__PAGE__",{},{metadata:{},page:[(0,b.instrumentModuleGetter)(()=>a.r(58839)),"[project]/app/tools/[tool]/page.tsx"]},[]]},{metadata:{}},[]]},{metadata:{}},[]]},{metadata:{icon:[async()=>{let a=(0,d.interopDefault)(await e());return[{url:`/icon.svg?${a.src.split("/").splice(-1)[0]}`,sizes:"any",type:"image/svg+xml"}]}]},layout:[f,"[project]/app/layout.tsx"],loading:[g,"[project]/app/loading.tsx"],"not-found":[h,"[project]/node_modules/.pnpm/next@16.3.8_@babel+core@7.29.7_supports-color@8.1.1__@opentelemetry+api@1.9.1_@types+no_c2c791d25241ae4161c9f48ecf186c77/node_modules/next/dist/client/components/builtin/not-found.js"],forbidden:[i,"[project]/node_modules/.pnpm/next@16.3.8_@babel+core@7.29.7_supports-color@8.1.1__@opentelemetry+api@1.9.1_@types+no_c2c791d25241ae4161c9f48ecf186c77/node_modules/next/dist/client/components/builtin/forbidden.js"],unauthorized:[j,"[project]/node_modules/.pnpm/next@16.3.8_@babel+core@7.29.7_supports-color@8.1.1__@opentelemetry+api@1.9.1_@types+no_c2c791d25241ae4161c9f48ecf186c77/node_modules/next/dist/client/components/builtin/unauthorized.js"],"global-error":[k,"[project]/node_modules/.pnpm/next@16.3.8_@babel+core@7.29.7_supports-color@8.1.1__@opentelemetry+api@1.9.1_@types+no_c2c791d25241ae4161c9f48ecf186c77/node_modules/next/dist/client/components/builtin/global-error.js"]},[]],m=a.r.bind(a),n=a.l.bind(a),o=(0,c.createAppPageEntrypoint)({tree:l,page:"/tools/[tool]/page",pathname:"/tools/[tool]",require:m,loadChunk:n,interopDefault:d.interopDefault}),p=o.__next_app__,q=o.routeModule,r=o.handler;a.s(["__next_app__",0,p,"handler",0,r,"routeModule",0,q],52931),a.i(52931);var s=a.i(25948);a.s(["ClientPageRoot",()=>s.ClientPageRoot,"ClientSegmentRoot",()=>s.ClientSegmentRoot,"Fragment",()=>s.Fragment,"HTTPAccessFallbackBoundary",()=>s.HTTPAccessFallbackBoundary,"InstantValidation",()=>s.InstantValidation,"LayoutRouter",()=>s.LayoutRouter,"LoadingBoundaryProvider",()=>s.LoadingBoundaryProvider,"Postpone",()=>s.Postpone,"RenderFromTemplateContext",()=>s.RenderFromTemplateContext,"RootLayoutBoundary",()=>s.RootLayoutBoundary,"SegmentViewNode",()=>s.SegmentViewNode,"SegmentViewStateNode",()=>s.SegmentViewStateNode,"__next_app__",0,p,"captureOwnerStack",()=>s.captureOwnerStack,"collectPrefetchHints",()=>s.collectPrefetchHints,"collectSegmentData",()=>s.collectSegmentData,"createElement",()=>s.createElement,"createMetadataComponents",()=>s.createMetadataComponents,"createPrerenderParamsForClientSegment",()=>s.createPrerenderParamsForClientSegment,"createPrerenderSearchParamsForClientPage",()=>s.createPrerenderSearchParamsForClientPage,"createServerParamsForServerSegment",()=>s.createServerParamsForServerSegment,"createServerSearchParamsForServerPage",()=>s.createServerSearchParamsForServerPage,"createTemporaryReferenceSet",()=>s.createTemporaryReferenceSet,"decodeAction",()=>s.decodeAction,"decodeFormState",()=>s.decodeFormState,"decodeReply",()=>s.decodeReply,"handler",0,r,"isEmptyHTMLPrelude",()=>s.isEmptyHTMLPrelude,"patchFetch",()=>s.patchFetch,"preconnect",()=>s.preconnect,"preloadFont",()=>s.preloadFont,"preloadStyle",()=>s.preloadStyle,"prerender",()=>s.prerender,"prerenderToNodeStream",()=>s.prerenderToNodeStream,"renderToPipeableStream",()=>s.renderToPipeableStream,"renderToReadableStream",()=>s.renderToReadableStream,"routeModule",0,q,"serverHooks",()=>s.serverHooks,"taintObjectReference",()=>s.taintObjectReference],36256)}];
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=%5Broot-of-the-server%5D__0kik87u._.js.map
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
module.exports=[49719,(a,b,c)=>{b.exports=a.x("assert",()=>require("assert"))},27699,(a,b,c)=>{b.exports=a.x("events",()=>require("events"))},22734,(a,b,c)=>{b.exports=a.x("fs",()=>require("fs"))},21517,(a,b,c)=>{b.exports=a.x("http",()=>require("http"))},25328,(a,b,c)=>{b.exports=a.x("http2",()=>require("http2"))},24836,(a,b,c)=>{b.exports=a.x("https",()=>require("https"))},4446,(a,b,c)=>{b.exports=a.x("net",()=>require("net"))},93695,(a,b,c)=>{b.exports=a.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},66680,(a,b,c)=>{b.exports=a.x("node:crypto",()=>require("node:crypto"))},2157,(a,b,c)=>{b.exports=a.x("node:fs",()=>require("node:fs"))},50227,(a,b,c)=>{b.exports=a.x("node:path",()=>require("node:path"))},46786,(a,b,c)=>{b.exports=a.x("os",()=>require("os"))},88947,(a,b,c)=>{b.exports=a.x("stream",()=>require("stream"))},55004,(a,b,c)=>{b.exports=a.x("tls",()=>require("tls"))},70722,(a,b,c)=>{b.exports=a.x("tty",()=>require("tty"))},92509,(a,b,c)=>{b.exports=a.x("url",()=>require("url"))},6461,(a,b,c)=>{b.exports=a.x("zlib",()=>require("zlib"))},71385,a=>{a.v("/_next/static/media/icon.23mz8iwcatff2.svg"+(globalThis.NEXT_CLIENT_ASSET_SUFFIX||""))},48760,a=>{"use strict";let b={src:a.i(71385).default,width:32,height:32};a.s(["default",0,b])},4566,a=>{"use strict";a.s(["default",()=>b]);let b=(0,a.i(18060).registerClientReference)(function(){throw Error("Attempted to call the default export of [project]/node_modules/.pnpm/lucide-react@1.54.0_@types+react@19.3.0_react@19.2.8/node_modules/lucide-react/dist/esm/Icon.mjs from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/node_modules/.pnpm/lucide-react@1.54.0_@types+react@19.3.0_react@19.2.8/node_modules/lucide-react/dist/esm/Icon.mjs","default")},29553,a=>{"use strict";var b=a.i(4566);a.n(b)},66494,a=>{"use strict";var b=a.i(56149),c=a.i(29553);a.s(["default",0,function(a,d=[],e=[]){let f,g="string"==typeof a?function(a,b,c=[]){if(null==b)throw Error("[lucide]: iconNode is required when icon name is used");return{name:a?.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),size:24,node:b,...c.length>0?{aliases:c}:{}}}(a,d,e):a,h=(0,b.forwardRef)(({className:a,...d},e)=>(0,b.createElement)(c.default,{ref:e,icon:g,className:a,...d}));return g.name&&(h.displayName=(f=(a=>{let b="",c=!1;for(let d of a){if("-"===d||"_"===d||d<=" "){c=b.length>0;continue}0===b.length?b+=d.toLowerCase():b+=c?d.toUpperCase():d,c=!1}return b})(g.name)).charAt(0).toUpperCase()+f.slice(1)),h}],66494)},28281,a=>{"use strict";var b=a.i(46797),c=a.i(282),d=a.i(89196);a.i(60796);let e=(0,b.instrumentModuleGetter)(()=>a.r(48760)),f=(0,b.instrumentModuleGetter)(()=>a.r(70864)),g=(0,b.instrumentModuleGetter)(()=>a.r(45538)),h=(0,b.instrumentModuleGetter)(()=>a.r(54254)),i=(0,b.instrumentModuleGetter)(()=>a.r(73833)),j=(0,b.instrumentModuleGetter)(()=>a.r(35191)),k=(0,b.instrumentModuleGetter)(()=>a.r(68119)),l=(0,b.instrumentModuleGetter)(()=>a.r(78932)),m=(0,b.instrumentModuleGetter)(()=>a.r(27991)),n=["",{children:["performance",{children:["[slug]",{children:["__PAGE__",{},{metadata:{},page:[(0,b.instrumentModuleGetter)(()=>a.r(77450)),"[project]/app/performance/[slug]/page.tsx"]},[]]},{metadata:{},loading:[m,"[project]/app/performance/[slug]/loading.tsx"]},[]]},{metadata:{},loading:[l,"[project]/app/performance/loading.tsx"]},[]]},{metadata:{icon:[async()=>{let a=(0,d.interopDefault)(await e());return[{url:`/icon.svg?${a.src.split("/").splice(-1)[0]}`,sizes:"any",type:"image/svg+xml"}]}]},layout:[f,"[project]/app/layout.tsx"],loading:[g,"[project]/app/loading.tsx"],"not-found":[h,"[project]/node_modules/.pnpm/next@16.3.8_@babel+core@7.29.7_supports-color@8.1.1__@opentelemetry+api@1.9.1_@types+no_c2c791d25241ae4161c9f48ecf186c77/node_modules/next/dist/client/components/builtin/not-found.js"],forbidden:[i,"[project]/node_modules/.pnpm/next@16.3.8_@babel+core@7.29.7_supports-color@8.1.1__@opentelemetry+api@1.9.1_@types+no_c2c791d25241ae4161c9f48ecf186c77/node_modules/next/dist/client/components/builtin/forbidden.js"],unauthorized:[j,"[project]/node_modules/.pnpm/next@16.3.8_@babel+core@7.29.7_supports-color@8.1.1__@opentelemetry+api@1.9.1_@types+no_c2c791d25241ae4161c9f48ecf186c77/node_modules/next/dist/client/components/builtin/unauthorized.js"],"global-error":[k,"[project]/node_modules/.pnpm/next@16.3.8_@babel+core@7.29.7_supports-color@8.1.1__@opentelemetry+api@1.9.1_@types+no_c2c791d25241ae4161c9f48ecf186c77/node_modules/next/dist/client/components/builtin/global-error.js"]},[]],o=a.r.bind(a),p=a.l.bind(a),q=(0,c.createAppPageEntrypoint)({tree:n,page:"/performance/[slug]/page",pathname:"/performance/[slug]",require:o,loadChunk:p,interopDefault:d.interopDefault}),r=q.__next_app__,s=q.routeModule,t=q.handler;a.s(["__next_app__",0,r,"handler",0,t,"routeModule",0,s],66578),a.i(66578);var u=a.i(25948);a.s(["ClientPageRoot",()=>u.ClientPageRoot,"ClientSegmentRoot",()=>u.ClientSegmentRoot,"Fragment",()=>u.Fragment,"HTTPAccessFallbackBoundary",()=>u.HTTPAccessFallbackBoundary,"InstantValidation",()=>u.InstantValidation,"LayoutRouter",()=>u.LayoutRouter,"LoadingBoundaryProvider",()=>u.LoadingBoundaryProvider,"Postpone",()=>u.Postpone,"RenderFromTemplateContext",()=>u.RenderFromTemplateContext,"RootLayoutBoundary",()=>u.RootLayoutBoundary,"SegmentViewNode",()=>u.SegmentViewNode,"SegmentViewStateNode",()=>u.SegmentViewStateNode,"__next_app__",0,r,"captureOwnerStack",()=>u.captureOwnerStack,"collectPrefetchHints",()=>u.collectPrefetchHints,"collectSegmentData",()=>u.collectSegmentData,"createElement",()=>u.createElement,"createMetadataComponents",()=>u.createMetadataComponents,"createPrerenderParamsForClientSegment",()=>u.createPrerenderParamsForClientSegment,"createPrerenderSearchParamsForClientPage",()=>u.createPrerenderSearchParamsForClientPage,"createServerParamsForServerSegment",()=>u.createServerParamsForServerSegment,"createServerSearchParamsForServerPage",()=>u.createServerSearchParamsForServerPage,"createTemporaryReferenceSet",()=>u.createTemporaryReferenceSet,"decodeAction",()=>u.decodeAction,"decodeFormState",()=>u.decodeFormState,"decodeReply",()=>u.decodeReply,"handler",0,t,"isEmptyHTMLPrelude",()=>u.isEmptyHTMLPrelude,"patchFetch",()=>u.patchFetch,"preconnect",()=>u.preconnect,"preloadFont",()=>u.preloadFont,"preloadStyle",()=>u.preloadStyle,"prerender",()=>u.prerender,"prerenderToNodeStream",()=>u.prerenderToNodeStream,"renderToPipeableStream",()=>u.renderToPipeableStream,"renderToReadableStream",()=>u.renderToReadableStream,"routeModule",0,s,"serverHooks",()=>u.serverHooks,"taintObjectReference",()=>u.taintObjectReference],28281)}];
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=%5Broot-of-the-server%5D__1jyq1xk._.js.map
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
module.exports=[30678,a=>{"use strict";a.s(["Depth3D",()=>b]);let b=(0,a.i(18060).registerClientReference)(function(){throw Error("Attempted to call Depth3D() from the server but Depth3D is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/components/Depth3D.tsx","Depth3D")},64124,a=>{"use strict";var b=a.i(30678);a.n(b)},33290,a=>{"use strict";var b=a.i(91396),c=a.i(64124);a.s(["default",0,function({children:a}){return(0,b.jsx)("html",{lang:"en",className:"dark h-full antialiased",children:(0,b.jsxs)("body",{className:"min-h-full flex flex-col",suppressHydrationWarning:!0,children:[(0,b.jsx)(c.Depth3D,{}),a]})})},"metadata",0,{title:"MetricFlow",description:"Local performance dashboard for your site: New Relic metrics and Sentry errors per page."}])},70864,function(a){a.n(a.i(33290))}];
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=_01vg-zb._.js.map
|