@karan171996/metricflow 0.4.0 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (164) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/build/chunks/[turbopack-node]_transforms_postcss_ts_1gfkiq9._.js +1 -1
  3. package/.next/build/chunks/{node_modules__pnpm_0q5gz_g._.js → node_modules__pnpm_0x15692._.js} +95 -40
  4. package/.next/build-manifest.json +3 -3
  5. package/.next/fallback-build-manifest.json +3 -3
  6. package/.next/next-server.js.nft.json +1 -1
  7. package/.next/prerender-manifest.json +6 -6
  8. package/.next/server/app/_global-error/page.js.nft.json +1 -1
  9. package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  10. package/.next/server/app/_global-error.html +1 -1
  11. package/.next/server/app/_global-error.rsc +1 -1
  12. package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  13. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  14. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  15. package/.next/server/app/_not-found/page.js +1 -1
  16. package/.next/server/app/_not-found/page.js.nft.json +1 -1
  17. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  18. package/.next/server/app/_not-found.html +2 -2
  19. package/.next/server/app/_not-found.rsc +41 -40
  20. package/.next/server/app/_not-found.segments/_full.segment.rsc +41 -40
  21. package/.next/server/app/_not-found.segments/_index.segment.rsc +32 -31
  22. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  23. package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  24. package/.next/server/app/api/analyze/route.js +1 -1
  25. package/.next/server/app/api/analyze/route.js.nft.json +1 -1
  26. package/.next/server/app/api/connect/route.js +1 -1
  27. package/.next/server/app/api/connect/route.js.nft.json +1 -1
  28. package/.next/server/app/api/health/route.js.nft.json +1 -1
  29. package/.next/server/app/api/metrics/route.js +2 -2
  30. package/.next/server/app/api/metrics/route.js.nft.json +1 -1
  31. package/.next/server/app/api/settings/route.js +1 -1
  32. package/.next/server/app/api/settings/route.js.nft.json +1 -1
  33. package/.next/server/app/api/setup/ai/route.js +1 -1
  34. package/.next/server/app/api/setup/ai/route.js.nft.json +1 -1
  35. package/.next/server/app/api/setup/route.js +1 -1
  36. package/.next/server/app/api/setup/route.js.nft.json +1 -1
  37. package/.next/server/app/connect/page.js +1 -1
  38. package/.next/server/app/connect/page.js.nft.json +1 -1
  39. package/.next/server/app/connect/page_client-reference-manifest.js +1 -1
  40. package/.next/server/app/connect.html +6 -5
  41. package/.next/server/app/connect.rsc +42 -41
  42. package/.next/server/app/connect.segments/_full.segment.rsc +42 -41
  43. package/.next/server/app/connect.segments/_index.segment.rsc +32 -31
  44. package/.next/server/app/connect.segments/_tree.segment.rsc +2 -2
  45. package/.next/server/app/connect.segments/connect/__PAGE__.segment.rsc +6 -6
  46. package/.next/server/app/index.html +2 -2
  47. package/.next/server/app/index.rsc +42 -41
  48. package/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  49. package/.next/server/app/index.segments/_full.segment.rsc +42 -41
  50. package/.next/server/app/index.segments/_index.segment.rsc +32 -31
  51. package/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  52. package/.next/server/app/page.js +1 -1
  53. package/.next/server/app/page.js.nft.json +1 -1
  54. package/.next/server/app/page_client-reference-manifest.js +1 -1
  55. package/.next/server/app/performance/[slug]/page.js +2 -2
  56. package/.next/server/app/performance/[slug]/page.js.nft.json +1 -1
  57. package/.next/server/app/performance/[slug]/page_client-reference-manifest.js +1 -1
  58. package/.next/server/app/performance/page.js +1 -1
  59. package/.next/server/app/performance/page.js.nft.json +1 -1
  60. package/.next/server/app/performance/page_client-reference-manifest.js +1 -1
  61. package/.next/server/app/performance.html +2 -2
  62. package/.next/server/app/performance.rsc +55 -53
  63. package/.next/server/app/performance.segments/_full.segment.rsc +55 -53
  64. package/.next/server/app/performance.segments/_index.segment.rsc +32 -31
  65. package/.next/server/app/performance.segments/_tree.segment.rsc +2 -2
  66. package/.next/server/app/performance.segments/performance/__PAGE__.segment.rsc +23 -22
  67. package/.next/server/app/settings/page.js +3 -3
  68. package/.next/server/app/settings/page.js.nft.json +1 -1
  69. package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  70. package/.next/server/app/settings.html +2 -2
  71. package/.next/server/app/settings.rsc +57 -56
  72. package/.next/server/app/settings.segments/_full.segment.rsc +57 -56
  73. package/.next/server/app/settings.segments/_index.segment.rsc +32 -31
  74. package/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
  75. package/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +17 -17
  76. package/.next/server/app/setup/page.js +1 -1
  77. package/.next/server/app/setup/page.js.nft.json +1 -1
  78. package/.next/server/app/setup/page_client-reference-manifest.js +1 -1
  79. package/.next/server/app/setup.html +2 -2
  80. package/.next/server/app/setup.rsc +43 -42
  81. package/.next/server/app/setup.segments/_full.segment.rsc +43 -42
  82. package/.next/server/app/setup.segments/_index.segment.rsc +32 -31
  83. package/.next/server/app/setup.segments/_tree.segment.rsc +2 -2
  84. package/.next/server/app/setup.segments/setup/__PAGE__.segment.rsc +7 -7
  85. package/.next/server/app/tools/[tool]/page.js +2 -2
  86. package/.next/server/app/tools/[tool]/page.js.nft.json +1 -1
  87. package/.next/server/app/tools/[tool]/page_client-reference-manifest.js +1 -1
  88. package/.next/server/chunks/[root-of-the-server]__00bbqkl._.js +3 -0
  89. package/.next/server/chunks/[root-of-the-server]__0fkj1-q._.js +1 -1
  90. package/.next/server/chunks/[root-of-the-server]__0rfr72x._.js +3 -0
  91. package/.next/server/chunks/[root-of-the-server]__186pj_c._.js +3 -0
  92. package/.next/server/chunks/[root-of-the-server]__19yigji._.js +3 -0
  93. package/.next/server/chunks/[root-of-the-server]__1igrw77._.js +3 -0
  94. package/.next/server/chunks/[root-of-the-server]__1xo4bin._.js +3 -0
  95. package/.next/server/chunks/_08xo8nu._.js +7 -7
  96. package/.next/server/chunks/_0w8wvdn._.js +1 -1
  97. package/.next/server/chunks/_0wct7-r._.js +8 -7
  98. package/.next/server/chunks/_1l9d64o._.js +1 -1
  99. package/.next/server/chunks/ssr/0x0c_next_dist_1icgwks._.js +1 -1
  100. package/.next/server/chunks/ssr/[root-of-the-server]__0o_fd5z._.js +3 -0
  101. package/.next/server/chunks/ssr/{[root-of-the-server]__07myivi._.js → [root-of-the-server]__0qb6-a-._.js} +1 -1
  102. package/.next/server/chunks/ssr/[root-of-the-server]__14_2v5e._.js +3 -0
  103. package/.next/server/chunks/ssr/{[root-of-the-server]__1wd0g6g._.js → [root-of-the-server]__1r29vac._.js} +1 -1
  104. package/.next/server/chunks/ssr/[root-of-the-server]__1s_ikmb._.js +3 -0
  105. package/.next/server/chunks/ssr/_045bvlq._.js +3 -0
  106. package/.next/server/chunks/ssr/_0_02db6._.js +3 -0
  107. package/.next/server/chunks/ssr/_0bxxvzb._.js +3 -0
  108. package/.next/server/chunks/ssr/_0cq6qjs._.js +67 -0
  109. package/.next/server/chunks/ssr/_0htqt7_._.js +5 -5
  110. package/.next/server/chunks/ssr/_0ompurr._.js +7 -0
  111. package/.next/server/chunks/ssr/_0un641_._.js +3 -0
  112. package/.next/server/chunks/ssr/_13m9nev._.js +1 -1
  113. package/.next/server/chunks/ssr/_14aoqb2._.js +151 -0
  114. package/.next/server/chunks/ssr/_19s4g71._.js +3 -0
  115. package/.next/server/chunks/ssr/{_1rd2o5p._.js → _1n6rdd2._.js} +2 -2
  116. package/.next/server/chunks/ssr/{components_0j32dj5._.js → components_1_8btz1._.js} +1 -1
  117. package/.next/server/chunks/ssr/node_modules__pnpm_0o-aqpb._.js +3 -0
  118. package/.next/server/middleware-build-manifest.js +3 -3
  119. package/.next/server/pages/404.html +2 -2
  120. package/.next/server/pages/500.html +1 -1
  121. package/.next/static/chunks/0798_gs3g5aja.js +1 -0
  122. package/.next/static/chunks/1_dhsu7ouiell.js +5 -0
  123. package/.next/static/chunks/1habrj18124lo.js +1 -0
  124. package/.next/static/chunks/268zd4cpgc5jh.js +1 -0
  125. package/.next/static/chunks/278--y-yo6m9v.js +1 -0
  126. package/.next/static/chunks/2bt9wtnw1g0g_.css +1 -0
  127. package/.next/static/chunks/2mi013mf2pu08.js +1 -0
  128. package/.next/static/chunks/{3dwrl3svcft9m.js → 2p8myet8kmrgx.js} +1 -1
  129. package/.next/static/chunks/39h0f3s2ddxz_.js +65 -0
  130. package/.next/static/chunks/3ah6umj9qtdhc.js +1 -0
  131. package/.next/static/chunks/3wwhtfj-3akyd.js +1 -0
  132. package/.next/trace +1 -1
  133. package/.next/trace-build +1 -1
  134. package/package.json +1 -1
  135. package/.next/server/chunks/[root-of-the-server]__0gv2l08._.js +0 -3
  136. package/.next/server/chunks/[root-of-the-server]__0pbux_a._.js +0 -3
  137. package/.next/server/chunks/[root-of-the-server]__16h-056._.js +0 -3
  138. package/.next/server/chunks/[root-of-the-server]__1mwvot_._.js +0 -3
  139. package/.next/server/chunks/[root-of-the-server]__1o8nu3b._.js +0 -3
  140. package/.next/server/chunks/[root-of-the-server]__1p0_79u._.js +0 -3
  141. package/.next/server/chunks/ssr/0x0c_next_dist_client_components_server-async-storage_1-oepaa.js +0 -3
  142. package/.next/server/chunks/ssr/[root-of-the-server]__031i31p._.js +0 -3
  143. package/.next/server/chunks/ssr/[root-of-the-server]__0kocjhm._.js +0 -3
  144. package/.next/server/chunks/ssr/[root-of-the-server]__1thxzex._.js +0 -3
  145. package/.next/server/chunks/ssr/_0defuav._.js +0 -3
  146. package/.next/server/chunks/ssr/_0e_s0v0._.js +0 -3
  147. package/.next/server/chunks/ssr/_0initzv._.js +0 -151
  148. package/.next/server/chunks/ssr/_0me-cg5._.js +0 -3
  149. package/.next/server/chunks/ssr/_0q0a6th._.js +0 -7
  150. package/.next/server/chunks/ssr/_1bk0z6l._.js +0 -3
  151. package/.next/server/chunks/ssr/_1t7ag6f._.js +0 -3
  152. package/.next/server/chunks/ssr/_1tpe22e._.js +0 -66
  153. package/.next/static/chunks/0cpw50mf8n-fl.js +0 -5
  154. package/.next/static/chunks/1ou_bh9mvu5x1.js +0 -1
  155. package/.next/static/chunks/1t-tmstauvn0u.js +0 -1
  156. package/.next/static/chunks/3dfy6smxuju__.js +0 -1
  157. package/.next/static/chunks/3gx5w553rdjfv.js +0 -1
  158. package/.next/static/chunks/3k7zn53z9c7_r.css +0 -1
  159. package/.next/static/chunks/3ptt1nvmavhqg.js +0 -1
  160. package/.next/static/chunks/3s-0xgj-1d8cp.js +0 -64
  161. package/.next/static/chunks/3xupay20_o0lm.js +0 -1
  162. /package/.next/static/{wxoN5sme_nnxf8fLQMX1S → eV4px19Q3p5aL-JnEEP-F}/_buildManifest.js +0 -0
  163. /package/.next/static/{wxoN5sme_nnxf8fLQMX1S → eV4px19Q3p5aL-JnEEP-F}/_clientMiddlewareManifest.js +0 -0
  164. /package/.next/static/{wxoN5sme_nnxf8fLQMX1S → eV4px19Q3p5aL-JnEEP-F}/_ssgManifest.js +0 -0
