@karan171996/metricflow 0.2.0 → 0.2.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.
Files changed (80) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/build-manifest.json +3 -3
  3. package/.next/fallback-build-manifest.json +3 -3
  4. package/.next/server/app/_global-error.html +1 -1
  5. package/.next/server/app/_global-error.rsc +1 -1
  6. package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  7. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  8. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  9. package/.next/server/app/_not-found.html +1 -1
  10. package/.next/server/app/_not-found.rsc +1 -1
  11. package/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
  12. package/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
  13. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  14. package/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  15. package/.next/server/app/api/analyze/route.js +2 -2
  16. package/.next/server/app/api/analyze/route.js.nft.json +1 -1
  17. package/.next/server/app/api/connect/route.js +2 -2
  18. package/.next/server/app/api/connect/route.js.nft.json +1 -1
  19. package/.next/server/app/api/metrics/route.js +2 -2
  20. package/.next/server/app/api/metrics/route.js.nft.json +1 -1
  21. package/.next/server/app/api/settings/route.js +1 -1
  22. package/.next/server/app/api/settings/route.js.nft.json +1 -1
  23. package/.next/server/app/api/setup/ai/route.js +2 -2
  24. package/.next/server/app/api/setup/ai/route.js.nft.json +1 -1
  25. package/.next/server/app/api/setup/route.js +2 -2
  26. package/.next/server/app/api/setup/route.js.nft.json +1 -1
  27. package/.next/server/app/connect.html +1 -1
  28. package/.next/server/app/connect.rsc +1 -1
  29. package/.next/server/app/connect.segments/_full.segment.rsc +1 -1
  30. package/.next/server/app/connect.segments/_index.segment.rsc +1 -1
  31. package/.next/server/app/connect.segments/_tree.segment.rsc +1 -1
  32. package/.next/server/app/connect.segments/connect/__PAGE__.segment.rsc +1 -1
  33. package/.next/server/app/index.html +1 -1
  34. package/.next/server/app/index.rsc +1 -1
  35. package/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  36. package/.next/server/app/index.segments/_full.segment.rsc +1 -1
  37. package/.next/server/app/index.segments/_index.segment.rsc +1 -1
  38. package/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  39. package/.next/server/app/performance/[slug]/page.js.nft.json +1 -1
  40. package/.next/server/app/performance.html +1 -1
  41. package/.next/server/app/performance.rsc +1 -1
  42. package/.next/server/app/performance.segments/_full.segment.rsc +1 -1
  43. package/.next/server/app/performance.segments/_index.segment.rsc +1 -1
  44. package/.next/server/app/performance.segments/_tree.segment.rsc +1 -1
  45. package/.next/server/app/performance.segments/performance/__PAGE__.segment.rsc +1 -1
  46. package/.next/server/app/settings.html +1 -1
  47. package/.next/server/app/settings.rsc +1 -1
  48. package/.next/server/app/settings.segments/_full.segment.rsc +1 -1
  49. package/.next/server/app/settings.segments/_index.segment.rsc +1 -1
  50. package/.next/server/app/settings.segments/_tree.segment.rsc +1 -1
  51. package/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +1 -1
  52. package/.next/server/app/setup.html +1 -1
  53. package/.next/server/app/setup.rsc +1 -1
  54. package/.next/server/app/setup.segments/_full.segment.rsc +1 -1
  55. package/.next/server/app/setup.segments/_index.segment.rsc +1 -1
  56. package/.next/server/app/setup.segments/_tree.segment.rsc +1 -1
  57. package/.next/server/app/setup.segments/setup/__PAGE__.segment.rsc +1 -1
  58. package/.next/server/chunks/[root-of-the-server]__0gv2l08._.js +3 -0
  59. package/.next/server/chunks/{[root-of-the-server]__0vkb6_m._.js → [root-of-the-server]__0pbux_a._.js} +2 -2
  60. package/.next/server/chunks/[root-of-the-server]__16h-056._.js +3 -0
  61. package/.next/server/chunks/[root-of-the-server]__1mwvot_._.js +3 -0
  62. package/.next/server/chunks/[root-of-the-server]__1o8nu3b._.js +3 -0
  63. package/.next/server/chunks/[root-of-the-server]__1p0_79u._.js +3 -0
  64. package/.next/server/chunks/{_1lktrox._.js → node_modules__pnpm_0qgcly_._.js} +4 -4
  65. package/.next/server/middleware-build-manifest.js +3 -3
  66. package/.next/server/pages/404.html +1 -1
  67. package/.next/server/pages/500.html +1 -1
  68. package/.next/trace +1 -1
  69. package/.next/trace-build +1 -1
  70. package/bin/cli.mjs +1 -0
  71. package/package.json +3 -2
  72. package/.next/server/chunks/[root-of-the-server]__0i0nt_u._.js +0 -3
  73. package/.next/server/chunks/[root-of-the-server]__0jh5wh2._.js +0 -3
  74. package/.next/server/chunks/[root-of-the-server]__0ndce1-._.js +0 -3
  75. package/.next/server/chunks/[root-of-the-server]__10xpkhu._.js +0 -3
  76. package/.next/server/chunks/[root-of-the-server]__1su9v2-._.js +0 -3
  77. package/.next/server/chunks/_1ze9o4l._.js +0 -8
  78. /package/.next/static/{W3WQIPNU6SPcB55G3PD2t → hVxca481NAlwtx6J2pBuC}/_buildManifest.js +0 -0
  79. /package/.next/static/{W3WQIPNU6SPcB55G3PD2t → hVxca481NAlwtx6J2pBuC}/_clientMiddlewareManifest.js +0 -0
  80. /package/.next/static/{W3WQIPNU6SPcB55G3PD2t → hVxca481NAlwtx6J2pBuC}/_ssgManifest.js +0 -0
