@karan171996/metricflow 0.1.7 → 0.1.8

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 (70) 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.nft.json +1 -1
  16. package/.next/server/app/api/connect/route.js +1 -1
  17. package/.next/server/app/api/connect/route.js.nft.json +1 -1
  18. package/.next/server/app/api/metrics/route.js +2 -2
  19. package/.next/server/app/api/metrics/route.js.nft.json +1 -1
  20. package/.next/server/app/api/setup/ai/route.js.nft.json +1 -1
  21. package/.next/server/app/api/setup/route.js.nft.json +1 -1
  22. package/.next/server/app/connect.html +1 -1
  23. package/.next/server/app/connect.rsc +1 -1
  24. package/.next/server/app/connect.segments/_full.segment.rsc +1 -1
  25. package/.next/server/app/connect.segments/_index.segment.rsc +1 -1
  26. package/.next/server/app/connect.segments/_tree.segment.rsc +1 -1
  27. package/.next/server/app/connect.segments/connect/__PAGE__.segment.rsc +1 -1
  28. package/.next/server/app/index.html +1 -1
  29. package/.next/server/app/index.rsc +1 -1
  30. package/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  31. package/.next/server/app/index.segments/_full.segment.rsc +1 -1
  32. package/.next/server/app/index.segments/_index.segment.rsc +1 -1
  33. package/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  34. package/.next/server/app/performance/[slug]/page.js +1 -1
  35. package/.next/server/app/performance/[slug]/page.js.nft.json +1 -1
  36. package/.next/server/app/performance.html +1 -1
  37. package/.next/server/app/performance.rsc +1 -1
  38. package/.next/server/app/performance.segments/_full.segment.rsc +1 -1
  39. package/.next/server/app/performance.segments/_index.segment.rsc +1 -1
  40. package/.next/server/app/performance.segments/_tree.segment.rsc +1 -1
  41. package/.next/server/app/performance.segments/performance/__PAGE__.segment.rsc +1 -1
  42. package/.next/server/app/settings.html +1 -1
  43. package/.next/server/app/settings.rsc +1 -1
  44. package/.next/server/app/settings.segments/_full.segment.rsc +1 -1
  45. package/.next/server/app/settings.segments/_index.segment.rsc +1 -1
  46. package/.next/server/app/settings.segments/_tree.segment.rsc +1 -1
  47. package/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +1 -1
  48. package/.next/server/app/setup.html +1 -1
  49. package/.next/server/app/setup.rsc +1 -1
  50. package/.next/server/app/setup.segments/_full.segment.rsc +1 -1
  51. package/.next/server/app/setup.segments/_index.segment.rsc +1 -1
  52. package/.next/server/app/setup.segments/_tree.segment.rsc +1 -1
  53. package/.next/server/app/setup.segments/setup/__PAGE__.segment.rsc +1 -1
  54. package/.next/server/chunks/{[root-of-the-server]__0eo1oa6._.js → [root-of-the-server]__02yfc43._.js} +2 -2
  55. package/.next/server/chunks/[root-of-the-server]__1226gv2._.js +3 -0
  56. package/.next/server/chunks/_0w8wvdn._.js +1 -1
  57. package/.next/server/chunks/_0wct7-r._.js +6 -6
  58. package/.next/server/chunks/_1l9d64o._.js +1 -1
  59. package/.next/server/chunks/_1lktrox._.js +3 -3
  60. package/.next/server/chunks/_1ze9o4l._.js +3 -3
  61. package/.next/server/chunks/ssr/_0htqt7_._.js +2 -2
  62. package/.next/server/middleware-build-manifest.js +3 -3
  63. package/.next/server/pages/404.html +1 -1
  64. package/.next/server/pages/500.html +1 -1
  65. package/.next/trace +1 -1
  66. package/.next/trace-build +1 -1
  67. package/package.json +1 -1
  68. /package/.next/static/{t8OSNsKVHYWgJDib_ucGw → 4eFlFb3mHDe_1sW60xSTA}/_buildManifest.js +0 -0
  69. /package/.next/static/{t8OSNsKVHYWgJDib_ucGw → 4eFlFb3mHDe_1sW60xSTA}/_clientMiddlewareManifest.js +0 -0
  70. /package/.next/static/{t8OSNsKVHYWgJDib_ucGw → 4eFlFb3mHDe_1sW60xSTA}/_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":"t8OSNsKVHYWgJDib_ucGw","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/11ea1elg0081p.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":"4eFlFb3mHDe_1sW60xSTA","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/11ea1elg0081p.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
@@ -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"))},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))}])}];
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))}])},84594,e=>{"use strict";var r=e.i(60756),t=e.i(12892);async function s(e,o=()=>!1){let n,i;if(process.env[t.REGION_KEY])return e((0,t.nrHosts)());try{if(n=await e((0,t.nrHosts)("us")),!o(n))return n}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(!o(r))return process.env[t.REGION_KEY]="eu",r}catch{}if(i)throw i;return n}async function o(e,t,o){return(await s(s=>r.default.post(s.graphql,{query:t},{headers:{"API-Key":e,"Content-Type":"application/json"},timeout:o}),e=>!e.data?.data?.actor)).data}e.s(["nrGraphql",0,o,"withRegion",0,s])}];
2
2
 