@@ -1,17 +1,18 @@
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=`
1
+ module.exports=[51980,e=>{"use strict";var t=e.i(50227),r=e.i(66680);let a="WHERE (pageUrl LIKE 'http%://localhost%' OR pageUrl LIKE 'http%://127.0.0.1%')";function n(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"}var i=e.i(84594);class s{async byPath(){try{return this.aggregateRows(await this.fetchRows())}catch(e){return this.onError(e),{}}}aggregateRows(e){if(!e||0===e.length)return{};let t={};for(let[r,a]of Object.entries(this.groupByPath(e))){let e=this.mergeVariants(a);e&&(t[r]=e)}return t}onError(e){console.error(`${this.constructor.name} fetch failed:`,e)}groupByPath(e){let t={};for(let r of e){let e=this.pathOf(r);null!==e&&(t[e]??=[]).push(r)}return t}pathOf(e){return n(String(e.pageUrl??e.url??e.facet??""))}weightedAverage(e,t){if(0===e.length)return 0;let r=t.reduce((e,t)=>e+t,0);return 0===r?0:e.reduce((e,r,a)=>e+r*(t[a]??0),0)/r}percent(e,t){return t?e/t*100:0}safeDivide(e,t){return t?e/t:0}}function l(e){return e&&"object"==typeof e?Number("score"in e?e.score:Object.values(e)[0]??0)||0:Number(e??0)||0}class c extends s{apiKey;accountId;constructor(e,t){super(),this.apiKey=e,this.accountId=t}aggregate(e){return e.views?this.aggregateRows(this.flattenNrAccount(e)):{}}async fetchRows(){if(!this.apiKey||!this.accountId)return[];let e=e=>`nrql(query: "${e}") { results }`,t="SINCE 24 hours ago",r=`{ actor { account(id: ${Number(this.accountId)}) {
2
+ views: ${e(`SELECT percentile(duration, 75) AS loadTime, percentile(backendDuration, 75) AS ttfb, count(*) AS views, apdex(duration, t: 2) AS apdex FROM PageView ${a} FACET pageUrl ${t} LIMIT 200`)}
3
+ timing: ${e(`SELECT percentile(largestContentfulPaint, 75) AS lcp, percentile(cumulativeLayoutShift, 75) AS cls, percentile(interactionToNextPaint, 75) AS inp, percentile(firstInputDelay, 75) AS fid FROM PageViewTiming ${a} FACET pageUrl ${t} LIMIT 200`)}
4
+ errors: ${e(`SELECT count(*) AS errors FROM JavaScriptError ${a} FACET pageUrl ${t} LIMIT 200`)}
5
+ ajax: ${e(`SELECT average(duration) AS ajaxLatency, count(*) AS ajaxCalls, filter(count(*), WHERE httpResponseCode >= 400 OR httpResponseCode = 0) AS ajaxFailed FROM AjaxRequest ${a} FACET pageUrl ${t} LIMIT 200`)}
6
+ } } }`;try{let e=await (0,i.nrGraphql)(this.apiKey,r,15e3),t=e.data?.actor?.account;if(!t?.views)throw Error("New Relic rejected the metrics query. Check your key and account ID.");return this.flattenNrAccount(t)}catch{throw Error("Could not reach New Relic to load metrics.")}}flattenNrAccount(e){let t=e.views?.results??[],r=e.timing?.results??[],a=e.errors?.results??[],n=e.ajax?.results??[],o=new Map;for(let e of t){let t=String(e.pageUrl??e.facet??"");o.set(t,{...o.get(t),...e})}for(let e of r){let t=String(e.pageUrl??e.facet??"");o.set(t,{...o.get(t),...e})}for(let e of a){let t=String(e.pageUrl??e.facet??"");o.set(t,{...o.get(t),...e})}for(let e of n){let t=String(e.pageUrl??e.facet??"");o.set(t,{...o.get(t),...e})}return Array.from(o.values())}mergeVariants(e){if(0===e.length)return null;let t=0,r=0,a=0,n=0,o=0,i=0,s=0,c=0,u=0,p=0,d=0,h=0;for(let g of e){let e=l(g.views);t+=e,r+=1e3*l(g.loadTime)*e,a+=1e3*l(g.ttfb)*e,n+=l(g.apdex)*e,o+=1e3*l(g.lcp)*e,i+=l(g.cls)*e,s+=l(g.inp)*e,c+=l(g.fid)*e,u+=l(g.errors);let f=l(g.ajaxCalls);p+=f,d+=1e3*l(g.ajaxLatency)*f,h+=l(g.ajaxFailed)}let g=t||1;return{loadTime:r/g,lcp:o/g,ttfb:a/g,cls:i/g,inp:s/g,fid:c/g,errorRate:t?u/t*100:0,throughput:t,apdexScore:n/g,...p>0&&{ajaxLatency:d/p,ajaxFailRate:h/p*100}}}onError(e){console.error("New Relic fetch failed:",e)}}let u=null;async function p(e,t){if(!e||!t)return[];let r=`${e}:${t}`;if(u&&u.key===r&&Date.now()-u.at<6e4)return u.pages;let a=await d(e,t);return u={key:r,at:Date.now(),pages:a},a}async function d(e,t){let s,l=`
6
7
  query {
7
8
  actor {
8
9
  account(id: ${Number(t)}) {
9
- nrql(query: "SELECT count(*) AS views FROM PageView FACET pageUrl SINCE 24 hours ago LIMIT 200") {
10
+ nrql(query: "SELECT count(*) AS views FROM PageView ${a} FACET pageUrl SINCE 24 hours ago LIMIT 200") {
10
11
  results
11
12
  }
12
13
  }
13
14
  }
14
15
  }
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),h=e.i(83808);let f={errorCount:0,errorRate:0,warningCount:0,latestErrors:[]};async function g(e,t){let r=e&&t?(0,h.parseSentryDsn)(t):null;if(!e||!r?.ok)return{};try{let t=await (0,h.orgSlugForDsn)(e,r);if(!t)return{};let n=await d.default.get(`${r.apiBase}/organizations/${encodeURIComponent(t)}/events/`,{headers:{Authorization:`Bearer ${e}`},timeout:1e4,params:{project:r.projectId,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}(n.data?.data??[])}catch(e){return console.error("Sentry API error:",d.default.isAxiosError(e)?e.response?.status:"request failed"),{}}}var m=e.i(12892);let w=[];var R=e.i(90770);async function v(){if(!(0,m.isConfigured)())return Response.json({configured:!1,project:C(),pages:[],history:[],timestamp:new Date().toISOString()});try{let e=performance.now(),t=await c((0,m.env)("NEWRELIC_API_KEY"),(0,m.env)("NEXT_PUBLIC_NEWRELIC_ACCOUNT_ID"));if(0===t.length)return Response.json({configured:!0,project:C(),pages:[],history:w,timestamp:new Date().toISOString()});let r=performance.now(),n=l((0,m.env)("NEWRELIC_API_KEY"),(0,m.env)("NEXT_PUBLIC_NEWRELIC_ACCOUNT_ID")).then(e=>((0,R.recordTiming)("New Relic: metrics",performance.now()-r),e)),a=performance.now(),o=g((0,m.env)("SENTRY_API_KEY"),(0,m.env)("SENTRY_DSN")).then(e=>((0,R.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]??E,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 w.push({timestamp:new Date().toISOString(),pages:u}),w.length>20&&w.shift(),Response.json({configured:!0,project:C(),pages:u,history:w,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 E={loadTime:0,lcp:0,ttfb:0,cls:0,inp:0,fid:0,errorRate:0,throughput:0,apdexScore:0};function C(){return(0,m.env)("METRICFLOW_PROJECT_NAME")||(0,t.basename)(process.cwd())}e.s(["GET",0,v],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:b,isOnDemandRevalidate:_,revalidateOnlyGenerated:P,resolvedPathname:O,clientReferenceManifest:q,serverActionsManifest:U}=C,D=(0,s.normalizeAppPath)(E),M=!!x.routes[O]&&(v.isDev||(0,w.isRouteCacheOwner)(O,v.cacheOwner,x.routes[O])),$=!!(x.dynamicRoutes[D]||M),L=async()=>((null==b?void 0:b.render404)?await b.render404(e,t,I,!1):t.end("This page could not be found"),null);if($&&!N){let e=x.dynamicRoutes[D];if(e&&!1===e.fallback&&!M){if(A.adapterPath)return await L();throw new m.NoFallbackError}}let k=null;!$||v.isDev||N||(k="/index"===(k=O)?"/":k);let j=!0===v.isDev||!$,H=$&&!j;U&&q&&(0,i.setManifestsSingleton)({page:E,clientReferenceManifest:q,serverActionsManifest:U});let F=e.method||"GET",B=(0,o.getTracer)(),K=B.getActiveScopeSpan(),W=!!(null==b?void 0:b.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 z={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:j,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,b)},sharedContext:{buildId:S,deploymentId:y}},X=new l.NodeNextRequest(e),Y=new l.NodeNextResponse(t),J=u.NextRequestAdapter.fromNodeNextRequest(X,(0,u.signalFromNodeResponse)(t)),Z=async({previousCacheEntry:r})=>{try{if(!G&&_&&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,z);e.fetchMetrics=z.renderOpts.fetchMetrics;let o=z.renderOpts.pendingWaitUntil;o&&n.waitUntil&&(n.waitUntil(o),o=void 0);let i=z.renderOpts.collectedTags;if(!$)return await (0,d.sendResponse)(X,Y,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!==z.renderOpts.collectedRevalidate&&!(z.renderOpts.collectedRevalidate>=g.INFINITE_CACHE)&&z.renderOpts.collectedRevalidate,n=void 0===z.renderOpts.collectedExpire||z.renderOpts.collectedExpire>=g.INFINITE_CACHE?!1!==r&&r>0?A.expireTime:void 0:z.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:_})},!1,b),t}},Q=async(a,i)=>{try{var s,l;let a=await v.handleResponse({req:e,nextConfig:A,cacheKey:k,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:x,isRoutePPREnabled:!1,isOnDemandRevalidate:_,revalidateOnlyGenerated:P,responseGenerator:Z,waitUntil:n.waitUntil,isMinimalMode:G});if(!$)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",_?"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&&$||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)(X,Y,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:D,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:_})},!1,b),$)throw t;await (0,d.sendResponse)(X,Y,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=B.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")||D,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&&K)await Q(K,void 0);else{let t=B.getActiveScopeSpan();await B.withPropagatedContext(e.headers,()=>B.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])}];
16
+ `;try{s=await (0,i.nrGraphql)(e,l,1e4)}catch{throw Error("Could not reach New Relic to discover pages.")}let c=s.data?.actor?.account?.nrql?.results;if(!c)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:a}of e){let e=n(r);null!==e&&t.set(e,(t.get(e)??0)+(Number.isFinite(a)?a:0))}let a=[...t].sort((e,t)=>t[1]-e[1]||e[0].localeCompare(t[0])).slice(0,20),i=new Map;for(let[e]of a)i.set(o(e),(i.get(o(e))??0)+1);return a.map(([e,t])=>{let a=o(e),n=i.get(a)>1?`${a}-${(0,r.createHash)("sha1").update(e).digest("hex").slice(0,6)}`:a;return{url:e,slug:n,name:"/"===e?"Homepage":e.split("/").filter(Boolean).map(e=>e.replace(/[-_]+/g," ").trim().replace(/\b\w/g,e=>e.toUpperCase())||e).join(" / "),views:t}})}(c.map(e=>({url:String(e.pageUrl??e.facet??""),views:Number(e.views??e.count??0)})))}var h=e.i(60756),g=e.i(83808);class f extends s{apiKey;dsn;constructor(e,t){super(),this.apiKey=e,this.dsn=t}async fetchRows(){let e=this.apiKey&&this.dsn?(0,g.parseSentryDsn)(this.dsn):null;if(!this.apiKey||!e?.ok)return[];try{let t=await (0,g.orgSlugForDsn)(this.apiKey,e);if(!t)return[];let r=await h.default.get(`${e.apiBase}/organizations/${encodeURIComponent(t)}/events/`,{headers:{Authorization:`Bearer ${this.apiKey}`},timeout:1e4,params:{project:e.projectId,field:["url","title","count()","last_seen()"],query:"event.type:error",statsPeriod:"24h",sort:"-last_seen",per_page:100},paramsSerializer:{indexes:null}});return r.data?.data??[]}catch(e){throw console.error("Sentry API error:",h.default.isAxiosError(e)?e.response?.status:"request failed"),Error("Sentry request failed")}}mergeVariants(e){if(0===e.length)return null;let t=0,r=[];for(let a of e){let e=Number(a["count()"]??0);t+=e,r.length<5&&r.push({title:a.title??"Unknown error",count:e,lastSeen:a["last_seen()"]??""})}return{errorCount:t,errorRate:0,warningCount:0,latestErrors:r}}onError(e){throw e}}var R=e.i(12892);let m=[];var w=e.i(90770);async function E(){let e=(0,R.connectedTools)();if(!e.length)return Response.json({configured:!1,tools:e,project:C(),pages:[],history:[],timestamp:new Date().toISOString()});if(!e.includes("new-relic"))return Response.json({configured:!0,tools:e,project:C(),pages:[],history:[],timestamp:new Date().toISOString()});try{let t=performance.now(),r=await p((0,R.env)("NEWRELIC_API_KEY"),(0,R.env)("NEXT_PUBLIC_NEWRELIC_ACCOUNT_ID"));if(0===r.length)return Response.json({configured:!0,tools:e,project:C(),pages:[],history:m,timestamp:new Date().toISOString()});let a=performance.now(),n=new c((0,R.env)("NEWRELIC_API_KEY"),(0,R.env)("NEXT_PUBLIC_NEWRELIC_ACCOUNT_ID")).byPath().then(e=>((0,w.recordTiming)("New Relic: metrics",performance.now()-a),e)),o=performance.now(),i=e.includes("sentry")?new f((0,R.env)("SENTRY_API_KEY"),(0,R.env)("SENTRY_DSN")).byPath().then(e=>((0,w.recordTiming)("Sentry: events",performance.now()-o),e)):Promise.resolve(null),[s,l]=await Promise.all([n,i.catch(()=>void 0)]),u=void 0===l?["sentry"]:[],d=l??{};console.log(`[timing] combined New Relic + Sentry batch: ${Math.round(performance.now()-t)}ms`);let h=r.map(({name:t,slug:r,url:a,views:n})=>{var o,i;let l=s[a]??v,c=e.includes("sentry")&&!u.length?d[a]??y:void 0;return{name:t,slug:r,url:a,visitors:(o=n)>=1e3?`${(o/1e3).toFixed(1)}k`:String(o),status:(i=l).errorRate>5?"Critical":i.errorRate>1||i.apdexScore<.9?"Warning":"Healthy",newRelic:l,sentry:c,recordedAt:new Date().toISOString()}});return m.push({timestamp:new Date().toISOString(),pages:h}),m.length>20&&m.shift(),Response.json({configured:!0,tools:e,failed:u,project:C(),pages:h,history:m,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 v={loadTime:0,lcp:0,ttfb:0,cls:0,inp:0,fid:0,errorRate:0,throughput:0,apdexScore:0},y={errorCount:0,errorRate:0,warningCount:0,latestErrors:[]};function C(){return(0,R.env)("METRICFLOW_PROJECT_NAME")||(0,t.basename)(process.cwd())}e.s(["GET",0,E],51980)},6408,e=>{"use strict";var t=e.i(12425),r=e.i(83353),a=e.i(47902),n=e.i(37892),o=e.i(54261),i=e.i(39548),s=e.i(68187),l=e.i(63984),c=e.i(88743),u=e.i(24698),p=e.i(13487),d=e.i(48776),h=e.i(29398),g=e.i(31610),f=e.i(45919),R=e.i(93695),m=e.i(12741);e.i(95315);var w=e.i(98732);let E=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:v,workUnitAsyncStorage:y,serverHooks:C}=E;async function S(e,t,a){a.requestMeta&&(0,n.setRequestMeta)(e,a.requestMeta),E.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let v="/api/metrics/route";v=v.replace(/\/index$/,"")||"/";let y=await E.prepare(e,t,{srcPage:v,multiZoneDraftMode:!1});if(!y)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:C,deploymentId:S,params:A,nextConfig:T,parsedUrl:I,isDraftMode:x,prerenderManifest:N,routerServerContext:P,isOnDemandRevalidate:b,revalidateOnlyGenerated:O,resolvedPathname:_,clientReferenceManifest:U,serverActionsManifest:$}=y,j=(0,s.normalizeAppPath)(v),q=!!N.routes[_]&&(E.isDev||(0,m.isRouteCacheOwner)(_,E.cacheOwner,N.routes[_])),M=!!(N.dynamicRoutes[j]||q),D=async()=>((null==P?void 0:P.render404)?await P.render404(e,t,I,!1):t.end("This page could not be found"),null);if(M&&!x){let e=N.dynamicRoutes[j];if(e&&!1===e.fallback&&!q){if(T.adapterPath)return await D();throw new R.NoFallbackError}}let L=null;!M||E.isDev||x||(L="/index"===(L=_)?"/":L);let F=!0===E.isDev||!M,H=M&&!F;$&&U&&(0,i.setManifestsSingleton)({page:v,clientReferenceManifest:U,serverActionsManifest:$});let k=e.method||"GET",K=(0,o.getTracer)(),B=K.getActiveScopeSpan(),W=!!(null==P?void 0:P.isWrappedByNextServer),V=!!(0,n.getRequestMeta)(e,"minimalMode"),G=(0,n.getRequestMeta)(e,"incrementalCache")||await E.getIncrementalCache(e,T,N,V);null==G||G.resetRequestCache(),globalThis.__incrementalCache=G;let z={params:A,previewProps:N.preview,renderOpts:{experimental:{authInterrupts:!!T.experimental.authInterrupts,useCacheTimeout:T.experimental.useCacheTimeout},cacheComponents:!!T.cacheComponents,validationLevel:T.experimental.instantInsights.validationLevel,isDraftMode:x,supportsDynamicResponse:F,incrementalCache:G,hmrRefreshHash:(0,n.getRequestMeta)(e,"hmrRefreshHash"),cacheLifeProfiles:T.cacheLife,staticPageGenerationTimeout:T.staticPageGenerationTimeout,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,n)=>E.onRequestError(e,t,a,n,P)},sharedContext:{buildId:C,deploymentId:S}},X=new l.NodeNextRequest(e),Y=new l.NodeNextResponse(t),J=c.NextRequestAdapter.fromNodeNextRequest(X,(0,c.signalFromNodeResponse)(t)),Z=async({previousCacheEntry:r})=>{try{if(!V&&b&&O&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let n=await E.handle(J,z);e.fetchMetrics=z.renderOpts.fetchMetrics;let o=z.renderOpts.pendingWaitUntil;o&&a.waitUntil&&(a.waitUntil(o),o=void 0);let i=z.renderOpts.collectedTags;if(!M)return await (0,d.sendResponse)(X,Y,n,o),null;{let e=await n.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(n.headers);i&&(t[f.NEXT_CACHE_TAGS_HEADER]=i),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==z.renderOpts.collectedRevalidate&&!(z.renderOpts.collectedRevalidate>=f.INFINITE_CACHE)&&z.renderOpts.collectedRevalidate,a=void 0===z.renderOpts.collectedExpire||z.renderOpts.collectedExpire>=f.INFINITE_CACHE?!1!==r&&r>0?T.expireTime:void 0:z.renderOpts.collectedExpire;return{value:{kind:w.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 E.onRequestError(e,t,{routerKind:"App Router",routePath:v,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:b})},!1,P),t}},Q=async(n,i)=>{try{var s,l;let n=await E.handleResponse({req:e,nextConfig:T,cacheKey:L,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:N,isRoutePPREnabled:!1,isOnDemandRevalidate:b,revalidateOnlyGenerated:O,responseGenerator:Z,waitUntil:a.waitUntil,isMinimalMode:V});if(!M)return;if((null==n||null==(s=n.value)?void 0:s.kind)!==w.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==n||null==(l=n.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});V||t.setHeader("x-nextjs-cache",b?"REVALIDATED":n.isMiss?"MISS":n.isStale?"STALE":"HIT"),x&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let o=(0,h.fromNodeOutgoingHttpHeaders)(n.value.headers);V&&M||o.delete(f.NEXT_CACHE_TAGS_HEADER),!n.cacheControl||t.getHeader("Cache-Control")||o.get("Cache-Control")||o.set("Cache-Control",(0,g.getCacheControlHeader)(n.cacheControl)),await (0,d.sendResponse)(X,Y,new Response(n.value.body,{headers:o,status:n.value.status||200}));return}catch(t){if(t instanceof R.NoFallbackError||await E.onRequestError(e,t,{routerKind:"App Router",routePath:j,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:b})},!1,P),M)throw t;await (0,d.sendResponse)(X,Y,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=K.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==u.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let a=r.get("next.route")||j,s=`${k} ${a}`;n.setAttributes({"next.route":a,"http.route":a,"next.span_name":s}),n.updateName(s),i&&i!==n&&(i.setAttribute("http.route",a),i.updateName(s))})()}};if(W&&B)await Q(B,void 0);else{let t=K.getActiveScopeSpan();await K.withPropagatedContext(e.headers,()=>K.trace(u.BaseServerSpan.handleRequest,{spanName:`${k} ${v}`,kind:o.SpanKind.SERVER,attributes:{"http.method":k,"http.target":e.url}},e=>Q(e,t)),void 0,!W)}}e.s(["handler",0,S,"patchFetch",0,function(){return(0,a.patchFetch)({workAsyncStorage:v,workUnitAsyncStorage:y})},"routeModule",0,E,"serverHooks",0,C,"workAsyncStorage",0,v,"workUnitAsyncStorage",0,y])}];
16
17
 
17
18
  //# sourceMappingURL=_0wct7-r._.js.map
@@ -1,6 +1,6 @@
1
1
  module.exports=[89378,e=>{"use strict";var t=e.i(12892),n=e.i(24514),r=e.i(60756),a=e.i(84594),o=e.i(83808);async function i(e,t,n){let r=`{ actor { account(id: ${Number(t)}) { nrql(query: "${n}") { results } } } }`,o=await (0,a.nrGraphql)(e,r,8e3),i=o?.data?.actor?.account?.nrql?.results?.[0];if(!i)throw Error("no result");return i}async function s(e,t,n){try{let r=await i(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 l(e,t){let n=(0,o.parseSentryDsn)(t);if(!n.ok)return{recent:null,lastEventAt:null,error:"Could not read from Sentry."};try{let t=await (0,o.orgSlugForDsn)(e,n);if(!t)return{recent:null,lastEventAt:null,error:"Could not read from Sentry."};let a=await r.default.get(`${n.apiBase}/organizations/${encodeURIComponent(t)}/issues/`,{headers:{Authorization:`Bearer ${e}`},params:{project:n.projectId,sort:"date",limit:1,statsPeriod:"24h"},timeout:8e3}),i=a.data?.[0]?.lastSeen;return{recent:i&&Date.now()-new Date(i).getTime()<3e5?1:0,lastEventAt:i??null}}catch{return{recent:null,lastEventAt:null,error:"Could not read from Sentry."}}}async function u(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."}}async function c(e,t){let n=Number(t),r=`{ actor {
2
2
  entitySearch(query: "domain='BROWSER' AND accountId=${n}") { count results { entities { name ... on BrowserApplicationEntityOutline { applicationId } } } }
3
3
  apiAccess { keySearch(query: { types: INGEST, scope: { accountIds: [${n}] } }) { keys { ... on ApiAccessIngestKey { ingestType key } } } }
4
- } }`;try{let t=await (0,a.nrGraphql)(e,r,1e4),n=t?.data?.actor?.entitySearch,o=n?.results?.entities?.[0],i=t?.data?.actor?.apiAccess?.keySearch?.keys?.find(e=>"BROWSER"===e.ingestType)?.key??null;return{appCount:n?.count??0,appName:o?.name??null,applicationId:o?.applicationId?String(o.applicationId):null,browserKey:i}}catch{return{appCount:0,appName:null,applicationId:null,browserKey:null,error:"Could not read your Browser app from New Relic."}}}let d=()=>Response.json({error:(0,n.REFUSAL_MESSAGE)()},{status:403});async function p(e){if(!(0,n.isLocalRequest)(e))return d();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,i,u,p]=await Promise.all([s(r,a,"PageView"),s(r,a,"MetricFlowEvent"),l((0,t.env)("SENTRY_API_KEY"),(0,t.env)("SENTRY_DSN")),c(r,a)]);return Response.json({configured:!0,accountId:a,insertKeySet:!!(0,t.env)(t.INSERT_KEY),browser:o,custom:i,sentry:u,setup:p})}async function h(e){if(!(0,n.isLocalRequest)(e))return d();if(!(0,t.env)(t.INSERT_KEY))return Response.json({sent:!1,error:"Add your Insert key first."},{status:400});let r=await u((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,p,"POST",0,h],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),i=e.i(39548),s=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),E=e.i(45919),v=e.i(93695),f=e.i(12741);e.i(95315);var m=e.i(98732);let y=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:w,workUnitAsyncStorage:g,serverHooks:C}=y;async function S(e,t,r){r.requestMeta&&(0,a.setRequestMeta)(e,r.requestMeta),y.isDev&&(0,a.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let w="/api/connect/route";w=w.replace(/\/index$/,"")||"/";let g=await y.prepare(e,t,{srcPage:w,multiZoneDraftMode:!1});if(!g)return t.statusCode=400,t.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve()),null;let{buildId:C,deploymentId:S,params:A,nextConfig:N,parsedUrl:I,isDraftMode:T,prerenderManifest:_,routerServerContext:x,isOnDemandRevalidate:P,revalidateOnlyGenerated:b,resolvedPathname:O,clientReferenceManifest:q,serverActionsManifest:D}=g,k=(0,s.normalizeAppPath)(w),U=!!_.routes[O]&&(y.isDev||(0,f.isRouteCacheOwner)(O,y.cacheOwner,_.routes[O])),M=!!(_.dynamicRoutes[k]||U),H=async()=>((null==x?void 0:x.render404)?await x.render404(e,t,I,!1):t.end("This page could not be found"),null);if(M&&!T){let e=_.dynamicRoutes[k];if(e&&!1===e.fallback&&!U){if(N.adapterPath)return await H();throw new v.NoFallbackError}}let K=null;!M||y.isDev||T||(K="/index"===(K=O)?"/":K);let L=!0===y.isDev||!M,$=M&&!L;D&&q&&(0,i.setManifestsSingleton)({page:w,clientReferenceManifest:q,serverActionsManifest:D});let j=e.method||"GET",B=(0,o.getTracer)(),F=B.getActiveScopeSpan(),G=!!(null==x?void 0:x.isWrappedByNextServer),W=!!(0,a.getRequestMeta)(e,"minimalMode"),Y=(0,a.getRequestMeta)(e,"incrementalCache")||await y.getIncrementalCache(e,N,_,W);null==Y||Y.resetRequestCache(),globalThis.__incrementalCache=Y;let X={params:A,previewProps:_.preview,renderOpts:{experimental:{authInterrupts:!!N.experimental.authInterrupts,useCacheTimeout:N.experimental.useCacheTimeout},cacheComponents:!!N.cacheComponents,validationLevel:N.experimental.instantInsights.validationLevel,isDraftMode:T,supportsDynamicResponse:L,incrementalCache:Y,hmrRefreshHash:(0,a.getRequestMeta)(e,"hmrRefreshHash"),cacheLifeProfiles:N.cacheLife,staticPageGenerationTimeout:N.staticPageGenerationTimeout,waitUntil:r.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,n,r,a)=>y.onRequestError(e,t,r,a,x)},sharedContext:{buildId:C,deploymentId:S}},V=new l.NodeNextRequest(e),z=new l.NodeNextResponse(t),Z=u.NextRequestAdapter.fromNodeNextRequest(V,(0,u.signalFromNodeResponse)(t)),J=async({previousCacheEntry:n})=>{try{if(!W&&P&&b&&!n)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let a=await y.handle(Z,X);e.fetchMetrics=X.renderOpts.fetchMetrics;let o=X.renderOpts.pendingWaitUntil;o&&r.waitUntil&&(r.waitUntil(o),o=void 0);let i=X.renderOpts.collectedTags;if(!M)return await (0,p.sendResponse)(V,z,a,o),null;{let e=await a.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(a.headers);i&&(t[E.NEXT_CACHE_TAGS_HEADER]=i),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let n=void 0!==X.renderOpts.collectedRevalidate&&!(X.renderOpts.collectedRevalidate>=E.INFINITE_CACHE)&&X.renderOpts.collectedRevalidate,r=void 0===X.renderOpts.collectedExpire||X.renderOpts.collectedExpire>=E.INFINITE_CACHE?!1!==n&&n>0?N.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 y.onRequestError(e,t,{routerKind:"App Router",routePath:w,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:$,isOnDemandRevalidate:P})},!1,x),t}},Q=async(a,i)=>{try{var s,l;let a=await y.handleResponse({req:e,nextConfig:N,cacheKey:K,routeKind:n.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:_,isRoutePPREnabled:!1,isOnDemandRevalidate:P,revalidateOnlyGenerated:b,responseGenerator:J,waitUntil:r.waitUntil,isMinimalMode:W});if(!M)return;if((null==a||null==(s=a.value)?void 0:s.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});W||t.setHeader("x-nextjs-cache",P?"REVALIDATED":a.isMiss?"MISS":a.isStale?"STALE":"HIT"),T&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let o=(0,h.fromNodeOutgoingHttpHeaders)(a.value.headers);W&&M||o.delete(E.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 v.NoFallbackError||await y.onRequestError(e,t,{routerKind:"App Router",routePath:k,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:$,isOnDemandRevalidate:P})},!1,x),M)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=B.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")||k,s=`${j} ${r}`;a.setAttributes({"next.route":r,"http.route":r,"next.span_name":s}),a.updateName(s),i&&i!==a&&(i.setAttribute("http.route",r),i.updateName(s))})()}};if(G&&F)await Q(F,void 0);else{let t=B.getActiveScopeSpan();await B.withPropagatedContext(e.headers,()=>B.trace(c.BaseServerSpan.handleRequest,{spanName:`${j} ${w}`,kind:o.SpanKind.SERVER,attributes:{"http.method":j,"http.target":e.url}},e=>Q(e,t)),void 0,!G)}}e.s(["handler",0,S,"patchFetch",0,function(){return(0,r.patchFetch)({workAsyncStorage:w,workUnitAsyncStorage:g})},"routeModule",0,y,"serverHooks",0,C,"workAsyncStorage",0,w,"workUnitAsyncStorage",0,g])}];
4
+ } }`;try{let t=await (0,a.nrGraphql)(e,r,1e4),n=t?.data?.actor?.entitySearch,o=n?.results?.entities?.[0],i=t?.data?.actor?.apiAccess?.keySearch?.keys?.find(e=>"BROWSER"===e.ingestType)?.key??null;return{appCount:n?.count??0,appName:o?.name??null,applicationId:o?.applicationId?String(o.applicationId):null,browserKey:i}}catch{return{appCount:0,appName:null,applicationId:null,browserKey:null,error:"Could not read your Browser app from New Relic."}}}let d=()=>Response.json({error:(0,n.REFUSAL_MESSAGE)()},{status:403});async function p(e){if(!(0,n.isLocalRequest)(e))return d();let r=(0,t.connectedTools)();if(!r.length)return Response.json({configured:!1});let a=(0,t.isToolConnected)("new-relic"),o=(0,t.isToolConnected)("sentry"),i=(0,t.env)("NEWRELIC_API_KEY"),u=(0,t.env)("NEXT_PUBLIC_NEWRELIC_ACCOUNT_ID"),[p,h,R,v,E]=await Promise.all([a?s(i,u,"PageView"):void 0,a?s(i,u,"AjaxRequest"):void 0,a?s(i,u,"MetricFlowEvent"):void 0,o?l((0,t.env)("SENTRY_API_KEY"),(0,t.env)("SENTRY_DSN")):void 0,a?c(i,u):void 0]);return Response.json({configured:!0,tools:r,accountId:a?u:void 0,insertKeySet:!!(0,t.env)(t.INSERT_KEY),browser:p,ajax:h,custom:R,sentry:v,setup:E})}async function h(e){if(!(0,n.isLocalRequest)(e))return d();if(!(0,t.env)(t.INSERT_KEY))return Response.json({sent:!1,error:"Add your Insert key first."},{status:400});let r=await u((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,p,"POST",0,h],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),i=e.i(39548),s=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 y=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:w,workUnitAsyncStorage:g,serverHooks:C}=y;async function A(e,t,r){r.requestMeta&&(0,a.setRequestMeta)(e,r.requestMeta),y.isDev&&(0,a.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let w="/api/connect/route";w=w.replace(/\/index$/,"")||"/";let g=await y.prepare(e,t,{srcPage:w,multiZoneDraftMode:!1});if(!g)return t.statusCode=400,t.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve()),null;let{buildId:C,deploymentId:A,params:S,nextConfig:N,parsedUrl:T,isDraftMode:I,prerenderManifest:_,routerServerContext:x,isOnDemandRevalidate:P,revalidateOnlyGenerated:b,resolvedPathname:O,clientReferenceManifest:q,serverActionsManifest:D}=g,k=(0,s.normalizeAppPath)(w),U=!!_.routes[O]&&(y.isDev||(0,f.isRouteCacheOwner)(O,y.cacheOwner,_.routes[O])),M=!!(_.dynamicRoutes[k]||U),H=async()=>((null==x?void 0:x.render404)?await x.render404(e,t,T,!1):t.end("This page could not be found"),null);if(M&&!I){let e=_.dynamicRoutes[k];if(e&&!1===e.fallback&&!U){if(N.adapterPath)return await H();throw new E.NoFallbackError}}let j=null;!M||y.isDev||I||(j="/index"===(j=O)?"/":j);let K=!0===y.isDev||!M,L=M&&!K;D&&q&&(0,i.setManifestsSingleton)({page:w,clientReferenceManifest:q,serverActionsManifest:D});let $=e.method||"GET",B=(0,o.getTracer)(),F=B.getActiveScopeSpan(),G=!!(null==x?void 0:x.isWrappedByNextServer),W=!!(0,a.getRequestMeta)(e,"minimalMode"),Y=(0,a.getRequestMeta)(e,"incrementalCache")||await y.getIncrementalCache(e,N,_,W);null==Y||Y.resetRequestCache(),globalThis.__incrementalCache=Y;let X={params:S,previewProps:_.preview,renderOpts:{experimental:{authInterrupts:!!N.experimental.authInterrupts,useCacheTimeout:N.experimental.useCacheTimeout},cacheComponents:!!N.cacheComponents,validationLevel:N.experimental.instantInsights.validationLevel,isDraftMode:I,supportsDynamicResponse:K,incrementalCache:Y,hmrRefreshHash:(0,a.getRequestMeta)(e,"hmrRefreshHash"),cacheLifeProfiles:N.cacheLife,staticPageGenerationTimeout:N.staticPageGenerationTimeout,waitUntil:r.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,n,r,a)=>y.onRequestError(e,t,r,a,x)},sharedContext:{buildId:C,deploymentId:A}},V=new l.NodeNextRequest(e),z=new l.NodeNextResponse(t),Z=u.NextRequestAdapter.fromNodeNextRequest(V,(0,u.signalFromNodeResponse)(t)),J=async({previousCacheEntry:n})=>{try{if(!W&&P&&b&&!n)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let a=await y.handle(Z,X);e.fetchMetrics=X.renderOpts.fetchMetrics;let o=X.renderOpts.pendingWaitUntil;o&&r.waitUntil&&(r.waitUntil(o),o=void 0);let i=X.renderOpts.collectedTags;if(!M)return await (0,p.sendResponse)(V,z,a,o),null;{let e=await a.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(a.headers);i&&(t[v.NEXT_CACHE_TAGS_HEADER]=i),!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?N.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 y.onRequestError(e,t,{routerKind:"App Router",routePath:w,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:L,isOnDemandRevalidate:P})},!1,x),t}},Q=async(a,i)=>{try{var s,l;let a=await y.handleResponse({req:e,nextConfig:N,cacheKey:j,routeKind:n.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:_,isRoutePPREnabled:!1,isOnDemandRevalidate:P,revalidateOnlyGenerated:b,responseGenerator:J,waitUntil:r.waitUntil,isMinimalMode:W});if(!M)return;if((null==a||null==(s=a.value)?void 0:s.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});W||t.setHeader("x-nextjs-cache",P?"REVALIDATED":a.isMiss?"MISS":a.isStale?"STALE":"HIT"),I&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let o=(0,h.fromNodeOutgoingHttpHeaders)(a.value.headers);W&&M||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 y.onRequestError(e,t,{routerKind:"App Router",routePath:k,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:L,isOnDemandRevalidate:P})},!1,x),M)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=B.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")||k,s=`${$} ${r}`;a.setAttributes({"next.route":r,"http.route":r,"next.span_name":s}),a.updateName(s),i&&i!==a&&(i.setAttribute("http.route",r),i.updateName(s))})()}};if(G&&F)await Q(F,void 0);else{let t=B.getActiveScopeSpan();await B.withPropagatedContext(e.headers,()=>B.trace(c.BaseServerSpan.handleRequest,{spanName:`${$} ${w}`,kind:o.SpanKind.SERVER,attributes:{"http.method":$,"http.target":e.url}},e=>Q(e,t)),void 0,!G)}}e.s(["handler",0,A,"patchFetch",0,function(){return(0,r.patchFetch)({workAsyncStorage:w,workUnitAsyncStorage:g})},"routeModule",0,y,"serverHooks",0,C,"workAsyncStorage",0,w,"workUnitAsyncStorage",0,g])}];
5
5
 