@@ -15,7 +15,7 @@ f:I[27499,["/_next/static/chunks/2dpz7gbtyu5go.js"],"IconMark"]
15
15
  c:X
16
16
  14:X
17
17
  14:C
18
- 0:{"buildId":"W3WQIPNU6SPcB55G3PD2t","data":[{"rsc":["$","$1","c",{"children":[["$","$L2",null,{"children":[["$","$L3",null,{}],["$","$L4",null,{"className":"bg-dash-surface","children":[["$","$L5",null,{}],["$","div",null,{"className":"flex flex-1 flex-col p-6 md:p-8 max-w-[1600px] mx-auto w-full","children":[["$","h1",null,{"className":"text-2xl font-bold text-white tracking-tight mb-2","children":"Setup"}],["$","p",null,{"className":"text-sm text-gray-400 mb-6","children":"Add your keys once to see real data. Nothing is sent anywhere except New Relic, Sentry and, if you add one, your chosen AI provider."}],["$","$L6",null,{}],["$","$L7",null,{}]]}]]}]]}],[["$","script","script-0",{"src":"/_next/static/chunks/3xupay20_o0lm.js","async":true}],["$","script","script-1",{"src":"/_next/static/chunks/23d4pgenwzdj5.js","async":true}]],["$","$L8",null,{"children":["$","$9",null,{"name":"Next.MetadataOutlet","children":"$@a"}]}]]}],"isPartial":"$@b","staleTime":"$c","varyParams":null},{"rsc":["$","$1","h",{"children":[null,["$","$Ld",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]}],["$","div",null,{"hidden":true,"children":["$","$Le",null,{"children":["$","$9",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"MetricFlow"}],["$","meta","1",{"name":"description","content":"Local performance dashboard for your site: New Relic metrics and Sentry errors per page."}],["$","link","2",{"rel":"icon","href":"/icon.svg?icon.23mz8iwcatff2.svg","sizes":"any","type":"image/svg+xml"}],["$","$Lf","3",{}]]}]}]}],null]}],"isPartial":"$@10","staleTime":"$c","varyParams":null},{"rsc":["$","$1","c",{"children":[null,["$","$L11",null,{"parallelRouterKey":"children","template":["$","$L12",null,{}]}]]}],"isPartial":"$@13","staleTime":"$c","varyParams":"$14"}],"isUpgradeableISRFallback":false,"a":"$@15","rootVaryParams":null,"needsRuntimeRequest":"$@16"}
18
+ 0:{"buildId":"hVxca481NAlwtx6J2pBuC","data":[{"rsc":["$","$1","c",{"children":[["$","$L2",null,{"children":[["$","$L3",null,{}],["$","$L4",null,{"className":"bg-dash-surface","children":[["$","$L5",null,{}],["$","div",null,{"className":"flex flex-1 flex-col p-6 md:p-8 max-w-[1600px] mx-auto w-full","children":[["$","h1",null,{"className":"text-2xl font-bold text-white tracking-tight mb-2","children":"Setup"}],["$","p",null,{"className":"text-sm text-gray-400 mb-6","children":"Add your keys once to see real data. Nothing is sent anywhere except New Relic, Sentry and, if you add one, your chosen AI provider."}],["$","$L6",null,{}],["$","$L7",null,{}]]}]]}]]}],[["$","script","script-0",{"src":"/_next/static/chunks/3xupay20_o0lm.js","async":true}],["$","script","script-1",{"src":"/_next/static/chunks/23d4pgenwzdj5.js","async":true}]],["$","$L8",null,{"children":["$","$9",null,{"name":"Next.MetadataOutlet","children":"$@a"}]}]]}],"isPartial":"$@b","staleTime":"$c","varyParams":null},{"rsc":["$","$1","h",{"children":[null,["$","$Ld",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]}],["$","div",null,{"hidden":true,"children":["$","$Le",null,{"children":["$","$9",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"MetricFlow"}],["$","meta","1",{"name":"description","content":"Local performance dashboard for your site: New Relic metrics and Sentry errors per page."}],["$","link","2",{"rel":"icon","href":"/icon.svg?icon.23mz8iwcatff2.svg","sizes":"any","type":"image/svg+xml"}],["$","$Lf","3",{}]]}]}]}],null]}],"isPartial":"$@10","staleTime":"$c","varyParams":null},{"rsc":["$","$1","c",{"children":[null,["$","$L11",null,{"parallelRouterKey":"children","template":["$","$L12",null,{}]}]]}],"isPartial":"$@13","staleTime":"$c","varyParams":"$14"}],"isUpgradeableISRFallback":false,"a":"$@15","rootVaryParams":null,"needsRuntimeRequest":"$@16"}
19
19
  a:null
