@karan171996/metricflow 0.2.1 → 0.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/BUILD_ID +1 -1
- package/.next/build-manifest.json +3 -3
- package/.next/fallback-build-manifest.json +3 -3
- package/.next/prerender-manifest.json +1 -1
- package/.next/server/app/_global-error.html +1 -1
- package/.next/server/app/_global-error.rsc +1 -1
- package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_not-found.html +2 -2
- package/.next/server/app/_not-found.rsc +4 -4
- package/.next/server/app/_not-found.segments/_full.segment.rsc +4 -4
- package/.next/server/app/_not-found.segments/_index.segment.rsc +3 -3
- package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/api/connect/route.js.nft.json +1 -1
- package/.next/server/app/api/setup/route.js.nft.json +1 -1
- package/.next/server/app/connect/page.js.nft.json +1 -1
- package/.next/server/app/connect/page_client-reference-manifest.js +1 -1
- package/.next/server/app/connect.html +49 -10
- package/.next/server/app/connect.rsc +10 -10
- package/.next/server/app/connect.segments/_full.segment.rsc +10 -10
- package/.next/server/app/connect.segments/_index.segment.rsc +7 -7
- package/.next/server/app/connect.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/connect.segments/connect/__PAGE__.segment.rsc +6 -6
- package/.next/server/app/index.html +2 -2
- package/.next/server/app/index.rsc +4 -4
- package/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/index.segments/_full.segment.rsc +4 -4
- package/.next/server/app/index.segments/_index.segment.rsc +3 -3
- package/.next/server/app/index.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/page.js.nft.json +1 -1
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app/performance/[slug]/page.js.nft.json +1 -1
- package/.next/server/app/performance/[slug]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/performance/page.js.nft.json +1 -1
- package/.next/server/app/performance/page_client-reference-manifest.js +1 -1
- package/.next/server/app/performance.html +2 -2
- package/.next/server/app/performance.rsc +4 -4
- package/.next/server/app/performance.segments/_full.segment.rsc +4 -4
- package/.next/server/app/performance.segments/_index.segment.rsc +3 -3
- package/.next/server/app/performance.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/performance.segments/performance/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/settings/page.js.nft.json +1 -1
- package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings.html +2 -2
- package/.next/server/app/settings.rsc +4 -4
- package/.next/server/app/settings.segments/_full.segment.rsc +4 -4
- package/.next/server/app/settings.segments/_index.segment.rsc +3 -3
- package/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/setup/page.js.nft.json +1 -1
- package/.next/server/app/setup/page_client-reference-manifest.js +1 -1
- package/.next/server/app/setup.html +2 -2
- package/.next/server/app/setup.rsc +4 -4
- package/.next/server/app/setup.segments/_full.segment.rsc +4 -4
- package/.next/server/app/setup.segments/_index.segment.rsc +3 -3
- package/.next/server/app/setup.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/setup.segments/setup/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/tools/[tool]/page.js.nft.json +1 -1
- package/.next/server/app/tools/[tool]/page_client-reference-manifest.js +1 -1
- package/.next/server/chunks/_0w8wvdn._.js +1 -1
- package/.next/server/chunks/_1l9d64o._.js +1 -1
- package/.next/server/chunks/ssr/_1tpe22e._.js +49 -10
- package/.next/server/middleware-build-manifest.js +3 -3
- package/.next/server/pages/404.html +2 -2
- package/.next/server/pages/500.html +1 -1
- package/.next/static/chunks/0jdi9z-36r704.js +62 -0
- package/.next/static/chunks/21u8jjtcbrv86.css +1 -0
- package/.next/trace +1 -1
- package/.next/trace-build +1 -1
- package/README.md +7 -0
- package/package.json +1 -1
- package/.next/static/chunks/12nwz8qd2ocwk.css +0 -1
- package/.next/static/chunks/3y_9ajtx5_9ky.js +0 -23
- /package/.next/static/{hVxca481NAlwtx6J2pBuC → CmDtpnmDTN7yCAeLoO8pb}/_buildManifest.js +0 -0
- /package/.next/static/{hVxca481NAlwtx6J2pBuC → CmDtpnmDTN7yCAeLoO8pb}/_clientMiddlewareManifest.js +0 -0
- /package/.next/static/{hVxca481NAlwtx6J2pBuC → CmDtpnmDTN7yCAeLoO8pb}/_ssgManifest.js +0 -0
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
globalThis.__RSC_MANIFEST = globalThis.__RSC_MANIFEST || {};
|
|
2
|
-
globalThis.__RSC_MANIFEST["/tools/[tool]/page"] = {"moduleLoading":{"prefix":""},"clientModules":{"[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/esm/client/components/layout-router.js":{"id":46495,"name":"*","chunks":["/_next/static/chunks/2dpz7gbtyu5go.js"],"async":false},"[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/esm/client/components/render-from-template-context.js":{"id":90434,"name":"*","chunks":["/_next/static/chunks/2dpz7gbtyu5go.js"],"async":false},"[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/esm/client/components/client-page.js":{"id":81762,"name":"*","chunks":["/_next/static/chunks/2dpz7gbtyu5go.js"],"async":false},"[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/esm/client/components/client-segment.js":{"id":90334,"name":"*","chunks":["/_next/static/chunks/2dpz7gbtyu5go.js"],"async":false},"[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/esm/client/components/http-access-fallback/error-boundary.js":{"id":74882,"name":"*","chunks":["/_next/static/chunks/2dpz7gbtyu5go.js"],"async":false},"[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/esm/lib/framework/boundary-components.js":{"id":43120,"name":"*","chunks":["/_next/static/chunks/2dpz7gbtyu5go.js"],"async":false},"[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/esm/lib/metadata/generate/icon-mark.js":{"id":27499,"name":"*","chunks":["/_next/static/chunks/2dpz7gbtyu5go.js"],"async":false},"[project]/components/sidebar/Sidebar.tsx":{"id":67097,"name":"*","chunks":["/_next/static/chunks/2dpz7gbtyu5go.js","/_next/static/chunks/1t-tmstauvn0u.js","/_next/static/chunks/23d4pgenwzdj5.js"],"async":false},"[project]/components/ui/sidebar.tsx":{"id":11522,"name":"*","chunks":["/_next/static/chunks/2dpz7gbtyu5go.js","/_next/static/chunks/1t-tmstauvn0u.js","/_next/static/chunks/23d4pgenwzdj5.js"],"async":false},"[project]/components/header/Header.tsx":{"id":17792,"name":"*","chunks":["/_next/static/chunks/2dpz7gbtyu5go.js","/_next/static/chunks/1t-tmstauvn0u.js","/_next/static/chunks/23d4pgenwzdj5.js"],"async":false},"[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":{"id":3020,"name":"*","chunks":["/_next/static/chunks/2dpz7gbtyu5go.js"],"async":false},"[project]/components/ToolInsights/ToolInsights.tsx":{"id":98537,"name":"*","chunks":["/_next/static/chunks/2dpz7gbtyu5go.js","/_next/static/chunks/1t-tmstauvn0u.js","/_next/static/chunks/23d4pgenwzdj5.js"],"async":false},"[project]/node_modules/.pnpm/lucide-react@1.47.0_react@19.2.8/node_modules/lucide-react/dist/esm/Icon.mjs":{"id":91153,"name":"*","chunks":["/_next/static/chunks/2dpz7gbtyu5go.js","/_next/static/chunks/1t-tmstauvn0u.js","/_next/static/chunks/23d4pgenwzdj5.js"],"async":false}},"ssrModuleMapping":{"46495":{"*":{"id":51202,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__07myivi._.js","server/chunks/ssr/0x0c_next_dist_0lkq344._.js"],"async":false}},"90434":{"*":{"id":19122,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__07myivi._.js","server/chunks/ssr/0x0c_next_dist_0lkq344._.js"],"async":false}},"81762":{"*":{"id":28239,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__07myivi._.js","server/chunks/ssr/0x0c_next_dist_0lkq344._.js"],"async":false}},"90334":{"*":{"id":57748,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__07myivi._.js","server/chunks/ssr/0x0c_next_dist_0lkq344._.js"],"async":false}},"74882":{"*":{"id":41006,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__07myivi._.js","server/chunks/ssr/0x0c_next_dist_0lkq344._.js"],"async":false}},"43120":{"*":{"id":22076,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__07myivi._.js","server/chunks/ssr/0x0c_next_dist_0lkq344._.js"],"async":false}},"27499":{"*":{"id":69888,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__07myivi._.js","server/chunks/ssr/0x0c_next_dist_0lkq344._.js"],"async":false}},"67097":{"*":{"id":30948,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__07myivi._.js","server/chunks/ssr/0x0c_next_dist_0lkq344._.js","server/chunks/ssr/_0e_s0v0._.js","server/chunks/ssr/_09540a5._.js"],"async":false}},"11522":{"*":{"id":14727,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__07myivi._.js","server/chunks/ssr/0x0c_next_dist_0lkq344._.js","server/chunks/ssr/_0e_s0v0._.js","server/chunks/ssr/_09540a5._.js"],"async":false}},"17792":{"*":{"id":72347,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__07myivi._.js","server/chunks/ssr/0x0c_next_dist_0lkq344._.js","server/chunks/ssr/_0e_s0v0._.js","server/chunks/ssr/_09540a5._.js"],"async":false}},"3020":{"*":{"id":17111,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__07myivi._.js","server/chunks/ssr/0x0c_next_dist_0lkq344._.js","server/chunks/ssr/node_modules__pnpm_0hf3oiy._.js"],"async":false}},"98537":{"*":{"id":13392,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__07myivi._.js","server/chunks/ssr/0x0c_next_dist_0lkq344._.js","server/chunks/ssr/_0e_s0v0._.js","server/chunks/ssr/_09540a5._.js"],"async":false}},"91153":{"*":{"id":39848,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__07myivi._.js","server/chunks/ssr/0x0c_next_dist_0lkq344._.js","server/chunks/ssr/_0e_s0v0._.js","server/chunks/ssr/_09540a5._.js"],"async":false}}},"edgeSSRModuleMapping":{},"rscModuleMapping":{"46495":{"*":{"id":75141,"name":"*","chunks":[],"async":false}},"90434":{"*":{"id":83264,"name":"*","chunks":[],"async":false}},"81762":{"*":{"id":40645,"name":"*","chunks":[],"async":false}},"90334":{"*":{"id":12796,"name":"*","chunks":[],"async":false}},"74882":{"*":{"id":48616,"name":"*","chunks":[],"async":false}},"43120":{"*":{"id":14057,"name":"*","chunks":[],"async":false}},"27499":{"*":{"id":83139,"name":"*","chunks":[],"async":false}},"67097":{"*":{"id":24794,"name":"*","chunks":[],"async":false}},"11522":{"*":{"id":54367,"name":"*","chunks":[],"async":false}},"17792":{"*":{"id":31358,"name":"*","chunks":[],"async":false}},"3020":{"*":{"id":42038,"name":"*","chunks":[],"async":false}},"98537":{"*":{"id":57784,"name":"*","chunks":[],"async":false}},"91153":{"*":{"id":33951,"name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{},"entryCSSFiles":{"[project]/app/layout":[{"path":"static/chunks/
|
|
2
|
+
globalThis.__RSC_MANIFEST["/tools/[tool]/page"] = {"moduleLoading":{"prefix":""},"clientModules":{"[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/esm/client/components/layout-router.js":{"id":46495,"name":"*","chunks":["/_next/static/chunks/2dpz7gbtyu5go.js"],"async":false},"[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/esm/client/components/render-from-template-context.js":{"id":90434,"name":"*","chunks":["/_next/static/chunks/2dpz7gbtyu5go.js"],"async":false},"[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/esm/client/components/client-page.js":{"id":81762,"name":"*","chunks":["/_next/static/chunks/2dpz7gbtyu5go.js"],"async":false},"[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/esm/client/components/client-segment.js":{"id":90334,"name":"*","chunks":["/_next/static/chunks/2dpz7gbtyu5go.js"],"async":false},"[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/esm/client/components/http-access-fallback/error-boundary.js":{"id":74882,"name":"*","chunks":["/_next/static/chunks/2dpz7gbtyu5go.js"],"async":false},"[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/esm/lib/framework/boundary-components.js":{"id":43120,"name":"*","chunks":["/_next/static/chunks/2dpz7gbtyu5go.js"],"async":false},"[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/esm/lib/metadata/generate/icon-mark.js":{"id":27499,"name":"*","chunks":["/_next/static/chunks/2dpz7gbtyu5go.js"],"async":false},"[project]/components/sidebar/Sidebar.tsx":{"id":67097,"name":"*","chunks":["/_next/static/chunks/2dpz7gbtyu5go.js","/_next/static/chunks/1t-tmstauvn0u.js","/_next/static/chunks/23d4pgenwzdj5.js"],"async":false},"[project]/components/ui/sidebar.tsx":{"id":11522,"name":"*","chunks":["/_next/static/chunks/2dpz7gbtyu5go.js","/_next/static/chunks/1t-tmstauvn0u.js","/_next/static/chunks/23d4pgenwzdj5.js"],"async":false},"[project]/components/header/Header.tsx":{"id":17792,"name":"*","chunks":["/_next/static/chunks/2dpz7gbtyu5go.js","/_next/static/chunks/1t-tmstauvn0u.js","/_next/static/chunks/23d4pgenwzdj5.js"],"async":false},"[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":{"id":3020,"name":"*","chunks":["/_next/static/chunks/2dpz7gbtyu5go.js"],"async":false},"[project]/components/ToolInsights/ToolInsights.tsx":{"id":98537,"name":"*","chunks":["/_next/static/chunks/2dpz7gbtyu5go.js","/_next/static/chunks/1t-tmstauvn0u.js","/_next/static/chunks/23d4pgenwzdj5.js"],"async":false},"[project]/node_modules/.pnpm/lucide-react@1.47.0_react@19.2.8/node_modules/lucide-react/dist/esm/Icon.mjs":{"id":91153,"name":"*","chunks":["/_next/static/chunks/2dpz7gbtyu5go.js","/_next/static/chunks/1t-tmstauvn0u.js","/_next/static/chunks/23d4pgenwzdj5.js"],"async":false}},"ssrModuleMapping":{"46495":{"*":{"id":51202,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__07myivi._.js","server/chunks/ssr/0x0c_next_dist_0lkq344._.js"],"async":false}},"90434":{"*":{"id":19122,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__07myivi._.js","server/chunks/ssr/0x0c_next_dist_0lkq344._.js"],"async":false}},"81762":{"*":{"id":28239,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__07myivi._.js","server/chunks/ssr/0x0c_next_dist_0lkq344._.js"],"async":false}},"90334":{"*":{"id":57748,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__07myivi._.js","server/chunks/ssr/0x0c_next_dist_0lkq344._.js"],"async":false}},"74882":{"*":{"id":41006,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__07myivi._.js","server/chunks/ssr/0x0c_next_dist_0lkq344._.js"],"async":false}},"43120":{"*":{"id":22076,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__07myivi._.js","server/chunks/ssr/0x0c_next_dist_0lkq344._.js"],"async":false}},"27499":{"*":{"id":69888,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__07myivi._.js","server/chunks/ssr/0x0c_next_dist_0lkq344._.js"],"async":false}},"67097":{"*":{"id":30948,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__07myivi._.js","server/chunks/ssr/0x0c_next_dist_0lkq344._.js","server/chunks/ssr/_0e_s0v0._.js","server/chunks/ssr/_09540a5._.js"],"async":false}},"11522":{"*":{"id":14727,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__07myivi._.js","server/chunks/ssr/0x0c_next_dist_0lkq344._.js","server/chunks/ssr/_0e_s0v0._.js","server/chunks/ssr/_09540a5._.js"],"async":false}},"17792":{"*":{"id":72347,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__07myivi._.js","server/chunks/ssr/0x0c_next_dist_0lkq344._.js","server/chunks/ssr/_0e_s0v0._.js","server/chunks/ssr/_09540a5._.js"],"async":false}},"3020":{"*":{"id":17111,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__07myivi._.js","server/chunks/ssr/0x0c_next_dist_0lkq344._.js","server/chunks/ssr/node_modules__pnpm_0hf3oiy._.js"],"async":false}},"98537":{"*":{"id":13392,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__07myivi._.js","server/chunks/ssr/0x0c_next_dist_0lkq344._.js","server/chunks/ssr/_0e_s0v0._.js","server/chunks/ssr/_09540a5._.js"],"async":false}},"91153":{"*":{"id":39848,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__07myivi._.js","server/chunks/ssr/0x0c_next_dist_0lkq344._.js","server/chunks/ssr/_0e_s0v0._.js","server/chunks/ssr/_09540a5._.js"],"async":false}}},"edgeSSRModuleMapping":{},"rscModuleMapping":{"46495":{"*":{"id":75141,"name":"*","chunks":[],"async":false}},"90434":{"*":{"id":83264,"name":"*","chunks":[],"async":false}},"81762":{"*":{"id":40645,"name":"*","chunks":[],"async":false}},"90334":{"*":{"id":12796,"name":"*","chunks":[],"async":false}},"74882":{"*":{"id":48616,"name":"*","chunks":[],"async":false}},"43120":{"*":{"id":14057,"name":"*","chunks":[],"async":false}},"27499":{"*":{"id":83139,"name":"*","chunks":[],"async":false}},"67097":{"*":{"id":24794,"name":"*","chunks":[],"async":false}},"11522":{"*":{"id":54367,"name":"*","chunks":[],"async":false}},"17792":{"*":{"id":31358,"name":"*","chunks":[],"async":false}},"3020":{"*":{"id":42038,"name":"*","chunks":[],"async":false}},"98537":{"*":{"id":57784,"name":"*","chunks":[],"async":false}},"91153":{"*":{"id":33951,"name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{},"entryCSSFiles":{"[project]/app/layout":[{"path":"static/chunks/21u8jjtcbrv86.css","inlined":false}],"[project]/app/loading":[{"path":"static/chunks/21u8jjtcbrv86.css","inlined":false}],"[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":[{"path":"static/chunks/21u8jjtcbrv86.css","inlined":false}],"[project]/app/tools/[tool]/page":[{"path":"static/chunks/21u8jjtcbrv86.css","inlined":false}]},"entryJSFiles":{"[project]/app/layout":["static/chunks/2dpz7gbtyu5go.js"],"[project]/app/loading":["static/chunks/2dpz7gbtyu5go.js","static/chunks/23d4pgenwzdj5.js"],"[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":["static/chunks/2dpz7gbtyu5go.js"],"[project]/app/tools/[tool]/page":["static/chunks/2dpz7gbtyu5go.js","static/chunks/1t-tmstauvn0u.js","static/chunks/23d4pgenwzdj5.js"]}};
|
|
3
3
|
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[35907,e=>{"use strict";var t=e.i(12892),r=e.i(24514),a=e.i(60756),n=e.i(83808);function s(e,t){let r=a.default.isAxiosError(e)?e.response?.status:void 0;return 401===r||403===r?`${t} was rejected (check the key and its permissions).`:404===r?`${t} was not found.`:`Could not reach ${t} to check it.`}async function o(e,r){if(!/^\d+$/.test(r))return{NEXT_PUBLIC_NEWRELIC_ACCOUNT_ID:{ok:!1,error:"Account ID must be a number."}};try{let n,s=n=>a.default.post((0,t.nrHosts)(n).graphql,{query:`{ actor { user { id } account(id: ${r}) { id } } }`},{headers:{"API-Key":e},timeout:8e3}),o="us";try{if(n=await s("us"),!n.data?.data?.actor?.user?.id)throw Error("rejected")}catch(e){try{if(n=await s("eu"),!n.data?.data?.actor?.user?.id)throw e;o="eu"}catch{throw e}}let i="eu"===o?{region:o}:{},u=n.data?.data?.actor;if(!u?.user?.id)return{NEWRELIC_API_KEY:{ok:!1,error:"New Relic User key was rejected."}};if(!u.account?.id)return{NEWRELIC_API_KEY:{ok:!0,...i},NEXT_PUBLIC_NEWRELIC_ACCOUNT_ID:{ok:!1,error:"This key cannot see that account ID."}};return{NEWRELIC_API_KEY:{ok:!0,...i},NEXT_PUBLIC_NEWRELIC_ACCOUNT_ID:{ok:!0}}}catch(e){return{NEWRELIC_API_KEY:{ok:!1,error:s(e,"New Relic")}}}}async function i(e,t){let r=(0,n.parseSentryDsn)(t);if(!r.ok)return{SENTRY_DSN:{ok:!1,error:r.error}};try{if(!await (0,n.orgSlugForDsn)(e,r))return{SENTRY_API_KEY:{ok:!0},SENTRY_DSN:{ok:!1,error:"This DSN does not match a project the token can read."}};return{SENTRY_API_KEY:{ok:!0},SENTRY_DSN:{ok:!0}}}catch(e){return{SENTRY_API_KEY:{ok:!1,error:s(e,"Sentry token")}}}}async function u(e){let[t,r]=await Promise.all([o(e.NEWRELIC_API_KEY,e.NEXT_PUBLIC_NEWRELIC_ACCOUNT_ID),i(e.SENTRY_API_KEY,e.SENTRY_DSN)]);return{...t,...r}}let l=/[\s\0#"'`\\$]/,c="Contains spaces or special characters (# \" ' ` $ \\). Paste the value without them.",d=()=>Response.json({error:(0,r.REFUSAL_MESSAGE)()},{status:403});async function p(e){return(0,r.isLocalRequest)(e)?Response.json({configured:(0,t.isConfigured)(),keys:Object.fromEntries([...t.SETUP_KEYS,t.INSERT_KEY].map(e=>[e,!!(0,t.env)(e)]))}):d()}async function E(e){let a;if(!(0,r.isLocalRequest)(e))return d();try{a=await e.json()}catch{return Response.json({error:"Invalid request body."},{status:400})}let n="string"==typeof a[t.INSERT_KEY]?a[t.INSERT_KEY].trim():"";if(n&&t.SETUP_KEYS.every(e=>!a[e])){if(!(0,t.isConfigured)())return Response.json({saved:!1,error:"Finish setup first."},{status:400});if(l.test(n))return Response.json({saved:!1,results:{[t.INSERT_KEY]:{ok:!1,error:c}}},{status:400});try{(0,t.writeEnvLocal)({[t.INSERT_KEY]:n})}catch{return Response.json({saved:!1,error:".env.local could not be written. Check folder permissions."},{status:500})}return Response.json({saved:!0,results:{[t.INSERT_KEY]:{ok:!0}}})}let s={},o={};for(let e of t.SETUP_KEYS){let t="string"==typeof a[e]?a[e].trim():"";t?l.test(t)?o[e]={ok:!1,error:c}:s[e]=t:o[e]={ok:!1,error:"Required."}}if(Object.keys(o).length)return Response.json({saved:!1,results:o},{status:400});let i=await u(s);if(Object.values(i).some(e=>!e.ok))return Response.json({saved:!1,results:i},{status:422});try{let e=i.NEWRELIC_API_KEY;(0,t.writeEnvLocal)({...s,[t.REGION_KEY]:e.ok&&"eu"===e.region?"eu":"us"})}catch{return Response.json({saved:!1,error:"Keys are valid but .env.local could not be written. Check folder permissions."},{status:500})}return Response.json({saved:!0,results:i})}e.s(["GET",0,p,"POST",0,E],35907)},97962,e=>{"use strict";var t=e.i(12425),r=e.i(83353),a=e.i(47902),n=e.i(37892),s=e.i(54261),o=e.i(39548),i=e.i(68187),u=e.i(63984),l=e.i(88743),c=e.i(24698),d=e.i(13487),p=e.i(48776),E=e.i(29398),R=e.i(31610),h=e.i(45919),f=e.i(93695),v=e.i(12741);e.i(95315);var _=e.i(98732);let C=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/setup/route",pathname:"/api/setup",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/app/api/setup/route.ts",nextConfigOutput:"",userland:()=>e.r(35907),...{}}),{workAsyncStorage:N,workUnitAsyncStorage:w,serverHooks:T}=C;async function S(e,t,a){a.requestMeta&&(0,n.setRequestMeta)(e,a.requestMeta),C.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let N="/api/setup/route";N=N.replace(/\/index$/,"")||"/";let w=await C.prepare(e,t,{srcPage:N,multiZoneDraftMode:!1});if(!w)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:T,deploymentId:S,params:m,nextConfig:I,parsedUrl:g,isDraftMode:y,prerenderManifest:A,routerServerContext:P,isOnDemandRevalidate:k,revalidateOnlyGenerated:x,resolvedPathname:b,clientReferenceManifest:O,serverActionsManifest:K}=w,U=(0,i.normalizeAppPath)(N),Y=!!A.routes[b]&&(C.isDev||(0,v.isRouteCacheOwner)(b,C.cacheOwner,A.routes[b])),D=!!(A.dynamicRoutes[U]||Y),j=async()=>((null==P?void 0:P.render404)?await P.render404(e,t,g,!1):t.end("This page could not be found"),null);if(D&&!y){let e=A.dynamicRoutes[U];if(e&&!1===e.fallback&&!Y){if(I.adapterPath)return await j();throw new f.NoFallbackError}}let L=null;!D||C.isDev||y||(L="/index"===(L=b)?"/":L);let q=!0===C.isDev||!D,H=D&&!q;K&&O&&(0,o.setManifestsSingleton)({page:N,clientReferenceManifest:O,serverActionsManifest:K});let M=e.method||"GET",$=(0,s.getTracer)(),W=$.getActiveScopeSpan(),F=!!(null==P?void 0:P.isWrappedByNextServer),B=!!(0,n.getRequestMeta)(e,"minimalMode"),G=(0,n.getRequestMeta)(e,"incrementalCache")||await C.getIncrementalCache(e,I,A,B);null==G||G.resetRequestCache(),globalThis.__incrementalCache=G;let X={params:m,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!I.experimental.authInterrupts,useCacheTimeout:I.experimental.useCacheTimeout},cacheComponents:!!I.cacheComponents,validationLevel:I.experimental.instantInsights.validationLevel,isDraftMode:y,supportsDynamicResponse:q,incrementalCache:G,hmrRefreshHash:(0,n.getRequestMeta)(e,"hmrRefreshHash"),cacheLifeProfiles:I.cacheLife,staticPageGenerationTimeout:I.staticPageGenerationTimeout,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,n)=>C.onRequestError(e,t,a,n,P)},sharedContext:{buildId:T,deploymentId:S}},V=new u.NodeNextRequest(e),z=new u.NodeNextResponse(t),Z=l.NextRequestAdapter.fromNodeNextRequest(V,(0,l.signalFromNodeResponse)(t)),J=async({previousCacheEntry:r})=>{try{if(!B&&k&&x&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let n=await C.handle(Z,X);e.fetchMetrics=X.renderOpts.fetchMetrics;let s=X.renderOpts.pendingWaitUntil;s&&a.waitUntil&&(a.waitUntil(s),s=void 0);let o=X.renderOpts.collectedTags;if(!D)return await (0,p.sendResponse)(V,z,n,s),null;{let e=await n.blob(),t=(0,E.toNodeOutgoingHttpHeaders)(n.headers);o&&(t[h.NEXT_CACHE_TAGS_HEADER]=o),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==X.renderOpts.collectedRevalidate&&!(X.renderOpts.collectedRevalidate>=h.INFINITE_CACHE)&&X.renderOpts.collectedRevalidate,a=void 0===X.renderOpts.collectedExpire||X.renderOpts.collectedExpire>=h.INFINITE_CACHE?!1!==r&&r>0?I.expireTime:void 0:X.renderOpts.collectedExpire;return{value:{kind:_.CachedRouteKind.APP_ROUTE,status:n.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await C.onRequestError(e,t,{routerKind:"App Router",routePath:N,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:k})},!1,P),t}},Q=async(n,o)=>{try{var i,u;let n=await C.handleResponse({req:e,nextConfig:I,cacheKey:L,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:k,revalidateOnlyGenerated:x,responseGenerator:J,waitUntil:a.waitUntil,isMinimalMode:B});if(!D)return;if((null==n||null==(i=n.value)?void 0:i.kind)!==_.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==n||null==(u=n.value)?void 0:u.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});B||t.setHeader("x-nextjs-cache",k?"REVALIDATED":n.isMiss?"MISS":n.isStale?"STALE":"HIT"),y&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let s=(0,E.fromNodeOutgoingHttpHeaders)(n.value.headers);B&&D||s.delete(h.NEXT_CACHE_TAGS_HEADER),!n.cacheControl||t.getHeader("Cache-Control")||s.get("Cache-Control")||s.set("Cache-Control",(0,R.getCacheControlHeader)(n.cacheControl)),await (0,p.sendResponse)(V,z,new Response(n.value.body,{headers:s,status:n.value.status||200}));return}catch(t){if(t instanceof f.NoFallbackError||await C.onRequestError(e,t,{routerKind:"App Router",routePath:U,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:k})},!1,P),D)throw t;await (0,p.sendResponse)(V,z,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:s.SpanStatusCode.ERROR}),n.setAttribute("error.type",e.toString()));let r=$.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==c.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let a=r.get("next.route")||U,i=`${M} ${a}`;n.setAttributes({"next.route":a,"http.route":a,"next.span_name":i}),n.updateName(i),o&&o!==n&&(o.setAttribute("http.route",a),o.updateName(i))})()}};if(F&&W)await Q(W,void 0);else{let t=$.getActiveScopeSpan();await $.withPropagatedContext(e.headers,()=>$.trace(c.BaseServerSpan.handleRequest,{spanName:`${M} ${N}`,kind:s.SpanKind.SERVER,attributes:{"http.method":M,"http.target":e.url}},e=>Q(e,t)),void 0,!F)}}e.s(["handler",0,S,"patchFetch",0,function(){return(0,a.patchFetch)({workAsyncStorage:N,workUnitAsyncStorage:w})},"routeModule",0,C,"serverHooks",0,T,"workAsyncStorage",0,N,"workUnitAsyncStorage",0,w])}];
|
|
1
|
+
module.exports=[35907,e=>{"use strict";var t=e.i(12892),r=e.i(24514),a=e.i(60756),s=e.i(83808);function n(e,t){let r=a.default.isAxiosError(e)?e.response?.status:void 0;return 401===r||403===r?`${t} was rejected (check the key and its permissions).`:404===r?`${t} was not found.`:`Could not reach ${t} to check it.`}async function o(e,r){if(!/^\d+$/.test(r))return{NEXT_PUBLIC_NEWRELIC_ACCOUNT_ID:{ok:!1,error:"Account ID must be a number."}};try{let s,n=s=>a.default.post((0,t.nrHosts)(s).graphql,{query:`{ actor { user { id } account(id: ${r}) { id } } }`},{headers:{"API-Key":e},timeout:8e3}),o="us";try{if(s=await n("us"),!s.data?.data?.actor?.user?.id)throw Error("rejected")}catch(e){try{if(s=await n("eu"),!s.data?.data?.actor?.user?.id)throw e;o="eu"}catch{throw e}}let i="eu"===o?{region:o}:{},u=s.data?.data?.actor;if(!u?.user?.id)return{NEWRELIC_API_KEY:{ok:!1,error:"New Relic User key was rejected."}};if(!u.account?.id)return{NEWRELIC_API_KEY:{ok:!0,...i},NEXT_PUBLIC_NEWRELIC_ACCOUNT_ID:{ok:!1,error:"This key cannot see that account ID."}};return{NEWRELIC_API_KEY:{ok:!0,...i},NEXT_PUBLIC_NEWRELIC_ACCOUNT_ID:{ok:!0}}}catch(e){return{NEWRELIC_API_KEY:{ok:!1,error:n(e,"New Relic")}}}}async function i(e,t){let r=(0,s.parseSentryDsn)(t);if(!r.ok)return{SENTRY_DSN:{ok:!1,error:r.error}};try{if(!await (0,s.orgSlugForDsn)(e,r))return{SENTRY_API_KEY:{ok:!0},SENTRY_DSN:{ok:!1,error:"This DSN does not match a project the token can read."}};return{SENTRY_API_KEY:{ok:!0},SENTRY_DSN:{ok:!0}}}catch(e){return{SENTRY_API_KEY:{ok:!1,error:n(e,"Sentry token")}}}}async function u(e){let[t,r]=await Promise.all([o(e.NEWRELIC_API_KEY,e.NEXT_PUBLIC_NEWRELIC_ACCOUNT_ID),i(e.SENTRY_API_KEY,e.SENTRY_DSN)]);return{...t,...r}}let l=/[\s\0#"'`\\$]/,c="Contains spaces or special characters (# \" ' ` $ \\). Paste the value without them.",d=()=>Response.json({error:(0,r.REFUSAL_MESSAGE)()},{status:403});async function p(e){return(0,r.isLocalRequest)(e)?Response.json({configured:(0,t.isConfigured)(),keys:Object.fromEntries([...t.SETUP_KEYS,t.INSERT_KEY].map(e=>[e,!!(0,t.env)(e)]))}):d()}async function E(e){let a;if(!(0,r.isLocalRequest)(e))return d();try{a=await e.json()}catch{return Response.json({error:"Invalid request body."},{status:400})}let s="string"==typeof a[t.INSERT_KEY]?a[t.INSERT_KEY].trim():"";if(s&&t.SETUP_KEYS.every(e=>!a[e])){if(!(0,t.isConfigured)())return Response.json({saved:!1,error:"Finish setup first."},{status:400});let e=l.test(s)?c:/^NRAK-/i.test(s)?'That is a User API key (starts NRAK-), which reads data. The Insert key sends data: New Relic > API keys > create key, type "Ingest - License".':null;if(e)return Response.json({saved:!1,results:{[t.INSERT_KEY]:{ok:!1,error:e}}},{status:400});try{(0,t.writeEnvLocal)({[t.INSERT_KEY]:s})}catch{return Response.json({saved:!1,error:".env.local could not be written. Check folder permissions."},{status:500})}return Response.json({saved:!0,results:{[t.INSERT_KEY]:{ok:!0}}})}let n={},o={};for(let e of t.SETUP_KEYS){let t="string"==typeof a[e]?a[e].trim():"";t?l.test(t)?o[e]={ok:!1,error:c}:n[e]=t:o[e]={ok:!1,error:"Required."}}if(Object.keys(o).length)return Response.json({saved:!1,results:o},{status:400});let i=await u(n);if(Object.values(i).some(e=>!e.ok))return Response.json({saved:!1,results:i},{status:422});try{let e=i.NEWRELIC_API_KEY;(0,t.writeEnvLocal)({...n,[t.REGION_KEY]:e.ok&&"eu"===e.region?"eu":"us"})}catch{return Response.json({saved:!1,error:"Keys are valid but .env.local could not be written. Check folder permissions."},{status:500})}return Response.json({saved:!0,results:i})}e.s(["GET",0,p,"POST",0,E],35907)},97962,e=>{"use strict";var t=e.i(12425),r=e.i(83353),a=e.i(47902),s=e.i(37892),n=e.i(54261),o=e.i(39548),i=e.i(68187),u=e.i(63984),l=e.i(88743),c=e.i(24698),d=e.i(13487),p=e.i(48776),E=e.i(29398),h=e.i(31610),R=e.i(45919),f=e.i(93695),v=e.i(12741);e.i(95315);var _=e.i(98732);let C=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/setup/route",pathname:"/api/setup",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/app/api/setup/route.ts",nextConfigOutput:"",userland:()=>e.r(35907),...{}}),{workAsyncStorage:N,workUnitAsyncStorage:w,serverHooks:T}=C;async function I(e,t,a){a.requestMeta&&(0,s.setRequestMeta)(e,a.requestMeta),C.isDev&&(0,s.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let N="/api/setup/route";N=N.replace(/\/index$/,"")||"/";let w=await C.prepare(e,t,{srcPage:N,multiZoneDraftMode:!1});if(!w)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:T,deploymentId:I,params:y,nextConfig:S,parsedUrl:m,isDraftMode:g,prerenderManifest:A,routerServerContext:P,isOnDemandRevalidate:k,revalidateOnlyGenerated:x,resolvedPathname:b,clientReferenceManifest:K,serverActionsManifest:O}=w,U=(0,i.normalizeAppPath)(N),Y=!!A.routes[b]&&(C.isDev||(0,v.isRouteCacheOwner)(b,C.cacheOwner,A.routes[b])),D=!!(A.dynamicRoutes[U]||Y),L=async()=>((null==P?void 0:P.render404)?await P.render404(e,t,m,!1):t.end("This page could not be found"),null);if(D&&!g){let e=A.dynamicRoutes[U];if(e&&!1===e.fallback&&!Y){if(S.adapterPath)return await L();throw new f.NoFallbackError}}let j=null;!D||C.isDev||g||(j="/index"===(j=b)?"/":j);let q=!0===C.isDev||!D,H=D&&!q;O&&K&&(0,o.setManifestsSingleton)({page:N,clientReferenceManifest:K,serverActionsManifest:O});let M=e.method||"GET",$=(0,n.getTracer)(),W=$.getActiveScopeSpan(),F=!!(null==P?void 0:P.isWrappedByNextServer),B=!!(0,s.getRequestMeta)(e,"minimalMode"),G=(0,s.getRequestMeta)(e,"incrementalCache")||await C.getIncrementalCache(e,S,A,B);null==G||G.resetRequestCache(),globalThis.__incrementalCache=G;let X={params:y,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!S.experimental.authInterrupts,useCacheTimeout:S.experimental.useCacheTimeout},cacheComponents:!!S.cacheComponents,validationLevel:S.experimental.instantInsights.validationLevel,isDraftMode:g,supportsDynamicResponse:q,incrementalCache:G,hmrRefreshHash:(0,s.getRequestMeta)(e,"hmrRefreshHash"),cacheLifeProfiles:S.cacheLife,staticPageGenerationTimeout:S.staticPageGenerationTimeout,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,s)=>C.onRequestError(e,t,a,s,P)},sharedContext:{buildId:T,deploymentId:I}},V=new u.NodeNextRequest(e),z=new u.NodeNextResponse(t),Z=l.NextRequestAdapter.fromNodeNextRequest(V,(0,l.signalFromNodeResponse)(t)),J=async({previousCacheEntry:r})=>{try{if(!B&&k&&x&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let s=await C.handle(Z,X);e.fetchMetrics=X.renderOpts.fetchMetrics;let n=X.renderOpts.pendingWaitUntil;n&&a.waitUntil&&(a.waitUntil(n),n=void 0);let o=X.renderOpts.collectedTags;if(!D)return await (0,p.sendResponse)(V,z,s,n),null;{let e=await s.blob(),t=(0,E.toNodeOutgoingHttpHeaders)(s.headers);o&&(t[R.NEXT_CACHE_TAGS_HEADER]=o),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==X.renderOpts.collectedRevalidate&&!(X.renderOpts.collectedRevalidate>=R.INFINITE_CACHE)&&X.renderOpts.collectedRevalidate,a=void 0===X.renderOpts.collectedExpire||X.renderOpts.collectedExpire>=R.INFINITE_CACHE?!1!==r&&r>0?S.expireTime:void 0:X.renderOpts.collectedExpire;return{value:{kind:_.CachedRouteKind.APP_ROUTE,status:s.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await C.onRequestError(e,t,{routerKind:"App Router",routePath:N,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:k})},!1,P),t}},Q=async(s,o)=>{try{var i,u;let s=await C.handleResponse({req:e,nextConfig:S,cacheKey:j,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:k,revalidateOnlyGenerated:x,responseGenerator:J,waitUntil:a.waitUntil,isMinimalMode:B});if(!D)return;if((null==s||null==(i=s.value)?void 0:i.kind)!==_.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==s||null==(u=s.value)?void 0:u.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});B||t.setHeader("x-nextjs-cache",k?"REVALIDATED":s.isMiss?"MISS":s.isStale?"STALE":"HIT"),g&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let n=(0,E.fromNodeOutgoingHttpHeaders)(s.value.headers);B&&D||n.delete(R.NEXT_CACHE_TAGS_HEADER),!s.cacheControl||t.getHeader("Cache-Control")||n.get("Cache-Control")||n.set("Cache-Control",(0,h.getCacheControlHeader)(s.cacheControl)),await (0,p.sendResponse)(V,z,new Response(s.value.body,{headers:n,status:s.value.status||200}));return}catch(t){if(t instanceof f.NoFallbackError||await C.onRequestError(e,t,{routerKind:"App Router",routePath:U,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:k})},!1,P),D)throw t;await (0,p.sendResponse)(V,z,new Response(null,{status:500}));return}finally{(()=>{if(!s)return;let e=t.statusCode;s.setAttributes({"http.status_code":e,"next.rsc":!1}),e&&e>=500&&(s.setStatus({code:n.SpanStatusCode.ERROR}),s.setAttribute("error.type",e.toString()));let r=$.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==c.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let a=r.get("next.route")||U,i=`${M} ${a}`;s.setAttributes({"next.route":a,"http.route":a,"next.span_name":i}),s.updateName(i),o&&o!==s&&(o.setAttribute("http.route",a),o.updateName(i))})()}};if(F&&W)await Q(W,void 0);else{let t=$.getActiveScopeSpan();await $.withPropagatedContext(e.headers,()=>$.trace(c.BaseServerSpan.handleRequest,{spanName:`${M} ${N}`,kind:n.SpanKind.SERVER,attributes:{"http.method":M,"http.target":e.url}},e=>Q(e,t)),void 0,!F)}}e.s(["handler",0,I,"patchFetch",0,function(){return(0,a.patchFetch)({workAsyncStorage:N,workUnitAsyncStorage:w})},"routeModule",0,C,"serverHooks",0,T,"workAsyncStorage",0,N,"workUnitAsyncStorage",0,w])}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=_0w8wvdn._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[89378,e=>{"use strict";var t=e.i(12892),n=e.i(24514),r=e.i(60756),a=e.i(84594),o=e.i(83808);async function s(e,t,n){let r=`{ actor { account(id: ${Number(t)}) { nrql(query: "${n}") { results } } } }`,o=await (0,a.nrGraphql)(e,r,8e3),s=o?.data?.actor?.account?.nrql?.results?.[0];if(!s)throw Error("no result");return s}async function i(e,t,n){try{let r=await s(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}),s=a.data?.[0]?.lastSeen;return{recent:s&&Date.now()-new Date(s).getTime()<3e5?1:0,lastEventAt:s??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."}}let c=()=>Response.json({error:(0,n.REFUSAL_MESSAGE)()},{status:403});async function d(e){if(!(0,n.isLocalRequest)(e))return c();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,s,u]=await Promise.all([i(r,a,"PageView"),i(r,a,"MetricFlowEvent"),l((0,t.env)("SENTRY_API_KEY"),(0,t.env)("SENTRY_DSN"))]);return Response.json({configured:!0,insertKeySet:!!(0,t.env)(t.INSERT_KEY),browser:o,custom:s,sentry:u})}async function p(e){if(!(0,n.isLocalRequest)(e))return c();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,d,"POST",0,p],89378)},66653,e=>{"use strict";var t=e.i(12425),n=e.i(83353),r=e.i(47902),a=e.i(37892),o=e.i(54261),s=e.i(39548),i=e.i(68187),l=e.i(63984),u=e.i(88743),c=e.i(24698),d=e.i(13487),p=e.i(48776),h=e.i(29398),R=e.i(31610),v=e.i(45919),E=e.i(93695),f=e.i(12741);e.i(95315);var m=e.i(98732);let w=new t.AppRouteRouteModule({definition:{kind:n.RouteKind.APP_ROUTE,page:"/api/connect/route",pathname:"/api/connect",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/app/api/connect/route.ts",nextConfigOutput:"",userland:()=>e.r(89378),...{}}),{workAsyncStorage:g,workUnitAsyncStorage:C,serverHooks:A}=w;async function S(e,t,r){r.requestMeta&&(0,a.setRequestMeta)(e,r.requestMeta),w.isDev&&(0,a.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let g="/api/connect/route";g=g.replace(/\/index$/,"")||"/";let C=await w.prepare(e,t,{srcPage:g,multiZoneDraftMode:!1});if(!C)return t.statusCode=400,t.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve()),null;let{buildId:A,deploymentId:S,params:y,nextConfig:N,parsedUrl:T,isDraftMode:
|
|
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 s(e,t,n){let r=`{ actor { account(id: ${Number(t)}) { nrql(query: "${n}") { results } } } }`,o=await (0,a.nrGraphql)(e,r,8e3),s=o?.data?.actor?.account?.nrql?.results?.[0];if(!s)throw Error("no result");return s}async function i(e,t,n){try{let r=await s(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}),s=a.data?.[0]?.lastSeen;return{recent:s&&Date.now()-new Date(s).getTime()<3e5?1:0,lastEventAt:s??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."}}let c=()=>Response.json({error:(0,n.REFUSAL_MESSAGE)()},{status:403});async function d(e){if(!(0,n.isLocalRequest)(e))return c();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,s,u]=await Promise.all([i(r,a,"PageView"),i(r,a,"MetricFlowEvent"),l((0,t.env)("SENTRY_API_KEY"),(0,t.env)("SENTRY_DSN"))]);return Response.json({configured:!0,accountId:a,insertKeySet:!!(0,t.env)(t.INSERT_KEY),browser:o,custom:s,sentry:u})}async function p(e){if(!(0,n.isLocalRequest)(e))return c();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,d,"POST",0,p],89378)},66653,e=>{"use strict";var t=e.i(12425),n=e.i(83353),r=e.i(47902),a=e.i(37892),o=e.i(54261),s=e.i(39548),i=e.i(68187),l=e.i(63984),u=e.i(88743),c=e.i(24698),d=e.i(13487),p=e.i(48776),h=e.i(29398),R=e.i(31610),v=e.i(45919),E=e.i(93695),f=e.i(12741);e.i(95315);var m=e.i(98732);let w=new t.AppRouteRouteModule({definition:{kind:n.RouteKind.APP_ROUTE,page:"/api/connect/route",pathname:"/api/connect",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/app/api/connect/route.ts",nextConfigOutput:"",userland:()=>e.r(89378),...{}}),{workAsyncStorage:g,workUnitAsyncStorage:C,serverHooks:A}=w;async function S(e,t,r){r.requestMeta&&(0,a.setRequestMeta)(e,r.requestMeta),w.isDev&&(0,a.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let g="/api/connect/route";g=g.replace(/\/index$/,"")||"/";let C=await w.prepare(e,t,{srcPage:g,multiZoneDraftMode:!1});if(!C)return t.statusCode=400,t.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve()),null;let{buildId:A,deploymentId:S,params:y,nextConfig:N,parsedUrl:T,isDraftMode:I,prerenderManifest:_,routerServerContext:x,isOnDemandRevalidate:P,revalidateOnlyGenerated:b,resolvedPathname:O,clientReferenceManifest:q,serverActionsManifest:D}=C,U=(0,i.normalizeAppPath)(g),M=!!_.routes[O]&&(w.isDev||(0,f.isRouteCacheOwner)(O,w.cacheOwner,_.routes[O])),H=!!(_.dynamicRoutes[U]||M),k=async()=>((null==x?void 0:x.render404)?await x.render404(e,t,T,!1):t.end("This page could not be found"),null);if(H&&!I){let e=_.dynamicRoutes[U];if(e&&!1===e.fallback&&!M){if(N.adapterPath)return await k();throw new E.NoFallbackError}}let L=null;!H||w.isDev||I||(L="/index"===(L=O)?"/":L);let j=!0===w.isDev||!H,K=H&&!j;D&&q&&(0,s.setManifestsSingleton)({page:g,clientReferenceManifest:q,serverActionsManifest:D});let $=e.method||"GET",F=(0,o.getTracer)(),B=F.getActiveScopeSpan(),G=!!(null==x?void 0:x.isWrappedByNextServer),Y=!!(0,a.getRequestMeta)(e,"minimalMode"),W=(0,a.getRequestMeta)(e,"incrementalCache")||await w.getIncrementalCache(e,N,_,Y);null==W||W.resetRequestCache(),globalThis.__incrementalCache=W;let X={params:y,previewProps:_.preview,renderOpts:{experimental:{authInterrupts:!!N.experimental.authInterrupts,useCacheTimeout:N.experimental.useCacheTimeout},cacheComponents:!!N.cacheComponents,validationLevel:N.experimental.instantInsights.validationLevel,isDraftMode:I,supportsDynamicResponse:j,incrementalCache:W,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)=>w.onRequestError(e,t,r,a,x)},sharedContext:{buildId:A,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(!Y&&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 w.handle(Z,X);e.fetchMetrics=X.renderOpts.fetchMetrics;let o=X.renderOpts.pendingWaitUntil;o&&r.waitUntil&&(r.waitUntil(o),o=void 0);let s=X.renderOpts.collectedTags;if(!H)return await (0,p.sendResponse)(V,z,a,o),null;{let e=await a.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(a.headers);s&&(t[v.NEXT_CACHE_TAGS_HEADER]=s),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let n=void 0!==X.renderOpts.collectedRevalidate&&!(X.renderOpts.collectedRevalidate>=v.INFINITE_CACHE)&&X.renderOpts.collectedRevalidate,r=void 0===X.renderOpts.collectedExpire||X.renderOpts.collectedExpire>=v.INFINITE_CACHE?!1!==n&&n>0?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 w.onRequestError(e,t,{routerKind:"App Router",routePath:g,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:K,isOnDemandRevalidate:P})},!1,x),t}},Q=async(a,s)=>{try{var i,l;let a=await w.handleResponse({req:e,nextConfig:N,cacheKey:L,routeKind:n.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:_,isRoutePPREnabled:!1,isOnDemandRevalidate:P,revalidateOnlyGenerated:b,responseGenerator:J,waitUntil:r.waitUntil,isMinimalMode:Y});if(!H)return;if((null==a||null==(i=a.value)?void 0:i.kind)!==m.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==a||null==(l=a.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});Y||t.setHeader("x-nextjs-cache",P?"REVALIDATED":a.isMiss?"MISS":a.isStale?"STALE":"HIT"),I&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let o=(0,h.fromNodeOutgoingHttpHeaders)(a.value.headers);Y&&H||o.delete(v.NEXT_CACHE_TAGS_HEADER),!a.cacheControl||t.getHeader("Cache-Control")||o.get("Cache-Control")||o.set("Cache-Control",(0,R.getCacheControlHeader)(a.cacheControl)),await (0,p.sendResponse)(V,z,new Response(a.value.body,{headers:o,status:a.value.status||200}));return}catch(t){if(t instanceof E.NoFallbackError||await w.onRequestError(e,t,{routerKind:"App Router",routePath:U,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:K,isOnDemandRevalidate:P})},!1,x),H)throw t;await (0,p.sendResponse)(V,z,new Response(null,{status:500}));return}finally{(()=>{if(!a)return;let e=t.statusCode;a.setAttributes({"http.status_code":e,"next.rsc":!1}),e&&e>=500&&(a.setStatus({code:o.SpanStatusCode.ERROR}),a.setAttribute("error.type",e.toString()));let n=F.getRootSpanAttributes();if(!n)return;if(n.get("next.span_type")!==c.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${n.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let r=n.get("next.route")||U,i=`${$} ${r}`;a.setAttributes({"next.route":r,"http.route":r,"next.span_name":i}),a.updateName(i),s&&s!==a&&(s.setAttribute("http.route",r),s.updateName(i))})()}};if(G&&B)await Q(B,void 0);else{let t=F.getActiveScopeSpan();await F.withPropagatedContext(e.headers,()=>F.trace(c.BaseServerSpan.handleRequest,{spanName:`${$} ${g}`,kind:o.SpanKind.SERVER,attributes:{"http.method":$,"http.target":e.url}},e=>Q(e,t)),void 0,!G)}}e.s(["handler",0,S,"patchFetch",0,function(){return(0,r.patchFetch)({workAsyncStorage:g,workUnitAsyncStorage:C})},"routeModule",0,w,"serverHooks",0,A,"workAsyncStorage",0,g,"workUnitAsyncStorage",0,C])}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=_1l9d64o._.js.map
|
|
@@ -1,17 +1,56 @@
|
|
|
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=`//
|
|
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=`// Step 0 - create the Browser app first: New Relic > Add data > Browser monitoring.
|
|
2
|
+
// Without it there is no ingest key and no application ID to copy.
|
|
3
|
+
// That page gives you both:
|
|
4
|
+
// ingest key starts with NRJS- (NOT your NRAK- User API key from Setup)
|
|
5
|
+
// application ID a plain number (NOT your account ID - they look identical)
|
|
6
|
+
// npm i @newrelic/browser-agent
|
|
7
|
+
|
|
8
|
+
// .env.local - NEXT_PUBLIC_* values are inlined into your public JavaScript.
|
|
9
|
+
// Only the NRJS- ingest key belongs here. An NRAK- User key would be published
|
|
10
|
+
// to every visitor as a full-account read/write credential.
|
|
11
|
+
// NEXT_PUBLIC_NEWRELIC_BROWSER_KEY=NRJS-xxxxxxxxxxxxxxxxxxx
|
|
12
|
+
// NEXT_PUBLIC_NEWRELIC_APP_ID=123456789
|
|
13
|
+
// NEXT_PUBLIC_NEWRELIC_ACCOUNT_ID=1234567
|
|
14
|
+
|
|
15
|
+
// newrelic.ts
|
|
2
16
|
import { BrowserAgent } from '@newrelic/browser-agent/loaders/browser-agent';
|
|
3
17
|
|
|
4
|
-
const
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
18
|
+
const licenseKey = process.env.NEXT_PUBLIC_NEWRELIC_BROWSER_KEY!;
|
|
19
|
+
const applicationID = process.env.NEXT_PUBLIC_NEWRELIC_APP_ID!;
|
|
20
|
+
const accountID = process.env.NEXT_PUBLIC_NEWRELIC_ACCOUNT_ID!;
|
|
21
|
+
|
|
22
|
+
let agent: BrowserAgent | undefined;
|
|
23
|
+
|
|
24
|
+
// Never construct at import time: the agent touches window, so a module-level
|
|
25
|
+
// \`export const agent = new BrowserAgent(...)\` fails \`next build\` on any
|
|
26
|
+
// prerendered route - TypeError: Cannot create property 'NREUM' on boolean 'false'.
|
|
27
|
+
export function startAgent() {
|
|
28
|
+
agent ??= new BrowserAgent({
|
|
29
|
+
init: { distributed_tracing: { enabled: true }, privacy: { cookies_enabled: true } },
|
|
30
|
+
info: { beacon: 'bam.nr-data.net', errorBeacon: 'bam.nr-data.net', licenseKey, applicationID, sa: 1 },
|
|
31
|
+
loader_config: { accountID, trustKey: accountID, agentID: applicationID, licenseKey, applicationID },
|
|
32
|
+
});
|
|
33
|
+
return agent;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
export const getAgent = () => agent;
|
|
37
|
+
|
|
38
|
+
// app/newrelic-agent.tsx - render <NewRelicAgent /> once in app/layout.tsx.
|
|
39
|
+
'use client';
|
|
40
|
+
import { useEffect } from 'react';
|
|
41
|
+
|
|
42
|
+
export function NewRelicAgent() {
|
|
43
|
+
// Dynamic import keeps the agent out of the server bundle entirely.
|
|
44
|
+
useEffect(() => { import('./newrelic').then(m => m.startAgent()); }, []);
|
|
45
|
+
return null;
|
|
46
|
+
}
|
|
47
|
+
// That alone gives you PageView, load timing, Core Web Vitals and JS errors.`,i=`// emitMetric.ts - sends a custom event through the New Relic browser agent (no key in your code)
|
|
10
48
|
// Needs a recent @newrelic/browser-agent (recordCustomEvent). Using New Relic's copy-paste snippet instead? Call window.newrelic.recordCustomEvent the same way.
|
|
11
|
-
import {
|
|
49
|
+
import { getAgent } from './newrelic'; // from snippet 1
|
|
12
50
|
|
|
13
51
|
export function emitMetric(name: string, value: number, attrs: Record<string, string | number | boolean> = {}) {
|
|
14
|
-
|
|
52
|
+
// No-op until <NewRelicAgent /> has mounted, so this is safe to call anywhere.
|
|
53
|
+
getAgent()?.recordCustomEvent('MetricFlowEvent', { name, value, page: location.pathname, ...attrs });
|
|
15
54
|
}
|
|
16
55
|
|
|
17
56
|
// emitMetric('checkout_step', 2, { step: 'payment' });`,j=`// npm i @sentry/browser
|
|
@@ -20,6 +59,6 @@ import * as Sentry from '@sentry/browser';
|
|
|
20
59
|
Sentry.init({
|
|
21
60
|
dsn: '<YOUR_SENTRY_DSN>', // Sentry > Project settings > Client Keys (DSN)
|
|
22
61
|
tracesSampleRate: 0.1,
|
|
23
|
-
});`,k="border-[#2d3748] bg-[#1a202c] shadow-md";function l({n:a,title:d,help:g,code:h}){let[i,j]=(0,c.useState)(null);return(0,b.jsxs)(e.Card,{className:k,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(()=>j("ok"),()=>j("fail")),setTimeout(()=>j(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 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)}}return((0,c.useEffect)(()=>{w();let a=setInterval(()=>{document.hidden||w()},5e3);return()=>clearInterval(a)},[w]),a?.error)?(0,b.jsx)(e.Card,{className:k,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})})}):a&&!a.configured?(0,b.jsx)(e.Card,{className:k,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 and Sentry keys, then come back to connect your site."}),(0,b.jsx)(d.default,{href:"/setup",className:(0,f.buttonVariants)(),children:"Go to setup"})]})}):(0,b.jsxs)("div",{className:"flex flex-col gap-6 max-w-3xl",children:[(0,b.jsxs)(e.Card,{className:k,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.jsx)(e.CardDescription,{className:"text-sm text-gray-400",children:"Updates every few seconds."})]}),(0,b.jsxs)(e.CardContent,{"aria-live":"polite",children:[(0,b.jsx)(m,{label:"Browser agent (page views)",s:a?.browser}),(0,b.jsx)(m,{label:"Custom events (emitMetric / test event)",s:a?.custom}),(0,b.jsx)(m,{label:"Sentry errors",s:a?.sentry})]})]}),(0,b.jsxs)(e.Card,{className:k,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})]})]})]}),(0,b.jsx)(l,{n:1,title:"1. New Relic Browser agent",help:"Gives page views, load timing and Core Web Vitals. Replace the placeholders with values from New Relic.",code:h}),(0,b.jsx)(l,{n:2,title:"2. emitMetric() helper",help:"Send your own numbers from your site. Uses the Browser agent above, so no key goes in your code.",code:i}),(0,b.jsx)(l,{n:3,title:"3. Sentry errors",help:"Send JavaScript errors to Sentry. Use your project's DSN.",code:j}),(0,b.jsx)(e.Card,{className:k,children:(0,b.jsxs)(e.CardHeader,{children:[(0,b.jsx)(e.CardTitle,{className:"text-base font-bold text-white",children:"4. Verify"}),(0,b.jsx)(e.CardDescription,{className:"text-sm text-gray-400",children:'Reload your site, then watch "Events received" above turn green. Use Send test event to check the custom-event path.'})]})})]})}],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})}])},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)}];
|
|
62
|
+
});`,k="border-[#2d3748] bg-[#1a202c] shadow-md";function l({n:a,title:d,help:g,code:h}){let[i,j]=(0,c.useState)(null);return(0,b.jsxs)(e.Card,{className:k,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(()=>j("ok"),()=>j("fail")),setTimeout(()=>j(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 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)}}return((0,c.useEffect)(()=>{w();let a=setInterval(()=>{document.hidden||w()},5e3);return()=>clearInterval(a)},[w]),a?.error)?(0,b.jsx)(e.Card,{className:k,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})})}):a&&!a.configured?(0,b.jsx)(e.Card,{className:k,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 and Sentry keys, then come back to connect your site."}),(0,b.jsx)(d.default,{href:"/setup",className:(0,f.buttonVariants)(),children:"Go to setup"})]})}):(0,b.jsxs)("div",{className:"flex flex-col gap-6 max-w-3xl",children:[(0,b.jsxs)(e.Card,{className:k,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:[(0,b.jsx)(m,{label:"Browser agent (page views)",s:a?.browser}),(0,b.jsx)(m,{label:"Custom events (emitMetric / test event)",s:a?.custom}),(0,b.jsx)(m,{label:"Sentry errors",s:a?.sentry})]})]}),(0,b.jsxs)(e.Card,{className:k,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})]})]})]}),(0,b.jsx)(e.Card,{className:k,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."]})}),(0,b.jsx)(l,{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:h}),(0,b.jsx)(l,{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:i}),(0,b.jsx)(l,{n:3,title:"3. Sentry errors",help:"Send JavaScript errors to Sentry. Use your project's DSN.",code:j}),(0,b.jsx)(e.Card,{className:k,children:(0,b.jsxs)(e.CardHeader,{children:[(0,b.jsx)(e.CardTitle,{className:"text-base font-bold text-white",children:"4. Verify"}),(0,b.jsx)(e.CardDescription,{className:"text-sm text-gray-400",children:'Reload your site, then watch "Events received" above turn green. Use Send test event to check the custom-event path.'})]})})]})}],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})}])},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)}];
|
|
24
63
|
|
|
25
64
|
//# sourceMappingURL=_1tpe22e._.js.map
|
|
@@ -7,9 +7,9 @@ globalThis.__BUILD_MANIFEST = {
|
|
|
7
7
|
"static/chunks/0cz1d0mv5g_q7.js"
|
|
8
8
|
],
|
|
9
9
|
"lowPriorityFiles": [
|
|
10
|
-
"static/
|
|
11
|
-
"static/
|
|
12
|
-
"static/
|
|
10
|
+
"static/CmDtpnmDTN7yCAeLoO8pb/_buildManifest.js",
|
|
11
|
+
"static/CmDtpnmDTN7yCAeLoO8pb/_ssgManifest.js",
|
|
12
|
+
"static/CmDtpnmDTN7yCAeLoO8pb/_clientMiddlewareManifest.js"
|
|
13
13
|
],
|
|
14
14
|
"rootMainFiles": [
|
|
15
15
|
"static/chunks/42z_0gfabqpr_.js",
|