6
6
  //# sourceMappingURL=_1l9d64o._.js.map
@@ -1,4 +1,4 @@
1
- module.exports=[52040,a=>{"use strict";a.i(19973),a.s([])},79898,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={DynamicServerError:function(){return g},isDynamicServerError:function(){return h}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f="DYNAMIC_SERVER_USAGE";class g extends Error{constructor(a){super(`Dynamic server usage: ${a}`),this.description=a,this.digest=f}}function h(a){return"object"==typeof a&&null!==a&&"digest"in a&&"string"==typeof a.digest&&a.digest===f}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},85827,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={StaticGenBailoutError:function(){return g},isStaticGenBailoutError:function(){return h}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f="NEXT_STATIC_GEN_BAILOUT";class g extends Error{constructor(...a){super(...a),this.code=f}}function h(a){return"object"==typeof a&&null!==a&&"code"in a&&a.code===f}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},65297,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={METADATA_BOUNDARY_NAME:function(){return f},OUTLET_BOUNDARY_NAME:function(){return h},ROOT_LAYOUT_BOUNDARY_NAME:function(){return i},VIEWPORT_BOUNDARY_NAME:function(){return g}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f="__next_metadata_boundary__",g="__next_viewport_boundary__",h="__next_outlet_boundary__",i="__next_root_layout_boundary__"},82299,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={atLeastOneTask:function(){return h},scheduleImmediate:function(){return g},scheduleOnNextTick:function(){return f},waitAtLeastOneReactRenderTask:function(){return i}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a=>{Promise.resolve().then(()=>{process.nextTick(a)})},g=a=>{setImmediate(a)};function h(){return new Promise(a=>g(a))}function i(){return new Promise(a=>setImmediate(a))}},55688,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={createDynamicBodyError:function(){return g},createDynamicBodyErrorInNavigation:function(){return j},createDynamicMetadataError:function(){return n},createDynamicOrRuntimeBodyError:function(){return k},createDynamicOrRuntimeMetadataError:function(){return s},createDynamicOrRuntimeViewportError:function(){return r},createDynamicViewportError:function(){return q},createLinkBodyErrorInNavigation:function(){return i},createLinkMetadataError:function(){return l},createLinkViewportError:function(){return o},createRuntimeBodyError:function(){return f},createRuntimeBodyErrorInNavigation:function(){return h},createRuntimeMetadataError:function(){return m},createRuntimeViewportError:function(){return p},logBuildDebugHint:function(){return t}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});function f(a){return Object.defineProperty(Error(`Route "${a}": Next.js encountered runtime data during prerendering.
1
+ module.exports=[52040,1730,7779,a=>{"use strict";a.i(19973),a.s([],52040),a.i(2157),a.i(50227);var b=a.i(7969);let c={name:"activity",size:24,node:[["path",{d:"M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2",key:"169zse"}]]};c.node;let d=(0,b.default)(c),e={name:"bug",size:24,node:[["path",{d:"M12 20v-9",key:"1qisl0"}],["path",{d:"M14 7a4 4 0 0 1 4 4v3a6 6 0 0 1-12 0v-3a4 4 0 0 1 4-4z",key:"uouzyp"}],["path",{d:"M14.12 3.88 16 2",key:"qol33r"}],["path",{d:"M21 21a4 4 0 0 0-3.81-4",key:"1b0z45"}],["path",{d:"M21 5a4 4 0 0 1-3.55 3.97",key:"5cxbf6"}],["path",{d:"M22 13h-4",key:"1jl80f"}],["path",{d:"M3 21a4 4 0 0 1 3.81-4",key:"1fjd4g"}],["path",{d:"M3 5a4 4 0 0 0 3.55 3.97",key:"1d7oge"}],["path",{d:"M6 13H2",key:"82j7cp"}],["path",{d:"m8 2 1.88 1.88",key:"fmnt4t"}],["path",{d:"M9 7.13V6a3 3 0 1 1 6 0v1.13",key:"1vgav8"}]]};e.node;let f=(0,b.default)(e);function g(a){if(!Number.isFinite(a))return"—";let b=Math.abs(Math.round(a));if(b<1e3)return`${Math.round(a)}ms`;if(b<59950)return`${+(a/1e3).toFixed(1)}s`;let c=Math.round(b/1e3),d=a<0?"-":"";return c<3600?`${d}${Math.floor(c/60)}m ${c%60}s`:`${d}${Math.floor(c/3600)}h ${Math.floor(c%3600/60)}m`}let h=a=>a.length?a.reduce((a,b)=>a+b,0)/a.length:0,i={"new-relic":{label:"New Relic",icon:d,description:"Real-user performance per page: load time, Core Web Vitals, throughput and Apdex.",keys:{required:["NEWRELIC_API_KEY","NEXT_PUBLIC_NEWRELIC_ACCOUNT_ID"],optional:["NEWRELIC_INSERT_KEY"]},stats:a=>[{label:"Avg Load Time",value:g(h(a.map(a=>a.newRelic.loadTime)))},{label:"Avg LCP",value:g(h(a.map(a=>a.newRelic.lcp)))},{label:"Avg TTFB",value:g(h(a.map(a=>a.newRelic.ttfb)))},{label:"Avg Apdex",value:h(a.map(a=>a.newRelic.apdexScore)).toFixed(2)}],columns:[{header:"Load",cell:a=>g(a.newRelic.loadTime)},{header:"LCP",cell:a=>g(a.newRelic.lcp)},{header:"TTFB",cell:a=>g(a.newRelic.ttfb)},{header:"CLS",cell:a=>a.newRelic.cls.toFixed(2)},{header:"INP",cell:a=>void 0===a.newRelic.inp?"—":g(a.newRelic.inp)},{header:"Error Rate",cell:a=>`${a.newRelic.errorRate.toFixed(2)}%`},{header:"Throughput",cell:a=>a.newRelic.throughput.toLocaleString()},{header:"Apdex",cell:a=>a.newRelic.apdexScore.toFixed(2)}]},sentry:{label:"Sentry",icon:f,description:"Errors captured per page over the last 24 hours.",keys:{required:["SENTRY_API_KEY","SENTRY_DSN"],optional:[]},stats:a=>{let b=a.reduce((a,b)=>(b.sentry?.errorCount??0)>(a?.sentry?.errorCount??0)?b:a,null);return[{label:"Total Errors",value:String(a.map(a=>a.sentry?.errorCount??0).reduce((a,b)=>a+b,0))},{label:"Pages With Errors",value:`${a.filter(a=>(a.sentry?.errorCount??0)>0).length} of ${a.length}`},{label:"Noisiest Page",value:b?.name??"None"}]},columns:[{header:"Errors",cell:a=>String(a.sentry?.errorCount??0)},{header:"Latest Error",cell:a=>a.sentry?.latestErrors[0]?.title??"—"},{header:"Last Seen",cell:a=>{let b=Date.parse(a.sentry?.latestErrors[0]?.lastSeen??"");return Number.isNaN(b)?"—":new Date(b).toLocaleString()}}]}},j=Object.keys(i);a.s(["TOOLS",0,i,"TOOL_IDS",0,j,"isToolId",0,a=>Object.hasOwn(i,a)],1730);let k="NEWRELIC_REGION",l={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"}};function m(a){return process.env[a]??""}a.s(["REGION_KEY",0,k,"env",0,m,"isToolConnected",0,a=>i[a].keys.required.every(a=>m(a)),"nrHosts",0,(a="eu"===process.env[k]?"eu":"us")=>l[a]],7779)},79898,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={DynamicServerError:function(){return g},isDynamicServerError:function(){return h}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f="DYNAMIC_SERVER_USAGE";class g extends Error{constructor(a){super(`Dynamic server usage: ${a}`),this.description=a,this.digest=f}}function h(a){return"object"==typeof a&&null!==a&&"digest"in a&&"string"==typeof a.digest&&a.digest===f}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},85827,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={StaticGenBailoutError:function(){return g},isStaticGenBailoutError:function(){return h}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f="NEXT_STATIC_GEN_BAILOUT";class g extends Error{constructor(...a){super(...a),this.code=f}}function h(a){return"object"==typeof a&&null!==a&&"code"in a&&a.code===f}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},65297,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={METADATA_BOUNDARY_NAME:function(){return f},OUTLET_BOUNDARY_NAME:function(){return h},ROOT_LAYOUT_BOUNDARY_NAME:function(){return i},VIEWPORT_BOUNDARY_NAME:function(){return g}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f="__next_metadata_boundary__",g="__next_viewport_boundary__",h="__next_outlet_boundary__",i="__next_root_layout_boundary__"},82299,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={atLeastOneTask:function(){return h},scheduleImmediate:function(){return g},scheduleOnNextTick:function(){return f},waitAtLeastOneReactRenderTask:function(){return i}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a=>{Promise.resolve().then(()=>{process.nextTick(a)})},g=a=>{setImmediate(a)};function h(){return new Promise(a=>g(a))}function i(){return new Promise(a=>setImmediate(a))}},55688,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={createDynamicBodyError:function(){return g},createDynamicBodyErrorInNavigation:function(){return j},createDynamicMetadataError:function(){return n},createDynamicOrRuntimeBodyError:function(){return k},createDynamicOrRuntimeMetadataError:function(){return s},createDynamicOrRuntimeViewportError:function(){return r},createDynamicViewportError:function(){return q},createLinkBodyErrorInNavigation:function(){return i},createLinkMetadataError:function(){return l},createLinkViewportError:function(){return o},createRuntimeBodyError:function(){return f},createRuntimeBodyErrorInNavigation:function(){return h},createRuntimeMetadataError:function(){return m},createRuntimeViewportError:function(){return p},logBuildDebugHint:function(){return t}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});function f(a){return Object.defineProperty(Error(`Route "${a}": Next.js encountered runtime data during prerendering.
2
2
 
3
3
  \`cookies()\`, \`headers()\`, \`params\`, or \`searchParams\` accessed outside of \`<Suspense>\` prevents the route from being prerendered, blocking the page load and leading to a slower user experience.
4
4
 
@@ -0,0 +1,3 @@
1
+ module.exports=[93695,(a,b,c)=>{b.exports=a.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},2157,(a,b,c)=>{b.exports=a.x("node:fs",()=>require("node:fs"))},50227,(a,b,c)=>{b.exports=a.x("node:path",()=>require("node:path"))},71385,a=>{a.v("/_next/static/media/icon.23mz8iwcatff2.svg"+(globalThis.NEXT_CLIENT_ASSET_SUFFIX||""))},48760,a=>{"use strict";let b={src:a.i(71385).default,width:32,height:32};a.s(["default",0,b])},83138,a=>{"use strict";var b=a.i(91396);a.i(52040);var c=a.i(19973);a.i(90103);var d=a.i(24084),e=a.i(97728);a.i(59682);var f=a.i(22381),g=a.i(30358),h=a.i(1730),i=a.i(7779),j=a.i(78720),k=a.i(29171),l=a.i(43917);function m({title:a="No data yet",reason:c="Keys work, but no page events have arrived.",href:d="/connect",cta:e="Send your first events",onRetry:f}){return(0,b.jsx)(k.Card,{className:"border-[#2d3748] bg-[#1a202c] shadow-md",children:(0,b.jsxs)(k.CardContent,{className:"flex flex-col items-center gap-3 p-10 text-center",children:[(0,b.jsx)("h3",{className:"text-lg font-semibold text-white",children:a}),(0,b.jsx)("p",{className:"max-w-md text-sm text-gray-400",children:c}),(0,b.jsxs)("div",{className:"flex gap-3",children:[(0,b.jsx)(j.default,{href:d,className:(0,l.buttonVariants)(),children:e}),f&&(0,b.jsx)(l.Button,{variant:"outline",onClick:f,children:"Retry"})]})]})})}let n={"new-relic":"Add your New Relic keys to see load time and Core Web Vitals for each page.",sentry:"Add your Sentry keys to see the errors on each page."};async function o({params:a}){let{tool:j}=await a;return(0,h.isToolId)(j)||(0,c.notFound)(),(0,b.jsxs)(e.SidebarProvider,{children:[(0,b.jsx)(d.AppSidebar,{}),(0,b.jsxs)(e.SidebarInset,{className:"bg-dash-surface",children:[(0,b.jsx)(f.Header,{}),(0,b.jsxs)("div",{className:"flex flex-1 flex-col p-6 md:p-8 max-w-[1600px] mx-auto w-full",children:[(0,b.jsx)("h1",{className:"text-2xl font-bold text-white tracking-tight mb-2",children:h.TOOLS[j].label}),(0,b.jsx)("p",{className:"text-sm text-gray-400",children:h.TOOLS[j].description}),(0,i.isToolConnected)(j)?(0,b.jsx)(g.ToolInsights,{tool:j}):(0,b.jsx)("div",{className:"mt-6",children:(0,b.jsx)(m,{title:`Connect ${h.TOOLS[j].label}`,reason:n[j],href:`/setup#${j}`,cta:`Add ${h.TOOLS[j].label} keys`})})]})]})]})}a.s(["default",0,o,"dynamic",0,"force-dynamic"],83138)},58839,function(a){a.n(a.i(83138))},57784,a=>{"use strict";a.s(["ToolInsights",()=>b]);let b=(0,a.i(18060).registerClientReference)(function(){throw Error("Attempted to call ToolInsights() from the server but ToolInsights is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/components/ToolInsights/ToolInsights.tsx","ToolInsights")},30358,a=>{"use strict";var b=a.i(57784);a.n(b)},43917,a=>{"use strict";let b,c;var d=a.i(91396),e=a.i(38182);let f=a=>"boolean"==typeof a?`${a}`:0===a?"0":a,g=function(){for(var a,b,c=0,d="",e=arguments.length;c<e;c++)(a=arguments[c])&&(b=function a(b){var c,d,e="";if("string"==typeof b||"number"==typeof b)e+=b;else if("object"==typeof b)if(Array.isArray(b)){var f=b.length;for(c=0;c<f;c++)b[c]&&(d=a(b[c]))&&(e&&(e+=" "),e+=d)}else for(d in b)b[d]&&(e&&(e+=" "),e+=d);return e}(a))&&(d&&(d+=" "),d+=b);return d};var h=a.i(67913);let i=(b="group/button inline-flex shrink-0 items-center justify-center rounded-lg border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",c={variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/80",outline:"border-border bg-background hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50",secondary:"bg-secondary text-secondary-foreground hover:bg-[color-mix(in_oklch,var(--secondary),var(--foreground)_5%)] aria-expanded:bg-secondary aria-expanded:text-secondary-foreground",ghost:"hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50",destructive:"bg-destructive/10 text-destructive hover:bg-destructive/20 focus-visible:border-destructive/40 focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:hover:bg-destructive/30 dark:focus-visible:ring-destructive/40",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-8 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2",xs:"h-6 gap-1 rounded-[min(var(--radius-md),10px)] px-2 text-xs in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3",sm:"h-7 gap-1 rounded-[min(var(--radius-md),12px)] px-2.5 text-[0.8rem] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3.5",lg:"h-9 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2",icon:"size-8","icon-xs":"size-6 rounded-[min(var(--radius-md),10px)] in-data-[slot=button-group]:rounded-lg [&_svg:not([class*='size-'])]:size-3","icon-sm":"size-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg","icon-lg":"size-9"}},defaultVariants:{variant:"default",size:"default"}},a=>{var d;if((null==c?void 0:c.variants)==null)return g(b,null==a?void 0:a.class,null==a?void 0:a.className);let{variants:e,defaultVariants:h}=c,i=Object.keys(e).map(b=>{let c=null==a?void 0:a[b],d=null==h?void 0:h[b];if(null===c)return null;let g=f(c)||f(d);return e[b][g]}),j=a&&Object.entries(a).reduce((a,b)=>{let[c,d]=b;return void 0===d||(a[c]=d),a},{});return g(b,i,null==c||null==(d=c.compoundVariants)?void 0:d.reduce((a,b)=>{let{class:c,className:d,...e}=b;return Object.entries(e).every(a=>{let[b,c]=a;return Array.isArray(c)?c.includes({...h,...j}[b]):({...h,...j})[b]===c})?[...a,c,d]:a},[]),null==a?void 0:a.class,null==a?void 0:a.className)});a.s(["Button",0,function({className:a,variant:b="default",size:c="default",...f}){return(0,d.jsx)(e.Button,{"data-slot":"button",className:(0,h.cn)(i({variant:b,size:c,className:a})),...f})},"buttonVariants",0,i],43917)},45603,a=>{"use strict";a.s(["Button",()=>b]);let b=(0,a.i(18060).registerClientReference)(function(){throw Error("Attempted to call Button() from the server but Button is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/node_modules/.pnpm/@base-ui+react@1.8.0_@types+react@19.3.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@base-ui/react/button/Button.mjs","Button")},38182,a=>{"use strict";var b=a.i(45603);a.n(b)},25809,(a,b,c)=>{"use strict";function d(a){if("function"!=typeof WeakMap)return null;var b=new WeakMap,c=new WeakMap;return(d=function(a){return a?c:b})(a)}c._=function(a,b){if(!b&&a&&a.__esModule)return a;if(null===a||"object"!=typeof a&&"function"!=typeof a)return{default:a};var c=d(b);if(c&&c.has(a))return c.get(a);var e={__proto__:null},f=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var g in a)if("default"!==g&&Object.prototype.hasOwnProperty.call(a,g)){var h=f?Object.getOwnPropertyDescriptor(a,g):null;h&&(h.get||h.set)?Object.defineProperty(e,g,h):e[g]=a[g]}return e.default=a,c&&c.set(a,e),e}},33951,a=>{"use strict";a.s(["default",()=>b]);let b=(0,a.i(18060).registerClientReference)(function(){throw Error("Attempted to call the default export of [project]/node_modules/.pnpm/lucide-react@1.47.0_react@19.2.8/node_modules/lucide-react/dist/esm/Icon.mjs from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/node_modules/.pnpm/lucide-react@1.47.0_react@19.2.8/node_modules/lucide-react/dist/esm/Icon.mjs","default")},50254,a=>{"use strict";var b=a.i(33951);a.n(b)},7969,a=>{"use strict";var b=a.i(56149),c=a.i(50254);a.s(["default",0,function(a,d=[],e=[]){let f,g="string"==typeof a?function(a,b,c=[]){if(null==b)throw Error("[lucide]: iconNode is required when icon name is used");return{name:a?.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),size:24,node:b,...c.length>0?{aliases:c}:{}}}(a,d,e):a,h=(0,b.forwardRef)(({className:a,...d},e)=>(0,b.createElement)(c.default,{ref:e,icon:g,className:a,...d}));return g.name&&(h.displayName=(f=(a=>{let b="",c=!1;for(let d of a){if("-"===d||"_"===d||d<=" "){c=b.length>0;continue}0===b.length?b+=d.toLowerCase():b+=c?d.toUpperCase():d,c=!1}return b})(g.name)).charAt(0).toUpperCase()+f.slice(1)),h}],7969)},40950,(a,b,c)=>{let{createClientModuleProxy:d}=a.r(18060);a.n(d("[project]/node_modules/.pnpm/next@16.3.8_@babel+core@7.29.7_supports-color@8.1.1__@opentelemetry+api@1.9.1_@types+no_c2c791d25241ae4161c9f48ecf186c77/node_modules/next/dist/client/app-dir/link.js"))},53824,a=>{"use strict";var b=a.i(40950);a.n(b)},78720,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={default:function(){return i},useLinkStatus:function(){return h.useLinkStatus}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(25809),g=a.r(91396),h=f._(a.r(53824));function i(a){let b=a.legacyBehavior,c="string"==typeof a.children||"number"==typeof a.children||"string"==typeof a.children?.type,d=a.children?.type?.$$typeof===Symbol.for("react.client.reference");return!b||c||d||(a.children?.type?.$$typeof===Symbol.for("react.lazy")?console.error("Using a Lazy Component as a direct child of `<Link legacyBehavior>` from a Server Component is not supported. If you need legacyBehavior, wrap your Lazy Component in a Client Component that renders the Link's `<a>` tag."):console.error("Using a Server Component as a direct child of `<Link legacyBehavior>` is not supported. If you need legacyBehavior, wrap your Server Component in a Client Component that renders the Link's `<a>` tag.")),(0,g.jsx)(h.default,{...a})}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},36256,a=>{"use strict";var b=a.i(46797),c=a.i(282),d=a.i(89196);a.i(60796);let e=(0,b.instrumentModuleGetter)(()=>a.r(48760)),f=(0,b.instrumentModuleGetter)(()=>a.r(70864)),g=(0,b.instrumentModuleGetter)(()=>a.r(45538)),h=(0,b.instrumentModuleGetter)(()=>a.r(54254)),i=(0,b.instrumentModuleGetter)(()=>a.r(73833)),j=(0,b.instrumentModuleGetter)(()=>a.r(35191)),k=(0,b.instrumentModuleGetter)(()=>a.r(68119)),l=["",{children:["tools",{children:["[tool]",{children:["__PAGE__",{},{metadata:{},page:[(0,b.instrumentModuleGetter)(()=>a.r(58839)),"[project]/app/tools/[tool]/page.tsx"]},[]]},{metadata:{}},[]]},{metadata:{}},[]]},{metadata:{icon:[async()=>{let a=(0,d.interopDefault)(await e());return[{url:`/icon.svg?${a.src.split("/").splice(-1)[0]}`,sizes:"any",type:"image/svg+xml"}]}]},layout:[f,"[project]/app/layout.tsx"],loading:[g,"[project]/app/loading.tsx"],"not-found":[h,"[project]/node_modules/.pnpm/next@16.3.8_@babel+core@7.29.7_supports-color@8.1.1__@opentelemetry+api@1.9.1_@types+no_c2c791d25241ae4161c9f48ecf186c77/node_modules/next/dist/client/components/builtin/not-found.js"],forbidden:[i,"[project]/node_modules/.pnpm/next@16.3.8_@babel+core@7.29.7_supports-color@8.1.1__@opentelemetry+api@1.9.1_@types+no_c2c791d25241ae4161c9f48ecf186c77/node_modules/next/dist/client/components/builtin/forbidden.js"],unauthorized:[j,"[project]/node_modules/.pnpm/next@16.3.8_@babel+core@7.29.7_supports-color@8.1.1__@opentelemetry+api@1.9.1_@types+no_c2c791d25241ae4161c9f48ecf186c77/node_modules/next/dist/client/components/builtin/unauthorized.js"],"global-error":[k,"[project]/node_modules/.pnpm/next@16.3.8_@babel+core@7.29.7_supports-color@8.1.1__@opentelemetry+api@1.9.1_@types+no_c2c791d25241ae4161c9f48ecf186c77/node_modules/next/dist/client/components/builtin/global-error.js"]},[]],m=a.r.bind(a),n=a.l.bind(a),o=(0,c.createAppPageEntrypoint)({tree:l,page:"/tools/[tool]/page",pathname:"/tools/[tool]",require:m,loadChunk:n,interopDefault:d.interopDefault}),p=o.__next_app__,q=o.routeModule,r=o.handler;a.s(["__next_app__",0,p,"handler",0,r,"routeModule",0,q],52931),a.i(52931);var s=a.i(25948);a.s(["ClientPageRoot",()=>s.ClientPageRoot,"ClientSegmentRoot",()=>s.ClientSegmentRoot,"Fragment",()=>s.Fragment,"HTTPAccessFallbackBoundary",()=>s.HTTPAccessFallbackBoundary,"InstantValidation",()=>s.InstantValidation,"LayoutRouter",()=>s.LayoutRouter,"LoadingBoundaryProvider",()=>s.LoadingBoundaryProvider,"Postpone",()=>s.Postpone,"RenderFromTemplateContext",()=>s.RenderFromTemplateContext,"RootLayoutBoundary",()=>s.RootLayoutBoundary,"SegmentViewNode",()=>s.SegmentViewNode,"SegmentViewStateNode",()=>s.SegmentViewStateNode,"__next_app__",0,p,"captureOwnerStack",()=>s.captureOwnerStack,"collectPrefetchHints",()=>s.collectPrefetchHints,"collectSegmentData",()=>s.collectSegmentData,"createElement",()=>s.createElement,"createMetadataComponents",()=>s.createMetadataComponents,"createPrerenderParamsForClientSegment",()=>s.createPrerenderParamsForClientSegment,"createPrerenderSearchParamsForClientPage",()=>s.createPrerenderSearchParamsForClientPage,"createServerParamsForServerSegment",()=>s.createServerParamsForServerSegment,"createServerSearchParamsForServerPage",()=>s.createServerSearchParamsForServerPage,"createTemporaryReferenceSet",()=>s.createTemporaryReferenceSet,"decodeAction",()=>s.decodeAction,"decodeFormState",()=>s.decodeFormState,"decodeReply",()=>s.decodeReply,"handler",0,r,"isEmptyHTMLPrelude",()=>s.isEmptyHTMLPrelude,"patchFetch",()=>s.patchFetch,"preconnect",()=>s.preconnect,"preloadFont",()=>s.preloadFont,"preloadStyle",()=>s.preloadStyle,"prerender",()=>s.prerender,"prerenderToNodeStream",()=>s.prerenderToNodeStream,"renderToPipeableStream",()=>s.renderToPipeableStream,"renderToReadableStream",()=>s.renderToReadableStream,"routeModule",0,q,"serverHooks",()=>s.serverHooks,"taintObjectReference",()=>s.taintObjectReference],36256)}];
2
+
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__0o_fd5z._.js.map
@@ -1,3 +1,3 @@
1
1
  module.exports=[18622,(a,b,c)=>{b.exports=a.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},20635,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/action-async-storage.external.js",()=>require("next/dist/server/app-render/action-async-storage.external.js"))},24725,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},43285,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/dynamic-access-async-storage.external.js",()=>require("next/dist/server/app-render/dynamic-access-async-storage.external.js"))},56704,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(a,b,c)=>{b.exports=a.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,(a,b,c)=>{b.exports=a.x("next/dist/server/runtime-reacts.external.js",()=>require("next/dist/server/runtime-reacts.external.js"))},80968,(a,b,c)=>{"use strict";b.exports=a.r(18622)},3784,(a,b,c)=>{"use strict";b.exports=a.r(80968).vendored.contexts.AppRouterContext},75725,(a,b,c)=>{"use strict";b.exports=a.r(80968).vendored.contexts.HooksClientContext},26357,(a,b,c)=>{"use strict";b.exports=a.r(80968).vendored.contexts.ServerInsertedHtml},54906,(a,b,c)=>{"use strict";b.exports=a.r(80968).vendored["react-ssr"].ReactDOM},47350,(a,b,c)=>{"use strict";b.exports=a.r(80968).vendored["react-ssr"].ReactJsxRuntime},37940,(a,b,c)=>{"use strict";b.exports=a.r(80968).vendored["react-ssr"].ReactServerDOMTurbopackClient},75086,(a,b,c)=>{"use strict";b.exports=a.r(80968).vendored["react-ssr"].React}];
2
2
 
3
- //# sourceMappingURL=%5Broot-of-the-server%5D__07myivi._.js.map
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__0qb6-a-._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[93695,(a,b,c)=>{b.exports=a.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},71385,a=>{a.v("/_next/static/media/icon.23mz8iwcatff2.svg"+(globalThis.NEXT_CLIENT_ASSET_SUFFIX||""))},48760,a=>{"use strict";let b={src:a.i(71385).default,width:32,height:32};a.s(["default",0,b])},29347,a=>{"use strict";var b=a.i(46797),c=a.i(282),d=a.i(89196);a.i(60796);let e=(0,b.instrumentModuleGetter)(()=>a.r(48760)),f=(0,b.instrumentModuleGetter)(()=>a.r(70864)),g=(0,b.instrumentModuleGetter)(()=>a.r(45538)),h=(0,b.instrumentModuleGetter)(()=>a.r(54254)),i=(0,b.instrumentModuleGetter)(()=>a.r(73833)),j=(0,b.instrumentModuleGetter)(()=>a.r(35191)),k=(0,b.instrumentModuleGetter)(()=>a.r(68119)),l=(0,b.instrumentModuleGetter)(()=>a.r(44821)),m=["",{children:["settings",{children:["__PAGE__",{},{metadata:{},page:[(0,b.instrumentModuleGetter)(()=>a.r(51425)),"[project]/app/settings/page.tsx"]},[]]},{metadata:{},loading:[l,"[project]/app/settings/loading.tsx"]},[]]},{metadata:{icon:[async()=>{let a=(0,d.interopDefault)(await e());return[{url:`/icon.svg?${a.src.split("/").splice(-1)[0]}`,sizes:"any",type:"image/svg+xml"}]}]},layout:[f,"[project]/app/layout.tsx"],loading:[g,"[project]/app/loading.tsx"],"not-found":[h,"[project]/node_modules/.pnpm/next@16.3.8_@babel+core@7.29.7_supports-color@8.1.1__@opentelemetry+api@1.9.1_@types+no_c2c791d25241ae4161c9f48ecf186c77/node_modules/next/dist/client/components/builtin/not-found.js"],forbidden:[i,"[project]/node_modules/.pnpm/next@16.3.8_@babel+core@7.29.7_supports-color@8.1.1__@opentelemetry+api@1.9.1_@types+no_c2c791d25241ae4161c9f48ecf186c77/node_modules/next/dist/client/components/builtin/forbidden.js"],unauthorized:[j,"[project]/node_modules/.pnpm/next@16.3.8_@babel+core@7.29.7_supports-color@8.1.1__@opentelemetry+api@1.9.1_@types+no_c2c791d25241ae4161c9f48ecf186c77/node_modules/next/dist/client/components/builtin/unauthorized.js"],"global-error":[k,"[project]/node_modules/.pnpm/next@16.3.8_@babel+core@7.29.7_supports-color@8.1.1__@opentelemetry+api@1.9.1_@types+no_c2c791d25241ae4161c9f48ecf186c77/node_modules/next/dist/client/components/builtin/global-error.js"]},[]],n=a.r.bind(a),o=a.l.bind(a),p=(0,c.createAppPageEntrypoint)({tree:m,page:"/settings/page",pathname:"/settings",require:n,loadChunk:o,interopDefault:d.interopDefault}),q=p.__next_app__,r=p.routeModule,s=p.handler;a.s(["__next_app__",0,q,"handler",0,s,"routeModule",0,r],82600),a.i(82600);var t=a.i(25948);a.s(["ClientPageRoot",()=>t.ClientPageRoot,"ClientSegmentRoot",()=>t.ClientSegmentRoot,"Fragment",()=>t.Fragment,"HTTPAccessFallbackBoundary",()=>t.HTTPAccessFallbackBoundary,"InstantValidation",()=>t.InstantValidation,"LayoutRouter",()=>t.LayoutRouter,"LoadingBoundaryProvider",()=>t.LoadingBoundaryProvider,"Postpone",()=>t.Postpone,"RenderFromTemplateContext",()=>t.RenderFromTemplateContext,"RootLayoutBoundary",()=>t.RootLayoutBoundary,"SegmentViewNode",()=>t.SegmentViewNode,"SegmentViewStateNode",()=>t.SegmentViewStateNode,"__next_app__",0,q,"captureOwnerStack",()=>t.captureOwnerStack,"collectPrefetchHints",()=>t.collectPrefetchHints,"collectSegmentData",()=>t.collectSegmentData,"createElement",()=>t.createElement,"createMetadataComponents",()=>t.createMetadataComponents,"createPrerenderParamsForClientSegment",()=>t.createPrerenderParamsForClientSegment,"createPrerenderSearchParamsForClientPage",()=>t.createPrerenderSearchParamsForClientPage,"createServerParamsForServerSegment",()=>t.createServerParamsForServerSegment,"createServerSearchParamsForServerPage",()=>t.createServerSearchParamsForServerPage,"createTemporaryReferenceSet",()=>t.createTemporaryReferenceSet,"decodeAction",()=>t.decodeAction,"decodeFormState",()=>t.decodeFormState,"decodeReply",()=>t.decodeReply,"handler",0,s,"isEmptyHTMLPrelude",()=>t.isEmptyHTMLPrelude,"patchFetch",()=>t.patchFetch,"preconnect",()=>t.preconnect,"preloadFont",()=>t.preloadFont,"preloadStyle",()=>t.preloadStyle,"prerender",()=>t.prerender,"prerenderToNodeStream",()=>t.prerenderToNodeStream,"renderToPipeableStream",()=>t.renderToPipeableStream,"renderToReadableStream",()=>t.renderToReadableStream,"routeModule",0,r,"serverHooks",()=>t.serverHooks,"taintObjectReference",()=>t.taintObjectReference],29347)}];
2
+
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__14_2v5e._.js.map
@@ -30,4 +30,4 @@ module.exports=[18622,(a,b,c)=>{b.exports=a.x("next/dist/compiled/next-server/ap
30
30
  body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }
31
31
  `.replace(/\n\s*/g,"");function i(){return(0,f.jsx)("svg",{width:"32",height:"32",viewBox:"-0.2 -1.5 32 32",fill:"none",style:g.icon,children:(0,f.jsx)("path",{d:"M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z",fill:"var(--next-error-title)"})})}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},17111,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"default",{enumerable:!0,get:function(){return g}}),a.r(32978);let d=a.r(47350);a.r(75086);let e=a.r(68626),f=a.r(79970),g=function({error:a}){let b=a?.digest,c=!!b;return(0,e.handleISRError)({error:a}),(0,d.jsxs)("html",{id:"__next_error__",children:[(0,d.jsx)("head",{children:(0,d.jsx)("style",{dangerouslySetInnerHTML:{__html:f.errorThemeCss}})}),(0,d.jsxs)("body",{children:[(0,d.jsx)("div",{style:f.errorStyles.container,children:(0,d.jsxs)("div",{style:f.errorStyles.card,children:[(0,d.jsx)(f.WarningIcon,{}),(0,d.jsx)("h1",{style:f.errorStyles.title,children:"This page couldn’t load"}),(0,d.jsx)("p",{style:f.errorStyles.message,children:c?"A server error occurred. Reload to try again.":"Reload to try again, or go back."}),(0,d.jsxs)("div",{style:f.errorStyles.buttonGroup,children:[(0,d.jsx)("form",{style:f.errorStyles.form,children:(0,d.jsx)("button",{type:"submit",style:f.errorStyles.button,children:"Reload"})}),!c&&(0,d.jsx)("button",{type:"button",style:f.errorStyles.buttonSecondary,onClick:()=>{window.history.length>1?window.history.back():window.location.href="/"},children:"Back"})]})]})}),b&&(0,d.jsxs)("p",{style:f.errorStyles.digestFooter,children:["ERROR ",b]})]})]})};("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},23904,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={actionAsyncStorage:function(){return f.actionAsyncStorage},workAsyncStorage:function(){return g.workAsyncStorage},workUnitAsyncStorage:function(){return h.workUnitAsyncStorage}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(20635),g=a.r(56704),h=a.r(32319);("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},80968,(a,b,c)=>{"use strict";b.exports=a.r(18622)},3784,(a,b,c)=>{"use strict";b.exports=a.r(80968).vendored.contexts.AppRouterContext},75725,(a,b,c)=>{"use strict";b.exports=a.r(80968).vendored.contexts.HooksClientContext},26357,(a,b,c)=>{"use strict";b.exports=a.r(80968).vendored.contexts.ServerInsertedHtml},54906,(a,b,c)=>{"use strict";b.exports=a.r(80968).vendored["react-ssr"].ReactDOM},47350,(a,b,c)=>{"use strict";b.exports=a.r(80968).vendored["react-ssr"].ReactJsxRuntime},37940,(a,b,c)=>{"use strict";b.exports=a.r(80968).vendored["react-ssr"].ReactServerDOMTurbopackClient},75086,(a,b,c)=>{"use strict";b.exports=a.r(80968).vendored["react-ssr"].React}];
32
32
 
33
- //# sourceMappingURL=%5Broot-of-the-server%5D__1wd0g6g._.js.map
33
+ //# sourceMappingURL=%5Broot-of-the-server%5D__1r29vac._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[49719,(a,b,c)=>{b.exports=a.x("assert",()=>require("assert"))},27699,(a,b,c)=>{b.exports=a.x("events",()=>require("events"))},22734,(a,b,c)=>{b.exports=a.x("fs",()=>require("fs"))},21517,(a,b,c)=>{b.exports=a.x("http",()=>require("http"))},25328,(a,b,c)=>{b.exports=a.x("http2",()=>require("http2"))},24836,(a,b,c)=>{b.exports=a.x("https",()=>require("https"))},4446,(a,b,c)=>{b.exports=a.x("net",()=>require("net"))},93695,(a,b,c)=>{b.exports=a.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},66680,(a,b,c)=>{b.exports=a.x("node:crypto",()=>require("node:crypto"))},2157,(a,b,c)=>{b.exports=a.x("node:fs",()=>require("node:fs"))},50227,(a,b,c)=>{b.exports=a.x("node:path",()=>require("node:path"))},46786,(a,b,c)=>{b.exports=a.x("os",()=>require("os"))},88947,(a,b,c)=>{b.exports=a.x("stream",()=>require("stream"))},55004,(a,b,c)=>{b.exports=a.x("tls",()=>require("tls"))},70722,(a,b,c)=>{b.exports=a.x("tty",()=>require("tty"))},92509,(a,b,c)=>{b.exports=a.x("url",()=>require("url"))},6461,(a,b,c)=>{b.exports=a.x("zlib",()=>require("zlib"))},71385,a=>{a.v("/_next/static/media/icon.23mz8iwcatff2.svg"+(globalThis.NEXT_CLIENT_ASSET_SUFFIX||""))},48760,a=>{"use strict";let b={src:a.i(71385).default,width:32,height:32};a.s(["default",0,b])},33951,a=>{"use strict";a.s(["default",()=>b]);let b=(0,a.i(18060).registerClientReference)(function(){throw Error("Attempted to call the default export of [project]/node_modules/.pnpm/lucide-react@1.47.0_react@19.2.8/node_modules/lucide-react/dist/esm/Icon.mjs from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/node_modules/.pnpm/lucide-react@1.47.0_react@19.2.8/node_modules/lucide-react/dist/esm/Icon.mjs","default")},50254,a=>{"use strict";var b=a.i(33951);a.n(b)},7969,a=>{"use strict";var b=a.i(56149),c=a.i(50254);a.s(["default",0,function(a,d=[],e=[]){let f,g="string"==typeof a?function(a,b,c=[]){if(null==b)throw Error("[lucide]: iconNode is required when icon name is used");return{name:a?.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),size:24,node:b,...c.length>0?{aliases:c}:{}}}(a,d,e):a,h=(0,b.forwardRef)(({className:a,...d},e)=>(0,b.createElement)(c.default,{ref:e,icon:g,className:a,...d}));return g.name&&(h.displayName=(f=(a=>{let b="",c=!1;for(let d of a){if("-"===d||"_"===d||d<=" "){c=b.length>0;continue}0===b.length?b+=d.toLowerCase():b+=c?d.toUpperCase():d,c=!1}return b})(g.name)).charAt(0).toUpperCase()+f.slice(1)),h}],7969)},28281,a=>{"use strict";var b=a.i(46797),c=a.i(282),d=a.i(89196);a.i(60796);let e=(0,b.instrumentModuleGetter)(()=>a.r(48760)),f=(0,b.instrumentModuleGetter)(()=>a.r(70864)),g=(0,b.instrumentModuleGetter)(()=>a.r(45538)),h=(0,b.instrumentModuleGetter)(()=>a.r(54254)),i=(0,b.instrumentModuleGetter)(()=>a.r(73833)),j=(0,b.instrumentModuleGetter)(()=>a.r(35191)),k=(0,b.instrumentModuleGetter)(()=>a.r(68119)),l=(0,b.instrumentModuleGetter)(()=>a.r(78932)),m=(0,b.instrumentModuleGetter)(()=>a.r(27991)),n=["",{children:["performance",{children:["[slug]",{children:["__PAGE__",{},{metadata:{},page:[(0,b.instrumentModuleGetter)(()=>a.r(77450)),"[project]/app/performance/[slug]/page.tsx"]},[]]},{metadata:{},loading:[m,"[project]/app/performance/[slug]/loading.tsx"]},[]]},{metadata:{},loading:[l,"[project]/app/performance/loading.tsx"]},[]]},{metadata:{icon:[async()=>{let a=(0,d.interopDefault)(await e());return[{url:`/icon.svg?${a.src.split("/").splice(-1)[0]}`,sizes:"any",type:"image/svg+xml"}]}]},layout:[f,"[project]/app/layout.tsx"],loading:[g,"[project]/app/loading.tsx"],"not-found":[h,"[project]/node_modules/.pnpm/next@16.3.8_@babel+core@7.29.7_supports-color@8.1.1__@opentelemetry+api@1.9.1_@types+no_c2c791d25241ae4161c9f48ecf186c77/node_modules/next/dist/client/components/builtin/not-found.js"],forbidden:[i,"[project]/node_modules/.pnpm/next@16.3.8_@babel+core@7.29.7_supports-color@8.1.1__@opentelemetry+api@1.9.1_@types+no_c2c791d25241ae4161c9f48ecf186c77/node_modules/next/dist/client/components/builtin/forbidden.js"],unauthorized:[j,"[project]/node_modules/.pnpm/next@16.3.8_@babel+core@7.29.7_supports-color@8.1.1__@opentelemetry+api@1.9.1_@types+no_c2c791d25241ae4161c9f48ecf186c77/node_modules/next/dist/client/components/builtin/unauthorized.js"],"global-error":[k,"[project]/node_modules/.pnpm/next@16.3.8_@babel+core@7.29.7_supports-color@8.1.1__@opentelemetry+api@1.9.1_@types+no_c2c791d25241ae4161c9f48ecf186c77/node_modules/next/dist/client/components/builtin/global-error.js"]},[]],o=a.r.bind(a),p=a.l.bind(a),q=(0,c.createAppPageEntrypoint)({tree:n,page:"/performance/[slug]/page",pathname:"/performance/[slug]",require:o,loadChunk:p,interopDefault:d.interopDefault}),r=q.__next_app__,s=q.routeModule,t=q.handler;a.s(["__next_app__",0,r,"handler",0,t,"routeModule",0,s],66578),a.i(66578);var u=a.i(25948);a.s(["ClientPageRoot",()=>u.ClientPageRoot,"ClientSegmentRoot",()=>u.ClientSegmentRoot,"Fragment",()=>u.Fragment,"HTTPAccessFallbackBoundary",()=>u.HTTPAccessFallbackBoundary,"InstantValidation",()=>u.InstantValidation,"LayoutRouter",()=>u.LayoutRouter,"LoadingBoundaryProvider",()=>u.LoadingBoundaryProvider,"Postpone",()=>u.Postpone,"RenderFromTemplateContext",()=>u.RenderFromTemplateContext,"RootLayoutBoundary",()=>u.RootLayoutBoundary,"SegmentViewNode",()=>u.SegmentViewNode,"SegmentViewStateNode",()=>u.SegmentViewStateNode,"__next_app__",0,r,"captureOwnerStack",()=>u.captureOwnerStack,"collectPrefetchHints",()=>u.collectPrefetchHints,"collectSegmentData",()=>u.collectSegmentData,"createElement",()=>u.createElement,"createMetadataComponents",()=>u.createMetadataComponents,"createPrerenderParamsForClientSegment",()=>u.createPrerenderParamsForClientSegment,"createPrerenderSearchParamsForClientPage",()=>u.createPrerenderSearchParamsForClientPage,"createServerParamsForServerSegment",()=>u.createServerParamsForServerSegment,"createServerSearchParamsForServerPage",()=>u.createServerSearchParamsForServerPage,"createTemporaryReferenceSet",()=>u.createTemporaryReferenceSet,"decodeAction",()=>u.decodeAction,"decodeFormState",()=>u.decodeFormState,"decodeReply",()=>u.decodeReply,"handler",0,t,"isEmptyHTMLPrelude",()=>u.isEmptyHTMLPrelude,"patchFetch",()=>u.patchFetch,"preconnect",()=>u.preconnect,"preloadFont",()=>u.preloadFont,"preloadStyle",()=>u.preloadStyle,"prerender",()=>u.prerender,"prerenderToNodeStream",()=>u.prerenderToNodeStream,"renderToPipeableStream",()=>u.renderToPipeableStream,"renderToReadableStream",()=>u.renderToReadableStream,"routeModule",0,s,"serverHooks",()=>u.serverHooks,"taintObjectReference",()=>u.taintObjectReference],28281)}];
2
+
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__1s_ikmb._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[40602,a=>{"use strict";a.s(["ExportSettings",()=>b]);let b=(0,a.i(18060).registerClientReference)(function(){throw Error("Attempted to call ExportSettings() from the server but ExportSettings is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/components/Settings/ExportSettings.tsx","ExportSettings")},61057,a=>{"use strict";var b=a.i(40602);a.n(b)},46280,a=>{"use strict";a.s(["NotificationPrefs",()=>b]);let b=(0,a.i(18060).registerClientReference)(function(){throw Error("Attempted to call NotificationPrefs() from the server but NotificationPrefs is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/components/Settings/NotificationPrefs.tsx","NotificationPrefs")},62807,a=>{"use strict";var b=a.i(46280);a.n(b)},44063,a=>{"use strict";a.s(["TeamMembers",()=>b]);let b=(0,a.i(18060).registerClientReference)(function(){throw Error("Attempted to call TeamMembers() from the server but TeamMembers is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/components/Settings/TeamMembers.tsx","TeamMembers")},40321,a=>{"use strict";var b=a.i(44063);a.n(b)},72017,a=>{"use strict";var b=a.i(91396);a.i(90103);var c=a.i(24084),d=a.i(97728);a.i(59682);var e=a.i(22381),f=a.i(96690),g=a.i(78720),h=a.i(29171),i=a.i(43917),j=a.i(7969);let k={name:"key",size:24,node:[["path",{d:"m2 21 9.6-9.6",key:"9l79m3"}],["path",{d:"m7.5 15.5 2.3 2.3a1 1 0 0 1 0 1.4l-2.1 2.1a1 1 0 0 1-1.4 0L4 19",key:"fw8biw"}],["circle",{cx:"15.5",cy:"7.5",r:"5.5",key:"4wxmhb"}]]};k.node;let l=(0,j.default)(k);function m(){return(0,b.jsxs)(h.Card,{className:"border-[#2d3748] bg-[#1a202c] shadow-md",children:[(0,b.jsxs)(h.CardHeader,{children:[(0,b.jsxs)(h.CardTitle,{className:"text-[18px] font-bold text-white tracking-tight flex items-center gap-2",children:[(0,b.jsx)(l,{className:"h-5 w-5 text-gray-400"}),"API Keys"]}),(0,b.jsx)(h.CardDescription,{className:"text-sm text-gray-400",children:"Your New Relic and Sentry keys are stored in .env.local on this machine and are never shown here."})]}),(0,b.jsx)(h.CardContent,{children:(0,b.jsx)(g.default,{href:"/setup",className:(0,i.buttonVariants)({variant:"outline"}),children:"Manage keys"})})]})}a.s(["ApiKeys",0,m],81327);var n=a.i(61057),o=a.i(86645),p=a.i(62807),q=a.i(40321);a.s([],34144),a.i(34144),a.i(81327),a.s([],72841,!0),a.j(n,72841),a.j(o,72841),a.j(p,72841),a.j(q,72841);var r=a.i(72841);a.s(["default",0,function(){return(0,b.jsxs)(d.SidebarProvider,{children:[(0,b.jsx)(c.AppSidebar,{}),(0,b.jsxs)(d.SidebarInset,{className:"bg-dash-surface",children:[(0,b.jsx)(e.Header,{}),(0,b.jsxs)("div",{className:"flex flex-1 flex-col p-6 md:p-8 max-w-[1200px] mx-auto w-full",children:[(0,b.jsxs)("div",{className:"mb-8",children:[(0,b.jsx)("h1",{className:"text-2xl font-bold text-white tracking-tight",children:"Settings"}),(0,b.jsx)("p",{className:"text-sm text-gray-400",children:"Manage your account, team, and dashboard preferences."})]}),(0,b.jsxs)(f.Tabs,{defaultValue:"general",className:"w-full",children:[(0,b.jsxs)(f.TabsList,{className:"bg-[#0f1419] border border-[#2d3748] mb-8 p-1 h-auto",children:[(0,b.jsx)(f.TabsTrigger,{value:"general",className:"data-[state=active]:bg-[#1a202c] data-[state=active]:text-white text-gray-400",children:"General & API"}),(0,b.jsx)(f.TabsTrigger,{value:"thresholds",className:"data-[state=active]:bg-[#1a202c] data-[state=active]:text-white text-gray-400",children:"Performance Thresholds"}),(0,b.jsx)(f.TabsTrigger,{value:"team",className:"data-[state=active]:bg-[#1a202c] data-[state=active]:text-white text-gray-400",children:"Notifications & Team"})]}),(0,b.jsxs)(f.TabsContent,{value:"general",className:"space-y-6 mt-0",children:[(0,b.jsx)(m,{}),(0,b.jsx)(r.ExportSettings,{})]}),(0,b.jsx)(f.TabsContent,{value:"thresholds",className:"mt-0",children:(0,b.jsx)(r.ThresholdSettings,{})}),(0,b.jsx)(f.TabsContent,{value:"team",className:"space-y-6 mt-0",children:(0,b.jsx)(r.NotificationPrefs,{})})]})]})]})]})}],72017)},51425,function(a){a.n(a.i(72017))},90336,a=>{"use strict";a.s(["ThresholdSettings",()=>b]);let b=(0,a.i(18060).registerClientReference)(function(){throw Error("Attempted to call ThresholdSettings() from the server but ThresholdSettings is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/components/Settings/ThresholdSettings.tsx","ThresholdSettings")},86645,a=>{"use strict";var b=a.i(90336);a.n(b)},43917,a=>{"use strict";let b,c;var d=a.i(91396),e=a.i(38182);let f=a=>"boolean"==typeof a?`${a}`:0===a?"0":a,g=function(){for(var a,b,c=0,d="",e=arguments.length;c<e;c++)(a=arguments[c])&&(b=function a(b){var c,d,e="";if("string"==typeof b||"number"==typeof b)e+=b;else if("object"==typeof b)if(Array.isArray(b)){var f=b.length;for(c=0;c<f;c++)b[c]&&(d=a(b[c]))&&(e&&(e+=" "),e+=d)}else for(d in b)b[d]&&(e&&(e+=" "),e+=d);return e}(a))&&(d&&(d+=" "),d+=b);return d};var h=a.i(67913);let i=(b="group/button inline-flex shrink-0 items-center justify-center rounded-lg border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",c={variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/80",outline:"border-border bg-background hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50",secondary:"bg-secondary text-secondary-foreground hover:bg-[color-mix(in_oklch,var(--secondary),var(--foreground)_5%)] aria-expanded:bg-secondary aria-expanded:text-secondary-foreground",ghost:"hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50",destructive:"bg-destructive/10 text-destructive hover:bg-destructive/20 focus-visible:border-destructive/40 focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:hover:bg-destructive/30 dark:focus-visible:ring-destructive/40",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-8 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2",xs:"h-6 gap-1 rounded-[min(var(--radius-md),10px)] px-2 text-xs in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3",sm:"h-7 gap-1 rounded-[min(var(--radius-md),12px)] px-2.5 text-[0.8rem] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3.5",lg:"h-9 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2",icon:"size-8","icon-xs":"size-6 rounded-[min(var(--radius-md),10px)] in-data-[slot=button-group]:rounded-lg [&_svg:not([class*='size-'])]:size-3","icon-sm":"size-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg","icon-lg":"size-9"}},defaultVariants:{variant:"default",size:"default"}},a=>{var d;if((null==c?void 0:c.variants)==null)return g(b,null==a?void 0:a.class,null==a?void 0:a.className);let{variants:e,defaultVariants:h}=c,i=Object.keys(e).map(b=>{let c=null==a?void 0:a[b],d=null==h?void 0:h[b];if(null===c)return null;let g=f(c)||f(d);return e[b][g]}),j=a&&Object.entries(a).reduce((a,b)=>{let[c,d]=b;return void 0===d||(a[c]=d),a},{});return g(b,i,null==c||null==(d=c.compoundVariants)?void 0:d.reduce((a,b)=>{let{class:c,className:d,...e}=b;return Object.entries(e).every(a=>{let[b,c]=a;return Array.isArray(c)?c.includes({...h,...j}[b]):({...h,...j})[b]===c})?[...a,c,d]:a},[]),null==a?void 0:a.class,null==a?void 0:a.className)});a.s(["Button",0,function({className:a,variant:b="default",size:c="default",...f}){return(0,d.jsx)(e.Button,{"data-slot":"button",className:(0,h.cn)(i({variant:b,size:c,className:a})),...f})},"buttonVariants",0,i],43917)},45362,a=>{"use strict";a.s(["Tabs",()=>c,"TabsContent",()=>d,"TabsList",()=>e,"TabsTrigger",()=>f,"tabsListVariants",()=>g]);var b=a.i(18060);let c=(0,b.registerClientReference)(function(){throw Error("Attempted to call Tabs() from the server but Tabs is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/components/ui/tabs.tsx","Tabs"),d=(0,b.registerClientReference)(function(){throw Error("Attempted to call TabsContent() from the server but TabsContent is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/components/ui/tabs.tsx","TabsContent"),e=(0,b.registerClientReference)(function(){throw Error("Attempted to call TabsList() from the server but TabsList is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/components/ui/tabs.tsx","TabsList"),f=(0,b.registerClientReference)(function(){throw Error("Attempted to call TabsTrigger() from the server but TabsTrigger is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/components/ui/tabs.tsx","TabsTrigger"),g=(0,b.registerClientReference)(function(){throw Error("Attempted to call tabsListVariants() from the server but tabsListVariants is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/components/ui/tabs.tsx","tabsListVariants")},96690,a=>{"use strict";var b=a.i(45362);a.n(b)},45603,a=>{"use strict";a.s(["Button",()=>b]);let b=(0,a.i(18060).registerClientReference)(function(){throw Error("Attempted to call Button() from the server but Button is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/node_modules/.pnpm/@base-ui+react@1.8.0_@types+react@19.3.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@base-ui/react/button/Button.mjs","Button")},38182,a=>{"use strict";var b=a.i(45603);a.n(b)},25809,(a,b,c)=>{"use strict";function d(a){if("function"!=typeof WeakMap)return null;var b=new WeakMap,c=new WeakMap;return(d=function(a){return a?c:b})(a)}c._=function(a,b){if(!b&&a&&a.__esModule)return a;if(null===a||"object"!=typeof a&&"function"!=typeof a)return{default:a};var c=d(b);if(c&&c.has(a))return c.get(a);var e={__proto__:null},f=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var g in a)if("default"!==g&&Object.prototype.hasOwnProperty.call(a,g)){var h=f?Object.getOwnPropertyDescriptor(a,g):null;h&&(h.get||h.set)?Object.defineProperty(e,g,h):e[g]=a[g]}return e.default=a,c&&c.set(a,e),e}},33951,a=>{"use strict";a.s(["default",()=>b]);let b=(0,a.i(18060).registerClientReference)(function(){throw Error("Attempted to call the default export of [project]/node_modules/.pnpm/lucide-react@1.47.0_react@19.2.8/node_modules/lucide-react/dist/esm/Icon.mjs from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/node_modules/.pnpm/lucide-react@1.47.0_react@19.2.8/node_modules/lucide-react/dist/esm/Icon.mjs","default")},50254,a=>{"use strict";var b=a.i(33951);a.n(b)},7969,a=>{"use strict";var b=a.i(56149),c=a.i(50254);a.s(["default",0,function(a,d=[],e=[]){let f,g="string"==typeof a?function(a,b,c=[]){if(null==b)throw Error("[lucide]: iconNode is required when icon name is used");return{name:a?.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),size:24,node:b,...c.length>0?{aliases:c}:{}}}(a,d,e):a,h=(0,b.forwardRef)(({className:a,...d},e)=>(0,b.createElement)(c.default,{ref:e,icon:g,className:a,...d}));return g.name&&(h.displayName=(f=(a=>{let b="",c=!1;for(let d of a){if("-"===d||"_"===d||d<=" "){c=b.length>0;continue}0===b.length?b+=d.toLowerCase():b+=c?d.toUpperCase():d,c=!1}return b})(g.name)).charAt(0).toUpperCase()+f.slice(1)),h}],7969)},40950,(a,b,c)=>{let{createClientModuleProxy:d}=a.r(18060);a.n(d("[project]/node_modules/.pnpm/next@16.3.8_@babel+core@7.29.7_supports-color@8.1.1__@opentelemetry+api@1.9.1_@types+no_c2c791d25241ae4161c9f48ecf186c77/node_modules/next/dist/client/app-dir/link.js"))},53824,a=>{"use strict";var b=a.i(40950);a.n(b)},78720,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={default:function(){return i},useLinkStatus:function(){return h.useLinkStatus}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(25809),g=a.r(91396),h=f._(a.r(53824));function i(a){let b=a.legacyBehavior,c="string"==typeof a.children||"number"==typeof a.children||"string"==typeof a.children?.type,d=a.children?.type?.$$typeof===Symbol.for("react.client.reference");return!b||c||d||(a.children?.type?.$$typeof===Symbol.for("react.lazy")?console.error("Using a Lazy Component as a direct child of `<Link legacyBehavior>` from a Server Component is not supported. If you need legacyBehavior, wrap your Lazy Component in a Client Component that renders the Link's `<a>` tag."):console.error("Using a Server Component as a direct child of `<Link legacyBehavior>` is not supported. If you need legacyBehavior, wrap your Server Component in a Client Component that renders the Link's `<a>` tag.")),(0,g.jsx)(h.default,{...a})}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)}];
2
+
3
+ //# sourceMappingURL=_045bvlq._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[92994,a=>{"use strict";var b=a.i(47350),c=a.i(56561),d=a.i(3130),e=a.i(40695);a.s(["EmptyState",0,function({title:a="No data yet",reason:f="Keys work, but no page events have arrived.",href:g="/connect",cta:h="Send your first events",onRetry:i}){return(0,b.jsx)(d.Card,{className:"border-[#2d3748] bg-[#1a202c] shadow-md",children:(0,b.jsxs)(d.CardContent,{className:"flex flex-col items-center gap-3 p-10 text-center",children:[(0,b.jsx)("h3",{className:"text-lg font-semibold text-white",children:a}),(0,b.jsx)("p",{className:"max-w-md text-sm text-gray-400",children:f}),(0,b.jsxs)("div",{className:"flex gap-3",children:[(0,b.jsx)(c.default,{href:g,className:(0,e.buttonVariants)(),children:h}),i&&(0,b.jsx)(e.Button,{variant:"outline",onClick:i,children:"Retry"})]})]})})}])},13392,a=>{"use strict";var b=a.i(47350),c=a.i(53840),d=a.i(88237),e=a.i(3130),f=a.i(50463),g=a.i(92994),h=a.i(62191),i=a.i(93673);a.s(["ToolInsights",0,function({tool:a}){let{state:j,retry:k}=(0,h.useMetrics)(),l=(0,c.useRouter)(),{label:m,stats:n,columns:o}=i.TOOLS[a];if("loading"===j.status)return(0,b.jsx)(f.Skeleton,{className:"mt-6 h-64 w-full bg-[#2d3748]"});if("error"===j.status)return(0,b.jsx)(g.EmptyState,{title:"Could not load metrics",reason:j.message,onRetry:k});if(!j.configured)return(0,b.jsx)(g.EmptyState,{title:"Connect your data",reason:"Add your New Relic or Sentry keys to see real numbers.",href:"/setup",cta:"Set up keys"});if(!j.tools.includes("new-relic"))return(0,b.jsx)(g.EmptyState,{...h.NEEDS_NEW_RELIC});if(j.failed.includes(a))return(0,b.jsx)(g.EmptyState,{title:`Could not load ${m} data`,reason:"The request failed. Your other data is unaffected.",onRetry:k});let p=j.pages.filter(h.hasData);return p.length?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("div",{className:"grid gap-6 sm:grid-cols-2 lg:grid-cols-4 mb-8 mt-4",children:n(p).map(a=>(0,b.jsx)(e.Card,{className:"border-[#2d3748] bg-[#1a202c] shadow-md",children:(0,b.jsxs)(e.CardContent,{className:"p-6",children:[(0,b.jsx)("span",{className:"text-sm font-medium text-gray-400",children:a.label}),(0,b.jsx)("div",{className:"mt-4 truncate text-3xl font-bold text-white tracking-tight",children:a.value})]})},a.label))}),(0,b.jsxs)(e.Card,{className:"border-[#2d3748] bg-[#1a202c] shadow-md flex-1",children:[(0,b.jsx)(e.CardHeader,{children:(0,b.jsxs)(e.CardTitle,{className:"text-[18px] font-bold text-white tracking-tight",children:[m," by Page"]})}),(0,b.jsx)(e.CardContent,{children:(0,b.jsx)("div",{className:"rounded-md border border-[#2d3748] overflow-hidden",children:(0,b.jsxs)(d.Table,{children:[(0,b.jsx)(d.TableHeader,{className:"bg-[#0f1419]",children:(0,b.jsxs)(d.TableRow,{className:"border-[#2d3748] hover:bg-transparent",children:[(0,b.jsx)(d.TableHead,{className:"text-gray-400",children:"Page Name"}),(0,b.jsx)(d.TableHead,{className:"text-gray-400",children:"Path"}),o.map(a=>(0,b.jsx)(d.TableHead,{className:"text-gray-400",children:a.header},a.header))]})}),(0,b.jsx)(d.TableBody,{children:j.pages.map(a=>(0,b.jsxs)(d.TableRow,{className:"border-[#2d3748] hover:bg-white/5 transition-colors cursor-pointer",onClick:()=>l.push(`/performance/${a.slug}`),children:[(0,b.jsx)(d.TableCell,{className:"font-medium text-white",children:a.name}),(0,b.jsx)(d.TableCell,{className:"text-gray-500 font-mono text-xs",children:a.url}),o.map(c=>(0,b.jsx)(d.TableCell,{className:"max-w-[320px] truncate text-gray-400",children:(0,h.hasData)(a)?c.cell(a):"—"},c.header))]},a.slug))})]})})})]})]}):(0,b.jsx)(g.EmptyState,{})}])},3130,a=>{"use strict";var b=a.i(47350),c=a.i(85198);a.s(["Card",0,function({className:a,size:d="default",...e}){return(0,b.jsx)("div",{"data-slot":"card","data-size":d,className:(0,c.cn)("group/card flex flex-col gap-(--card-spacing) overflow-hidden rounded-xl bg-card py-(--card-spacing) text-sm text-card-foreground ring-1 ring-foreground/10 [--card-spacing:--spacing(4)] has-data-[slot=card-footer]:pb-0 has-[>img:first-child]:pt-0 data-[size=sm]:[--card-spacing:--spacing(3)] data-[size=sm]:has-data-[slot=card-footer]:pb-0 *:[img:first-child]:rounded-t-xl *:[img:last-child]:rounded-b-xl",a),...e})},"CardContent",0,function({className:a,...d}){return(0,b.jsx)("div",{"data-slot":"card-content",className:(0,c.cn)("px-(--card-spacing)",a),...d})},"CardDescription",0,function({className:a,...d}){return(0,b.jsx)("div",{"data-slot":"card-description",className:(0,c.cn)("text-sm text-muted-foreground",a),...d})},"CardHeader",0,function({className:a,...d}){return(0,b.jsx)("div",{"data-slot":"card-header",className:(0,c.cn)("group/card-header @container/card-header grid auto-rows-min items-start gap-1 rounded-t-xl px-(--card-spacing) has-data-[slot=card-action]:grid-cols-[1fr_auto] has-data-[slot=card-description]:grid-rows-[auto_auto] [.border-b]:pb-(--card-spacing)",a),...d})},"CardTitle",0,function({className:a,...d}){return(0,b.jsx)("div",{"data-slot":"card-title",className:(0,c.cn)("font-heading text-base leading-snug font-medium group-data-[size=sm]/card:text-sm",a),...d})}])},88237,a=>{"use strict";var b=a.i(47350),c=a.i(85198);a.s(["Table",0,function({className:a,...d}){return(0,b.jsx)("div",{"data-slot":"table-container",className:"relative w-full overflow-x-auto",children:(0,b.jsx)("table",{"data-slot":"table",className:(0,c.cn)("w-full caption-bottom text-sm",a),...d})})},"TableBody",0,function({className:a,...d}){return(0,b.jsx)("tbody",{"data-slot":"table-body",className:(0,c.cn)("[&_tr:last-child]:border-0",a),...d})},"TableCell",0,function({className:a,...d}){return(0,b.jsx)("td",{"data-slot":"table-cell",className:(0,c.cn)("p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0",a),...d})},"TableHead",0,function({className:a,...d}){return(0,b.jsx)("th",{"data-slot":"table-head",className:(0,c.cn)("h-10 px-2 text-left align-middle font-medium whitespace-nowrap text-foreground [&:has([role=checkbox])]:pr-0",a),...d})},"TableHeader",0,function({className:a,...d}){return(0,b.jsx)("thead",{"data-slot":"table-header",className:(0,c.cn)("[&_tr]:border-b",a),...d})},"TableRow",0,function({className:a,...d}){return(0,b.jsx)("tr",{"data-slot":"table-row",className:(0,c.cn)("border-b transition-colors hover:bg-muted/50 has-aria-expanded:bg-muted/50 data-[state=selected]:bg-muted",a),...d})}])},39848,a=>{"use strict";var b=a.i(75086);let c=(...a)=>a.filter((a,b,c)=>!!a&&""!==a.trim()&&c.indexOf(a)===b).join(" ").trim(),d={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":2,"stroke-linecap":"round","stroke-linejoin":"round"},e=(0,b.createContext)({}),f=(0,b.forwardRef)(({color:a,size:f,width:g,height:h,strokeWidth:i,absoluteStrokeWidth:j,nonScalingStroke:k,className:l="",children:m,iconNode:n=[],icon:o={node:n,aliases:[],size:24},...p},q)=>{let{size:r=24,strokeWidth:s=2,absoluteStrokeWidth:t=!1,nonScalingStroke:u=!1,color:v="currentColor",className:w=""}=(0,b.useContext)(e)??{},x=!!m||(a=>{for(let b in a)if(b.startsWith("aria-")||"role"===b||"title"===b)return!0;return!1})(p),[y,z,A=[]]=function(a,b={}){return function(a,b={}){let e=b.attributeNames??{},f=a=>e[a]??a,g=a.size??a.width??d.width,h=a.size??a.height??d.height,i=a.aliases?.filter(a=>"string"==typeof a&&""!==a.trim()).map(a=>`lucide-${a}`)??[],j=[...a.name?[`lucide-${a.name}`]:[],...i],k=b.className?.split(" ").filter(Boolean)??[],l=!1===b.includeDefaultClasses?c(...k):c("lucide",...j,...k),m=b.absoluteStrokeWidth?Number(b.strokeWidth??d["stroke-width"])*Number(a.size??a.width??d.width)/Number(b.size??b.width??d.width):b.strokeWidth??d["stroke-width"];return["svg",{...Object.entries(d).reduce((a,[b,c])=>(a[f(b)]=c,a),{}),..."color"in b&&b.color&&{[f("stroke")]:b.color},..."size"in b&&null!=b.size&&{[f("width")]:b.size,[f("height")]:b.size},..."width"in b&&null!=b.width&&{[f("width")]:b.width},..."height"in b&&null!=b.height&&{[f("height")]:b.height},[f("stroke-width")]:m,...l&&{[f("class")]:l},[f("viewBox")]:`0 0 ${g} ${h}`,...!1===b.hasA11yProp?{[f("aria-hidden")]:"true"}:{},..."attributes"in b&&b.attributes},a.node.map(a=>{let[c,d,e]=a,g=b.nonScalingStroke?{[f("vector-effect")]:"non-scaling-stroke",...d}:d;return e?[c,g,e]:[c,g]})]}(a,{...b,attributeNames:{...b.attributeNames,class:"className","stroke-width":"strokeWidth","stroke-linecap":"strokeLinecap","stroke-linejoin":"strokeLinejoin","vector-effect":"vectorEffect"}})}(o,{color:a??v,width:g??f??r,height:h??f??r,strokeWidth:i??s,absoluteStrokeWidth:j??t,nonScalingStroke:k??u,className:c(w,l),hasA11yProp:x,attributes:p});return(0,b.createElement)(y,{ref:q,...z},[...A.map(([a,c])=>(0,b.createElement)(a,c)),...Array.isArray(m)?m:[m]])});a.s(["default",0,f],39848)},23904,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={actionAsyncStorage:function(){return f.actionAsyncStorage},workAsyncStorage:function(){return g.workAsyncStorage},workUnitAsyncStorage:function(){return h.workUnitAsyncStorage}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(20635),g=a.r(56704),h=a.r(32319);("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)}];
2
+
3
+ //# sourceMappingURL=_0_02db6._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[47872,a=>{"use strict";var b=a.i(47350),c=a.i(75086),d=a.i(3130),e=a.i(40695),f=a.i(5522);let g=[{id:"gemini",label:"Google Gemini",help:"Create a key at aistudio.google.com/apikey."},{id:"claude",label:"Anthropic Claude",help:"Create a key at console.anthropic.com > API keys."},{id:"openai",label:"OpenAI",help:"Create a key at platform.openai.com/api-keys."}];a.s(["AiKeyForm",0,function(){let[a,h]=(0,c.useState)(g[0].id),[i,j]=(0,c.useState)(""),[k,l]=(0,c.useState)(null),[m,n]=(0,c.useState)({}),[o,p]=(0,c.useState)(null),[q,r]=(0,c.useState)(!1);async function s(b){b.preventDefault(),r(!0),p(null);try{let b=await fetch("/api/setup/ai",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:a,key:i})}),c=await b.json();c.saved?(j(""),l(a),n({...m,[a]:!0}),p({ok:!0,text:"Saved. AI suggestions now use this provider. No restart needed."})):p({ok:!1,text:c.error??"Nothing was saved."})}catch{p({ok:!1,text:"Could not reach the dashboard server."})}finally{r(!1)}}(0,c.useEffect)(()=>{fetch("/api/setup/ai").then(a=>a.json()).then(a=>{a.keys&&(n(a.keys),l(a.provider),a.provider&&h(a.provider))}).catch(()=>{})},[]);let t=g.find(b=>b.id===a);return(0,b.jsxs)(d.Card,{className:"border-[#2d3748] bg-[#1a202c] shadow-md max-w-2xl mt-6",children:[(0,b.jsxs)(d.CardHeader,{children:[(0,b.jsx)(d.CardTitle,{className:"text-[18px] font-bold text-white tracking-tight",children:"AI suggestions (optional)"}),(0,b.jsx)(d.CardDescription,{className:"text-sm text-gray-400",children:"Add a Gemini, Claude or OpenAI key to get AI insights and recommendations for your pages. Only page names, load times and error counts are sent to the provider you pick. Without a key, the dashboard shows sample suggestions."})]}),(0,b.jsx)(d.CardContent,{children:(0,b.jsxs)("form",{onSubmit:s,className:"flex flex-col gap-5",children:[(0,b.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,b.jsx)("label",{htmlFor:"ai-provider",className:"text-sm font-medium text-gray-300",children:"Provider"}),(0,b.jsx)("select",{id:"ai-provider",value:a,onChange:a=>h(a.target.value),className:"h-9 rounded-md border border-[#2d3748] bg-[#0f1419] px-3 text-sm text-gray-200",children:g.map(a=>(0,b.jsxs)("option",{value:a.id,children:[a.label,k===a.id?" (in use)":m[a.id]?" (key saved)":""]},a.id))})]}),(0,b.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,b.jsxs)("label",{htmlFor:"ai-key",className:"text-sm font-medium text-gray-300",children:[t.label," API key ",m[a]&&(0,b.jsx)("span",{className:"ml-2 text-xs text-[#3ee0a1]",children:"✓ Set"})]}),(0,b.jsx)(f.Input,{id:"ai-key",type:"password",autoComplete:"off",spellCheck:!1,placeholder:m[a]?"•••••••• (type to replace)":"",value:i,onChange:a=>j(a.target.value),"aria-describedby":"ai-key-help",className:"bg-[#0f1419] border-[#2d3748] text-gray-200 font-mono text-xs"}),(0,b.jsx)("p",{id:"ai-key-help",className:"text-xs text-gray-400",children:t.help})]}),(0,b.jsxs)("div",{className:"flex items-center gap-4",children:[(0,b.jsx)(e.Button,{type:"submit",disabled:q||!i.trim(),children:q?"Checking…":"Check and save"}),(0,b.jsx)("span",{"aria-live":"polite",className:`text-sm ${o?.ok?"text-[#3ee0a1]":"text-[#f87171]"}`,children:o?.text})]})]})})]})}])},46334,a=>{"use strict";var b=a.i(47350),c=a.i(75086),d=a.i(56561),e=a.i(3130),f=a.i(40695),g=a.i(5522),h=a.i(54161),i=a.i(93673);let j=[{name:"NEWRELIC_API_KEY",tool:"new-relic",label:i.KEY_LABELS.NEWRELIC_API_KEY,secret:!0,help:'READS your data (starts NRAK-). Create it under API keys > key type "User".'},{name:"NEXT_PUBLIC_NEWRELIC_ACCOUNT_ID",tool:"new-relic",label:i.KEY_LABELS.NEXT_PUBLIC_NEWRELIC_ACCOUNT_ID,secret:!1,help:"A plain number, shown next to your keys in New Relic."},{name:"SENTRY_API_KEY",tool:"sentry",label:i.KEY_LABELS.SENTRY_API_KEY,secret:!0,help:"Lets the dashboard read issues (scopes: project:read, event:read)."},{name:"SENTRY_DSN",tool:"sentry",label:i.KEY_LABELS.SENTRY_DSN,secret:!1,help:"Project settings, then Client Keys (DSN). The project and host are read from it."}];a.s(["SetupForm",0,function(){let[a,k]=(0,c.useState)({}),[l,m]=(0,c.useState)({}),[n,o]=(0,c.useState)({}),[p,q]=(0,c.useState)(null),[r,s]=(0,c.useState)(!1),[t,u]=(0,c.useState)(!1),[v,w]=(0,c.useState)(null),x=(0,c.useRef)(null);async function y(b){b.preventDefault(),s(!0),q(null);try{let b=await fetch("/api/setup",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)}),c=await b.json(),d=c.results??{};o(d);let e=j.find(a=>d[a.name]&&!d[a.name].ok);if(e&&setTimeout(()=>x.current?.querySelector(`#${e.name}`)?.focus(),0),c.saved){u(!0),k({});let b=new Set(j.filter(b=>a[b.name]?.trim()).map(a=>a.tool));m(a=>({...a,...Object.fromEntries(j.filter(a=>b.has(a.tool)).map(a=>[a.name,!0]))}));let c=i.TOOL_IDS.filter(a=>b.has(a)||v?.includes(a));w(c),q({ok:!0,text:`Saved. ${c.map(a=>i.TOOLS[a].label).join(" and ")} ${c.length>1?"are":"is"} connected. No restart needed.`})}else q({ok:!1,text:c.error??"Nothing was saved. Fix the fields marked below."})}catch{q({ok:!1,text:"Could not reach the dashboard server."})}finally{s(!1)}}return(0,c.useEffect)(()=>{fetch("/api/setup").then(a=>a.json()).then(a=>{a.keys&&m(a.keys),Array.isArray(a.tools)?w(a.tools):a.error&&q({ok:!1,text:a.error})}).catch(()=>{})},[]),(0,b.jsxs)(e.Card,{className:"border-[#2d3748] bg-[#1a202c] shadow-md max-w-2xl",children:[(0,b.jsxs)(e.CardHeader,{children:[(0,b.jsx)(e.CardTitle,{className:"text-[18px] font-bold text-white tracking-tight",children:"Connect your tools"}),(0,b.jsx)(e.CardDescription,{className:"text-sm text-gray-400",children:"Add keys for the tools you use. You only need one. Keys are checked once, saved to .env.local in this folder, and never shown again."})]}),(0,b.jsx)(e.CardContent,{children:(0,b.jsxs)("form",{ref:x,onSubmit:y,className:"flex flex-col gap-5",children:[i.TOOL_IDS.map(c=>(0,b.jsxs)("fieldset",{id:c,className:"flex flex-col gap-5 rounded-lg border border-[#2d3748] p-4",children:[(0,b.jsxs)("legend",{className:"flex items-center gap-2 px-2 text-sm font-semibold text-white",children:[i.TOOLS[c].label,v?.includes(c)?(0,b.jsx)(h.Badge,{variant:"outline",className:"border-[#3ee0a1] text-[#3ee0a1] bg-[#3ee0a1]/10",children:"✓ Connected"}):(0,b.jsx)(h.Badge,{variant:"outline",className:"border-[#4a5568] text-gray-400",children:"Optional"})]}),j.filter(a=>a.tool===c).map(c=>{let d=n[c.name];return(0,b.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,b.jsxs)("label",{htmlFor:c.name,className:"text-sm font-medium text-gray-300",children:[c.label," ",l[c.name]&&(0,b.jsx)("span",{className:"ml-2 text-xs text-[#3ee0a1]",children:"✓ Set"})]}),(0,b.jsx)(g.Input,{id:c.name,name:c.name,type:c.secret?"password":"text",autoComplete:"off",spellCheck:!1,placeholder:l[c.name]?"•••••••• (leave blank to keep, type to replace)":"",value:a[c.name]??"",onChange:b=>k({...a,[c.name]:b.target.value}),"aria-invalid":!!d&&!d.ok||void 0,"aria-describedby":`${c.name}-help ${c.name}-result`,className:"bg-[#0f1419] border-[#2d3748] text-gray-200 font-mono text-xs"}),(0,b.jsx)("p",{id:`${c.name}-help`,className:"text-xs text-gray-400",children:c.help}),(0,b.jsxs)("div",{id:`${c.name}-result`,"aria-live":"polite",children:[d&&!d.ok&&(0,b.jsxs)("p",{className:"text-xs text-[#f87171]",children:["✗ ",d.error]}),d?.ok&&(0,b.jsx)("p",{className:"text-xs text-[#3ee0a1]",children:"✓ Checked"})]})]},c.name)}),"new-relic"===c&&(0,b.jsx)("p",{className:"text-xs text-gray-400",children:"The key that sends events (Ingest - License) is separate and is added later on the Connect page."})]},c)),(0,b.jsxs)("div",{className:"flex items-center gap-4",children:[(0,b.jsx)(f.Button,{type:"submit",disabled:r||!j.some(b=>a[b.name]?.trim()),children:r?"Checking…":"Check and save"}),(0,b.jsx)("span",{"aria-live":"polite",className:`text-sm ${p?.ok?"text-[#3ee0a1]":"text-[#f87171]"}`,children:p?.text}),!j.some(b=>a[b.name]?.trim())&&!p&&!t&&(0,b.jsx)("span",{className:"text-sm text-gray-400",children:v?.length?"Type a new key to change what is saved.":"Fill in both fields for at least one tool."}),t&&(0,b.jsx)(d.default,{href:"/connect",className:(0,f.buttonVariants)({variant:"outline"}),children:"Next: connect your app"})]})]})})]})}])},54161,a=>{"use strict";var b=a.i(18915),c=a.i(68228),d=a.i(42261),e=a.i(85198);let f=(0,d.cva)("group/badge inline-flex h-5 w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-4xl border border-transparent px-2 py-0.5 text-xs font-medium whitespace-nowrap transition-all focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&>svg]:pointer-events-none [&>svg]:size-3!",{variants:{variant:{default:"bg-primary text-primary-foreground [a]:hover:bg-primary/80",secondary:"bg-secondary text-secondary-foreground [a]:hover:bg-secondary/80",destructive:"bg-destructive/10 text-destructive focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:focus-visible:ring-destructive/40 [a]:hover:bg-destructive/20",outline:"border-border text-foreground [a]:hover:bg-muted [a]:hover:text-muted-foreground",ghost:"hover:bg-muted hover:text-muted-foreground dark:hover:bg-muted/50",link:"text-primary underline-offset-4 hover:underline"}},defaultVariants:{variant:"default"}});a.s(["Badge",0,function({className:a,variant:d="default",render:g,...h}){return(0,c.useRender)({defaultTagName:"span",props:(0,b.mergeProps)({className:(0,e.cn)(f({variant:d}),a)},h),render:g,state:{slot:"badge",variant:d}})}])},3130,a=>{"use strict";var b=a.i(47350),c=a.i(85198);a.s(["Card",0,function({className:a,size:d="default",...e}){return(0,b.jsx)("div",{"data-slot":"card","data-size":d,className:(0,c.cn)("group/card flex flex-col gap-(--card-spacing) overflow-hidden rounded-xl bg-card py-(--card-spacing) text-sm text-card-foreground ring-1 ring-foreground/10 [--card-spacing:--spacing(4)] has-data-[slot=card-footer]:pb-0 has-[>img:first-child]:pt-0 data-[size=sm]:[--card-spacing:--spacing(3)] data-[size=sm]:has-data-[slot=card-footer]:pb-0 *:[img:first-child]:rounded-t-xl *:[img:last-child]:rounded-b-xl",a),...e})},"CardContent",0,function({className:a,...d}){return(0,b.jsx)("div",{"data-slot":"card-content",className:(0,c.cn)("px-(--card-spacing)",a),...d})},"CardDescription",0,function({className:a,...d}){return(0,b.jsx)("div",{"data-slot":"card-description",className:(0,c.cn)("text-sm text-muted-foreground",a),...d})},"CardHeader",0,function({className:a,...d}){return(0,b.jsx)("div",{"data-slot":"card-header",className:(0,c.cn)("group/card-header @container/card-header grid auto-rows-min items-start gap-1 rounded-t-xl px-(--card-spacing) has-data-[slot=card-action]:grid-cols-[1fr_auto] has-data-[slot=card-description]:grid-rows-[auto_auto] [.border-b]:pb-(--card-spacing)",a),...d})},"CardTitle",0,function({className:a,...d}){return(0,b.jsx)("div",{"data-slot":"card-title",className:(0,c.cn)("font-heading text-base leading-snug font-medium group-data-[size=sm]/card:text-sm",a),...d})}])},39848,a=>{"use strict";var b=a.i(75086);let c=(...a)=>a.filter((a,b,c)=>!!a&&""!==a.trim()&&c.indexOf(a)===b).join(" ").trim(),d={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":2,"stroke-linecap":"round","stroke-linejoin":"round"},e=(0,b.createContext)({}),f=(0,b.forwardRef)(({color:a,size:f,width:g,height:h,strokeWidth:i,absoluteStrokeWidth:j,nonScalingStroke:k,className:l="",children:m,iconNode:n=[],icon:o={node:n,aliases:[],size:24},...p},q)=>{let{size:r=24,strokeWidth:s=2,absoluteStrokeWidth:t=!1,nonScalingStroke:u=!1,color:v="currentColor",className:w=""}=(0,b.useContext)(e)??{},x=!!m||(a=>{for(let b in a)if(b.startsWith("aria-")||"role"===b||"title"===b)return!0;return!1})(p),[y,z,A=[]]=function(a,b={}){return function(a,b={}){let e=b.attributeNames??{},f=a=>e[a]??a,g=a.size??a.width??d.width,h=a.size??a.height??d.height,i=a.aliases?.filter(a=>"string"==typeof a&&""!==a.trim()).map(a=>`lucide-${a}`)??[],j=[...a.name?[`lucide-${a.name}`]:[],...i],k=b.className?.split(" ").filter(Boolean)??[],l=!1===b.includeDefaultClasses?c(...k):c("lucide",...j,...k),m=b.absoluteStrokeWidth?Number(b.strokeWidth??d["stroke-width"])*Number(a.size??a.width??d.width)/Number(b.size??b.width??d.width):b.strokeWidth??d["stroke-width"];return["svg",{...Object.entries(d).reduce((a,[b,c])=>(a[f(b)]=c,a),{}),..."color"in b&&b.color&&{[f("stroke")]:b.color},..."size"in b&&null!=b.size&&{[f("width")]:b.size,[f("height")]:b.size},..."width"in b&&null!=b.width&&{[f("width")]:b.width},..."height"in b&&null!=b.height&&{[f("height")]:b.height},[f("stroke-width")]:m,...l&&{[f("class")]:l},[f("viewBox")]:`0 0 ${g} ${h}`,...!1===b.hasA11yProp?{[f("aria-hidden")]:"true"}:{},..."attributes"in b&&b.attributes},a.node.map(a=>{let[c,d,e]=a,g=b.nonScalingStroke?{[f("vector-effect")]:"non-scaling-stroke",...d}:d;return e?[c,g,e]:[c,g]})]}(a,{...b,attributeNames:{...b.attributeNames,class:"className","stroke-width":"strokeWidth","stroke-linecap":"strokeLinecap","stroke-linejoin":"strokeLinejoin","vector-effect":"vectorEffect"}})}(o,{color:a??v,width:g??f??r,height:h??f??r,strokeWidth:i??s,absoluteStrokeWidth:j??t,nonScalingStroke:k??u,className:c(w,l),hasA11yProp:x,attributes:p});return(0,b.createElement)(y,{ref:q,...z},[...A.map(([a,c])=>(0,b.createElement)(a,c)),...Array.isArray(m)?m:[m]])});a.s(["default",0,f],39848)},23904,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={actionAsyncStorage:function(){return f.actionAsyncStorage},workAsyncStorage:function(){return g.workAsyncStorage},workUnitAsyncStorage:function(){return h.workUnitAsyncStorage}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(20635),g=a.r(56704),h=a.r(32319);("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)}];
2
+
3
+ //# sourceMappingURL=_0bxxvzb._.js.map
@@ -0,0 +1,67 @@
1
+ module.exports=[11510,a=>{"use strict";var b=a.i(47350),c=a.i(75086),d=a.i(56561),e=a.i(3130),f=a.i(40695),g=a.i(5522);let h=`// emitMetric.ts - sends a custom event through the New Relic browser agent (no key in your code)
2
+ // Needs a recent @newrelic/browser-agent (recordCustomEvent). Using New Relic's copy-paste snippet instead? Call window.newrelic.recordCustomEvent the same way.
3
+ import { getAgent } from './newrelic'; // from snippet 1
4
+
5
+ export function emitMetric(name: string, value: number, attrs: Record<string, string | number | boolean> = {}) {
6
+ // No-op until <NewRelicAgent /> has mounted, so this is safe to call anywhere.
7
+ getAgent()?.recordCustomEvent('MetricFlowEvent', { name, value, page: location.pathname, ...attrs });
8
+ }
9
+
10
+ // emitMetric('checkout_step', 2, { step: 'payment' });`,i=`// npm i @sentry/browser
11
+ import * as Sentry from '@sentry/browser';
12
+
13
+ Sentry.init({
14
+ dsn: '<YOUR_SENTRY_DSN>', // Sentry > Project settings > Client Keys (DSN)
15
+ integrations: [Sentry.browserTracingIntegration()], // records page loads and web vitals (LCP, CLS, INP, TTFB)
16
+ tracesSampleRate: 0.1, // share of page loads recorded; raise it on low-traffic sites
17
+ });`,j="border-[#2d3748] bg-[#1a202c] shadow-md";function k({n:a,title:d,help:g,code:h}){let[i,l]=(0,c.useState)(null);return(0,b.jsxs)(e.Card,{className:j,children:[(0,b.jsxs)(e.CardHeader,{children:[(0,b.jsx)(e.CardTitle,{className:"text-base font-bold text-white",children:d}),(0,b.jsx)(e.CardDescription,{className:"text-sm text-gray-400",children:g})]}),(0,b.jsxs)(e.CardContent,{className:"flex flex-col gap-3",children:[(0,b.jsx)("pre",{tabIndex:0,"aria-label":`Code snippet ${a}`,className:"overflow-x-auto rounded-md border border-[#2d3748] bg-[#0f1419] p-3 text-xs text-gray-300",children:h}),(0,b.jsxs)("div",{className:"flex items-center gap-3",children:[(0,b.jsx)(f.Button,{variant:"outline","aria-label":`Copy snippet ${a}: ${d.replace(/^\d+\. /,"")}`,onClick:()=>{navigator.clipboard.writeText(h).then(()=>l("ok"),()=>l("fail")),setTimeout(()=>l(null),2500)},children:"Copy"}),(0,b.jsx)("span",{"aria-live":"polite",className:`text-sm ${"fail"===i?"text-[#f87171]":"text-[#3ee0a1]"}`,children:"ok"===i?"Copied":"fail"===i?"Copy failed, select the text and copy manually":""})]})]})]})}function l({label:a,state:c,detail:d}){let e="ok"===c?"text-[#3ee0a1]":"bad"===c?"text-[#f87171]":"text-gray-400";return(0,b.jsxs)("div",{className:"flex items-start gap-3 border-b border-[#2d3748] py-2 last:border-0",children:[(0,b.jsx)("span",{className:`font-mono text-sm ${e}`,"aria-hidden":!0,children:"ok"===c?"✓":"bad"===c?"✗":"…"}),(0,b.jsx)("span",{className:"sr-only",children:"ok"===c?"working":"bad"===c?"not working":"checking"}),(0,b.jsx)("span",{className:"text-sm text-gray-300 w-56 shrink-0",children:a}),(0,b.jsx)("span",{className:`min-w-0 text-sm ${e}`,children:d})]})}function m({label:a,s:c}){let d="Checking…",e="text-gray-400";if(c?.error)d=c.error,e="text-[#f87171]";else if(c){let a=null!==c.recent&&c.recent>0;d=a?`Receiving data${c.lastEventAt?` \xb7 last event ${new Date(c.lastEventAt).toLocaleTimeString()}`:""}`:c.lastEventAt?`None in the last 5 minutes \xb7 last event ${new Date(c.lastEventAt).toLocaleString()}`:"None yet",e=a?"text-[#3ee0a1]":"text-[#f59e0b]"}return(0,b.jsxs)("div",{className:"flex items-center justify-between gap-4 border-b border-[#2d3748] py-2 last:border-0",children:[(0,b.jsx)("span",{className:"text-sm text-gray-300 shrink-0",children:a}),(0,b.jsx)("span",{className:`min-w-0 break-words text-right text-sm ${e}`,children:d})]})}a.s(["ConnectPage",0,function(){let[a,n]=(0,c.useState)(null),[o,p]=(0,c.useState)(""),[q,r]=(0,c.useState)(null),[s,t]=(0,c.useState)(!1),[u,v]=(0,c.useState)(!1),w=(0,c.useCallback)(()=>{fetch("/api/connect").then(a=>a.json()).then(n).catch(()=>{})},[]);async function x(){t(!0),r(null);try{let a=await fetch("/api/setup",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({NEWRELIC_INSERT_KEY:o})}),b=await a.json();b.saved?(p(""),v(!1),r({ok:!0,text:"Insert key saved."}),w()):r({ok:!1,text:b.error??b.results?.NEWRELIC_INSERT_KEY?.error??"Could not save the key."})}catch{r({ok:!1,text:"Could not reach the dashboard server."})}finally{t(!1)}}async function y(){t(!0),r(null);try{let a=await fetch("/api/connect",{method:"POST"}),b=await a.json();r(b.sent?{ok:!0,text:"Test event sent. It can take up to a minute to show below."}:{ok:!1,text:b.error??"Failed."}),w()}catch{r({ok:!1,text:"Could not reach the dashboard server."})}finally{t(!1)}}if((0,c.useEffect)(()=>{w();let a=setInterval(()=>{document.hidden||w()},5e3);return()=>clearInterval(a)},[w]),a?.error)return(0,b.jsx)(e.Card,{className:j,children:(0,b.jsx)(e.CardContent,{className:"p-10 text-center","aria-live":"polite",children:(0,b.jsx)("p",{className:"text-sm text-[#f87171]",children:a.error})})});if(a&&!a.configured)return(0,b.jsx)(e.Card,{className:j,children:(0,b.jsxs)(e.CardContent,{className:"flex flex-col items-center gap-3 p-10 text-center",children:[(0,b.jsx)("h3",{className:"text-lg font-semibold text-white",children:"Set up your keys first"}),(0,b.jsx)("p",{className:"max-w-md text-sm text-gray-400",children:"Add your New Relic or Sentry keys, then come back to connect your site."}),(0,b.jsx)(d.default,{href:"/setup",className:(0,f.buttonVariants)(),children:"Go to setup"})]})});let z=!a?.tools||a.tools.includes("new-relic"),A=!a?.tools||a.tools.includes("sentry"),B=2*!!z+ +!!A+1;return(0,b.jsxs)("div",{className:"flex flex-col gap-6 max-w-3xl",children:[z&&(0,b.jsxs)(e.Card,{className:j,children:[(0,b.jsxs)(e.CardHeader,{children:[(0,b.jsx)(e.CardTitle,{className:"text-base font-bold text-white",children:"Connection"}),(0,b.jsx)(e.CardDescription,{className:"text-sm text-gray-400",children:"Each link in the chain from your site to this dashboard. Fix the first \\u2717."})]}),(0,b.jsxs)(e.CardContent,{"aria-live":"polite",children:[(0,b.jsx)(l,{label:"Keys for reading",state:a?"ok":"wait",detail:a?.accountId?`Reading New Relic account ${a.accountId}`:"Checking…"}),(0,b.jsx)(l,{label:"Browser app in New Relic",state:a?.setup?a.setup.error?"bad":a.setup.appCount>0?"ok":"bad":"wait",detail:a?.setup?a.setup.error?a.setup.error:a.setup.appCount>0?`${a.setup.appName} \u00b7 application ID ${a.setup.applicationId}`:"None yet. Create one: New Relic > Add data > Browser monitoring. Until then your site has no application ID to send to.":"Checking…"}),(0,b.jsx)(l,{label:"Browser key",state:a?.setup?a.setup.browserKey?"ok":"bad":"wait",detail:a?.setup?a.setup.browserKey?`${a.setup.browserKey} \u00b7 already filled into snippet 1 below`:"Could not read it. Copy the key VALUE from New Relic > API keys (type Ingest - Browser), not the ID beside it.":"Checking…"}),(0,b.jsx)(l,{label:"Your site sending data",state:a?.browser?(a.browser.recent??0)>0?"ok":"bad":"wait",detail:a?.browser?(a.browser.recent??0)>0?"New Relic is receiving page views":"No page views yet. Load your site, then check for blocked requests to nr-data.net - ad and privacy blockers drop them silently.":"Checking…"})]})]}),(0,b.jsxs)(e.Card,{className:j,children:[(0,b.jsxs)(e.CardHeader,{children:[(0,b.jsx)(e.CardTitle,{className:"text-base font-bold text-white",children:"Events received (last 5 minutes)"}),(0,b.jsxs)(e.CardDescription,{className:"text-sm text-gray-400",children:[a?.accountId?(0,b.jsxs)(b.Fragment,{children:["Querying New Relic account ",(0,b.jsx)("span",{className:"font-mono text-gray-200",children:a.accountId}),". "]}):null,"Updates every few seconds. All rows empty? Check this is the account your site sends to."]})]}),(0,b.jsxs)(e.CardContent,{"aria-live":"polite",children:[z&&(0,b.jsx)(m,{label:"Browser agent (page views)",s:a?.browser}),z&&(0,b.jsx)(m,{label:"Custom events (emitMetric / test event)",s:a?.custom}),A&&(0,b.jsx)(m,{label:"Sentry errors",s:a?.sentry})]})]}),z&&(0,b.jsxs)(e.Card,{className:j,children:[(0,b.jsxs)(e.CardHeader,{children:[(0,b.jsx)(e.CardTitle,{className:"text-base font-bold text-white",children:"Two different New Relic keys"}),(0,b.jsxs)(e.CardDescription,{className:"text-sm text-gray-400",children:[(0,b.jsx)("strong",{className:"text-gray-200",children:"User API key"})," (set on Setup): lets this dashboard ",(0,b.jsx)("em",{children:"read"})," your data."," ",(0,b.jsx)("strong",{className:"text-gray-200",children:"Ingest - License key"})," (below): lets a script ",(0,b.jsx)("em",{children:"send"})," events. Only the Insert key is used by the test button. The Browser agent snippet uses a third key, the ",(0,b.jsx)("strong",{className:"text-gray-200",children:"Ingest - Browser"})," key. Dashboards for US New Relic accounts only."]})]}),(0,b.jsxs)(e.CardContent,{className:"flex flex-col gap-3",children:[a?.insertKeySet&&!u?(0,b.jsxs)("p",{className:"text-sm text-[#3ee0a1]",children:["✓ Insert key is set"," ",(0,b.jsx)("button",{type:"button",className:"ml-2 text-gray-300 underline",onClick:()=>v(!0),children:"Replace"})]}):(0,b.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,b.jsx)("label",{htmlFor:"insert-key",className:"text-sm font-medium text-gray-300",children:"Insert key · sends test events"}),(0,b.jsx)("p",{id:"insert-key-help",className:"text-xs text-gray-400",children:'Only needed for the test button and custom events. Different from the User key. Create it as type "Ingest - License".'}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(g.Input,{id:"insert-key","aria-describedby":"insert-key-help",type:"password",autoComplete:"off",spellCheck:!1,placeholder:"Ingest - License key",value:o,onChange:a=>p(a.target.value),className:"bg-[#0f1419] border-[#2d3748] text-gray-200 font-mono text-xs"}),(0,b.jsx)(f.Button,{onClick:x,disabled:s||!o.trim(),children:"Save"})]})]}),(0,b.jsxs)("div",{className:"flex items-center gap-4",children:[(0,b.jsx)(f.Button,{onClick:y,disabled:s||!a?.insertKeySet,children:"Send test event"}),!a?.insertKeySet&&(0,b.jsx)("span",{className:"text-sm text-gray-400",children:"Add an Insert key first"}),q&&(0,b.jsx)("span",{"aria-live":"polite",className:`text-sm ${q.ok?"text-[#3ee0a1]":"text-[#f87171]"}`,children:q.text})]})]})]}),z&&(0,b.jsx)(e.Card,{className:j,children:(0,b.jsxs)(e.CardContent,{className:"p-4 text-sm text-[#f87171] border-l-2 border-[#f87171]",children:[(0,b.jsx)("strong",{children:"Snippet 1 runs in the browser, so its key is public."})," Use the ",(0,b.jsx)("strong",{children:"Ingest - Browser"})," key (starts ",(0,b.jsx)("span",{className:"font-mono",children:"NRJS-"}),"), never your ",(0,b.jsx)("span",{className:"font-mono",children:"NRAK-"})," User key from Setup - that one would hand every visitor full read/write access to your account. The application ID is also not your account ID."]})}),z&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(k,{n:1,title:"1. New Relic Browser agent",help:"Gives page views, load timing and Core Web Vitals. Create the Browser app in New Relic first (Add data > Browser monitoring) - that is where the NRJS- key and the application ID come from.",code:(({accountId:a,applicationId:b,browserKey:c}={})=>`// Step 0 - create the Browser app first: New Relic > Add data > Browser monitoring.
18
+ // Without it there is no ingest key and no application ID to copy.
19
+ // That page gives you both:
20
+ // ingest key starts with NRJS- (NOT your NRAK- User API key from Setup)
21
+ // application ID a plain number (NOT your account ID - they look identical)
22
+ // Copy the key VALUE, not the ID shown beside it in the key list: an ID is
23
+ // accepted by the form but rejected by the beacon, and nothing is logged.
24
+ // npm i @newrelic/browser-agent
25
+
26
+ // .env.local - NEXT_PUBLIC_* values are inlined into your public JavaScript.
27
+ // Only the NRJS- ingest key belongs here. An NRAK- User key would be published
28
+ // to every visitor as a full-account read/write credential.
29
+ // NEXT_PUBLIC_NEWRELIC_BROWSER_KEY=${c??"NRJS-xxxxxxxxxxxxxxxxxxx"}
30
+ // NEXT_PUBLIC_NEWRELIC_APP_ID=${b??"123456789"}
31
+ // NEXT_PUBLIC_NEWRELIC_ACCOUNT_ID=${a??"1234567"}
32
+
33
+ // newrelic.ts
34
+ import { BrowserAgent } from '@newrelic/browser-agent/loaders/browser-agent';
35
+
36
+ const licenseKey = process.env.NEXT_PUBLIC_NEWRELIC_BROWSER_KEY!;
37
+ const applicationID = process.env.NEXT_PUBLIC_NEWRELIC_APP_ID!;
38
+ const accountID = process.env.NEXT_PUBLIC_NEWRELIC_ACCOUNT_ID!;
39
+
40
+ let agent: BrowserAgent | undefined;
41
+
42
+ // Never construct at import time: the agent touches window, so a module-level
43
+ // \`export const agent = new BrowserAgent(...)\` fails \`next build\` on any
44
+ // prerendered route - TypeError: Cannot create property 'NREUM' on boolean 'false'.
45
+ export function startAgent() {
46
+ agent ??= new BrowserAgent({
47
+ init: { distributed_tracing: { enabled: true }, privacy: { cookies_enabled: true } },
48
+ info: { beacon: 'bam.nr-data.net', errorBeacon: 'bam.nr-data.net', licenseKey, applicationID, sa: 1 },
49
+ loader_config: { accountID, trustKey: accountID, agentID: applicationID, licenseKey, applicationID },
50
+ });
51
+ return agent;
52
+ }
53
+
54
+ export const getAgent = () => agent;
55
+
56
+ // app/newrelic-agent.tsx - render <NewRelicAgent /> once in app/layout.tsx.
57
+ 'use client';
58
+ import { useEffect } from 'react';
59
+
60
+ export function NewRelicAgent() {
61
+ // Dynamic import keeps the agent out of the server bundle entirely.
62
+ useEffect(() => { import('./newrelic').then(m => m.startAgent()); }, []);
63
+ return null;
64
+ }
65
+ // That alone gives you PageView, load timing, Core Web Vitals and JS errors.`)({accountId:a?.accountId,applicationId:a?.setup?.applicationId,browserKey:a?.setup?.browserKey})}),(0,b.jsx)(k,{n:2,title:"2. emitMetric() helper",help:"Send your own numbers from your site. Uses the agent from snippet 1, so no key goes in your code.",code:h})]}),A&&(0,b.jsx)(k,{n:z?3:1,title:`${z?3:1}. Sentry errors and web vitals`,help:"Send JavaScript errors, page loads and web vitals to Sentry. Call it once, before anything else on your site runs. Use your project's DSN.",code:i}),(0,b.jsx)(e.Card,{className:j,children:(0,b.jsxs)(e.CardHeader,{children:[(0,b.jsxs)(e.CardTitle,{className:"text-base font-bold text-white",children:[B,". Verify"]}),(0,b.jsx)(e.CardDescription,{className:"text-sm text-gray-400",children:z?(0,b.jsx)(b.Fragment,{children:'Reload your site, then watch "Events received" above turn green. Use Send test event to check the custom-event path.'}):(0,b.jsx)(b.Fragment,{children:'Cause an error on your site, then watch "Sentry errors" above turn green.'})})]})})]})}],11510)},3130,a=>{"use strict";var b=a.i(47350),c=a.i(85198);a.s(["Card",0,function({className:a,size:d="default",...e}){return(0,b.jsx)("div",{"data-slot":"card","data-size":d,className:(0,c.cn)("group/card flex flex-col gap-(--card-spacing) overflow-hidden rounded-xl bg-card py-(--card-spacing) text-sm text-card-foreground ring-1 ring-foreground/10 [--card-spacing:--spacing(4)] has-data-[slot=card-footer]:pb-0 has-[>img:first-child]:pt-0 data-[size=sm]:[--card-spacing:--spacing(3)] data-[size=sm]:has-data-[slot=card-footer]:pb-0 *:[img:first-child]:rounded-t-xl *:[img:last-child]:rounded-b-xl",a),...e})},"CardContent",0,function({className:a,...d}){return(0,b.jsx)("div",{"data-slot":"card-content",className:(0,c.cn)("px-(--card-spacing)",a),...d})},"CardDescription",0,function({className:a,...d}){return(0,b.jsx)("div",{"data-slot":"card-description",className:(0,c.cn)("text-sm text-muted-foreground",a),...d})},"CardHeader",0,function({className:a,...d}){return(0,b.jsx)("div",{"data-slot":"card-header",className:(0,c.cn)("group/card-header @container/card-header grid auto-rows-min items-start gap-1 rounded-t-xl px-(--card-spacing) has-data-[slot=card-action]:grid-cols-[1fr_auto] has-data-[slot=card-description]:grid-rows-[auto_auto] [.border-b]:pb-(--card-spacing)",a),...d})},"CardTitle",0,function({className:a,...d}){return(0,b.jsx)("div",{"data-slot":"card-title",className:(0,c.cn)("font-heading text-base leading-snug font-medium group-data-[size=sm]/card:text-sm",a),...d})}])},39848,a=>{"use strict";var b=a.i(75086);let c=(...a)=>a.filter((a,b,c)=>!!a&&""!==a.trim()&&c.indexOf(a)===b).join(" ").trim(),d={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":2,"stroke-linecap":"round","stroke-linejoin":"round"},e=(0,b.createContext)({}),f=(0,b.forwardRef)(({color:a,size:f,width:g,height:h,strokeWidth:i,absoluteStrokeWidth:j,nonScalingStroke:k,className:l="",children:m,iconNode:n=[],icon:o={node:n,aliases:[],size:24},...p},q)=>{let{size:r=24,strokeWidth:s=2,absoluteStrokeWidth:t=!1,nonScalingStroke:u=!1,color:v="currentColor",className:w=""}=(0,b.useContext)(e)??{},x=!!m||(a=>{for(let b in a)if(b.startsWith("aria-")||"role"===b||"title"===b)return!0;return!1})(p),[y,z,A=[]]=function(a,b={}){return function(a,b={}){let e=b.attributeNames??{},f=a=>e[a]??a,g=a.size??a.width??d.width,h=a.size??a.height??d.height,i=a.aliases?.filter(a=>"string"==typeof a&&""!==a.trim()).map(a=>`lucide-${a}`)??[],j=[...a.name?[`lucide-${a.name}`]:[],...i],k=b.className?.split(" ").filter(Boolean)??[],l=!1===b.includeDefaultClasses?c(...k):c("lucide",...j,...k),m=b.absoluteStrokeWidth?Number(b.strokeWidth??d["stroke-width"])*Number(a.size??a.width??d.width)/Number(b.size??b.width??d.width):b.strokeWidth??d["stroke-width"];return["svg",{...Object.entries(d).reduce((a,[b,c])=>(a[f(b)]=c,a),{}),..."color"in b&&b.color&&{[f("stroke")]:b.color},..."size"in b&&null!=b.size&&{[f("width")]:b.size,[f("height")]:b.size},..."width"in b&&null!=b.width&&{[f("width")]:b.width},..."height"in b&&null!=b.height&&{[f("height")]:b.height},[f("stroke-width")]:m,...l&&{[f("class")]:l},[f("viewBox")]:`0 0 ${g} ${h}`,...!1===b.hasA11yProp?{[f("aria-hidden")]:"true"}:{},..."attributes"in b&&b.attributes},a.node.map(a=>{let[c,d,e]=a,g=b.nonScalingStroke?{[f("vector-effect")]:"non-scaling-stroke",...d}:d;return e?[c,g,e]:[c,g]})]}(a,{...b,attributeNames:{...b.attributeNames,class:"className","stroke-width":"strokeWidth","stroke-linecap":"strokeLinecap","stroke-linejoin":"strokeLinejoin","vector-effect":"vectorEffect"}})}(o,{color:a??v,width:g??f??r,height:h??f??r,strokeWidth:i??s,absoluteStrokeWidth:j??t,nonScalingStroke:k??u,className:c(w,l),hasA11yProp:x,attributes:p});return(0,b.createElement)(y,{ref:q,...z},[...A.map(([a,c])=>(0,b.createElement)(a,c)),...Array.isArray(m)?m:[m]])});a.s(["default",0,f],39848)},23904,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={actionAsyncStorage:function(){return f.actionAsyncStorage},workAsyncStorage:function(){return g.workAsyncStorage},workUnitAsyncStorage:function(){return h.workUnitAsyncStorage}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(20635),g=a.r(56704),h=a.r(32319);("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)}];
66
+
67
+ //# sourceMappingURL=_0cq6qjs._.js.map