20
20
  16:true
21
21
  c:300
@@ -0,0 +1,3 @@
1
+ module.exports=[54799,(e,t,r)=>{t.exports=e.x("crypto",()=>require("crypto"))},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"))},14747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},60780,e=>{"use strict";var t=e.i(2157),r=e.i(50227),n=e.i(24514),s=e.i(12892);let a={loadSeconds:1.5,errorPercent:2,uptimeSLA:99.9},o=()=>process.env.METRICFLOW_SETTINGS_FILE||(0,r.join)((0,s.projectDir)(),".metricflow-settings.json"),i={loadSeconds:[.1,30],errorPercent:[.1,100],uptimeSLA:[90,100]};function l(){try{return{...a,...JSON.parse((0,t.readFileSync)(o(),"utf8"))}}catch{return a}}async function u(){return Response.json(l())}async function c(e){let r;if(!(0,n.isLocalRequest)(e))return Response.json({error:(0,n.REFUSAL_MESSAGE)()},{status:403});try{r=await e.json()}catch{return Response.json({error:"Invalid request body."},{status:400})}let s=l();for(let[e,[t,n]]of Object.entries(i)){if(void 0===r[e])continue;let a=r[e];if("number"!=typeof a||!Number.isFinite(a)||a<t||a>n)return Response.json({error:`${e} must be a number between ${t} and ${n}.`},{status:400});s[e]=a}try{let e=`${o()}.tmp`;(0,t.writeFileSync)(e,JSON.stringify(s,null,2)),(0,t.renameSync)(e,o())}catch{return Response.json({error:"Settings could not be written. Check folder permissions."},{status:500})}return Response.json(s)}e.s(["GET",0,u,"PUT",0,c],60780)},30229,e=>{"use strict";var t=e.i(12425),r=e.i(83353),n=e.i(47902),s=e.i(37892),a=e.i(54261),o=e.i(39548),i=e.i(68187),l=e.i(63984),u=e.i(88743),c=e.i(24698),p=e.i(13487),d=e.i(48776),h=e.i(29398),R=e.i(31610),E=e.i(45919),f=e.i(93695),v=e.i(12741);e.i(95315);var x=e.i(98732);let g=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/settings/route",pathname:"/api/settings",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/app/api/settings/route.ts",nextConfigOutput:"",userland:()=>e.r(60780),...{}}),{workAsyncStorage:m,workUnitAsyncStorage:w,serverHooks:S}=g;async function C(e,t,n){n.requestMeta&&(0,s.setRequestMeta)(e,n.requestMeta),g.isDev&&(0,s.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let m="/api/settings/route";m=m.replace(/\/index$/,"")||"/";let w=await g.prepare(e,t,{srcPage:m,multiZoneDraftMode:!1});if(!w)return t.statusCode=400,t.end("Bad Request"),null==n.waitUntil||n.waitUntil.call(n,Promise.resolve()),null;let{buildId:S,deploymentId:C,params:_,nextConfig:y,parsedUrl:A,isDraftMode:I,prerenderManifest:b,routerServerContext:T,isOnDemandRevalidate:O,revalidateOnlyGenerated:N,resolvedPathname:P,clientReferenceManifest:q,serverActionsManifest:j}=w,L=(0,i.normalizeAppPath)(m),k=!!b.routes[P]&&(g.isDev||(0,v.isRouteCacheOwner)(P,g.cacheOwner,b.routes[P])),D=!!(b.dynamicRoutes[L]||k),M=async()=>((null==T?void 0:T.render404)?await T.render404(e,t,A,!1):t.end("This page could not be found"),null);if(D&&!I){let e=b.dynamicRoutes[L];if(e&&!1===e.fallback&&!k){if(y.adapterPath)return await M();throw new f.NoFallbackError}}let U=null;!D||g.isDev||I||(U="/index"===(U=P)?"/":U);let F=!0===g.isDev||!D,H=D&&!F;j&&q&&(0,o.setManifestsSingleton)({page:m,clientReferenceManifest:q,serverActionsManifest:j});let K=e.method||"GET",$=(0,a.getTracer)(),G=$.getActiveScopeSpan(),Y=!!(null==T?void 0:T.isWrappedByNextServer),W=!!(0,s.getRequestMeta)(e,"minimalMode"),B=(0,s.getRequestMeta)(e,"incrementalCache")||await g.getIncrementalCache(e,y,b,W);null==B||B.resetRequestCache(),globalThis.__incrementalCache=B;let V={params:_,previewProps:b.preview,renderOpts:{experimental:{authInterrupts:!!y.experimental.authInterrupts,useCacheTimeout:y.experimental.useCacheTimeout},cacheComponents:!!y.cacheComponents,validationLevel:y.experimental.instantInsights.validationLevel,isDraftMode:I,supportsDynamicResponse:F,incrementalCache:B,hmrRefreshHash:(0,s.getRequestMeta)(e,"hmrRefreshHash"),cacheLifeProfiles:y.cacheLife,staticPageGenerationTimeout:y.staticPageGenerationTimeout,waitUntil:n.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,n,s)=>g.onRequestError(e,t,n,s,T)},sharedContext:{buildId:S,deploymentId:C}},X=new l.NodeNextRequest(e),J=new l.NodeNextResponse(t),Z=u.NextRequestAdapter.fromNodeNextRequest(X,(0,u.signalFromNodeResponse)(t)),z=async({previousCacheEntry:r})=>{try{if(!W&&O&&N&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let s=await g.handle(Z,V);e.fetchMetrics=V.renderOpts.fetchMetrics;let a=V.renderOpts.pendingWaitUntil;a&&n.waitUntil&&(n.waitUntil(a),a=void 0);let o=V.renderOpts.collectedTags;if(!D)return await (0,d.sendResponse)(X,J,s,a),null;{let e=await s.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(s.headers);o&&(t[E.NEXT_CACHE_TAGS_HEADER]=o),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==V.renderOpts.collectedRevalidate&&!(V.renderOpts.collectedRevalidate>=E.INFINITE_CACHE)&&V.renderOpts.collectedRevalidate,n=void 0===V.renderOpts.collectedExpire||V.renderOpts.collectedExpire>=E.INFINITE_CACHE?!1!==r&&r>0?y.expireTime:void 0:V.renderOpts.collectedExpire;return{value:{kind:x.CachedRouteKind.APP_ROUTE,status:s.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:n}}}}catch(t){throw(null==r?void 0:r.isStale)&&await g.onRequestError(e,t,{routerKind:"App Router",routePath:m,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:O})},!1,T),t}},Q=async(s,o)=>{try{var i,l;let s=await g.handleResponse({req:e,nextConfig:y,cacheKey:U,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:b,isRoutePPREnabled:!1,isOnDemandRevalidate:O,revalidateOnlyGenerated:N,responseGenerator:z,waitUntil:n.waitUntil,isMinimalMode:W});if(!D)return;if((null==s||null==(i=s.value)?void 0:i.kind)!==x.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==s||null==(l=s.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});W||t.setHeader("x-nextjs-cache",O?"REVALIDATED":s.isMiss?"MISS":s.isStale?"STALE":"HIT"),I&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let a=(0,h.fromNodeOutgoingHttpHeaders)(s.value.headers);W&&D||a.delete(E.NEXT_CACHE_TAGS_HEADER),!s.cacheControl||t.getHeader("Cache-Control")||a.get("Cache-Control")||a.set("Cache-Control",(0,R.getCacheControlHeader)(s.cacheControl)),await (0,d.sendResponse)(X,J,new Response(s.value.body,{headers:a,status:s.value.status||200}));return}catch(t){if(t instanceof f.NoFallbackError||await g.onRequestError(e,t,{routerKind:"App Router",routePath:L,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:O})},!1,T),D)throw t;await (0,d.sendResponse)(X,J,new Response(null,{status:500}));return}finally{(()=>{if(!s)return;let e=t.statusCode;s.setAttributes({"http.status_code":e,"next.rsc":!1}),e&&e>=500&&(s.setStatus({code:a.SpanStatusCode.ERROR}),s.setAttribute("error.type",e.toString()));let r=$.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==c.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 n=r.get("next.route")||L,i=`${K} ${n}`;s.setAttributes({"next.route":n,"http.route":n,"next.span_name":i}),s.updateName(i),o&&o!==s&&(o.setAttribute("http.route",n),o.updateName(i))})()}};if(Y&&G)await Q(G,void 0);else{let t=$.getActiveScopeSpan();await $.withPropagatedContext(e.headers,()=>$.trace(c.BaseServerSpan.handleRequest,{spanName:`${K} ${m}`,kind:a.SpanKind.SERVER,attributes:{"http.method":K,"http.target":e.url}},e=>Q(e,t)),void 0,!Y)}}e.s(["handler",0,C,"patchFetch",0,function(){return(0,n.patchFetch)({workAsyncStorage:m,workUnitAsyncStorage:w})},"routeModule",0,g,"serverHooks",0,S,"workAsyncStorage",0,m,"workUnitAsyncStorage",0,w])},12892,e=>{"use strict";var t=e.i(2157),r=e.i(50227);let n=["NEWRELIC_API_KEY","NEXT_PUBLIC_NEWRELIC_ACCOUNT_ID","SENTRY_API_KEY","SENTRY_DSN"],s="NEWRELIC_REGION",a={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"}},o={gemini:{label:"Google Gemini",key:"GEMINI_API_KEY"},claude:{label:"Anthropic Claude",key:"CLAUDE_API_KEY"},openai:{label:"OpenAI",key:"OPENAI_API_KEY"}},i="AI_PROVIDER";function l(e){return process.env[e]??""}function u(){return process.env.METRICFLOW_PROJECT_DIR||process.cwd()}e.s(["AI_PROVIDERS",0,o,"AI_PROVIDER_KEY",0,i,"INSERT_KEY",0,"NEWRELIC_INSERT_KEY","REGION_KEY",0,s,"SETUP_KEYS",0,n,"activeAi",0,function(){let e=process.env[i];for(let t of(e&&e in o?[e]:[]).concat(Object.keys(o))){let e=process.env[o[t].key];if(e)return{provider:t,key:e}}return null},"env",0,l,"isConfigured",0,function(){return n.every(e=>l(e))},"nrHosts",0,(e="eu"===process.env[s]?"eu":"us")=>a[e],"projectDir",0,u,"writeEnvLocal",0,function(e,n=process.env.METRICFLOW_ENV_FILE||(0,r.join)(u(),".env.local")){let s=(0,t.existsSync)(n)?(0,t.readFileSync)(n,"utf8").split("\n"):[],a=new Map(Object.entries(e)),o=s.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(;o.length&&""===o[o.length-1];)o.pop();for(let[e,t]of a)o.push(`${e}=${t}`);let i=`${n}.tmp`;for(let[r,s]of((0,t.writeFileSync)(i,o.join("\n")+"\n",{mode:384}),(0,t.renameSync)(i,n),Object.entries(e)))process.env[r]=s}])},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 n=e.headers.get("x-forwarded-for");if(n&&!n.split(",").every(e=>r.has(e.trim().replace(/^\[|\]$/g,""))))return!1;let s=(e.headers.get("host")??"").replace(/:\d+$/,"");if(!t.has(s))return!1;let a=e.headers.get("origin");try{return!a||t.has(new URL(a).hostname)}catch{return!1}}])}];
2
+
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__0gv2l08._.js.map
@@ -1,3 +1,3 @@
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))}])}];
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,e=>{"use strict";var r=e.i(2157),t=e.i(50227);let s=["NEWRELIC_API_KEY","NEXT_PUBLIC_NEWRELIC_ACCOUNT_ID","SENTRY_API_KEY","SENTRY_DSN"],n="NEWRELIC_REGION",o={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"}},i={gemini:{label:"Google Gemini",key:"GEMINI_API_KEY"},claude:{label:"Anthropic Claude",key:"CLAUDE_API_KEY"},openai:{label:"OpenAI",key:"OPENAI_API_KEY"}},p="AI_PROVIDER";function a(e){return process.env[e]??""}function u(){return process.env.METRICFLOW_PROJECT_DIR||process.cwd()}e.s(["AI_PROVIDERS",0,i,"AI_PROVIDER_KEY",0,p,"INSERT_KEY",0,"NEWRELIC_INSERT_KEY","REGION_KEY",0,n,"SETUP_KEYS",0,s,"activeAi",0,function(){let e=process.env[p];for(let r of(e&&e in i?[e]:[]).concat(Object.keys(i))){let e=process.env[i[r].key];if(e)return{provider:r,key:e}}return null},"env",0,a,"isConfigured",0,function(){return s.every(e=>a(e))},"nrHosts",0,(e="eu"===process.env[n]?"eu":"us")=>o[e],"projectDir",0,u,"writeEnvLocal",0,function(e,s=process.env.METRICFLOW_ENV_FILE||(0,t.join)(u(),".env.local")){let n=(0,r.existsSync)(s)?(0,r.readFileSync)(s,"utf8").split("\n"):[],o=new Map(Object.entries(e)),i=n.map(e=>{let r=e.match(/^\s*([A-Z0-9_]+)\s*=/)?.[1];if(r&&o.has(r)){let e=o.get(r);return o.delete(r),`${r}=${e}`}return e});for(;i.length&&""===i[i.length-1];)i.pop();for(let[e,r]of o)i.push(`${e}=${r}`);let p=`${s}.tmp`;for(let[t,n]of((0,r.writeFileSync)(p,i.join("\n")+"\n",{mode:384}),(0,r.renameSync)(p,s),Object.entries(e)))process.env[t]=n}])}];
2
2
 
3
- //# sourceMappingURL=%5Broot-of-the-server%5D__0vkb6_m._.js.map
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__0pbux_a._.js.map
@@ -0,0 +1,3 @@
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"))},12892,e=>{"use strict";var r=e.i(2157),t=e.i(50227);let s=["NEWRELIC_API_KEY","NEXT_PUBLIC_NEWRELIC_ACCOUNT_ID","SENTRY_API_KEY","SENTRY_DSN"],n="NEWRELIC_REGION",o={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"}},i={gemini:{label:"Google Gemini",key:"GEMINI_API_KEY"},claude:{label:"Anthropic Claude",key:"CLAUDE_API_KEY"},openai:{label:"OpenAI",key:"OPENAI_API_KEY"}},a="AI_PROVIDER";function p(e){return process.env[e]??""}function u(){return process.env.METRICFLOW_PROJECT_DIR||process.cwd()}e.s(["AI_PROVIDERS",0,i,"AI_PROVIDER_KEY",0,a,"INSERT_KEY",0,"NEWRELIC_INSERT_KEY","REGION_KEY",0,n,"SETUP_KEYS",0,s,"activeAi",0,function(){let e=process.env[a];for(let r of(e&&e in i?[e]:[]).concat(Object.keys(i))){let e=process.env[i[r].key];if(e)return{provider:r,key:e}}return null},"env",0,p,"isConfigured",0,function(){return s.every(e=>p(e))},"nrHosts",0,(e="eu"===process.env[n]?"eu":"us")=>o[e],"projectDir",0,u,"writeEnvLocal",0,function(e,s=process.env.METRICFLOW_ENV_FILE||(0,t.join)(u(),".env.local")){let n=(0,r.existsSync)(s)?(0,r.readFileSync)(s,"utf8").split("\n"):[],o=new Map(Object.entries(e)),i=n.map(e=>{let r=e.match(/^\s*([A-Z0-9_]+)\s*=/)?.[1];if(r&&o.has(r)){let e=o.get(r);return o.delete(r),`${r}=${e}`}return e});for(;i.length&&""===i[i.length-1];)i.pop();for(let[e,r]of o)i.push(`${e}=${r}`);let a=`${s}.tmp`;for(let[t,n]of((0,r.writeFileSync)(a,i.join("\n")+"\n",{mode:384}),(0,r.renameSync)(a,s),Object.entries(e)))process.env[t]=n}])},24514,e=>{"use strict";let r=new Set(["localhost","127.0.0.1","[::1]"]),t=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=>t.has(e.trim().replace(/^\[|\]$/g,""))))return!1;let n=(e.headers.get("host")??"").replace(/:\d+$/,"");if(!r.has(n))return!1;let o=e.headers.get("origin");try{return!o||r.has(new URL(o).hostname)}catch{return!1}}])},84594,e=>{"use strict";var r=e.i(60756),t=e.i(12892);async function s(e,n=()=>!1){let o,i;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;i=t}try{let r=await e((0,t.nrHosts)("eu"));if(!n(r))return process.env[t.REGION_KEY]="eu",r}catch{}if(i)throw i;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`}}])}];
2
+
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__16h-056._.js.map
@@ -0,0 +1,3 @@
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,e=>{"use strict";var r=e.i(2157),t=e.i(50227);let s=["NEWRELIC_API_KEY","NEXT_PUBLIC_NEWRELIC_ACCOUNT_ID","SENTRY_API_KEY","SENTRY_DSN"],n="NEWRELIC_REGION",o={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"}},i={gemini:{label:"Google Gemini",key:"GEMINI_API_KEY"},claude:{label:"Anthropic Claude",key:"CLAUDE_API_KEY"},openai:{label:"OpenAI",key:"OPENAI_API_KEY"}},a="AI_PROVIDER";function p(e){return process.env[e]??""}function u(){return process.env.METRICFLOW_PROJECT_DIR||process.cwd()}e.s(["AI_PROVIDERS",0,i,"AI_PROVIDER_KEY",0,a,"INSERT_KEY",0,"NEWRELIC_INSERT_KEY","REGION_KEY",0,n,"SETUP_KEYS",0,s,"activeAi",0,function(){let e=process.env[a];for(let r of(e&&e in i?[e]:[]).concat(Object.keys(i))){let e=process.env[i[r].key];if(e)return{provider:r,key:e}}return null},"env",0,p,"isConfigured",0,function(){return s.every(e=>p(e))},"nrHosts",0,(e="eu"===process.env[n]?"eu":"us")=>o[e],"projectDir",0,u,"writeEnvLocal",0,function(e,s=process.env.METRICFLOW_ENV_FILE||(0,t.join)(u(),".env.local")){let n=(0,r.existsSync)(s)?(0,r.readFileSync)(s,"utf8").split("\n"):[],o=new Map(Object.entries(e)),i=n.map(e=>{let r=e.match(/^\s*([A-Z0-9_]+)\s*=/)?.[1];if(r&&o.has(r)){let e=o.get(r);return o.delete(r),`${r}=${e}`}return e});for(;i.length&&""===i[i.length-1];)i.pop();for(let[e,r]of o)i.push(`${e}=${r}`);let a=`${s}.tmp`;for(let[t,n]of((0,r.writeFileSync)(a,i.join("\n")+"\n",{mode:384}),(0,r.renameSync)(a,s),Object.entries(e)))process.env[t]=n}])},84594,e=>{"use strict";var r=e.i(60756),t=e.i(12892);async function s(e,n=()=>!1){let o,i;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;i=t}try{let r=await e((0,t.nrHosts)("eu"));if(!n(r))return process.env[t.REGION_KEY]="eu",r}catch{}if(i)throw i;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`}}])}];
2
+
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__1mwvot_._.js.map
@@ -0,0 +1,3 @@
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"))},12892,e=>{"use strict";var r=e.i(2157),t=e.i(50227);let s=["NEWRELIC_API_KEY","NEXT_PUBLIC_NEWRELIC_ACCOUNT_ID","SENTRY_API_KEY","SENTRY_DSN"],n="NEWRELIC_REGION",o={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"}},i={gemini:{label:"Google Gemini",key:"GEMINI_API_KEY"},claude:{label:"Anthropic Claude",key:"CLAUDE_API_KEY"},openai:{label:"OpenAI",key:"OPENAI_API_KEY"}},a="AI_PROVIDER";function p(e){return process.env[e]??""}function l(){return process.env.METRICFLOW_PROJECT_DIR||process.cwd()}e.s(["AI_PROVIDERS",0,i,"AI_PROVIDER_KEY",0,a,"INSERT_KEY",0,"NEWRELIC_INSERT_KEY","REGION_KEY",0,n,"SETUP_KEYS",0,s,"activeAi",0,function(){let e=process.env[a];for(let r of(e&&e in i?[e]:[]).concat(Object.keys(i))){let e=process.env[i[r].key];if(e)return{provider:r,key:e}}return null},"env",0,p,"isConfigured",0,function(){return s.every(e=>p(e))},"nrHosts",0,(e="eu"===process.env[n]?"eu":"us")=>o[e],"projectDir",0,l,"writeEnvLocal",0,function(e,s=process.env.METRICFLOW_ENV_FILE||(0,t.join)(l(),".env.local")){let n=(0,r.existsSync)(s)?(0,r.readFileSync)(s,"utf8").split("\n"):[],o=new Map(Object.entries(e)),i=n.map(e=>{let r=e.match(/^\s*([A-Z0-9_]+)\s*=/)?.[1];if(r&&o.has(r)){let e=o.get(r);return o.delete(r),`${r}=${e}`}return e});for(;i.length&&""===i[i.length-1];)i.pop();for(let[e,r]of o)i.push(`${e}=${r}`);let a=`${s}.tmp`;for(let[t,n]of((0,r.writeFileSync)(a,i.join("\n")+"\n",{mode:384}),(0,r.renameSync)(a,s),Object.entries(e)))process.env[t]=n}])},24514,e=>{"use strict";let r=new Set(["localhost","127.0.0.1","[::1]"]),t=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=>t.has(e.trim().replace(/^\[|\]$/g,""))))return!1;let n=(e.headers.get("host")??"").replace(/:\d+$/,"");if(!r.has(n))return!1;let o=e.headers.get("origin");try{return!o||r.has(new URL(o).hostname)}catch{return!1}}])},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`}}])}];
2
+
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__1o8nu3b._.js.map
@@ -0,0 +1,3 @@
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=/[\s\0#"'`\\$]/,n=()=>Response.json({error:(0,s.REFUSAL_MESSAGE)()},{status:403}),o={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 i(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]]))}):n()}async function l(e){let i;if(!(0,s.isLocalRequest)(e))return n();try{i=await e.json()}catch{return Response.json({error:"Invalid request body."},{status:400})}let l=i.provider;if(!("string"==typeof l&&l in r.AI_PROVIDERS))return Response.json({saved:!1,error:"Choose a provider."},{status:400});let u="string"==typeof i.key?i.key.trim():"";if(!u)return Response.json({saved:!1,error:"Required."},{status:400});if(a.test(u))return Response.json({saved:!1,error:"Contains spaces or special characters. Paste the key without them."},{status:400});try{await o[l](u)}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]:u})}catch{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,i,"POST",0,l])},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),u=e.i(88743),p=e.i(24698),c=e.i(13487),d=e.i(48776),h=e.i(29398),R=e.i(31610),x=e.i(45919),v=e.i(93695),E=e.i(12741);e.i(95315);var f=e.i(98732);let m=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:g,workUnitAsyncStorage:y,serverHooks:w}=m;async function _(e,t,s){s.requestMeta&&(0,a.setRequestMeta)(e,s.requestMeta),m.isDev&&(0,a.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let g="/api/setup/ai/route";g=g.replace(/\/index$/,"")||"/";let y=await m.prepare(e,t,{srcPage:g,multiZoneDraftMode:!1});if(!y)return t.statusCode=400,t.end("Bad Request"),null==s.waitUntil||s.waitUntil.call(s,Promise.resolve()),null;let{buildId:w,deploymentId:_,params:C,nextConfig:I,parsedUrl:A,isDraftMode:S,prerenderManifest:q,routerServerContext:b,isOnDemandRevalidate:O,revalidateOnlyGenerated:P,resolvedPathname:T,clientReferenceManifest:N,serverActionsManifest:j}=y,k=(0,i.normalizeAppPath)(g),D=!!q.routes[T]&&(m.isDev||(0,E.isRouteCacheOwner)(T,m.cacheOwner,q.routes[T])),L=!!(q.dynamicRoutes[k]||D),M=async()=>((null==b?void 0:b.render404)?await b.render404(e,t,A,!1):t.end("This page could not be found"),null);if(L&&!S){let e=q.dynamicRoutes[k];if(e&&!1===e.fallback&&!D){if(I.adapterPath)return await M();throw new v.NoFallbackError}}let U=null;!L||m.isDev||S||(U="/index"===(U=T)?"/":U);let H=!0===m.isDev||!L,K=L&&!H;j&&N&&(0,o.setManifestsSingleton)({page:g,clientReferenceManifest:N,serverActionsManifest:j});let $=e.method||"GET",F=(0,n.getTracer)(),G=F.getActiveScopeSpan(),V=!!(null==b?void 0:b.isWrappedByNextServer),Y=!!(0,a.getRequestMeta)(e,"minimalMode"),W=(0,a.getRequestMeta)(e,"incrementalCache")||await m.getIncrementalCache(e,I,q,Y);null==W||W.resetRequestCache(),globalThis.__incrementalCache=W;let B={params:C,previewProps:q.preview,renderOpts:{experimental:{authInterrupts:!!I.experimental.authInterrupts,useCacheTimeout:I.experimental.useCacheTimeout},cacheComponents:!!I.cacheComponents,validationLevel:I.experimental.instantInsights.validationLevel,isDraftMode:S,supportsDynamicResponse:H,incrementalCache:W,hmrRefreshHash:(0,a.getRequestMeta)(e,"hmrRefreshHash"),cacheLifeProfiles:I.cacheLife,staticPageGenerationTimeout:I.staticPageGenerationTimeout,waitUntil:s.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,s,a)=>m.onRequestError(e,t,s,a,b)},sharedContext:{buildId:w,deploymentId:_}},X=new l.NodeNextRequest(e),z=new l.NodeNextResponse(t),Z=u.NextRequestAdapter.fromNodeNextRequest(X,(0,u.signalFromNodeResponse)(t)),J=async({previousCacheEntry:r})=>{try{if(!Y&&O&&P&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let a=await m.handle(Z,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(!L)return await (0,d.sendResponse)(X,z,a,n),null;{let e=await a.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(a.headers);o&&(t[x.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>=x.INFINITE_CACHE)&&B.renderOpts.collectedRevalidate,s=void 0===B.renderOpts.collectedExpire||B.renderOpts.collectedExpire>=x.INFINITE_CACHE?!1!==r&&r>0?I.expireTime:void 0:B.renderOpts.collectedExpire;return{value:{kind:f.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 m.onRequestError(e,t,{routerKind:"App Router",routePath:g,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:K,isOnDemandRevalidate:O})},!1,b),t}},Q=async(a,o)=>{try{var i,l;let a=await m.handleResponse({req:e,nextConfig:I,cacheKey:U,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:q,isRoutePPREnabled:!1,isOnDemandRevalidate:O,revalidateOnlyGenerated:P,responseGenerator:J,waitUntil:s.waitUntil,isMinimalMode:Y});if(!L)return;if((null==a||null==(i=a.value)?void 0:i.kind)!==f.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});Y||t.setHeader("x-nextjs-cache",O?"REVALIDATED":a.isMiss?"MISS":a.isStale?"STALE":"HIT"),S&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let n=(0,h.fromNodeOutgoingHttpHeaders)(a.value.headers);Y&&L||n.delete(x.NEXT_CACHE_TAGS_HEADER),!a.cacheControl||t.getHeader("Cache-Control")||n.get("Cache-Control")||n.set("Cache-Control",(0,R.getCacheControlHeader)(a.cacheControl)),await (0,d.sendResponse)(X,z,new Response(a.value.body,{headers:n,status:a.value.status||200}));return}catch(t){if(t instanceof v.NoFallbackError||await m.onRequestError(e,t,{routerKind:"App Router",routePath:k,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:K,isOnDemandRevalidate:O})},!1,b),L)throw t;await (0,d.sendResponse)(X,z,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=F.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==p.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")||k,i=`${$} ${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(V&&G)await Q(G,void 0);else{let t=F.getActiveScopeSpan();await F.withPropagatedContext(e.headers,()=>F.trace(p.BaseServerSpan.handleRequest,{spanName:`${$} ${g}`,kind:n.SpanKind.SERVER,attributes:{"http.method":$,"http.target":e.url}},e=>Q(e,t)),void 0,!V)}}e.s(["handler",0,_,"patchFetch",0,function(){return(0,s.patchFetch)({workAsyncStorage:g,workUnitAsyncStorage:y})},"routeModule",0,m,"serverHooks",0,w,"workAsyncStorage",0,g,"workUnitAsyncStorage",0,y])},12892,e=>{"use strict";var t=e.i(2157),r=e.i(50227);let s=["NEWRELIC_API_KEY","NEXT_PUBLIC_NEWRELIC_ACCOUNT_ID","SENTRY_API_KEY","SENTRY_DSN"],a="NEWRELIC_REGION",n={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"}},o={gemini:{label:"Google Gemini",key:"GEMINI_API_KEY"},claude:{label:"Anthropic Claude",key:"CLAUDE_API_KEY"},openai:{label:"OpenAI",key:"OPENAI_API_KEY"}},i="AI_PROVIDER";function l(e){return process.env[e]??""}function u(){return process.env.METRICFLOW_PROJECT_DIR||process.cwd()}e.s(["AI_PROVIDERS",0,o,"AI_PROVIDER_KEY",0,i,"INSERT_KEY",0,"NEWRELIC_INSERT_KEY","REGION_KEY",0,a,"SETUP_KEYS",0,s,"activeAi",0,function(){let e=process.env[i];for(let t of(e&&e in o?[e]:[]).concat(Object.keys(o))){let e=process.env[o[t].key];if(e)return{provider:t,key:e}}return null},"env",0,l,"isConfigured",0,function(){return s.every(e=>l(e))},"nrHosts",0,(e="eu"===process.env[a]?"eu":"us")=>n[e],"projectDir",0,u,"writeEnvLocal",0,function(e,s=process.env.METRICFLOW_ENV_FILE||(0,r.join)(u(),".env.local")){let a=(0,t.existsSync)(s)?(0,t.readFileSync)(s,"utf8").split("\n"):[],n=new Map(Object.entries(e)),o=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(;o.length&&""===o[o.length-1];)o.pop();for(let[e,t]of n)o.push(`${e}=${t}`);let i=`${s}.tmp`;for(let[r,a]of((0,t.writeFileSync)(i,o.join("\n")+"\n",{mode:384}),(0,t.renameSync)(i,s),Object.entries(e)))process.env[r]=a}])},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,""))))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}}])}];
2
+
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__1p0_79u._.js.map