@karan171996/metricflow 0.5.3 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/BUILD_ID +1 -1
- package/.next/build-manifest.json +3 -3
- package/.next/fallback-build-manifest.json +3 -3
- package/.next/next-server.js.nft.json +1 -1
- package/.next/prerender-manifest.json +6 -6
- package/.next/server/app/_global-error.html +1 -1
- package/.next/server/app/_global-error.rsc +1 -1
- package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_not-found.html +2 -2
- package/.next/server/app/_not-found.rsc +9 -9
- package/.next/server/app/_not-found.segments/_full.segment.rsc +9 -9
- package/.next/server/app/_not-found.segments/_index.segment.rsc +8 -8
- package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/api/analyze/route.js +2 -2
- 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/metrics/route.js +2 -2
- 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.nft.json +1 -1
- package/.next/server/app/api/setup/route.js +3 -2
- package/.next/server/app/api/setup/route.js.nft.json +1 -1
- package/.next/server/app/connect/page.js.nft.json +1 -1
- package/.next/server/app/connect/page_client-reference-manifest.js +1 -1
- package/.next/server/app/connect.html +19 -66
- package/.next/server/app/connect.rsc +11 -11
- package/.next/server/app/connect.segments/_full.segment.rsc +11 -11
- package/.next/server/app/connect.segments/_index.segment.rsc +8 -8
- package/.next/server/app/connect.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/connect.segments/connect/__PAGE__.segment.rsc +6 -6
- package/.next/server/app/index.html +2 -2
- package/.next/server/app/index.rsc +11 -11
- package/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/index.segments/_full.segment.rsc +11 -11
- package/.next/server/app/index.segments/_index.segment.rsc +8 -8
- package/.next/server/app/index.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/page.js.nft.json +1 -1
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app/performance/[slug]/page.js +2 -2
- package/.next/server/app/performance/[slug]/page.js.nft.json +1 -1
- package/.next/server/app/performance/[slug]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/performance/page.js.nft.json +1 -1
- package/.next/server/app/performance/page_client-reference-manifest.js +1 -1
- package/.next/server/app/performance.html +2 -2
- package/.next/server/app/performance.rsc +12 -12
- package/.next/server/app/performance.segments/_full.segment.rsc +12 -12
- package/.next/server/app/performance.segments/_index.segment.rsc +8 -8
- package/.next/server/app/performance.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/performance.segments/performance/__PAGE__.segment.rsc +7 -7
- package/.next/server/app/settings/page.js.nft.json +1 -1
- package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings.html +2 -2
- package/.next/server/app/settings.rsc +22 -22
- package/.next/server/app/settings.segments/_full.segment.rsc +22 -22
- package/.next/server/app/settings.segments/_index.segment.rsc +8 -8
- package/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +17 -17
- 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 +12 -12
- package/.next/server/app/setup.segments/_full.segment.rsc +12 -12
- package/.next/server/app/setup.segments/_index.segment.rsc +8 -8
- package/.next/server/app/setup.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/setup.segments/setup/__PAGE__.segment.rsc +7 -7
- 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/chunks/[root-of-the-server]__0fkj1-q._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__0o2ceqr._.js +18 -0
- package/.next/server/chunks/[root-of-the-server]__0pil1g6._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0xmaf60._.js +18 -0
- package/.next/server/chunks/[root-of-the-server]__18s35pf._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__1f_fo0j._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__1naf7j4._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1o9k4jf._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__1rx5s6r._.js +3 -0
- package/.next/server/chunks/_08xo8nu._.js +4 -4
- package/.next/server/chunks/_0w8wvdn._.js +1 -1
- package/.next/server/chunks/_0wct7-r._.js +1 -16
- package/.next/server/chunks/_1l9d64o._.js +2 -2
- package/.next/server/chunks/ssr/0x0c_next_dist_1icgwks._.js +1 -1
- 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]__0l4t71c._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__1jr0qvs._.js +1 -1
- package/.next/server/chunks/ssr/{[root-of-the-server]__0ryyli3._.js → [root-of-the-server]__1xhr2zy._.js} +1 -1
- package/.next/server/chunks/ssr/_045bvlq._.js +1 -1
- package/.next/server/chunks/ssr/_0_02db6._.js +1 -1
- package/.next/server/chunks/ssr/_0bxxvzb._.js +1 -1
- package/.next/server/chunks/ssr/_0cq6qjs._.js +9 -63
- package/.next/server/chunks/ssr/_0htqt7_._.js +10 -5
- package/.next/server/chunks/ssr/_0ompurr._.js +2 -2
- package/.next/server/chunks/ssr/_0un641_._.js +1 -1
- package/.next/server/chunks/ssr/_12pw-ix._.js +151 -0
- package/.next/server/chunks/ssr/_13m9nev._.js +1 -1
- package/.next/server/chunks/ssr/_19s4g71._.js +1 -1
- package/.next/server/chunks/ssr/_1n6rdd2._.js +1 -1
- package/.next/server/chunks/ssr/components_1_8btz1._.js +1 -1
- package/.next/server/middleware-build-manifest.js +3 -3
- 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/static/chunks/036zzfotyi252.js +1 -0
- package/.next/static/chunks/18thq9ido-jej.js +5 -0
- package/.next/static/chunks/{19qbz8dh8aqt6.js → 190rvtbj8tqbw.js} +1 -1
- package/.next/static/chunks/1kqzgl2gb6ily.js +1 -0
- package/.next/static/chunks/2h1anqi3hzijd.js +1 -0
- package/.next/static/chunks/{0_xh0vh4uh0vk.js → 2pf7wdwyhi6ks.js} +1 -1
- package/.next/static/chunks/{278--y-yo6m9v.js → 31od3fbrskb5_.js} +1 -1
- package/.next/static/chunks/332sb1iij72mz.css +1 -0
- package/.next/static/chunks/3khzw5hn41lt7.js +11 -0
- package/.next/static/chunks/3o4y8rhawejsr.js +1 -0
- package/.next/trace +1 -1
- package/.next/trace-build +1 -1
- package/README.md +48 -7
- package/bin/cli.mjs +2 -1
- package/dist/browser/index.d.mts +27 -0
- package/dist/browser/index.mjs +110 -0
- package/dist/browser/newrelic-agent.d.mts +4 -0
- package/dist/browser/newrelic-agent.mjs +32 -0
- package/dist/browser/newrelic.d.mts +2 -0
- package/dist/browser/newrelic.mjs +35 -0
- package/dist/browser/sentry-sdk.d.mts +2 -0
- package/dist/browser/sentry-sdk.mjs +22 -0
- package/dist/browser/sentry.d.mts +2 -0
- package/dist/browser/sentry.mjs +45 -0
- package/package.json +15 -3
- package/.next/server/chunks/[root-of-the-server]__12h8r83._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__19yigji._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1sf143y._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1zlr3w0._.js +0 -3
- package/.next/server/chunks/ssr/_14aoqb2._.js +0 -151
- package/.next/static/chunks/2-az50vi0iboz.js +0 -5
- package/.next/static/chunks/2bt9wtnw1g0g_.css +0 -1
- package/.next/static/chunks/2mi013mf2pu08.js +0 -1
- package/.next/static/chunks/2wmat901j6po0.js +0 -1
- package/.next/static/chunks/332-owz6utwp5.js +0 -1
- package/.next/static/chunks/39h0f3s2ddxz_.js +0 -65
- package/.next/static/chunks/3ab7oxjuh1asy.js +0 -1
- /package/.next/static/{fn1O5hprdyzrIbY1gapbZ → 4kpNMSdt6_Tq6ls8b4gmd}/_buildManifest.js +0 -0
- /package/.next/static/{fn1O5hprdyzrIbY1gapbZ → 4kpNMSdt6_Tq6ls8b4gmd}/_clientMiddlewareManifest.js +0 -0
- /package/.next/static/{fn1O5hprdyzrIbY1gapbZ → 4kpNMSdt6_Tq6ls8b4gmd}/_ssgManifest.js +0 -0
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
module.exports=[49719,(e,r,t)=>{r.exports=e.x("assert",()=>require("assert"))},54799,(e,r,t)=>{r.exports=e.x("crypto",()=>require("crypto"))},27699,(e,r,t)=>{r.exports=e.x("events",()=>require("events"))},22734,(e,r,t)=>{r.exports=e.x("fs",()=>require("fs"))},21517,(e,r,t)=>{r.exports=e.x("http",()=>require("http"))},25328,(e,r,t)=>{r.exports=e.x("http2",()=>require("http2"))},24836,(e,r,t)=>{r.exports=e.x("https",()=>require("https"))},4446,(e,r,t)=>{r.exports=e.x("net",()=>require("net"))},18622,(e,r,t)=>{r.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,r,t)=>{r.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,r,t)=>{r.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,r,t)=>{r.exports=e.x("next/dist/server/runtime-reacts.external.js",()=>require("next/dist/server/runtime-reacts.external.js"))},93695,(e,r,t)=>{r.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},66680,(e,r,t)=>{r.exports=e.x("node:crypto",()=>require("node:crypto"))},2157,(e,r,t)=>{r.exports=e.x("node:fs",()=>require("node:fs"))},50227,(e,r,t)=>{r.exports=e.x("node:path",()=>require("node:path"))},81111,(e,r,t)=>{r.exports=e.x("node:stream",()=>require("node:stream"))},46786,(e,r,t)=>{r.exports=e.x("os",()=>require("os"))},14747,(e,r,t)=>{r.exports=e.x("path",()=>require("path"))},88947,(e,r,t)=>{r.exports=e.x("stream",()=>require("stream"))},55004,(e,r,t)=>{r.exports=e.x("tls",()=>require("tls"))},70722,(e,r,t)=>{r.exports=e.x("tty",()=>require("tty"))},92509,(e,r,t)=>{r.exports=e.x("url",()=>require("url"))},24361,(e,r,t)=>{r.exports=e.x("util",()=>require("util"))},6461,(e,r,t)=>{r.exports=e.x("zlib",()=>require("zlib"))},90770,e=>{"use strict";let r=new Map;e.s(["getTimings",0,function(){return Array.from(r.entries()).map(([e,r])=>({name:e,value:r})).sort((e,r)=>r.value-e.value)},"recordTiming",0,function(e,t){r.set(e,Math.round(t))}])},12892,67119,e=>{"use strict";var r=e.i(2157),t=e.i(50227),s=e.i(39151),n=e.i(19374);function o(e,r=[],t=[]){let a,i="string"==typeof e?function(e,r,t=[]){if(null==r)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:r,...t.length>0?{aliases:t}:{}}}(e,r,t):e,l=(0,s.forwardRef)(({className:e,...r},t)=>(0,s.createElement)(n.default,{ref:t,icon:i,className:e,...r}));return i.name&&(l.displayName=(a=(e=>{let r="",t=!1;for(let s of e){if("-"===s||"_"===s||s<=" "){t=r.length>0;continue}0===r.length?r+=s.toLowerCase():r+=t?s.toUpperCase():s,t=!1}return r})(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=o(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=o(l);function p(e){if(!Number.isFinite(e))return"—";let r=Math.abs(Math.round(e));if(r<1e3)return`${Math.round(e)}ms`;if(r<59950)return`${+(e/1e3).toFixed(1)}s`;let t=Math.round(r/1e3),s=e<0?"-":"";return t<3600?`${s}${Math.floor(t/60)}m ${t%60}s`:`${s}${Math.floor(t/3600)}h ${Math.floor(t%3600/60)}m`}let u=["pages","traffic","loadTime","apdex","vitals","ajax","errorRate","errors"],d=e=>e.length?e.reduce((e,r)=>e+r,0)/e.length:0,h={"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:p(d(e.map(e=>e.newRelic.loadTime)))},{label:"Avg LCP",value:p(d(e.map(e=>e.newRelic.lcp)))},{label:"Avg TTFB",value:p(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=>p(e.newRelic.loadTime)},{needs:"vitals",header:"LCP",cell:e=>p(e.newRelic.lcp)},{needs:"vitals",header:"TTFB",cell:e=>p(e.newRelic.ttfb)},{needs:"vitals",header:"CLS",cell:e=>e.newRelic.cls.toFixed(2)},{needs:"vitals",header:"INP",cell:e=>{let r=e.newRelic.inp;return void 0===r?"—":p(r)}},{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 captured per page over the last 24 hours.",connectReason:"Add your Sentry keys to see the errors on each page.",keys:{required:["SENTRY_API_KEY","SENTRY_DSN"],optional:[]},capabilities:["errors"],stats:e=>{let r=e.reduce((e,r)=>(r.sentry?.errorCount??0)>(e?.sentry?.errorCount??0)?r:e,null);return[{label:"Total Errors",value:String(e.map(e=>e.sentry?.errorCount??0).reduce((e,r)=>e+r,0))},{label:"Pages With Errors",value:`${e.filter(e=>(e.sentry?.errorCount??0)>0).length} of ${e.length}`},{label:"Noisiest Page",value:r?.name??"None"}]},columns:[{needs:"errors",header:"Errors",cell:e=>String(e.sentry?.errorCount??0)},{needs:"errors",header:"Latest Error",cell:e=>e.sentry?.latestErrors[0]?.title??"—"},{needs:"errors",header:"Last Seen",cell:e=>{let r=Date.parse(e.sentry?.latestErrors[0]?.lastSeen??"");return Number.isNaN(r)?"—":new Date(r).toLocaleString()}}]}},f=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,r])=>[e,r.label])),x=Object.keys(h);e.s(["KEY_LABELS",0,f,"TOOLS",0,h,"TOOL_IDS",0,x,"mergeMetrics",0,function(e,r,t){let s={};for(let[n,o]of Object.entries(r)){let r=t.includes(o)?void 0:e[o]?.[n];void 0!==r&&(s[n]=r)}return s},"sourcesFor",0,function(e){let r={};for(let t of u){let s=x.find(r=>e.includes(r)&&h[r].capabilities.includes(t));s&&(r[t]=s)}return r}],67119);let y=x.flatMap(e=>h[e].keys.required),m="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"}},E={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 R(e){return process.env[e]??""}let b=e=>h[e].keys.required.every(e=>R(e));function I(){return process.env.METRICFLOW_PROJECT_DIR||process.cwd()}let w=/[\s\0#"'`\\$]/;e.s(["AI_PROVIDERS",0,E,"AI_PROVIDER_KEY",0,v,"INSERT_KEY",0,"NEWRELIC_INSERT_KEY","REGION_KEY",0,m,"SETUP_KEYS",0,y,"UNSAFE",0,w,"activeAi",0,function(){let e=process.env[v];for(let r of(e&&e in E?[e]:[]).concat(Object.keys(E))){let e=process.env[E[r].key];if(e)return{provider:r,key:e}}return null},"connectedTools",0,()=>x.filter(b),"env",0,R,"isToolConnected",0,b,"nrHosts",0,(e="eu"===process.env[m]?"eu":"us")=>g[e],"projectDir",0,I,"writeEnvLocal",0,function(e,s=process.env.METRICFLOW_ENV_FILE||(0,t.join)(I(),".env.local")){let n=new Set([...Object.values(h).flatMap(e=>[...e.keys.required,...e.keys.optional,...e.keys.derived??[]]),...Object.values(E).map(e=>e.key),v]);for(let[r,t]of Object.entries(e)){if(!n.has(r))throw Error("Refused to write a key name no tool declares.");if(w.test(t))throw Error("Refused to write a value with unsafe characters.")}let o=(0,r.existsSync)(s)?(0,r.readFileSync)(s,"utf8").split("\n"):[],a=new Map(Object.entries(e)),i=o.map(e=>{let r=e.match(/^\s*([A-Z0-9_]+)\s*=/)?.[1];if(r&&a.has(r)){let e=a.get(r);return a.delete(r),`${r}=${e}`}return e});for(;i.length&&""===i[i.length-1];)i.pop();for(let[e,r]of a)i.push(`${e}=${r}`);let l=`${s}.tmp`;for(let[t,n]of((0,r.writeFileSync)(l,i.join("\n")+"\n",{mode:384}),(0,r.renameSync)(l,s),Object.entries(e)))process.env[t]=n}],12892)},84594,e=>{"use strict";var r=e.i(60756),t=e.i(12892);async function s(e,n=()=>!1){let o,a;if(process.env[t.REGION_KEY])return e((0,t.nrHosts)());try{if(o=await e((0,t.nrHosts)("us")),!n(o))return o}catch(t){let e=r.default.isAxiosError(t)?t.response?.status:void 0;if(401!==e&&403!==e)throw t;a=t}try{let r=await e((0,t.nrHosts)("eu"));if(!n(r))return process.env[t.REGION_KEY]="eu",r}catch{}if(a)throw a;return o}async function n(e,t,n){return(await s(s=>r.default.post(s.graphql,{query:t},{headers:{"API-Key":e,"Content-Type":"application/json"},timeout:n}),e=>!e.data?.data?.actor)).data}e.s(["nrGraphql",0,n,"withRegion",0,s])},83808,e=>{"use strict";var r=e.i(60756);async function t(e,t){let s={Authorization:`Bearer ${e}`},n=t.orgId?await r.default.get(`${t.apiBase}/organizations/`,{headers:s,timeout:8e3}):await r.default.get(`${t.apiBase}/projects/`,{headers:s,timeout:8e3}),o=Array.isArray(n.data)?n.data:[];return(t.orgId?o.find(e=>String(e.id)===t.orgId)?.slug:o.find(e=>String(e.id)===t.projectId)?.organization?.slug)??null}e.s(["orgSlugForDsn",0,t,"parseSentryDsn",0,function(e){let r;try{r=new URL(e)}catch{return{ok:!1,error:"Sentry DSN is not a valid URL."}}if("https:"!==r.protocol&&"http:"!==r.protocol)return{ok:!1,error:"Sentry DSN must be an http(s) URL."};if(!r.username)return{ok:!1,error:"Sentry DSN is missing its public key."};let t=r.pathname.replace(/^\/|\/$/g,"");if(!/^\d+$/.test(t))return{ok:!1,error:"Sentry DSN is missing a numeric project id."};let s=r.host.match(/^o(\d+)\.ingest\.(.+)$/i),n=s?s[2]:r.host;return{ok:!0,projectId:t,orgId:s?s[1]:null,apiBase:`${r.protocol}//${n}/api/0`}}])},27252,e=>{"use strict";e.s(["default",()=>r]);let r=(0,e.i(18286).registerClientReference)(function(){throw Error("Attempted to call the default export of [project]/node_modules/.pnpm/lucide-react@1.47.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.47.0_react@19.2.8/node_modules/lucide-react/dist/esm/Icon.mjs","default")},19374,e=>{"use strict";var r=e.i(27252);e.n(r)},18286,(e,r,t)=>{"use strict";r.exports=e.r(99403).vendored["react-rsc"].ReactServerDOMTurbopackServer}];
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=%5Broot-of-the-server%5D__19yigji._.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,67119,e=>{"use strict";var t=e.i(2157),r=e.i(50227),s=e.i(39151),o=e.i(19374);function a(e,t=[],r=[]){let n,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=(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})(i.name)).charAt(0).toUpperCase()+n.slice(1)),l}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 i=a(n),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=a(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`}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={"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(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 captured per page over the last 24 hours.",connectReason:"Add your Sentry keys to see the errors on each page.",keys:{required:["SENTRY_API_KEY","SENTRY_DSN"],optional:[]},capabilities:["errors"],stats:e=>{let t=e.reduce((e,t)=>(t.sentry?.errorCount??0)>(e?.sentry?.errorCount??0)?t:e,null);return[{label:"Total Errors",value:String(e.map(e=>e.sentry?.errorCount??0).reduce((e,t)=>e+t,0))},{label:"Pages With Errors",value:`${e.filter(e=>(e.sentry?.errorCount??0)>0).length} of ${e.length}`},{label:"Noisiest Page",value:t?.name??"None"}]},columns:[{needs:"errors",header:"Errors",cell:e=>String(e.sentry?.errorCount??0)},{needs:"errors",header:"Latest Error",cell:e=>e.sentry?.latestErrors[0]?.title??"—"},{needs:"errors",header:"Last Seen",cell:e=>{let t=Date.parse(e.sentry?.latestErrors[0]?.lastSeen??"");return Number.isNaN(t)?"—":new Date(t).toLocaleString()}}]}},f=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])),x=Object.keys(h);e.s(["KEY_LABELS",0,f,"TOOLS",0,h,"TOOL_IDS",0,x,"mergeMetrics",0,function(e,t,r){let s={};for(let[o,a]of Object.entries(t)){let t=r.includes(a)?void 0:e[a]?.[o];void 0!==t&&(s[o]=t)}return s},"sourcesFor",0,function(e){let t={};for(let r of p){let s=x.find(t=>e.includes(t)&&h[t].capabilities.includes(r));s&&(t[r]=s)}return t}],67119);let m=x.flatMap(e=>h[e].keys.required),y="NEWRELIC_REGION",E={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"}},g={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 R(e){return process.env[e]??""}let b=e=>h[e].keys.required.every(e=>R(e));function S(){return process.env.METRICFLOW_PROJECT_DIR||process.cwd()}let I=/[\s\0#"'`\\$]/;e.s(["AI_PROVIDERS",0,g,"AI_PROVIDER_KEY",0,v,"INSERT_KEY",0,"NEWRELIC_INSERT_KEY","REGION_KEY",0,y,"SETUP_KEYS",0,m,"UNSAFE",0,I,"activeAi",0,function(){let e=process.env[v];for(let t of(e&&e in g?[e]:[]).concat(Object.keys(g))){let e=process.env[g[t].key];if(e)return{provider:t,key:e}}return null},"connectedTools",0,()=>x.filter(b),"env",0,R,"isToolConnected",0,b,"nrHosts",0,(e="eu"===process.env[y]?"eu":"us")=>E[e],"projectDir",0,S,"writeEnvLocal",0,function(e,s=process.env.METRICFLOW_ENV_FILE||(0,r.join)(S(),".env.local")){let o=new Set([...Object.values(h).flatMap(e=>[...e.keys.required,...e.keys.optional,...e.keys.derived??[]]),...Object.values(g).map(e=>e.key),v]);for(let[t,r]of Object.entries(e)){if(!o.has(t))throw Error("Refused to write a key name no tool declares.");if(I.test(r))throw Error("Refused to write a value with unsafe characters.")}let a=(0,t.existsSync)(s)?(0,t.readFileSync)(s,"utf8").split("\n"):[],n=new Map(Object.entries(e)),i=a.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(;i.length&&""===i[i.length-1];)i.pop();for(let[e,t]of n)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 a=e.headers.get("origin");try{return!a||t.has(new URL(a).hostname)}catch{return!1}}])},83808,e=>{"use strict";var t=e.i(60756);async function r(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}),a=Array.isArray(o.data)?o.data:[];return(r.orgId?a.find(e=>String(e.id)===r.orgId)?.slug:a.find(e=>String(e.id)===r.projectId)?.organization?.slug)??null}e.s(["orgSlugForDsn",0,r,"parseSentryDsn",0,function(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.username)return{ok:!1,error:"Sentry DSN is missing its public key."};let r=t.pathname.replace(/^\/|\/$/g,"");if(!/^\d+$/.test(r))return{ok:!1,error:"Sentry DSN is missing a numeric project id."};let s=t.host.match(/^o(\d+)\.ingest\.(.+)$/i),o=s?s[2]:t.host;return{ok:!0,projectId:r,orgId:s?s[1]:null,apiBase:`${t.protocol}//${o}/api/0`}}])},27252,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.47.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.47.0_react@19.2.8/node_modules/lucide-react/dist/esm/Icon.mjs","default")},19374,e=>{"use strict";var t=e.i(27252);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__1sf143y._.js.map
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
module.exports=[49719,(e,r,t)=>{r.exports=e.x("assert",()=>require("assert"))},54799,(e,r,t)=>{r.exports=e.x("crypto",()=>require("crypto"))},27699,(e,r,t)=>{r.exports=e.x("events",()=>require("events"))},22734,(e,r,t)=>{r.exports=e.x("fs",()=>require("fs"))},21517,(e,r,t)=>{r.exports=e.x("http",()=>require("http"))},25328,(e,r,t)=>{r.exports=e.x("http2",()=>require("http2"))},24836,(e,r,t)=>{r.exports=e.x("https",()=>require("https"))},4446,(e,r,t)=>{r.exports=e.x("net",()=>require("net"))},18622,(e,r,t)=>{r.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,r,t)=>{r.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,r,t)=>{r.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,r,t)=>{r.exports=e.x("next/dist/server/runtime-reacts.external.js",()=>require("next/dist/server/runtime-reacts.external.js"))},93695,(e,r,t)=>{r.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},2157,(e,r,t)=>{r.exports=e.x("node:fs",()=>require("node:fs"))},50227,(e,r,t)=>{r.exports=e.x("node:path",()=>require("node:path"))},81111,(e,r,t)=>{r.exports=e.x("node:stream",()=>require("node:stream"))},46786,(e,r,t)=>{r.exports=e.x("os",()=>require("os"))},14747,(e,r,t)=>{r.exports=e.x("path",()=>require("path"))},88947,(e,r,t)=>{r.exports=e.x("stream",()=>require("stream"))},55004,(e,r,t)=>{r.exports=e.x("tls",()=>require("tls"))},70722,(e,r,t)=>{r.exports=e.x("tty",()=>require("tty"))},92509,(e,r,t)=>{r.exports=e.x("url",()=>require("url"))},24361,(e,r,t)=>{r.exports=e.x("util",()=>require("util"))},6461,(e,r,t)=>{r.exports=e.x("zlib",()=>require("zlib"))},90770,e=>{"use strict";let r=new Map;e.s(["getTimings",0,function(){return Array.from(r.entries()).map(([e,r])=>({name:e,value:r})).sort((e,r)=>r.value-e.value)},"recordTiming",0,function(e,t){r.set(e,Math.round(t))}])},12892,67119,e=>{"use strict";var r=e.i(2157),t=e.i(50227),s=e.i(39151),n=e.i(19374);function o(e,r=[],t=[]){let a,l="string"==typeof e?function(e,r,t=[]){if(null==r)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:r,...t.length>0?{aliases:t}:{}}}(e,r,t):e,i=(0,s.forwardRef)(({className:e,...r},t)=>(0,s.createElement)(n.default,{ref:t,icon:l,className:e,...r}));return l.name&&(i.displayName=(a=(e=>{let r="",t=!1;for(let s of e){if("-"===s||"_"===s||s<=" "){t=r.length>0;continue}0===r.length?r+=s.toLowerCase():r+=t?s.toUpperCase():s,t=!1}return r})(l.name)).charAt(0).toUpperCase()+a.slice(1)),i}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 l=o(a),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 r=Math.abs(Math.round(e));if(r<1e3)return`${Math.round(e)}ms`;if(r<59950)return`${+(e/1e3).toFixed(1)}s`;let t=Math.round(r/1e3),s=e<0?"-":"";return t<3600?`${s}${Math.floor(t/60)}m ${t%60}s`:`${s}${Math.floor(t/3600)}h ${Math.floor(t%3600/60)}m`}let p=["pages","traffic","loadTime","apdex","vitals","ajax","errorRate","errors"],u=e=>e.length?e.reduce((e,r)=>e+r,0)/e.length:0,h={"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 r=e.newRelic.inp;return void 0===r?"—":d(r)}},{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 captured per page over the last 24 hours.",connectReason:"Add your Sentry keys to see the errors on each page.",keys:{required:["SENTRY_API_KEY","SENTRY_DSN"],optional:[]},capabilities:["errors"],stats:e=>{let r=e.reduce((e,r)=>(r.sentry?.errorCount??0)>(e?.sentry?.errorCount??0)?r:e,null);return[{label:"Total Errors",value:String(e.map(e=>e.sentry?.errorCount??0).reduce((e,r)=>e+r,0))},{label:"Pages With Errors",value:`${e.filter(e=>(e.sentry?.errorCount??0)>0).length} of ${e.length}`},{label:"Noisiest Page",value:r?.name??"None"}]},columns:[{needs:"errors",header:"Errors",cell:e=>String(e.sentry?.errorCount??0)},{needs:"errors",header:"Latest Error",cell:e=>e.sentry?.latestErrors[0]?.title??"—"},{needs:"errors",header:"Last Seen",cell:e=>{let r=Date.parse(e.sentry?.latestErrors[0]?.lastSeen??"");return Number.isNaN(r)?"—":new Date(r).toLocaleString()}}]}},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,r])=>[e,r.label])),f=Object.keys(h);e.s(["KEY_LABELS",0,x,"TOOLS",0,h,"TOOL_IDS",0,f,"mergeMetrics",0,function(e,r,t){let s={};for(let[n,o]of Object.entries(r)){let r=t.includes(o)?void 0:e[o]?.[n];void 0!==r&&(s[n]=r)}return s},"sourcesFor",0,function(e){let r={};for(let t of p){let s=f.find(r=>e.includes(r)&&h[r].capabilities.includes(t));s&&(r[t]=s)}return r}],67119);let m=f.flatMap(e=>h[e].keys.required),E="NEWRELIC_REGION",y={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"}},v={gemini:{label:"Google Gemini",key:"GEMINI_API_KEY"},claude:{label:"Anthropic Claude",key:"CLAUDE_API_KEY"},openai:{label:"OpenAI",key:"OPENAI_API_KEY"}},R="AI_PROVIDER";function g(e){return process.env[e]??""}let b=e=>h[e].keys.required.every(e=>g(e));function _(){return process.env.METRICFLOW_PROJECT_DIR||process.cwd()}let I=/[\s\0#"'`\\$]/;e.s(["AI_PROVIDERS",0,v,"AI_PROVIDER_KEY",0,R,"INSERT_KEY",0,"NEWRELIC_INSERT_KEY","REGION_KEY",0,E,"SETUP_KEYS",0,m,"UNSAFE",0,I,"activeAi",0,function(){let e=process.env[R];for(let r of(e&&e in v?[e]:[]).concat(Object.keys(v))){let e=process.env[v[r].key];if(e)return{provider:r,key:e}}return null},"connectedTools",0,()=>f.filter(b),"env",0,g,"isToolConnected",0,b,"nrHosts",0,(e="eu"===process.env[E]?"eu":"us")=>y[e],"projectDir",0,_,"writeEnvLocal",0,function(e,s=process.env.METRICFLOW_ENV_FILE||(0,t.join)(_(),".env.local")){let n=new Set([...Object.values(h).flatMap(e=>[...e.keys.required,...e.keys.optional,...e.keys.derived??[]]),...Object.values(v).map(e=>e.key),R]);for(let[r,t]of Object.entries(e)){if(!n.has(r))throw Error("Refused to write a key name no tool declares.");if(I.test(t))throw Error("Refused to write a value with unsafe characters.")}let o=(0,r.existsSync)(s)?(0,r.readFileSync)(s,"utf8").split("\n"):[],a=new Map(Object.entries(e)),l=o.map(e=>{let r=e.match(/^\s*([A-Z0-9_]+)\s*=/)?.[1];if(r&&a.has(r)){let e=a.get(r);return a.delete(r),`${r}=${e}`}return e});for(;l.length&&""===l[l.length-1];)l.pop();for(let[e,r]of a)l.push(`${e}=${r}`);let i=`${s}.tmp`;for(let[t,n]of((0,r.writeFileSync)(i,l.join("\n")+"\n",{mode:384}),(0,r.renameSync)(i,s),Object.entries(e)))process.env[t]=n}],12892)},27252,e=>{"use strict";e.s(["default",()=>r]);let r=(0,e.i(18286).registerClientReference)(function(){throw Error("Attempted to call the default export of [project]/node_modules/.pnpm/lucide-react@1.47.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.47.0_react@19.2.8/node_modules/lucide-react/dist/esm/Icon.mjs","default")},19374,e=>{"use strict";var r=e.i(27252);e.n(r)},18286,(e,r,t)=>{"use strict";r.exports=e.r(99403).vendored["react-rsc"].ReactServerDOMTurbopackServer}];
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=%5Broot-of-the-server%5D__1zlr3w0._.js.map
|