3
- //# sourceMappingURL=%5Broot-of-the-server%5D__0eo1oa6._.js.map
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__02yfc43._.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"))},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 o=(e.headers.get("host")??"").replace(/:\d+$/,"");if(!r.has(o))return!1;let a=e.headers.get("origin");try{return!a||r.has(new URL(a).hostname)}catch{return!1}}])},84594,e=>{"use strict";var r=e.i(60756),t=e.i(12892);async function s(e,o=()=>!1){let a,n;if(process.env[t.REGION_KEY])return e((0,t.nrHosts)());try{if(a=await e((0,t.nrHosts)("us")),!o(a))return a}catch(t){let e=r.default.isAxiosError(t)?t.response?.status:void 0;if(401!==e&&403!==e)throw t;n=t}try{let r=await e((0,t.nrHosts)("eu"));if(!o(r))return process.env[t.REGION_KEY]="eu",r}catch{}if(n)throw n;return a}async function o(e,t,o){return(await s(s=>r.default.post(s.graphql,{query:t},{headers:{"API-Key":e,"Content-Type":"application/json"},timeout:o}),e=>!e.data?.data?.actor)).data}e.s(["nrGraphql",0,o,"withRegion",0,s])}];
2
+
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__1226gv2._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[35907,e=>{"use strict";var t=e.i(12892),r=e.i(24514),a=e.i(60756);function n(e,t){let r=a.default.isAxiosError(e)?e.response?.status:void 0;return 401===r||403===r?`${t} was rejected (check the key and its permissions).`:404===r?`${t} was not found.`:`Could not reach ${t} to check it.`}async function o(e,t){if(!/^\d+$/.test(t))return{NEXT_PUBLIC_NEWRELIC_ACCOUNT_ID:{ok:!1,error:"Account ID must be a number."}};try{let r=await a.default.post("https://api.newrelic.com/graphql",{query:`{ actor { user { id } account(id: ${t}) { id } } }`},{headers:{"API-Key":e},timeout:8e3}),n=r.data?.data?.actor;if(!n?.user?.id)return{NEWRELIC_API_KEY:{ok:!1,error:"New Relic User key was rejected."}};if(!n.account?.id)return{NEWRELIC_API_KEY:{ok:!0},NEXT_PUBLIC_NEWRELIC_ACCOUNT_ID:{ok:!1,error:"This key cannot see that account ID."}};return{NEWRELIC_API_KEY:{ok:!0},NEXT_PUBLIC_NEWRELIC_ACCOUNT_ID:{ok:!0}}}catch(e){return{NEWRELIC_API_KEY:{ok:!1,error:n(e,"New Relic")}}}}async function s(e,t,r){let o={Authorization:`Bearer ${e}`},s="https://sentry.io/api/0";try{await a.default.get(`${s}/organizations/${encodeURIComponent(t)}/`,{headers:o,timeout:8e3})}catch(e){return 404===(a.default.isAxiosError(e)?e.response?.status:void 0)?{SENTRY_ORG_SLUG:{ok:!1,error:"Sentry organization slug was not found."}}:{SENTRY_API_KEY:{ok:!1,error:n(e,"Sentry token")}}}try{await a.default.get(`${s}/projects/${encodeURIComponent(t)}/${encodeURIComponent(r)}/`,{headers:o,timeout:8e3})}catch(e){return{SENTRY_API_KEY:{ok:!0},SENTRY_ORG_SLUG:{ok:!0},SENTRY_PROJECT_ID:{ok:!1,error:n(e,"Sentry project")}}}return{SENTRY_API_KEY:{ok:!0},SENTRY_ORG_SLUG:{ok:!0},SENTRY_PROJECT_ID:{ok:!0}}}async function i(e){let[t,r]=await Promise.all([o(e.NEWRELIC_API_KEY,e.NEXT_PUBLIC_NEWRELIC_ACCOUNT_ID),s(e.SENTRY_API_KEY,e.SENTRY_ORG_SLUG,e.SENTRY_PROJECT_ID)]);return{...t,...r}}let u=/[\s\0#"'`\\$]/,l="Contains spaces or special characters (# \" ' ` $ \\). Paste the value without them.",c=()=>Response.json({error:(0,r.REFUSAL_MESSAGE)()},{status:403});async function d(e){return(0,r.isLocalRequest)(e)?Response.json({configured:(0,t.isConfigured)(),keys:Object.fromEntries([...t.SETUP_KEYS,t.INSERT_KEY].map(e=>[e,!!(0,t.env)(e)]))}):c()}async function p(e){let a;if(!(0,r.isLocalRequest)(e))return c();try{a=await e.json()}catch{return Response.json({error:"Invalid request body."},{status:400})}let n="string"==typeof a[t.INSERT_KEY]?a[t.INSERT_KEY].trim():"";if(n&&t.SETUP_KEYS.every(e=>!a[e])){if(!(0,t.isConfigured)())return Response.json({saved:!1,error:"Finish setup first."},{status:400});if(u.test(n))return Response.json({saved:!1,results:{[t.INSERT_KEY]:{ok:!1,error:l}}},{status:400});try{(0,t.writeEnvLocal)({[t.INSERT_KEY]:n})}catch{return Response.json({saved:!1,error:".env.local could not be written. Check folder permissions."},{status:500})}return Response.json({saved:!0,results:{[t.INSERT_KEY]:{ok:!0}}})}let o={},s={};for(let e of t.SETUP_KEYS){let t="string"==typeof a[e]?a[e].trim():"";t?u.test(t)?s[e]={ok:!1,error:l}:o[e]=t:s[e]={ok:!1,error:"Required."}}if(Object.keys(s).length)return Response.json({saved:!1,results:s},{status:400});let d=await i(o);if(Object.values(d).some(e=>!e.ok))return Response.json({saved:!1,results:d},{status:422});try{(0,t.writeEnvLocal)(o)}catch{return Response.json({saved:!1,error:"Keys are valid but .env.local could not be written. Check folder permissions."},{status:500})}return Response.json({saved:!0,results:d})}e.s(["GET",0,d,"POST",0,p],35907)},97962,e=>{"use strict";var t=e.i(12425),r=e.i(83353),a=e.i(47902),n=e.i(37892),o=e.i(54261),s=e.i(39548),i=e.i(68187),u=e.i(63984),l=e.i(88743),c=e.i(24698),d=e.i(13487),p=e.i(48776),R=e.i(29398),E=e.i(31610),h=e.i(45919),_=e.i(93695),v=e.i(12741);e.i(95315);var f=e.i(98732);let C=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/setup/route",pathname:"/api/setup",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/app/api/setup/route.ts",nextConfigOutput:"",userland:()=>e.r(35907),...{}}),{workAsyncStorage:T,workUnitAsyncStorage:m,serverHooks:N}=C;async function S(e,t,a){a.requestMeta&&(0,n.setRequestMeta)(e,a.requestMeta),C.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let T="/api/setup/route";T=T.replace(/\/index$/,"")||"/";let m=await C.prepare(e,t,{srcPage:T,multiZoneDraftMode:!1});if(!m)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:N,deploymentId:S,params:w,nextConfig:I,parsedUrl:g,isDraftMode:y,prerenderManifest:A,routerServerContext:P,isOnDemandRevalidate:k,revalidateOnlyGenerated:O,resolvedPathname:x,clientReferenceManifest:U,serverActionsManifest:b}=m,L=(0,i.normalizeAppPath)(T),Y=!!A.routes[x]&&(C.isDev||(0,v.isRouteCacheOwner)(x,C.cacheOwner,A.routes[x])),K=!!(A.dynamicRoutes[L]||Y),j=async()=>((null==P?void 0:P.render404)?await P.render404(e,t,g,!1):t.end("This page could not be found"),null);if(K&&!y){let e=A.dynamicRoutes[L];if(e&&!1===e.fallback&&!Y){if(I.adapterPath)return await j();throw new _.NoFallbackError}}let q=null;!K||C.isDev||y||(q="/index"===(q=x)?"/":q);let D=!0===C.isDev||!K,$=K&&!D;b&&U&&(0,s.setManifestsSingleton)({page:T,clientReferenceManifest:U,serverActionsManifest:b});let H=e.method||"GET",M=(0,o.getTracer)(),G=M.getActiveScopeSpan(),B=!!(null==P?void 0:P.isWrappedByNextServer),W=!!(0,n.getRequestMeta)(e,"minimalMode"),F=(0,n.getRequestMeta)(e,"incrementalCache")||await C.getIncrementalCache(e,I,A,W);null==F||F.resetRequestCache(),globalThis.__incrementalCache=F;let X={params:w,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!I.experimental.authInterrupts,useCacheTimeout:I.experimental.useCacheTimeout},cacheComponents:!!I.cacheComponents,validationLevel:I.experimental.instantInsights.validationLevel,isDraftMode:y,supportsDynamicResponse:D,incrementalCache:F,hmrRefreshHash:(0,n.getRequestMeta)(e,"hmrRefreshHash"),cacheLifeProfiles:I.cacheLife,staticPageGenerationTimeout:I.staticPageGenerationTimeout,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,n)=>C.onRequestError(e,t,a,n,P)},sharedContext:{buildId:N,deploymentId:S}},z=new u.NodeNextRequest(e),J=new u.NodeNextResponse(t),V=l.NextRequestAdapter.fromNodeNextRequest(z,(0,l.signalFromNodeResponse)(t)),Z=async({previousCacheEntry:r})=>{try{if(!W&&k&&O&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let n=await C.handle(V,X);e.fetchMetrics=X.renderOpts.fetchMetrics;let o=X.renderOpts.pendingWaitUntil;o&&a.waitUntil&&(a.waitUntil(o),o=void 0);let s=X.renderOpts.collectedTags;if(!K)return await (0,p.sendResponse)(z,J,n,o),null;{let e=await n.blob(),t=(0,R.toNodeOutgoingHttpHeaders)(n.headers);s&&(t[h.NEXT_CACHE_TAGS_HEADER]=s),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==X.renderOpts.collectedRevalidate&&!(X.renderOpts.collectedRevalidate>=h.INFINITE_CACHE)&&X.renderOpts.collectedRevalidate,a=void 0===X.renderOpts.collectedExpire||X.renderOpts.collectedExpire>=h.INFINITE_CACHE?!1!==r&&r>0?I.expireTime:void 0:X.renderOpts.collectedExpire;return{value:{kind:f.CachedRouteKind.APP_ROUTE,status:n.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await C.onRequestError(e,t,{routerKind:"App Router",routePath:T,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:$,isOnDemandRevalidate:k})},!1,P),t}},Q=async(n,s)=>{try{var i,u;let n=await C.handleResponse({req:e,nextConfig:I,cacheKey:q,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:k,revalidateOnlyGenerated:O,responseGenerator:Z,waitUntil:a.waitUntil,isMinimalMode:W});if(!K)return;if((null==n||null==(i=n.value)?void 0:i.kind)!==f.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==n||null==(u=n.value)?void 0:u.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});W||t.setHeader("x-nextjs-cache",k?"REVALIDATED":n.isMiss?"MISS":n.isStale?"STALE":"HIT"),y&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let o=(0,R.fromNodeOutgoingHttpHeaders)(n.value.headers);W&&K||o.delete(h.NEXT_CACHE_TAGS_HEADER),!n.cacheControl||t.getHeader("Cache-Control")||o.get("Cache-Control")||o.set("Cache-Control",(0,E.getCacheControlHeader)(n.cacheControl)),await (0,p.sendResponse)(z,J,new Response(n.value.body,{headers:o,status:n.value.status||200}));return}catch(t){if(t instanceof _.NoFallbackError||await C.onRequestError(e,t,{routerKind:"App Router",routePath:L,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:$,isOnDemandRevalidate:k})},!1,P),K)throw t;await (0,p.sendResponse)(z,J,new Response(null,{status:500}));return}finally{(()=>{if(!n)return;let e=t.statusCode;n.setAttributes({"http.status_code":e,"next.rsc":!1}),e&&e>=500&&(n.setStatus({code:o.SpanStatusCode.ERROR}),n.setAttribute("error.type",e.toString()));let r=M.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 a=r.get("next.route")||L,i=`${H} ${a}`;n.setAttributes({"next.route":a,"http.route":a,"next.span_name":i}),n.updateName(i),s&&s!==n&&(s.setAttribute("http.route",a),s.updateName(i))})()}};if(B&&G)await Q(G,void 0);else{let t=M.getActiveScopeSpan();await M.withPropagatedContext(e.headers,()=>M.trace(c.BaseServerSpan.handleRequest,{spanName:`${H} ${T}`,kind:o.SpanKind.SERVER,attributes:{"http.method":H,"http.target":e.url}},e=>Q(e,t)),void 0,!B)}}e.s(["handler",0,S,"patchFetch",0,function(){return(0,a.patchFetch)({workAsyncStorage:T,workUnitAsyncStorage:m})},"routeModule",0,C,"serverHooks",0,N,"workAsyncStorage",0,T,"workUnitAsyncStorage",0,m])}];
1
+ module.exports=[35907,e=>{"use strict";var t=e.i(12892),r=e.i(24514),a=e.i(60756);function o(e,t){let r=a.default.isAxiosError(e)?e.response?.status:void 0;return 401===r||403===r?`${t} was rejected (check the key and its permissions).`:404===r?`${t} was not found.`:`Could not reach ${t} to check it.`}async function n(e,r){if(!/^\d+$/.test(r))return{NEXT_PUBLIC_NEWRELIC_ACCOUNT_ID:{ok:!1,error:"Account ID must be a number."}};try{let o,n=o=>a.default.post((0,t.nrHosts)(o).graphql,{query:`{ actor { user { id } account(id: ${r}) { id } } }`},{headers:{"API-Key":e},timeout:8e3}),s="us";try{if(o=await n("us"),!o.data?.data?.actor?.user?.id)throw Error("rejected")}catch(e){try{if(o=await n("eu"),!o.data?.data?.actor?.user?.id)throw e;s="eu"}catch{throw e}}let i="eu"===s?{region:s}:{},u=o.data?.data?.actor;if(!u?.user?.id)return{NEWRELIC_API_KEY:{ok:!1,error:"New Relic User key was rejected."}};if(!u.account?.id)return{NEWRELIC_API_KEY:{ok:!0,...i},NEXT_PUBLIC_NEWRELIC_ACCOUNT_ID:{ok:!1,error:"This key cannot see that account ID."}};return{NEWRELIC_API_KEY:{ok:!0,...i},NEXT_PUBLIC_NEWRELIC_ACCOUNT_ID:{ok:!0}}}catch(e){return{NEWRELIC_API_KEY:{ok:!1,error:o(e,"New Relic")}}}}async function s(e,t,r){let n={Authorization:`Bearer ${e}`},s="https://sentry.io/api/0";try{await a.default.get(`${s}/organizations/${encodeURIComponent(t)}/`,{headers:n,timeout:8e3})}catch(e){return 404===(a.default.isAxiosError(e)?e.response?.status:void 0)?{SENTRY_ORG_SLUG:{ok:!1,error:"Sentry organization slug was not found."}}:{SENTRY_API_KEY:{ok:!1,error:o(e,"Sentry token")}}}try{await a.default.get(`${s}/projects/${encodeURIComponent(t)}/${encodeURIComponent(r)}/`,{headers:n,timeout:8e3})}catch(e){return{SENTRY_API_KEY:{ok:!0},SENTRY_ORG_SLUG:{ok:!0},SENTRY_PROJECT_ID:{ok:!1,error:o(e,"Sentry project")}}}return{SENTRY_API_KEY:{ok:!0},SENTRY_ORG_SLUG:{ok:!0},SENTRY_PROJECT_ID:{ok:!0}}}async function i(e){let[t,r]=await Promise.all([n(e.NEWRELIC_API_KEY,e.NEXT_PUBLIC_NEWRELIC_ACCOUNT_ID),s(e.SENTRY_API_KEY,e.SENTRY_ORG_SLUG,e.SENTRY_PROJECT_ID)]);return{...t,...r}}let u=/[\s\0#"'`\\$]/,l="Contains spaces or special characters (# \" ' ` $ \\). Paste the value without them.",c=()=>Response.json({error:(0,r.REFUSAL_MESSAGE)()},{status:403});async function d(e){return(0,r.isLocalRequest)(e)?Response.json({configured:(0,t.isConfigured)(),keys:Object.fromEntries([...t.SETUP_KEYS,t.INSERT_KEY].map(e=>[e,!!(0,t.env)(e)]))}):c()}async function p(e){let a;if(!(0,r.isLocalRequest)(e))return c();try{a=await e.json()}catch{return Response.json({error:"Invalid request body."},{status:400})}let o="string"==typeof a[t.INSERT_KEY]?a[t.INSERT_KEY].trim():"";if(o&&t.SETUP_KEYS.every(e=>!a[e])){if(!(0,t.isConfigured)())return Response.json({saved:!1,error:"Finish setup first."},{status:400});if(u.test(o))return Response.json({saved:!1,results:{[t.INSERT_KEY]:{ok:!1,error:l}}},{status:400});try{(0,t.writeEnvLocal)({[t.INSERT_KEY]:o})}catch{return Response.json({saved:!1,error:".env.local could not be written. Check folder permissions."},{status:500})}return Response.json({saved:!0,results:{[t.INSERT_KEY]:{ok:!0}}})}let n={},s={};for(let e of t.SETUP_KEYS){let t="string"==typeof a[e]?a[e].trim():"";t?u.test(t)?s[e]={ok:!1,error:l}:n[e]=t:s[e]={ok:!1,error:"Required."}}if(Object.keys(s).length)return Response.json({saved:!1,results:s},{status:400});let d=await i(n);if(Object.values(d).some(e=>!e.ok))return Response.json({saved:!1,results:d},{status:422});try{let e=d.NEWRELIC_API_KEY;(0,t.writeEnvLocal)({...n,[t.REGION_KEY]:e.ok&&"eu"===e.region?"eu":"us"})}catch{return Response.json({saved:!1,error:"Keys are valid but .env.local could not be written. Check folder permissions."},{status:500})}return Response.json({saved:!0,results:d})}e.s(["GET",0,d,"POST",0,p],35907)},97962,e=>{"use strict";var t=e.i(12425),r=e.i(83353),a=e.i(47902),o=e.i(37892),n=e.i(54261),s=e.i(39548),i=e.i(68187),u=e.i(63984),l=e.i(88743),c=e.i(24698),d=e.i(13487),p=e.i(48776),E=e.i(29398),R=e.i(31610),h=e.i(45919),_=e.i(93695),f=e.i(12741);e.i(95315);var v=e.i(98732);let C=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/setup/route",pathname:"/api/setup",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/app/api/setup/route.ts",nextConfigOutput:"",userland:()=>e.r(35907),...{}}),{workAsyncStorage:T,workUnitAsyncStorage:w,serverHooks:I}=C;async function N(e,t,a){a.requestMeta&&(0,o.setRequestMeta)(e,a.requestMeta),C.isDev&&(0,o.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let T="/api/setup/route";T=T.replace(/\/index$/,"")||"/";let w=await C.prepare(e,t,{srcPage:T,multiZoneDraftMode:!1});if(!w)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:I,deploymentId:N,params:m,nextConfig:S,parsedUrl:g,isDraftMode:y,prerenderManifest:A,routerServerContext:P,isOnDemandRevalidate:k,revalidateOnlyGenerated:O,resolvedPathname:x,clientReferenceManifest:U,serverActionsManifest:b}=w,Y=(0,i.normalizeAppPath)(T),K=!!A.routes[x]&&(C.isDev||(0,f.isRouteCacheOwner)(x,C.cacheOwner,A.routes[x])),L=!!(A.dynamicRoutes[Y]||K),j=async()=>((null==P?void 0:P.render404)?await P.render404(e,t,g,!1):t.end("This page could not be found"),null);if(L&&!y){let e=A.dynamicRoutes[Y];if(e&&!1===e.fallback&&!K){if(S.adapterPath)return await j();throw new _.NoFallbackError}}let q=null;!L||C.isDev||y||(q="/index"===(q=x)?"/":q);let D=!0===C.isDev||!L,H=L&&!D;b&&U&&(0,s.setManifestsSingleton)({page:T,clientReferenceManifest:U,serverActionsManifest:b});let $=e.method||"GET",M=(0,n.getTracer)(),G=M.getActiveScopeSpan(),W=!!(null==P?void 0:P.isWrappedByNextServer),B=!!(0,o.getRequestMeta)(e,"minimalMode"),F=(0,o.getRequestMeta)(e,"incrementalCache")||await C.getIncrementalCache(e,S,A,B);null==F||F.resetRequestCache(),globalThis.__incrementalCache=F;let X={params:m,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!S.experimental.authInterrupts,useCacheTimeout:S.experimental.useCacheTimeout},cacheComponents:!!S.cacheComponents,validationLevel:S.experimental.instantInsights.validationLevel,isDraftMode:y,supportsDynamicResponse:D,incrementalCache:F,hmrRefreshHash:(0,o.getRequestMeta)(e,"hmrRefreshHash"),cacheLifeProfiles:S.cacheLife,staticPageGenerationTimeout:S.staticPageGenerationTimeout,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,o)=>C.onRequestError(e,t,a,o,P)},sharedContext:{buildId:I,deploymentId:N}},z=new u.NodeNextRequest(e),J=new u.NodeNextResponse(t),V=l.NextRequestAdapter.fromNodeNextRequest(z,(0,l.signalFromNodeResponse)(t)),Z=async({previousCacheEntry:r})=>{try{if(!B&&k&&O&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let o=await C.handle(V,X);e.fetchMetrics=X.renderOpts.fetchMetrics;let n=X.renderOpts.pendingWaitUntil;n&&a.waitUntil&&(a.waitUntil(n),n=void 0);let s=X.renderOpts.collectedTags;if(!L)return await (0,p.sendResponse)(z,J,o,n),null;{let e=await o.blob(),t=(0,E.toNodeOutgoingHttpHeaders)(o.headers);s&&(t[h.NEXT_CACHE_TAGS_HEADER]=s),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==X.renderOpts.collectedRevalidate&&!(X.renderOpts.collectedRevalidate>=h.INFINITE_CACHE)&&X.renderOpts.collectedRevalidate,a=void 0===X.renderOpts.collectedExpire||X.renderOpts.collectedExpire>=h.INFINITE_CACHE?!1!==r&&r>0?S.expireTime:void 0:X.renderOpts.collectedExpire;return{value:{kind:v.CachedRouteKind.APP_ROUTE,status:o.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await C.onRequestError(e,t,{routerKind:"App Router",routePath:T,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:k})},!1,P),t}},Q=async(o,s)=>{try{var i,u;let o=await C.handleResponse({req:e,nextConfig:S,cacheKey:q,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:k,revalidateOnlyGenerated:O,responseGenerator:Z,waitUntil:a.waitUntil,isMinimalMode:B});if(!L)return;if((null==o||null==(i=o.value)?void 0:i.kind)!==v.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==o||null==(u=o.value)?void 0:u.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});B||t.setHeader("x-nextjs-cache",k?"REVALIDATED":o.isMiss?"MISS":o.isStale?"STALE":"HIT"),y&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let n=(0,E.fromNodeOutgoingHttpHeaders)(o.value.headers);B&&L||n.delete(h.NEXT_CACHE_TAGS_HEADER),!o.cacheControl||t.getHeader("Cache-Control")||n.get("Cache-Control")||n.set("Cache-Control",(0,R.getCacheControlHeader)(o.cacheControl)),await (0,p.sendResponse)(z,J,new Response(o.value.body,{headers:n,status:o.value.status||200}));return}catch(t){if(t instanceof _.NoFallbackError||await C.onRequestError(e,t,{routerKind:"App Router",routePath:Y,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:k})},!1,P),L)throw t;await (0,p.sendResponse)(z,J,new Response(null,{status:500}));return}finally{(()=>{if(!o)return;let e=t.statusCode;o.setAttributes({"http.status_code":e,"next.rsc":!1}),e&&e>=500&&(o.setStatus({code:n.SpanStatusCode.ERROR}),o.setAttribute("error.type",e.toString()));let r=M.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 a=r.get("next.route")||Y,i=`${$} ${a}`;o.setAttributes({"next.route":a,"http.route":a,"next.span_name":i}),o.updateName(i),s&&s!==o&&(s.setAttribute("http.route",a),s.updateName(i))})()}};if(W&&G)await Q(G,void 0);else{let t=M.getActiveScopeSpan();await M.withPropagatedContext(e.headers,()=>M.trace(c.BaseServerSpan.handleRequest,{spanName:`${$} ${T}`,kind:n.SpanKind.SERVER,attributes:{"http.method":$,"http.target":e.url}},e=>Q(e,t)),void 0,!W)}}e.s(["handler",0,N,"patchFetch",0,function(){return(0,a.patchFetch)({workAsyncStorage:T,workUnitAsyncStorage:w})},"routeModule",0,C,"serverHooks",0,I,"workAsyncStorage",0,T,"workUnitAsyncStorage",0,w])}];
2
2
 
3
3
  //# sourceMappingURL=_0w8wvdn._.js.map
@@ -1,8 +1,8 @@
1
- module.exports=[51980,e=>{"use strict";var t=e.i(50227),r=e.i(60756),n=e.i(66680);function a(e){let t;if("string"!=typeof e||!e.trim())return null;try{t=new URL(e,"http://placeholder").pathname}catch{return null}try{t=decodeURIComponent(t)}catch{}return(t=t.toLowerCase().replace(/\/{2,}/g,"/")).length>1&&(t=t.replace(/\/+$/,"")),t.startsWith("/")?t:null}function o(e){return"/"===e?"home":e.replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,60).replace(/-+$/,"")||"page"}let i="https://api.newrelic.com/graphql";function s(e){return e&&"object"==typeof e?Number("score"in e?e.score:Object.values(e)[0]??0)||0:Number(e??0)||0}let l="SINCE 24 hours ago";async function u(e,t){let n;if(!e||!t)return{};let o=e=>`nrql(query: "${e}") { results }`,u=`{ actor { account(id: ${Number(t)}) {
2
- views: ${o(`SELECT percentile(duration, 75) AS loadTime, percentile(backendDuration, 75) AS ttfb, count(*) AS views, apdex(duration, t: 2) AS apdex FROM PageView FACET pageUrl ${l} LIMIT 200`)}
3
- timing: ${o(`SELECT percentile(largestContentfulPaint, 75) AS lcp, percentile(cumulativeLayoutShift, 75) AS cls, percentile(interactionToNextPaint, 75) AS inp, percentile(firstInputDelay, 75) AS fid FROM PageViewTiming FACET pageUrl ${l} LIMIT 200`)}
4
- errors: ${o(`SELECT count(*) AS errors FROM JavaScriptError FACET pageUrl ${l} LIMIT 200`)}
5
- } } }`;try{n=(await r.default.post(i,{query:u},{headers:{"API-Key":e,"Content-Type":"application/json"},timeout:15e3})).data}catch{throw Error("Could not reach New Relic to load metrics.")}let c=n.data?.actor?.account;if(!c?.views)throw Error("New Relic rejected the metrics query. Check your key and account ID.");return function(e){if(!e.views)return{};let t=e=>a(String(e.pageUrl??e.facet??"")),r={},n=e=>r[e]??={views:0,loadTime:0,ttfb:0,apdex:0,lcp:0,cls:0,inp:0,fid:0,errors:0};for(let r of e.views.results){let e=t(r);if(null===e)continue;let a=n(e),o=s(r.views);a.views+=o,a.loadTime+=1e3*s(r.loadTime)*o,a.ttfb+=1e3*s(r.ttfb)*o,a.apdex+=s(r.apdex)*o}for(let n of e.timing?.results??[]){let e=t(n);if(null===e||!r[e])continue;let a=r[e],o=a.views||1;a.lcp+=1e3*s(n.lcp)*o,a.cls+=s(n.cls)*o,a.inp+=s(n.inp)*o,a.fid+=s(n.fid)*o}for(let n of e.errors?.results??[]){let e=t(n);null!==e&&r[e]&&(r[e].errors+=s(n.errors))}let o={};for(let[e,t]of Object.entries(r)){let r=t.views||1;o[e]={loadTime:t.loadTime/r,lcp:t.lcp/r,ttfb:t.ttfb/r,cls:t.cls/r,inp:t.inp/r,fid:t.fid/r,errorRate:t.views?t.errors/t.views*100:0,throughput:t.views,apdexScore:t.apdex/r}}return o}(c)}let c=null;async function p(e,t){if(!e||!t)return[];let r=`${e}:${t}`;if(c&&c.key===r&&Date.now()-c.at<6e4)return c.pages;let n=await d(e,t);return c={key:r,at:Date.now(),pages:n},n}async function d(e,t){let s,l=`
1
+ module.exports=[51980,e=>{"use strict";var t=e.i(50227),r=e.i(84594),n=e.i(66680);function a(e){let t;if("string"!=typeof e||!e.trim())return null;try{t=new URL(e,"http://placeholder").pathname}catch{return null}try{t=decodeURIComponent(t)}catch{}return(t=t.toLowerCase().replace(/\/{2,}/g,"/")).length>1&&(t=t.replace(/\/+$/,"")),t.startsWith("/")?t:null}function o(e){return"/"===e?"home":e.replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,60).replace(/-+$/,"")||"page"}function i(e){return e&&"object"==typeof e?Number("score"in e?e.score:Object.values(e)[0]??0)||0:Number(e??0)||0}let s="SINCE 24 hours ago";async function l(e,t){let n;if(!e||!t)return{};let o=e=>`nrql(query: "${e}") { results }`,l=`{ actor { account(id: ${Number(t)}) {
2
+ views: ${o(`SELECT percentile(duration, 75) AS loadTime, percentile(backendDuration, 75) AS ttfb, count(*) AS views, apdex(duration, t: 2) AS apdex FROM PageView FACET pageUrl ${s} LIMIT 200`)}
3
+ timing: ${o(`SELECT percentile(largestContentfulPaint, 75) AS lcp, percentile(cumulativeLayoutShift, 75) AS cls, percentile(interactionToNextPaint, 75) AS inp, percentile(firstInputDelay, 75) AS fid FROM PageViewTiming FACET pageUrl ${s} LIMIT 200`)}
4
+ errors: ${o(`SELECT count(*) AS errors FROM JavaScriptError FACET pageUrl ${s} LIMIT 200`)}
5
+ } } }`;try{n=await (0,r.nrGraphql)(e,l,15e3)}catch{throw Error("Could not reach New Relic to load metrics.")}let u=n.data?.actor?.account;if(!u?.views)throw Error("New Relic rejected the metrics query. Check your key and account ID.");return function(e){if(!e.views)return{};let t=e=>a(String(e.pageUrl??e.facet??"")),r={},n=e=>r[e]??={views:0,loadTime:0,ttfb:0,apdex:0,lcp:0,cls:0,inp:0,fid:0,errors:0};for(let r of e.views.results){let e=t(r);if(null===e)continue;let a=n(e),o=i(r.views);a.views+=o,a.loadTime+=1e3*i(r.loadTime)*o,a.ttfb+=1e3*i(r.ttfb)*o,a.apdex+=i(r.apdex)*o}for(let n of e.timing?.results??[]){let e=t(n);if(null===e||!r[e])continue;let a=r[e],o=a.views||1;a.lcp+=1e3*i(n.lcp)*o,a.cls+=i(n.cls)*o,a.inp+=i(n.inp)*o,a.fid+=i(n.fid)*o}for(let n of e.errors?.results??[]){let e=t(n);null!==e&&r[e]&&(r[e].errors+=i(n.errors))}let o={};for(let[e,t]of Object.entries(r)){let r=t.views||1;o[e]={loadTime:t.loadTime/r,lcp:t.lcp/r,ttfb:t.ttfb/r,cls:t.cls/r,inp:t.inp/r,fid:t.fid/r,errorRate:t.views?t.errors/t.views*100:0,throughput:t.views,apdexScore:t.apdex/r}}return o}(u)}let u=null;async function c(e,t){if(!e||!t)return[];let r=`${e}:${t}`;if(u&&u.key===r&&Date.now()-u.at<6e4)return u.pages;let n=await p(e,t);return u={key:r,at:Date.now(),pages:n},n}async function p(e,t){let i,s=`
6
6
  query {
7
7
  actor {
8
8
  account(id: ${Number(t)}) {
@@ -12,6 +12,6 @@ module.exports=[51980,e=>{"use strict";var t=e.i(50227),r=e.i(60756),n=e.i(66680
12
12
  }
13
13
  }
14
14
  }
15
- `;try{s=(await r.default.post(i,{query:l},{headers:{"API-Key":e,"Content-Type":"application/json"},timeout:1e4})).data}catch{throw Error("Could not reach New Relic to discover pages.")}let u=s.data?.actor?.account?.nrql?.results;if(!u)throw Error("New Relic rejected the page discovery query. Check your key and account ID.");return function(e){let t=new Map;for(let{url:r,views:n}of e){let e=a(r);null!==e&&t.set(e,(t.get(e)??0)+(Number.isFinite(n)?n:0))}let r=[...t].sort((e,t)=>t[1]-e[1]||e[0].localeCompare(t[0])).slice(0,20),i=new Map;for(let[e]of r)i.set(o(e),(i.get(o(e))??0)+1);return r.map(([e,t])=>{let r=o(e),a=i.get(r)>1?`${r}-${(0,n.createHash)("sha1").update(e).digest("hex").slice(0,6)}`:r;return{url:e,slug:a,name:"/"===e?"Homepage":e.split("/").filter(Boolean).map(e=>e.replace(/[-_]+/g," ").trim().replace(/\b\w/g,e=>e.toUpperCase())||e).join(" / "),views:t}})}(u.map(e=>({url:String(e.pageUrl??e.facet??""),views:Number(e.views??e.count??0)})))}let h="https://sentry.io/api/0",f={errorCount:0,errorRate:0,warningCount:0,latestErrors:[]},m=e=>({Authorization:`Bearer ${e}`}),g=new Map;async function w(e,t,n){let a=`${t}/${n}`,o=g.get(a);if(o)return o;let i=await r.default.get(`${h}/projects/${encodeURIComponent(t)}/${encodeURIComponent(n)}/`,{headers:m(e),timeout:8e3}),s=String(i.data?.id??"");if(!s)throw Error("no project id");return g.set(a,s),s}async function R(e,t,n){if(!e||!t||!n)return{};try{let o=await w(e,t,n),i=await r.default.get(`${h}/organizations/${encodeURIComponent(t)}/events/`,{headers:m(e),timeout:1e4,params:{project:o,field:["url","title","count()","last_seen()"],query:"event.type:error",statsPeriod:"24h",sort:"-last_seen",per_page:100},paramsSerializer:{indexes:null}});return function(e){let t={};for(let r of e){let e=a(r.url??"");if(null===e)continue;let n=t[e]??={errorCount:0,errorRate:0,warningCount:0,latestErrors:[]},o=Number(r["count()"]??0);n.errorCount+=o,n.latestErrors.length<5&&n.latestErrors.push({title:r.title??"Unknown error",count:o,lastSeen:r["last_seen()"]??""})}return t}(i.data?.data??[])}catch(e){return console.error("Sentry API error:",r.default.isAxiosError(e)?e.response?.status:"request failed"),{}}}var v=e.i(12892);let E=[];var C=e.i(90770);async function S(){if(!(0,v.isConfigured)())return Response.json({configured:!1,project:T(),pages:[],history:[],timestamp:new Date().toISOString()});try{let e=performance.now(),t=await p((0,v.env)("NEWRELIC_API_KEY"),(0,v.env)("NEXT_PUBLIC_NEWRELIC_ACCOUNT_ID"));if(0===t.length)return Response.json({configured:!0,project:T(),pages:[],history:E,timestamp:new Date().toISOString()});let r=performance.now(),n=u((0,v.env)("NEWRELIC_API_KEY"),(0,v.env)("NEXT_PUBLIC_NEWRELIC_ACCOUNT_ID")).then(e=>((0,C.recordTiming)("New Relic: metrics",performance.now()-r),e)),a=performance.now(),o=R((0,v.env)("SENTRY_API_KEY"),(0,v.env)("SENTRY_ORG_SLUG"),(0,v.env)("SENTRY_PROJECT_ID")).then(e=>((0,C.recordTiming)("Sentry: events",performance.now()-a),e)),[i,s]=await Promise.all([n,o]);console.log(`[timing] combined New Relic + Sentry batch: ${Math.round(performance.now()-e)}ms`);let l=t.map(({name:e,slug:t,url:r,views:n})=>{var a,o;let l=i[r]??y,u=s[r]??f;return{name:e,slug:t,url:r,visitors:(a=n)>=1e3?`${(a/1e3).toFixed(1)}k`:String(a),status:(o=l).errorRate>5?"Critical":o.errorRate>1||o.apdexScore<.9?"Warning":"Healthy",newRelic:l,sentry:u,recordedAt:new Date().toISOString()}});return E.push({timestamp:new Date().toISOString(),pages:l}),E.length>20&&E.shift(),Response.json({configured:!0,project:T(),pages:l,history:E,timestamp:new Date().toISOString()})}catch(e){return console.error("Metrics API error:",e),Response.json({error:e instanceof Error?e.message:"Unknown error"},{status:500})}}let y={loadTime:0,lcp:0,ttfb:0,cls:0,inp:0,fid:0,errorRate:0,throughput:0,apdexScore:0};function T(){return(0,v.env)("METRICFLOW_PROJECT_NAME")||(0,t.basename)(process.cwd())}e.s(["GET",0,S],51980)},6408,e=>{"use strict";var t=e.i(12425),r=e.i(83353),n=e.i(47902),a=e.i(37892),o=e.i(54261),i=e.i(39548),s=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),f=e.i(31610),m=e.i(45919),g=e.i(93695),w=e.i(12741);e.i(95315);var R=e.i(98732);let v=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/metrics/route",pathname:"/api/metrics",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/app/api/metrics/route.ts",nextConfigOutput:"",userland:()=>e.r(51980),...{}}),{workAsyncStorage:E,workUnitAsyncStorage:C,serverHooks:S}=v;async function y(e,t,n){n.requestMeta&&(0,a.setRequestMeta)(e,n.requestMeta),v.isDev&&(0,a.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let E="/api/metrics/route";E=E.replace(/\/index$/,"")||"/";let C=await v.prepare(e,t,{srcPage:E,multiZoneDraftMode:!1});if(!C)return t.statusCode=400,t.end("Bad Request"),null==n.waitUntil||n.waitUntil.call(n,Promise.resolve()),null;let{buildId:S,deploymentId:y,params:T,nextConfig:A,parsedUrl:I,isDraftMode:N,prerenderManifest:x,routerServerContext:_,isOnDemandRevalidate:b,revalidateOnlyGenerated:P,resolvedPathname:O,clientReferenceManifest:U,serverActionsManifest:$}=C,M=(0,s.normalizeAppPath)(E),q=!!x.routes[O]&&(v.isDev||(0,w.isRouteCacheOwner)(O,v.cacheOwner,x.routes[O])),D=!!(x.dynamicRoutes[M]||q),L=async()=>((null==_?void 0:_.render404)?await _.render404(e,t,I,!1):t.end("This page could not be found"),null);if(D&&!N){let e=x.dynamicRoutes[M];if(e&&!1===e.fallback&&!q){if(A.adapterPath)return await L();throw new g.NoFallbackError}}let j=null;!D||v.isDev||N||(j="/index"===(j=O)?"/":j);let k=!0===v.isDev||!D,H=D&&!k;$&&U&&(0,i.setManifestsSingleton)({page:E,clientReferenceManifest:U,serverActionsManifest:$});let F=e.method||"GET",K=(0,o.getTracer)(),B=K.getActiveScopeSpan(),W=!!(null==_?void 0:_.isWrappedByNextServer),G=!!(0,a.getRequestMeta)(e,"minimalMode"),V=(0,a.getRequestMeta)(e,"incrementalCache")||await v.getIncrementalCache(e,A,x,G);null==V||V.resetRequestCache(),globalThis.__incrementalCache=V;let Y={params:T,previewProps:x.preview,renderOpts:{experimental:{authInterrupts:!!A.experimental.authInterrupts,useCacheTimeout:A.experimental.useCacheTimeout},cacheComponents:!!A.cacheComponents,validationLevel:A.experimental.instantInsights.validationLevel,isDraftMode:N,supportsDynamicResponse:k,incrementalCache:V,hmrRefreshHash:(0,a.getRequestMeta)(e,"hmrRefreshHash"),cacheLifeProfiles:A.cacheLife,staticPageGenerationTimeout:A.staticPageGenerationTimeout,waitUntil:n.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,n,a)=>v.onRequestError(e,t,n,a,_)},sharedContext:{buildId:S,deploymentId:y}},z=new l.NodeNextRequest(e),X=new l.NodeNextResponse(t),J=u.NextRequestAdapter.fromNodeNextRequest(z,(0,u.signalFromNodeResponse)(t)),Z=async({previousCacheEntry:r})=>{try{if(!G&&b&&P&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let a=await v.handle(J,Y);e.fetchMetrics=Y.renderOpts.fetchMetrics;let o=Y.renderOpts.pendingWaitUntil;o&&n.waitUntil&&(n.waitUntil(o),o=void 0);let i=Y.renderOpts.collectedTags;if(!D)return await (0,d.sendResponse)(z,X,a,o),null;{let e=await a.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(a.headers);i&&(t[m.NEXT_CACHE_TAGS_HEADER]=i),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==Y.renderOpts.collectedRevalidate&&!(Y.renderOpts.collectedRevalidate>=m.INFINITE_CACHE)&&Y.renderOpts.collectedRevalidate,n=void 0===Y.renderOpts.collectedExpire||Y.renderOpts.collectedExpire>=m.INFINITE_CACHE?!1!==r&&r>0?A.expireTime:void 0:Y.renderOpts.collectedExpire;return{value:{kind:R.CachedRouteKind.APP_ROUTE,status:a.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:n}}}}catch(t){throw(null==r?void 0:r.isStale)&&await v.onRequestError(e,t,{routerKind:"App Router",routePath:E,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:b})},!1,_),t}},Q=async(a,i)=>{try{var s,l;let a=await v.handleResponse({req:e,nextConfig:A,cacheKey:j,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:x,isRoutePPREnabled:!1,isOnDemandRevalidate:b,revalidateOnlyGenerated:P,responseGenerator:Z,waitUntil:n.waitUntil,isMinimalMode:G});if(!D)return;if((null==a||null==(s=a.value)?void 0:s.kind)!==R.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});G||t.setHeader("x-nextjs-cache",b?"REVALIDATED":a.isMiss?"MISS":a.isStale?"STALE":"HIT"),N&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let o=(0,h.fromNodeOutgoingHttpHeaders)(a.value.headers);G&&D||o.delete(m.NEXT_CACHE_TAGS_HEADER),!a.cacheControl||t.getHeader("Cache-Control")||o.get("Cache-Control")||o.set("Cache-Control",(0,f.getCacheControlHeader)(a.cacheControl)),await (0,d.sendResponse)(z,X,new Response(a.value.body,{headers:o,status:a.value.status||200}));return}catch(t){if(t instanceof g.NoFallbackError||await v.onRequestError(e,t,{routerKind:"App Router",routePath:M,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:b})},!1,_),D)throw t;await (0,d.sendResponse)(z,X,new Response(null,{status:500}));return}finally{(()=>{if(!a)return;let e=t.statusCode;a.setAttributes({"http.status_code":e,"next.rsc":!1}),e&&e>=500&&(a.setStatus({code:o.SpanStatusCode.ERROR}),a.setAttribute("error.type",e.toString()));let r=K.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")||M,s=`${F} ${n}`;a.setAttributes({"next.route":n,"http.route":n,"next.span_name":s}),a.updateName(s),i&&i!==a&&(i.setAttribute("http.route",n),i.updateName(s))})()}};if(W&&B)await Q(B,void 0);else{let t=K.getActiveScopeSpan();await K.withPropagatedContext(e.headers,()=>K.trace(c.BaseServerSpan.handleRequest,{spanName:`${F} ${E}`,kind:o.SpanKind.SERVER,attributes:{"http.method":F,"http.target":e.url}},e=>Q(e,t)),void 0,!W)}}e.s(["handler",0,y,"patchFetch",0,function(){return(0,n.patchFetch)({workAsyncStorage:E,workUnitAsyncStorage:C})},"routeModule",0,v,"serverHooks",0,S,"workAsyncStorage",0,E,"workUnitAsyncStorage",0,C])}];
15
+ `;try{i=await (0,r.nrGraphql)(e,s,1e4)}catch{throw Error("Could not reach New Relic to discover pages.")}let l=i.data?.actor?.account?.nrql?.results;if(!l)throw Error("New Relic rejected the page discovery query. Check your key and account ID.");return function(e){let t=new Map;for(let{url:r,views:n}of e){let e=a(r);null!==e&&t.set(e,(t.get(e)??0)+(Number.isFinite(n)?n:0))}let r=[...t].sort((e,t)=>t[1]-e[1]||e[0].localeCompare(t[0])).slice(0,20),i=new Map;for(let[e]of r)i.set(o(e),(i.get(o(e))??0)+1);return r.map(([e,t])=>{let r=o(e),a=i.get(r)>1?`${r}-${(0,n.createHash)("sha1").update(e).digest("hex").slice(0,6)}`:r;return{url:e,slug:a,name:"/"===e?"Homepage":e.split("/").filter(Boolean).map(e=>e.replace(/[-_]+/g," ").trim().replace(/\b\w/g,e=>e.toUpperCase())||e).join(" / "),views:t}})}(l.map(e=>({url:String(e.pageUrl??e.facet??""),views:Number(e.views??e.count??0)})))}var d=e.i(60756);let h="https://sentry.io/api/0",f={errorCount:0,errorRate:0,warningCount:0,latestErrors:[]},g=e=>({Authorization:`Bearer ${e}`}),m=new Map;async function w(e,t,r){let n=`${t}/${r}`,a=m.get(n);if(a)return a;let o=await d.default.get(`${h}/projects/${encodeURIComponent(t)}/${encodeURIComponent(r)}/`,{headers:g(e),timeout:8e3}),i=String(o.data?.id??"");if(!i)throw Error("no project id");return m.set(n,i),i}async function R(e,t,r){if(!e||!t||!r)return{};try{let n=await w(e,t,r),o=await d.default.get(`${h}/organizations/${encodeURIComponent(t)}/events/`,{headers:g(e),timeout:1e4,params:{project:n,field:["url","title","count()","last_seen()"],query:"event.type:error",statsPeriod:"24h",sort:"-last_seen",per_page:100},paramsSerializer:{indexes:null}});return function(e){let t={};for(let r of e){let e=a(r.url??"");if(null===e)continue;let n=t[e]??={errorCount:0,errorRate:0,warningCount:0,latestErrors:[]},o=Number(r["count()"]??0);n.errorCount+=o,n.latestErrors.length<5&&n.latestErrors.push({title:r.title??"Unknown error",count:o,lastSeen:r["last_seen()"]??""})}return t}(o.data?.data??[])}catch(e){return console.error("Sentry API error:",d.default.isAxiosError(e)?e.response?.status:"request failed"),{}}}var v=e.i(12892);let E=[];var C=e.i(90770);async function S(){if(!(0,v.isConfigured)())return Response.json({configured:!1,project:T(),pages:[],history:[],timestamp:new Date().toISOString()});try{let e=performance.now(),t=await c((0,v.env)("NEWRELIC_API_KEY"),(0,v.env)("NEXT_PUBLIC_NEWRELIC_ACCOUNT_ID"));if(0===t.length)return Response.json({configured:!0,project:T(),pages:[],history:E,timestamp:new Date().toISOString()});let r=performance.now(),n=l((0,v.env)("NEWRELIC_API_KEY"),(0,v.env)("NEXT_PUBLIC_NEWRELIC_ACCOUNT_ID")).then(e=>((0,C.recordTiming)("New Relic: metrics",performance.now()-r),e)),a=performance.now(),o=R((0,v.env)("SENTRY_API_KEY"),(0,v.env)("SENTRY_ORG_SLUG"),(0,v.env)("SENTRY_PROJECT_ID")).then(e=>((0,C.recordTiming)("Sentry: events",performance.now()-a),e)),[i,s]=await Promise.all([n,o]);console.log(`[timing] combined New Relic + Sentry batch: ${Math.round(performance.now()-e)}ms`);let u=t.map(({name:e,slug:t,url:r,views:n})=>{var a,o;let l=i[r]??y,u=s[r]??f;return{name:e,slug:t,url:r,visitors:(a=n)>=1e3?`${(a/1e3).toFixed(1)}k`:String(a),status:(o=l).errorRate>5?"Critical":o.errorRate>1||o.apdexScore<.9?"Warning":"Healthy",newRelic:l,sentry:u,recordedAt:new Date().toISOString()}});return E.push({timestamp:new Date().toISOString(),pages:u}),E.length>20&&E.shift(),Response.json({configured:!0,project:T(),pages:u,history:E,timestamp:new Date().toISOString()})}catch(e){return console.error("Metrics API error:",e),Response.json({error:e instanceof Error?e.message:"Unknown error"},{status:500})}}let y={loadTime:0,lcp:0,ttfb:0,cls:0,inp:0,fid:0,errorRate:0,throughput:0,apdexScore:0};function T(){return(0,v.env)("METRICFLOW_PROJECT_NAME")||(0,t.basename)(process.cwd())}e.s(["GET",0,S],51980)},6408,e=>{"use strict";var t=e.i(12425),r=e.i(83353),n=e.i(47902),a=e.i(37892),o=e.i(54261),i=e.i(39548),s=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),f=e.i(31610),g=e.i(45919),m=e.i(93695),w=e.i(12741);e.i(95315);var R=e.i(98732);let v=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/metrics/route",pathname:"/api/metrics",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/app/api/metrics/route.ts",nextConfigOutput:"",userland:()=>e.r(51980),...{}}),{workAsyncStorage:E,workUnitAsyncStorage:C,serverHooks:S}=v;async function y(e,t,n){n.requestMeta&&(0,a.setRequestMeta)(e,n.requestMeta),v.isDev&&(0,a.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let E="/api/metrics/route";E=E.replace(/\/index$/,"")||"/";let C=await v.prepare(e,t,{srcPage:E,multiZoneDraftMode:!1});if(!C)return t.statusCode=400,t.end("Bad Request"),null==n.waitUntil||n.waitUntil.call(n,Promise.resolve()),null;let{buildId:S,deploymentId:y,params:T,nextConfig:A,parsedUrl:I,isDraftMode:N,prerenderManifest:x,routerServerContext:_,isOnDemandRevalidate:b,revalidateOnlyGenerated:P,resolvedPathname:O,clientReferenceManifest:U,serverActionsManifest:$}=C,q=(0,s.normalizeAppPath)(E),M=!!x.routes[O]&&(v.isDev||(0,w.isRouteCacheOwner)(O,v.cacheOwner,x.routes[O])),D=!!(x.dynamicRoutes[q]||M),L=async()=>((null==_?void 0:_.render404)?await _.render404(e,t,I,!1):t.end("This page could not be found"),null);if(D&&!N){let e=x.dynamicRoutes[q];if(e&&!1===e.fallback&&!M){if(A.adapterPath)return await L();throw new m.NoFallbackError}}let j=null;!D||v.isDev||N||(j="/index"===(j=O)?"/":j);let k=!0===v.isDev||!D,H=D&&!k;$&&U&&(0,i.setManifestsSingleton)({page:E,clientReferenceManifest:U,serverActionsManifest:$});let F=e.method||"GET",K=(0,o.getTracer)(),B=K.getActiveScopeSpan(),G=!!(null==_?void 0:_.isWrappedByNextServer),W=!!(0,a.getRequestMeta)(e,"minimalMode"),V=(0,a.getRequestMeta)(e,"incrementalCache")||await v.getIncrementalCache(e,A,x,W);null==V||V.resetRequestCache(),globalThis.__incrementalCache=V;let Y={params:T,previewProps:x.preview,renderOpts:{experimental:{authInterrupts:!!A.experimental.authInterrupts,useCacheTimeout:A.experimental.useCacheTimeout},cacheComponents:!!A.cacheComponents,validationLevel:A.experimental.instantInsights.validationLevel,isDraftMode:N,supportsDynamicResponse:k,incrementalCache:V,hmrRefreshHash:(0,a.getRequestMeta)(e,"hmrRefreshHash"),cacheLifeProfiles:A.cacheLife,staticPageGenerationTimeout:A.staticPageGenerationTimeout,waitUntil:n.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,n,a)=>v.onRequestError(e,t,n,a,_)},sharedContext:{buildId:S,deploymentId:y}},z=new l.NodeNextRequest(e),X=new l.NodeNextResponse(t),J=u.NextRequestAdapter.fromNodeNextRequest(z,(0,u.signalFromNodeResponse)(t)),Z=async({previousCacheEntry:r})=>{try{if(!W&&b&&P&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let a=await v.handle(J,Y);e.fetchMetrics=Y.renderOpts.fetchMetrics;let o=Y.renderOpts.pendingWaitUntil;o&&n.waitUntil&&(n.waitUntil(o),o=void 0);let i=Y.renderOpts.collectedTags;if(!D)return await (0,d.sendResponse)(z,X,a,o),null;{let e=await a.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(a.headers);i&&(t[g.NEXT_CACHE_TAGS_HEADER]=i),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==Y.renderOpts.collectedRevalidate&&!(Y.renderOpts.collectedRevalidate>=g.INFINITE_CACHE)&&Y.renderOpts.collectedRevalidate,n=void 0===Y.renderOpts.collectedExpire||Y.renderOpts.collectedExpire>=g.INFINITE_CACHE?!1!==r&&r>0?A.expireTime:void 0:Y.renderOpts.collectedExpire;return{value:{kind:R.CachedRouteKind.APP_ROUTE,status:a.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:n}}}}catch(t){throw(null==r?void 0:r.isStale)&&await v.onRequestError(e,t,{routerKind:"App Router",routePath:E,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:b})},!1,_),t}},Q=async(a,i)=>{try{var s,l;let a=await v.handleResponse({req:e,nextConfig:A,cacheKey:j,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:x,isRoutePPREnabled:!1,isOnDemandRevalidate:b,revalidateOnlyGenerated:P,responseGenerator:Z,waitUntil:n.waitUntil,isMinimalMode:W});if(!D)return;if((null==a||null==(s=a.value)?void 0:s.kind)!==R.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});W||t.setHeader("x-nextjs-cache",b?"REVALIDATED":a.isMiss?"MISS":a.isStale?"STALE":"HIT"),N&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let o=(0,h.fromNodeOutgoingHttpHeaders)(a.value.headers);W&&D||o.delete(g.NEXT_CACHE_TAGS_HEADER),!a.cacheControl||t.getHeader("Cache-Control")||o.get("Cache-Control")||o.set("Cache-Control",(0,f.getCacheControlHeader)(a.cacheControl)),await (0,d.sendResponse)(z,X,new Response(a.value.body,{headers:o,status:a.value.status||200}));return}catch(t){if(t instanceof m.NoFallbackError||await v.onRequestError(e,t,{routerKind:"App Router",routePath:q,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:b})},!1,_),D)throw t;await (0,d.sendResponse)(z,X,new Response(null,{status:500}));return}finally{(()=>{if(!a)return;let e=t.statusCode;a.setAttributes({"http.status_code":e,"next.rsc":!1}),e&&e>=500&&(a.setStatus({code:o.SpanStatusCode.ERROR}),a.setAttribute("error.type",e.toString()));let r=K.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")||q,s=`${F} ${n}`;a.setAttributes({"next.route":n,"http.route":n,"next.span_name":s}),a.updateName(s),i&&i!==a&&(i.setAttribute("http.route",n),i.updateName(s))})()}};if(G&&B)await Q(B,void 0);else{let t=K.getActiveScopeSpan();await K.withPropagatedContext(e.headers,()=>K.trace(c.BaseServerSpan.handleRequest,{spanName:`${F} ${E}`,kind:o.SpanKind.SERVER,attributes:{"http.method":F,"http.target":e.url}},e=>Q(e,t)),void 0,!G)}}e.s(["handler",0,y,"patchFetch",0,function(){return(0,n.patchFetch)({workAsyncStorage:E,workUnitAsyncStorage:C})},"routeModule",0,v,"serverHooks",0,S,"workAsyncStorage",0,E,"workUnitAsyncStorage",0,C])}];
16
16
 
17
17
  //# sourceMappingURL=_0wct7-r._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[89378,e=>{"use strict";var t=e.i(12892),n=e.i(24514),r=e.i(60756);async function a(e,t,n){let a=`{ actor { account(id: ${Number(t)}) { nrql(query: "${n}") { results } } } }`,o=await r.default.post("https://api.newrelic.com/graphql",{query:a},{headers:{"API-Key":e},timeout:8e3}),s=o.data?.data?.actor?.account?.nrql?.results?.[0];if(!s)throw Error("no result");return s}async function o(e,t,n){try{let r=await a(e,t,`SELECT count(*) AS n, latest(timestamp) AS t FROM ${n} SINCE 5 minutes ago`),o=Number(r.n??0);return{recent:o,lastEventAt:o>0&&r.t?new Date(Number(r.t)).toISOString():null}}catch{return{recent:null,lastEventAt:null,error:"Could not read from New Relic."}}}async function s(e,t,n){try{let a=await r.default.get(`https://sentry.io/api/0/projects/${encodeURIComponent(t)}/${encodeURIComponent(n)}/issues/`,{headers:{Authorization:`Bearer ${e}`},params:{sort:"date",limit:1,statsPeriod:"24h"},timeout:8e3}),o=a.data?.[0]?.lastSeen;return{recent:o&&Date.now()-new Date(o).getTime()<3e5?1:0,lastEventAt:o??null}}catch{return{recent:null,lastEventAt:null,error:"Could not read from Sentry."}}}async function i(e,t){try{let n=await r.default.post(`https://insights-collector.newrelic.com/v1/accounts/${Number(t)}/events`,[{eventType:"MetricFlowEvent",name:"test",value:1,source:"connect-page"}],{headers:{"Api-Key":e},timeout:8e3});return n.data?.success===!0?null:"New Relic did not accept the event."}catch(t){let e=r.default.isAxiosError(t)?t.response?.status:void 0;if(401===e||403===e)return'New Relic rejected the Insert key. It must be an "Ingest - License" key for this account.';if(404===e)return"New Relic did not recognise the account ID.";return"Could not reach New Relic to send the test event."}}let l=()=>Response.json({error:(0,n.REFUSAL_MESSAGE)()},{status:403});async function u(e){if(!(0,n.isLocalRequest)(e))return l();if(!(0,t.isConfigured)())return Response.json({configured:!1});let r=(0,t.env)("NEWRELIC_API_KEY"),a=(0,t.env)("NEXT_PUBLIC_NEWRELIC_ACCOUNT_ID"),[i,u,c]=await Promise.all([o(r,a,"PageView"),o(r,a,"MetricFlowEvent"),s((0,t.env)("SENTRY_API_KEY"),(0,t.env)("SENTRY_ORG_SLUG"),(0,t.env)("SENTRY_PROJECT_ID"))]);return Response.json({configured:!0,insertKeySet:!!(0,t.env)(t.INSERT_KEY),browser:i,custom:u,sentry:c})}async function c(e){if(!(0,n.isLocalRequest)(e))return l();if(!(0,t.env)(t.INSERT_KEY))return Response.json({sent:!1,error:"Add your Insert key first."},{status:400});let r=await i((0,t.env)(t.INSERT_KEY),(0,t.env)("NEXT_PUBLIC_NEWRELIC_ACCOUNT_ID"));return r?Response.json({sent:!1,error:r},{status:502}):Response.json({sent:!0})}e.s(["GET",0,u,"POST",0,c],89378)},66653,e=>{"use strict";var t=e.i(12425),n=e.i(83353),r=e.i(47902),a=e.i(37892),o=e.i(54261),s=e.i(39548),i=e.i(68187),l=e.i(63984),u=e.i(88743),c=e.i(24698),d=e.i(13487),p=e.i(48776),h=e.i(29398),R=e.i(31610),v=e.i(45919),E=e.i(93695),f=e.i(12741);e.i(95315);var m=e.i(98732);let w=new t.AppRouteRouteModule({definition:{kind:n.RouteKind.APP_ROUTE,page:"/api/connect/route",pathname:"/api/connect",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/app/api/connect/route.ts",nextConfigOutput:"",userland:()=>e.r(89378),...{}}),{workAsyncStorage:C,workUnitAsyncStorage:g,serverHooks:A}=w;async function y(e,t,r){r.requestMeta&&(0,a.setRequestMeta)(e,r.requestMeta),w.isDev&&(0,a.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let C="/api/connect/route";C=C.replace(/\/index$/,"")||"/";let g=await w.prepare(e,t,{srcPage:C,multiZoneDraftMode:!1});if(!g)return t.statusCode=400,t.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve()),null;let{buildId:A,deploymentId:y,params:N,nextConfig:S,parsedUrl:T,isDraftMode:_,prerenderManifest:I,routerServerContext:P,isOnDemandRevalidate:x,revalidateOnlyGenerated:O,resolvedPathname:b,clientReferenceManifest:q,serverActionsManifest:U}=g,D=(0,i.normalizeAppPath)(C),M=!!I.routes[b]&&(w.isDev||(0,f.isRouteCacheOwner)(b,w.cacheOwner,I.routes[b])),H=!!(I.dynamicRoutes[D]||M),L=async()=>((null==P?void 0:P.render404)?await P.render404(e,t,T,!1):t.end("This page could not be found"),null);if(H&&!_){let e=I.dynamicRoutes[D];if(e&&!1===e.fallback&&!M){if(S.adapterPath)return await L();throw new E.NoFallbackError}}let k=null;!H||w.isDev||_||(k="/index"===(k=b)?"/":k);let K=!0===w.isDev||!H,j=H&&!K;U&&q&&(0,s.setManifestsSingleton)({page:C,clientReferenceManifest:q,serverActionsManifest:U});let $=e.method||"GET",F=(0,o.getTracer)(),B=F.getActiveScopeSpan(),G=!!(null==P?void 0:P.isWrappedByNextServer),Y=!!(0,a.getRequestMeta)(e,"minimalMode"),W=(0,a.getRequestMeta)(e,"incrementalCache")||await w.getIncrementalCache(e,S,I,Y);null==W||W.resetRequestCache(),globalThis.__incrementalCache=W;let X={params:N,previewProps:I.preview,renderOpts:{experimental:{authInterrupts:!!S.experimental.authInterrupts,useCacheTimeout:S.experimental.useCacheTimeout},cacheComponents:!!S.cacheComponents,validationLevel:S.experimental.instantInsights.validationLevel,isDraftMode:_,supportsDynamicResponse:K,incrementalCache:W,hmrRefreshHash:(0,a.getRequestMeta)(e,"hmrRefreshHash"),cacheLifeProfiles:S.cacheLife,staticPageGenerationTimeout:S.staticPageGenerationTimeout,waitUntil:r.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,n,r,a)=>w.onRequestError(e,t,r,a,P)},sharedContext:{buildId:A,deploymentId:y}},V=new l.NodeNextRequest(e),z=new l.NodeNextResponse(t),J=u.NextRequestAdapter.fromNodeNextRequest(V,(0,u.signalFromNodeResponse)(t)),Z=async({previousCacheEntry:n})=>{try{if(!Y&&x&&O&&!n)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let a=await w.handle(J,X);e.fetchMetrics=X.renderOpts.fetchMetrics;let o=X.renderOpts.pendingWaitUntil;o&&r.waitUntil&&(r.waitUntil(o),o=void 0);let s=X.renderOpts.collectedTags;if(!H)return await (0,p.sendResponse)(V,z,a,o),null;{let e=await a.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(a.headers);s&&(t[v.NEXT_CACHE_TAGS_HEADER]=s),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let n=void 0!==X.renderOpts.collectedRevalidate&&!(X.renderOpts.collectedRevalidate>=v.INFINITE_CACHE)&&X.renderOpts.collectedRevalidate,r=void 0===X.renderOpts.collectedExpire||X.renderOpts.collectedExpire>=v.INFINITE_CACHE?!1!==n&&n>0?S.expireTime:void 0:X.renderOpts.collectedExpire;return{value:{kind:m.CachedRouteKind.APP_ROUTE,status:a.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:n,expire:r}}}}catch(t){throw(null==n?void 0:n.isStale)&&await w.onRequestError(e,t,{routerKind:"App Router",routePath:C,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:j,isOnDemandRevalidate:x})},!1,P),t}},Q=async(a,s)=>{try{var i,l;let a=await w.handleResponse({req:e,nextConfig:S,cacheKey:k,routeKind:n.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:I,isRoutePPREnabled:!1,isOnDemandRevalidate:x,revalidateOnlyGenerated:O,responseGenerator:Z,waitUntil:r.waitUntil,isMinimalMode:Y});if(!H)return;if((null==a||null==(i=a.value)?void 0:i.kind)!==m.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",x?"REVALIDATED":a.isMiss?"MISS":a.isStale?"STALE":"HIT"),_&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let o=(0,h.fromNodeOutgoingHttpHeaders)(a.value.headers);Y&&H||o.delete(v.NEXT_CACHE_TAGS_HEADER),!a.cacheControl||t.getHeader("Cache-Control")||o.get("Cache-Control")||o.set("Cache-Control",(0,R.getCacheControlHeader)(a.cacheControl)),await (0,p.sendResponse)(V,z,new Response(a.value.body,{headers:o,status:a.value.status||200}));return}catch(t){if(t instanceof E.NoFallbackError||await w.onRequestError(e,t,{routerKind:"App Router",routePath:D,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:j,isOnDemandRevalidate:x})},!1,P),H)throw t;await (0,p.sendResponse)(V,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:o.SpanStatusCode.ERROR}),a.setAttribute("error.type",e.toString()));let n=F.getRootSpanAttributes();if(!n)return;if(n.get("next.span_type")!==c.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${n.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let r=n.get("next.route")||D,i=`${$} ${r}`;a.setAttributes({"next.route":r,"http.route":r,"next.span_name":i}),a.updateName(i),s&&s!==a&&(s.setAttribute("http.route",r),s.updateName(i))})()}};if(G&&B)await Q(B,void 0);else{let t=F.getActiveScopeSpan();await F.withPropagatedContext(e.headers,()=>F.trace(c.BaseServerSpan.handleRequest,{spanName:`${$} ${C}`,kind:o.SpanKind.SERVER,attributes:{"http.method":$,"http.target":e.url}},e=>Q(e,t)),void 0,!G)}}e.s(["handler",0,y,"patchFetch",0,function(){return(0,r.patchFetch)({workAsyncStorage:C,workUnitAsyncStorage:g})},"routeModule",0,w,"serverHooks",0,A,"workAsyncStorage",0,C,"workUnitAsyncStorage",0,g])}];
1
+ module.exports=[89378,e=>{"use strict";var t=e.i(12892),n=e.i(24514),r=e.i(60756),a=e.i(84594);async function o(e,t,n){let r=`{ actor { account(id: ${Number(t)}) { nrql(query: "${n}") { results } } } }`,o=await (0,a.nrGraphql)(e,r,8e3),s=o?.data?.actor?.account?.nrql?.results?.[0];if(!s)throw Error("no result");return s}async function s(e,t,n){try{let r=await o(e,t,`SELECT count(*) AS n, latest(timestamp) AS t FROM ${n} SINCE 5 minutes ago`),a=Number(r.n??0);return{recent:a,lastEventAt:a>0&&r.t?new Date(Number(r.t)).toISOString():null}}catch{return{recent:null,lastEventAt:null,error:"Could not read from New Relic."}}}async function i(e,t,n){try{let a=await r.default.get(`https://sentry.io/api/0/projects/${encodeURIComponent(t)}/${encodeURIComponent(n)}/issues/`,{headers:{Authorization:`Bearer ${e}`},params:{sort:"date",limit:1,statsPeriod:"24h"},timeout:8e3}),o=a.data?.[0]?.lastSeen;return{recent:o&&Date.now()-new Date(o).getTime()<3e5?1:0,lastEventAt:o??null}}catch{return{recent:null,lastEventAt:null,error:"Could not read from Sentry."}}}async function l(e,t){try{let n=await (0,a.withRegion)(n=>r.default.post(`${n.ingest}/v1/accounts/${Number(t)}/events`,[{eventType:"MetricFlowEvent",name:"test",value:1,source:"connect-page"}],{headers:{"Api-Key":e},timeout:8e3}));return n.data?.success===!0?null:"New Relic did not accept the event."}catch(t){let e=r.default.isAxiosError(t)?t.response?.status:void 0;if(401===e||403===e)return'New Relic rejected the Insert key. It must be an "Ingest - License" key for this account.';if(404===e)return"New Relic did not recognise the account ID.";return"Could not reach New Relic to send the test event."}}let u=()=>Response.json({error:(0,n.REFUSAL_MESSAGE)()},{status:403});async function c(e){if(!(0,n.isLocalRequest)(e))return u();if(!(0,t.isConfigured)())return Response.json({configured:!1});let r=(0,t.env)("NEWRELIC_API_KEY"),a=(0,t.env)("NEXT_PUBLIC_NEWRELIC_ACCOUNT_ID"),[o,l,c]=await Promise.all([s(r,a,"PageView"),s(r,a,"MetricFlowEvent"),i((0,t.env)("SENTRY_API_KEY"),(0,t.env)("SENTRY_ORG_SLUG"),(0,t.env)("SENTRY_PROJECT_ID"))]);return Response.json({configured:!0,insertKeySet:!!(0,t.env)(t.INSERT_KEY),browser:o,custom:l,sentry:c})}async function d(e){if(!(0,n.isLocalRequest)(e))return u();if(!(0,t.env)(t.INSERT_KEY))return Response.json({sent:!1,error:"Add your Insert key first."},{status:400});let r=await l((0,t.env)(t.INSERT_KEY),(0,t.env)("NEXT_PUBLIC_NEWRELIC_ACCOUNT_ID"));return r?Response.json({sent:!1,error:r},{status:502}):Response.json({sent:!0})}e.s(["GET",0,c,"POST",0,d],89378)},66653,e=>{"use strict";var t=e.i(12425),n=e.i(83353),r=e.i(47902),a=e.i(37892),o=e.i(54261),s=e.i(39548),i=e.i(68187),l=e.i(63984),u=e.i(88743),c=e.i(24698),d=e.i(13487),p=e.i(48776),h=e.i(29398),R=e.i(31610),v=e.i(45919),E=e.i(93695),f=e.i(12741);e.i(95315);var m=e.i(98732);let w=new t.AppRouteRouteModule({definition:{kind:n.RouteKind.APP_ROUTE,page:"/api/connect/route",pathname:"/api/connect",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/app/api/connect/route.ts",nextConfigOutput:"",userland:()=>e.r(89378),...{}}),{workAsyncStorage:C,workUnitAsyncStorage:g,serverHooks:A}=w;async function N(e,t,r){r.requestMeta&&(0,a.setRequestMeta)(e,r.requestMeta),w.isDev&&(0,a.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let C="/api/connect/route";C=C.replace(/\/index$/,"")||"/";let g=await w.prepare(e,t,{srcPage:C,multiZoneDraftMode:!1});if(!g)return t.statusCode=400,t.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve()),null;let{buildId:A,deploymentId:N,params:y,nextConfig:S,parsedUrl:T,isDraftMode:_,prerenderManifest:I,routerServerContext:x,isOnDemandRevalidate:P,revalidateOnlyGenerated:O,resolvedPathname:b,clientReferenceManifest:q,serverActionsManifest:U}=g,D=(0,i.normalizeAppPath)(C),M=!!I.routes[b]&&(w.isDev||(0,f.isRouteCacheOwner)(b,w.cacheOwner,I.routes[b])),H=!!(I.dynamicRoutes[D]||M),L=async()=>((null==x?void 0:x.render404)?await x.render404(e,t,T,!1):t.end("This page could not be found"),null);if(H&&!_){let e=I.dynamicRoutes[D];if(e&&!1===e.fallback&&!M){if(S.adapterPath)return await L();throw new E.NoFallbackError}}let k=null;!H||w.isDev||_||(k="/index"===(k=b)?"/":k);let j=!0===w.isDev||!H,K=H&&!j;U&&q&&(0,s.setManifestsSingleton)({page:C,clientReferenceManifest:q,serverActionsManifest:U});let $=e.method||"GET",F=(0,o.getTracer)(),G=F.getActiveScopeSpan(),B=!!(null==x?void 0:x.isWrappedByNextServer),Y=!!(0,a.getRequestMeta)(e,"minimalMode"),W=(0,a.getRequestMeta)(e,"incrementalCache")||await w.getIncrementalCache(e,S,I,Y);null==W||W.resetRequestCache(),globalThis.__incrementalCache=W;let X={params:y,previewProps:I.preview,renderOpts:{experimental:{authInterrupts:!!S.experimental.authInterrupts,useCacheTimeout:S.experimental.useCacheTimeout},cacheComponents:!!S.cacheComponents,validationLevel:S.experimental.instantInsights.validationLevel,isDraftMode:_,supportsDynamicResponse:j,incrementalCache:W,hmrRefreshHash:(0,a.getRequestMeta)(e,"hmrRefreshHash"),cacheLifeProfiles:S.cacheLife,staticPageGenerationTimeout:S.staticPageGenerationTimeout,waitUntil:r.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,n,r,a)=>w.onRequestError(e,t,r,a,x)},sharedContext:{buildId:A,deploymentId:N}},V=new l.NodeNextRequest(e),z=new l.NodeNextResponse(t),J=u.NextRequestAdapter.fromNodeNextRequest(V,(0,u.signalFromNodeResponse)(t)),Z=async({previousCacheEntry:n})=>{try{if(!Y&&P&&O&&!n)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let a=await w.handle(J,X);e.fetchMetrics=X.renderOpts.fetchMetrics;let o=X.renderOpts.pendingWaitUntil;o&&r.waitUntil&&(r.waitUntil(o),o=void 0);let s=X.renderOpts.collectedTags;if(!H)return await (0,p.sendResponse)(V,z,a,o),null;{let e=await a.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(a.headers);s&&(t[v.NEXT_CACHE_TAGS_HEADER]=s),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let n=void 0!==X.renderOpts.collectedRevalidate&&!(X.renderOpts.collectedRevalidate>=v.INFINITE_CACHE)&&X.renderOpts.collectedRevalidate,r=void 0===X.renderOpts.collectedExpire||X.renderOpts.collectedExpire>=v.INFINITE_CACHE?!1!==n&&n>0?S.expireTime:void 0:X.renderOpts.collectedExpire;return{value:{kind:m.CachedRouteKind.APP_ROUTE,status:a.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:n,expire:r}}}}catch(t){throw(null==n?void 0:n.isStale)&&await w.onRequestError(e,t,{routerKind:"App Router",routePath:C,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:K,isOnDemandRevalidate:P})},!1,x),t}},Q=async(a,s)=>{try{var i,l;let a=await w.handleResponse({req:e,nextConfig:S,cacheKey:k,routeKind:n.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:I,isRoutePPREnabled:!1,isOnDemandRevalidate:P,revalidateOnlyGenerated:O,responseGenerator:Z,waitUntil:r.waitUntil,isMinimalMode:Y});if(!H)return;if((null==a||null==(i=a.value)?void 0:i.kind)!==m.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",P?"REVALIDATED":a.isMiss?"MISS":a.isStale?"STALE":"HIT"),_&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let o=(0,h.fromNodeOutgoingHttpHeaders)(a.value.headers);Y&&H||o.delete(v.NEXT_CACHE_TAGS_HEADER),!a.cacheControl||t.getHeader("Cache-Control")||o.get("Cache-Control")||o.set("Cache-Control",(0,R.getCacheControlHeader)(a.cacheControl)),await (0,p.sendResponse)(V,z,new Response(a.value.body,{headers:o,status:a.value.status||200}));return}catch(t){if(t instanceof E.NoFallbackError||await w.onRequestError(e,t,{routerKind:"App Router",routePath:D,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:K,isOnDemandRevalidate:P})},!1,x),H)throw t;await (0,p.sendResponse)(V,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:o.SpanStatusCode.ERROR}),a.setAttribute("error.type",e.toString()));let n=F.getRootSpanAttributes();if(!n)return;if(n.get("next.span_type")!==c.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${n.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let r=n.get("next.route")||D,i=`${$} ${r}`;a.setAttributes({"next.route":r,"http.route":r,"next.span_name":i}),a.updateName(i),s&&s!==a&&(s.setAttribute("http.route",r),s.updateName(i))})()}};if(B&&G)await Q(G,void 0);else{let t=F.getActiveScopeSpan();await F.withPropagatedContext(e.headers,()=>F.trace(c.BaseServerSpan.handleRequest,{spanName:`${$} ${C}`,kind:o.SpanKind.SERVER,attributes:{"http.method":$,"http.target":e.url}},e=>Q(e,t)),void 0,!B)}}e.s(["handler",0,N,"patchFetch",0,function(){return(0,r.patchFetch)({workAsyncStorage:C,workUnitAsyncStorage:g})},"routeModule",0,w,"serverHooks",0,A,"workAsyncStorage",0,C,"workUnitAsyncStorage",0,g])}];
2
2
 
3
3
  //# sourceMappingURL=_1l9d64o._.js.map